Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

angular-responsive-carousel

Package Overview
Dependencies
Maintainers
1
Versions
22
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

angular-responsive-carousel - npm Package Compare versions

Comparing version 1.2.8 to 1.2.9

1

angular-responsive-carousel.d.ts

@@ -5,2 +5,1 @@ /**

export * from './public-api';
export { CarouselComponent as ɵa } from './lib/carousel.component';

2

angular-responsive-carousel.metadata.json

@@ -1,1 +0,1 @@

{"__symbolic":"module","version":4,"metadata":{"Images":{"__symbolic":"interface"},"Image":{"__symbolic":"interface"},"IvyCarouselModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":4,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵa"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":9,"character":8}],"exports":[{"__symbolic":"reference","name":"ɵa"}],"providers":[],"bootstrap":[],"entryComponents":[{"__symbolic":"reference","name":"ɵa"}]}]}],"members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"carousel, [carousel]","exportAs":"carousel","template":"<div class=\"carousel-counter\" *ngIf=\"isCounter\">{{counter}}</div>\n\n<div class=\"carousel-container\" [class.carousel-moving]=\"isMoving\">\n\t<div class=\"carousel-cells\" #cells (transitionend)=\"handleTransitionendCellContainer($event)\">\n\t\t<ng-content></ng-content>\n\n\t\t<ng-template ngFor let-image [ngForOf]=\"images\" let-i=\"index\">\n\t\t\t<div class=\"carousel-cell\" \n\t\t\t\t*ngIf=\"i < cellLimit\" \n\t\t\t\t[style.width]=\"getCellWidth()+'px'\"\n\t\t\t\t[style.border-radius]=\"borderRadius+'px'\">\n\n\t\t\t\t<!-- Image -->\n\t\t\t\t<img \n\t\t\t\t\t*ngIf=\"getFile(i) && getFile(i)['image']\" \n\t\t\t\t\t[src]=\"getFile(i)['image']['path']\"\n\t\t\t\t\t[style.object-fit]=\"objectFit\"\n\t\t\t\t\tdraggable=\"false\" />\n\n\t\t\t\t<!-- Video -->\n\t\t\t\t<ng-template [ngIf]=\"getFile(i) && getFile(i)['type'] === 'video'\">\n\t\t\t\t\t<div class=\"carousel-play\" (click)=\"toggleVideo(video)\"></div>\n\n\t\t\t\t\t<video #video\n\t\t\t\t\t\t[loop]=\"videoProperties.loop\"\n\t\t\t\t\t\t[muted]=\"videoProperties.muted\"\n\t\t\t\t\t\t[controls]=\"isSafari\"\n\t\t\t\t\t\t[style.object-fit]=\"objectFit\"\n\t\t\t\t\t\t[style.border-radius]=\"borderRadius+'px'\">\n\t\t\t\t\t\t\n\t\t\t\t\t\t<source [src]=\"getFile(i)['path']\" type=\"video/mp4\">\n\t\t\t\t\t</video>\n\t\t\t\t</ng-template>\n\t\t\t</div>\n\t\t</ng-template>\n\t</div>\n\n\t<div class=\"carousel-dots\" *ngIf=\"dots\">\n\t\t<div class=\"carousel-dot\" [class.carousel-dot-active]=\"i === activeDotIndex\" *ngFor=\"let dot of dotsArr; index as i\"></div>\n\t</div>\n</div>\n\n<div class=\"carousel-arrows\" \n\t[class.carousel-arrows-outside]=\"arrowsOutside\" \n\t[class.carousel-dark-arrows]=\"arrowsTheme === 'dark'\"\n\t*ngIf=\"arrows\">\n\t\n\t<div class=\"carousel-arrow carousel-arrow-prev\" [class.carousel-arrow-disabled]=\"isPrevArrowDisabled()\" (click)=\"prev()\"></div>\n\t<div class=\"carousel-arrow carousel-arrow-next\" [class.carousel-arrow-disabled]=\"isNextArrowDisabled()\" (click)=\"next()\"></div>\n</div>","styles":[":host{position:relative;display:block;top:0;left:0;width:100%;height:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:10000;-webkit-transform-origin:top left;transform-origin:top left;box-sizing:border-box}:host .carousel-container{overflow:hidden;width:100%;height:100%;cursor:-webkit-grab;cursor:grab}:host .carousel-container.carousel-moving{cursor:-webkit-grabbing;cursor:grabbing}:host .carousel-counter{text-align:right;position:absolute;z-index:30;transition:opacity .2s;top:8px;right:24px;border-radius:13px;background-color:rgba(23,37,68,.3);font-size:11px;color:#fff;padding:5px 7px;line-height:initial}:host ::ng-deep .carousel-cells{transition:transform .2s;transition:transform .2s,-webkit-transform .2s;width:100%;height:100%;display:block}:host ::ng-deep .carousel-cells .carousel-cell.swiper-prev-image{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}:host ::ng-deep .carousel-cells .carousel-cell.swiper-next-image{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}:host ::ng-deep .carousel-cells .carousel-cell{width:100%;height:100%;text-align:center;position:absolute;display:flex;align-items:center;justify-content:center;overflow:hidden}:host ::ng-deep .carousel-cells .carousel-cell img,:host ::ng-deep .carousel-cells .carousel-cell video{width:100%;height:100%;position:relative;-o-object-fit:contain;object-fit:contain}:host ::ng-deep .carousel-cells .carousel-cell img.swiper-hide{display:none}:host ::ng-deep .carousel-cells .carousel-cell .carousel-play{position:absolute;top:0;left:0;bottom:0;right:0;z-index:1}:host .carousel-arrow{width:40px;height:40px;background-color:#fff;background-repeat:no-repeat;background-size:31px;background-position:center;border-radius:100px;position:absolute;top:50%;margin-top:-20px;z-index:10;cursor:pointer;box-shadow:0 0 5px rgba(0,0,0,.15)}:host .carousel-arrow-prev{left:10px;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0Ij48cGF0aCBkPSJNMTUuNDEgMTYuNTlMMTAuODMgMTJsNC41OC00LjU5TDE0IDZsLTYgNiA2IDYgMS40MS0xLjQxeiIvPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMFYweiIgZmlsbD0ibm9uZSIvPjwvc3ZnPg==)}:host .carousel-arrow-next{right:10px;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0Ij48cGF0aCBkPSJNOC41OSAxNi41OUwxMy4xNyAxMiA4LjU5IDcuNDEgMTAgNmw2IDYtNiA2LTEuNDEtMS40MXoiLz48cGF0aCBkPSJNMCAwaDI0djI0SDBWMHoiIGZpbGw9Im5vbmUiLz48L3N2Zz4=)}:host .carousel-arrows-outside .carousel-arrow-prev{left:-60px}:host .carousel-arrows-outside .carousel-arrow-next{right:-60px}:host .carousel-dark-arrows .carousel-arrow{-webkit-filter:invert(1);filter:invert(1)}:host .carousel-arrow-disabled{cursor:default;opacity:.5}:host .carousel-dots{position:absolute;left:0;right:0;bottom:0;z-index:10;text-align:center}:host .carousel-dots .carousel-dot{display:inline-block;border:2px solid #fff;border-radius:100px;margin:4px;width:8px;height:8px}:host .carousel-dots .carousel-dot-active{background-color:#fff}"]}]}],"members":{"lineUpCells":[{"__symbolic":"method"}],"quicklyPositionContainer":[{"__symbolic":"method"}],"images":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":79,"character":5}}]}],"events":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":87,"character":5}}]}],"height":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":89,"character":5}}]}],"width":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":90,"character":5}}]}],"loop":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":91,"character":5}}]}],"autoplay":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":92,"character":5}}]}],"autoplayInterval":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":93,"character":5}}]}],"pauseOnHover":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":94,"character":5}}]}],"dots":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":95,"character":5}}]}],"borderRadius":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":96,"character":5}}]}],"margin":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":97,"character":5}}]}],"objectFit":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":98,"character":5}}]}],"minSwipeDistance":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":99,"character":5}}]}],"transitionDuration":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":100,"character":5}}]}],"transitionTimingFunction":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":101,"character":5}}]}],"videoProperties":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":102,"character":5}}]}],"counterSeparator":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":103,"character":5}}]}],"overflowCellsLimit":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":104,"character":5}}]}],"listeners":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":105,"character":5}}]}],"cellWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":107,"character":5},"arguments":["cellWidth"]}]}],"isCounter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":113,"character":5},"arguments":["counter"]}]}],"arrows":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":126,"character":5}}]}],"arrowsOutside":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":127,"character":5}}]}],"arrowsTheme":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":128,"character":5}}]}],"hostClassCarousel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":136,"character":5},"arguments":["class.carousel"]}]}],"hostStyleHeight":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":137,"character":5},"arguments":["style.height"]}]}],"hostStyleWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":138,"character":5},"arguments":["style.width"]}]}],"onWindowResize":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":140,"character":5},"arguments":["window:resize",["$event"]]}]}],"onMousemove":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":149,"character":5},"arguments":["mousemove",["$event"]]}]}],"onMouseleave":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":156,"character":5},"arguments":["mouseleave",["$event"]]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":164,"character":28},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":165,"character":21}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"initCarousel":[{"__symbolic":"method"}],"setDimensions":[{"__symbolic":"method"}],"getFile":[{"__symbolic":"method"}],"handleTransitionendCellContainer":[{"__symbolic":"method"}],"toggleVideo":[{"__symbolic":"method"}],"getCurrentIndex":[{"__symbolic":"method"}],"getCellWidth":[{"__symbolic":"method"}],"next":[{"__symbolic":"method"}],"prev":[{"__symbolic":"method"}],"select":[{"__symbolic":"method"}],"isNextArrowDisabled":[{"__symbolic":"method"}],"isPrevArrowDisabled":[{"__symbolic":"method"}],"getCellLength":[{"__symbolic":"method"}]}}},"origins":{"Images":"./lib/interfaces","Image":"./lib/interfaces","IvyCarouselModule":"./lib/carousel.module","ɵa":"./lib/carousel.component"},"importAs":"angular-responsive-carousel"}
{"__symbolic":"module","version":4,"metadata":{"Images":{"__symbolic":"interface"},"Image":{"__symbolic":"interface"},"IvyCarouselModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":4,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"CarouselComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":9,"character":8}],"exports":[{"__symbolic":"reference","name":"CarouselComponent"}],"providers":[],"bootstrap":[],"entryComponents":[{"__symbolic":"reference","name":"CarouselComponent"}]}]}],"members":{}},"CarouselComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"carousel, [carousel]","exportAs":"carousel","template":"<div class=\"carousel-counter\" *ngIf=\"isCounter\">{{counter}}</div>\n\n<div class=\"carousel-container\" [class.carousel-moving]=\"isMoving\">\n\t<div class=\"carousel-cells\" #cells (transitionend)=\"handleTransitionendCellContainer($event)\">\n\t\t<ng-content></ng-content>\n\n\t\t<ng-template ngFor let-image [ngForOf]=\"images\" let-i=\"index\">\n\t\t\t<div class=\"carousel-cell\" \n\t\t\t\t*ngIf=\"i < cellLimit\" \n\t\t\t\t[style.width]=\"getCellWidth()+'px'\"\n\t\t\t\t[style.border-radius]=\"borderRadius+'px'\">\n\n\t\t\t\t<!-- Image -->\n\t\t\t\t<img \n\t\t\t\t\t*ngIf=\"getFile(i) && getFile(i)['image']\" \n\t\t\t\t\t[src]=\"getFile(i)['image']['path']\"\n\t\t\t\t\t[style.object-fit]=\"objectFit\"\n\t\t\t\t\tdraggable=\"false\" />\n\n\t\t\t\t<!-- Video -->\n\t\t\t\t<ng-template [ngIf]=\"getFile(i) && getFile(i)['type'] === 'video'\">\n\t\t\t\t\t<div class=\"carousel-play\" (click)=\"toggleVideo(video)\"></div>\n\n\t\t\t\t\t<video #video\n\t\t\t\t\t\t[loop]=\"videoProperties.loop\"\n\t\t\t\t\t\t[muted]=\"videoProperties.muted\"\n\t\t\t\t\t\t[controls]=\"isSafari\"\n\t\t\t\t\t\t[style.object-fit]=\"objectFit\"\n\t\t\t\t\t\t[style.border-radius]=\"borderRadius+'px'\">\n\t\t\t\t\t\t\n\t\t\t\t\t\t<source [src]=\"getFile(i)['path']\" type=\"video/mp4\">\n\t\t\t\t\t</video>\n\t\t\t\t</ng-template>\n\t\t\t</div>\n\t\t</ng-template>\n\t</div>\n\n\t<div class=\"carousel-dots\" *ngIf=\"dots\">\n\t\t<div class=\"carousel-dot\" [class.carousel-dot-active]=\"i === activeDotIndex\" *ngFor=\"let dot of dotsArr; index as i\"></div>\n\t</div>\n</div>\n\n<div class=\"carousel-arrows\" \n\t[class.carousel-arrows-outside]=\"arrowsOutside\" \n\t[class.carousel-dark-arrows]=\"arrowsTheme === 'dark'\"\n\t*ngIf=\"arrows\">\n\t\n\t<div class=\"carousel-arrow carousel-arrow-prev\" [class.carousel-arrow-disabled]=\"isPrevArrowDisabled()\" (click)=\"prev()\"></div>\n\t<div class=\"carousel-arrow carousel-arrow-next\" [class.carousel-arrow-disabled]=\"isNextArrowDisabled()\" (click)=\"next()\"></div>\n</div>","styles":[":host{-moz-user-select:none;-webkit-user-select:none;box-sizing:border-box;display:block;height:100%;left:0;position:relative;top:0;transform-origin:top left;user-select:none;width:100%;z-index:10000}:host .carousel-container{cursor:grab;height:100%;overflow:hidden;width:100%}:host .carousel-container.carousel-moving{cursor:grabbing}:host .carousel-counter{background-color:rgba(23,37,68,.3);border-radius:13px;color:#fff;font-size:11px;line-height:normal;padding:5px 7px;position:absolute;right:24px;text-align:right;top:8px;transition:opacity .2s;z-index:30}:host ::ng-deep .carousel-cells{display:block;height:100%;transition:transform .2s;width:100%}:host ::ng-deep .carousel-cells .carousel-cell.swiper-prev-image{transform:translate3d(-100%,0,0)}:host ::ng-deep .carousel-cells .carousel-cell.swiper-next-image{transform:translate3d(100%,0,0)}:host ::ng-deep .carousel-cells .carousel-cell{align-items:center;display:flex;height:100%;justify-content:center;overflow:hidden;position:absolute;text-align:center;width:100%}:host ::ng-deep .carousel-cells .carousel-cell img,:host ::ng-deep .carousel-cells .carousel-cell video{height:100%;object-fit:contain;position:relative;width:100%}:host ::ng-deep .carousel-cells .carousel-cell img.swiper-hide{display:none}:host ::ng-deep .carousel-cells .carousel-cell .carousel-play{bottom:0;left:0;position:absolute;right:0;top:0;z-index:1}:host .carousel-arrow{background-color:#fff;background-position:50%;background-repeat:no-repeat;background-size:31px;border-radius:100px;box-shadow:0 0 5px rgba(0,0,0,.15);cursor:pointer;height:40px;margin-top:-20px;position:absolute;top:50%;width:40px;z-index:10}:host .carousel-arrow-prev{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0Ij48cGF0aCBkPSJNMTUuNDEgMTYuNTlMMTAuODMgMTJsNC41OC00LjU5TDE0IDZsLTYgNiA2IDYgMS40MS0xLjQxeiIvPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMFYweiIgZmlsbD0ibm9uZSIvPjwvc3ZnPg==);left:10px}:host .carousel-arrow-next{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0Ij48cGF0aCBkPSJNOC41OSAxNi41OUwxMy4xNyAxMiA4LjU5IDcuNDEgMTAgNmw2IDYtNiA2LTEuNDEtMS40MXoiLz48cGF0aCBkPSJNMCAwaDI0djI0SDBWMHoiIGZpbGw9Im5vbmUiLz48L3N2Zz4=);right:10px}:host .carousel-arrows-outside .carousel-arrow-prev{left:-60px}:host .carousel-arrows-outside .carousel-arrow-next{right:-60px}:host .carousel-dark-arrows .carousel-arrow{filter:invert(1)}:host .carousel-arrow-disabled{cursor:default;opacity:.5}:host .carousel-dots{bottom:0;left:0;position:absolute;right:0;text-align:center;z-index:10}:host .carousel-dots .carousel-dot{border:2px solid #fff;border-radius:100px;display:inline-block;height:8px;margin:4px;width:8px}:host .carousel-dots .carousel-dot-active{background-color:#fff}"]}]}],"members":{"lineUpCells":[{"__symbolic":"method"}],"quicklyPositionContainer":[{"__symbolic":"method"}],"images":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":79,"character":5}}]}],"events":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":87,"character":5}}]}],"height":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":89,"character":5}}]}],"width":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":90,"character":5}}]}],"loop":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":91,"character":5}}]}],"autoplay":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":92,"character":5}}]}],"autoplayInterval":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":93,"character":5}}]}],"pauseOnHover":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":94,"character":5}}]}],"dots":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":95,"character":5}}]}],"borderRadius":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":96,"character":5}}]}],"margin":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":97,"character":5}}]}],"objectFit":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":98,"character":5}}]}],"minSwipeDistance":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":99,"character":5}}]}],"transitionDuration":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":100,"character":5}}]}],"transitionTimingFunction":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":101,"character":5}}]}],"videoProperties":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":102,"character":5}}]}],"counterSeparator":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":103,"character":5}}]}],"overflowCellsLimit":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":104,"character":5}}]}],"listeners":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":105,"character":5}}]}],"cellWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":107,"character":5},"arguments":["cellWidth"]}]}],"isCounter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":113,"character":5},"arguments":["counter"]}]}],"arrows":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":126,"character":5}}]}],"arrowsOutside":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":127,"character":5}}]}],"arrowsTheme":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":128,"character":5}}]}],"hostClassCarousel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":136,"character":5},"arguments":["class.carousel"]}]}],"hostStyleHeight":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":137,"character":5},"arguments":["style.height"]}]}],"hostStyleWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":138,"character":5},"arguments":["style.width"]}]}],"onWindowResize":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":140,"character":5},"arguments":["window:resize",["$event"]]}]}],"onMousemove":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":149,"character":5},"arguments":["mousemove",["$event"]]}]}],"onMouseleave":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":156,"character":5},"arguments":["mouseleave",["$event"]]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":164,"character":28},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":165,"character":21}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"initCarousel":[{"__symbolic":"method"}],"setDimensions":[{"__symbolic":"method"}],"getFile":[{"__symbolic":"method"}],"handleTransitionendCellContainer":[{"__symbolic":"method"}],"toggleVideo":[{"__symbolic":"method"}],"getCurrentIndex":[{"__symbolic":"method"}],"getCellWidth":[{"__symbolic":"method"}],"next":[{"__symbolic":"method"}],"prev":[{"__symbolic":"method"}],"select":[{"__symbolic":"method"}],"isNextArrowDisabled":[{"__symbolic":"method"}],"isPrevArrowDisabled":[{"__symbolic":"method"}],"getCellLength":[{"__symbolic":"method"}]}}},"origins":{"Images":"./lib/interfaces","Image":"./lib/interfaces","IvyCarouselModule":"./lib/carousel.module","CarouselComponent":"./lib/carousel.component"},"importAs":"angular-responsive-carousel"}

@@ -1,2 +0,2 @@

!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/common"),require("@angular/core")):"function"==typeof define&&define.amd?define("angular-responsive-carousel",["exports","@angular/common","@angular/core"],e):e(t["angular-responsive-carousel"]={},t.ng.common,t.ng.core)}(this,function(t,e,i){"use strict";var n=function(){function t(t){var i=this;this.eventType=undefined,this.handlers={},this.startX=0,this.startY=0,this.lastTap=0,this.doubleTapMinTimeout=300,this.tapMinTimeout=200,this.touchstartTime=0,this.i=0,this.isMousedown=!1,this.touchListeners={touchstart:"handleTouchstart",touchmove:"handleTouchmove",touchend:"handleTouchend"},this.mouseListeners={mousedown:"handleMousedown",mousemove:"handleMousemove",mouseup:"handleMouseup",wheel:"handleWheel"},this.otherListeners={resize:"handleResize"},this.handleTouchstart=function(t){i.elementPosition=i.getElementPosition(),i.touchstartTime=(new Date).getTime(),i.eventType===undefined&&i.getTouchstartPosition(t),i.runHandler("touchstart",t)},this.handleTouchmove=function(t){var e=t.touches;switch(i.detectPan(e)&&i.runHandler("pan",t),i.detectPinch(t)&&i.runHandler("pinch",t),i.detectLinearSwipe(t)){case"horizontal-swipe":t.swipeType="horizontal-swipe",i.runHandler("horizontal-swipe",t);break;case"vertical-swipe":t.swipeType="vertical-swipe",i.runHandler("vertical-swipe",t)}(i.detectLinearSwipe(t)||"horizontal-swipe"===i.eventType||"vertical-swipe"===i.eventType)&&i.handleLinearSwipe(t)},this.handleTouchend=function(t){var e=t.touches;i.detectDoubleTap()&&i.runHandler("double-tap",t),i.detectTap(),i.runHandler("touchend",t),i.eventType="touchend",e&&0===e.length&&(i.eventType=undefined,i.i=0)},this.handleMousedown=function(t){i.isMousedown=!0,i.elementPosition=i.getElementPosition(),i.touchstartTime=(new Date).getTime(),i.eventType===undefined&&i.getMousedownPosition(t),i.runHandler("mousedown",t)},this.handleMousemove=function(t){if(i.isMousedown){switch(i.runHandler("pan",t),i.detectLinearSwipe(t)){case"horizontal-swipe":t.swipeType="horizontal-swipe",i.runHandler("horizontal-swipe",t);break;case"vertical-swipe":t.swipeType="vertical-swipe",i.runHandler("vertical-swipe",t)}(i.detectLinearSwipe(t)||"horizontal-swipe"===i.eventType||"vertical-swipe"===i.eventType)&&i.handleLinearSwipe(t)}},this.handleMouseup=function(t){i.detectTap(),i.isMousedown=!1,i.runHandler("mouseup",t),i.eventType=undefined,i.i=0},this.handleWheel=function(t){i.runHandler("wheel",t)},this.handleResize=function(t){i.runHandler("resize",t)},this.properties=t,this.element=this.properties.element,this.elementPosition=this.getElementPosition(),this.toggleEventListeners("addEventListener")}return t.prototype.destroy=function(){this.toggleEventListeners("removeEventListener")},t.prototype.toggleEventListeners=function(t){var e;for(var i in e="mouse and touch"===this.properties.listeners?Object.assign(this.touchListeners,this.mouseListeners):this.detectTouchScreen()?this.touchListeners:this.mouseListeners,this.properties.resize&&(e=Object.assign(e,this.otherListeners)),e){var n=e[i];"resize"===i?("addEventListener"===t&&window.addEventListener(i,this[n],!1),"removeEventListener"===t&&window.removeEventListener(i,this[n],!1)):"mouseup"===i||"mousemove"===i?("addEventListener"===t&&document.addEventListener(i,this[n],!1),"removeEventListener"===t&&document.removeEventListener(i,this[n],!1)):("addEventListener"===t&&this.element.addEventListener(i,this[n],!1),"removeEventListener"===t&&this.element.removeEventListener(i,this[n],!1))}},t.prototype.handleLinearSwipe=function(t){this.i++,3<this.i&&(this.eventType=this.getLinearSwipeType(t)),"horizontal-swipe"===this.eventType&&this.runHandler("horizontal-swipe",t),"vertical-swipe"===this.eventType&&this.runHandler("vertical-swipe",t)},t.prototype.runHandler=function(t,e){this.handlers[t]&&this.handlers[t](e)},t.prototype.detectPan=function(t){return 1===t.length&&!this.eventType||"pan"===this.eventType},t.prototype.detectDoubleTap=function(){var t=this;if(this.eventType==undefined){var e=(new Date).getTime(),i=e-this.lastTap;if(clearTimeout(this.doubleTapTimeout),i<this.doubleTapMinTimeout&&0<i)return!0;this.doubleTapTimeout=setTimeout(function(){clearTimeout(t.doubleTapTimeout)},this.doubleTapMinTimeout),this.lastTap=e}},t.prototype.detectTap=function(){if(this.eventType==undefined){var t=(new Date).getTime()-this.touchstartTime;0<t&&(t<this.tapMinTimeout?this.runHandler("tap",event):this.runHandler("longtap",event))}},t.prototype.detectPinch=function(t){return 2===t.touches.length&&this.eventType===undefined||"pinch"===this.eventType},t.prototype.detectLinearSwipe=function(t){var e=t.touches;if(e){if(1===e.length&&!this.eventType||"horizontal-swipe"===this.eventType||"vertical-swipe"===this.eventType)return this.getLinearSwipeType(t)}else if(!this.eventType||"horizontal-swipe"===this.eventType||"vertical-swipe"===this.eventType)return this.getLinearSwipeType(t)},t.prototype.getLinearSwipeType=function(t){return"horizontal-swipe"===this.eventType||"vertical-swipe"===this.eventType?this.eventType:Math.abs(this.moveLeft(0,t)-this.startX)<3*Math.abs(this.moveTop(0,t)-this.startY)?"vertical-swipe":"horizontal-swipe"},t.prototype.getElementPosition=function(){return this.element.getBoundingClientRect()},t.prototype.getTouchstartPosition=function(t){this.startX=t.touches[0].clientX-this.elementPosition.left,this.startY=t.touches[0].clientY-this.elementPosition.top},t.prototype.getMousedownPosition=function(t){this.startX=t.clientX-this.elementPosition.left,this.startY=t.clientY-this.elementPosition.top},t.prototype.moveLeft=function(t,e){var i=e.touches;return i?i[t].clientX-this.elementPosition.left:e.clientX-this.elementPosition.left},t.prototype.moveTop=function(t,e){var i=e.touches;return i?i[t].clientY-this.elementPosition.top:e.clientY-this.elementPosition.top},t.prototype.detectTouchScreen=function(){var t=" -webkit- -moz- -o- -ms- ".split(" ");if("ontouchstart"in window)return!0;var e,i=["(",t.join("touch-enabled),("),"heartz",")"].join("");return e=i,window.matchMedia(e).matches},t.prototype.on=function(t,e){t&&(this.handlers[t]=e)},t}(),o=function(){function t(t){var i=this;this.initialPositionX=0,this.newContainerPositionIndex=0,this.preliminarySlideCounter=0,this.slideCounter=0,this.previousSlideCounter=0,this.isContentImages=!0,this.isLazyLoad=!0,this.isContainerLocked=!0,this.alignCells="left",this.initialContainerPosition=0,this.handleTouchstart=function(t){if(i.isTouchstart=!0,!i.isSlideInProgress){var e=t.touches;i.startX=e?e[0].clientX-i.getCarouselElementPosition().left:t.clientX-i.getCarouselElementPosition().left,i.containerInitialPositionX=i.getElementPosition().left-i.getCarouselElementPosition().left,i.isMoveInProgress=!0}},this.handleHorizontalSwipe=function(t){if(!i.isSlideInProgress){var e=t.touches;i.moveX=e?e[0].clientX-i.getCarouselElementPosition().left:t.clientX-i.getCarouselElementPosition().left,i.distanceAbs=i.getDistanceAbs(),i.direction=i.getDirection(),i.moveContainer()}},this.handleTouchend=function(t){!i.isSlideInProgress&&i.isTouchstart&&(i.isMoveInProgress=!1,i.detectSlide()?i.handleSlide():(i.newContainerPositionIndex=0,i.alignContainer()),i.startX=i.moveX=i.distanceAbs=undefined),i.isTouchstart=!1},this.element=t.element,this.properties=t,this.cells=this.element.children,this.visibleWidth=this.properties.visibleWidth||this.element.parentElement.clientWidth,this.setContainerWidth(),this.alignContainer(0)}return Object.defineProperty(t.prototype,"cellLength",{get:function(){return this.images?this.images.length:this.cells.length},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"totalContainerCellsCount",{get:function(){if(this.images){var t=this.visibleCellsCount+2*this.overflowCellsLimit;return t>this.images.length&&(t=this.images.length),t}return this.cellLength},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isFirstCell",{get:function(){return 0===this.slideCounter},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"lastCellIndex",{get:function(){return this.images.length?this.images.length-1:this.cells.length-1},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"overflowCellsLimit",{get:function(){return this.images&&this.isImagesLessCellLimit?Math.floor((this.images.length-this.visibleCellsCount)/2):this.properties.overflowCellsLimit},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isImagesLessCellLimit",{get:function(){return 2*this.properties.overflowCellsLimit+this.visibleCellsCount>this.images.length},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"cellLimit",{get:function(){return this.visibleCellsCount+2*this.overflowCellsLimit},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"images",{get:function(){return this.properties.images},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"margin",{get:function(){return this.properties.margin},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"minSwipeDistance",{get:function(){return this.properties.minSwipeDistance},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"transitionDuration",{get:function(){return this.properties.transitionDuration},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"transitionTimingFunction",{get:function(){return this.properties.transitionTimingFunction},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"fullCellWidth",{get:function(){return this.properties.cellWidth+this.margin},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"visibleCellsCount",{get:function(){return Math.ceil(this.visibleWidth/this.fullCellWidth)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"lapCounter",{get:function(){return Math.floor(this.slideCounter/this.totalContainerCellsCount)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"visibleCellsOverflowContainer",{get:function(){return this.visibleCellsCount*this.fullCellWidth-this.margin>this.visibleWidth},enumerable:!0,configurable:!0}),t.prototype.moveContainer=function(){var t=this.getMovePositionX();this.transformPositionX(t,0)},t.prototype.getMovePositionX=function(){var t=this.getDistance();return this.containerInitialPositionX-t},t.prototype.alignContainer=function(t){void 0===t&&(t=this.transitionDuration);var e=this.getContainerPosition();this.transformPositionX(e,t),this.setInitialContainerPosition(e)},t.prototype.getContainerPosition=function(){var t=this.getContainerPositionCorrection();return this.isContainerPositionCorrection=0!=t,this.initialContainerPosition+this.newContainerPositionIndex*this.fullCellWidth+t},t.prototype.setInitialContainerPosition=function(t){var e=this.getContainerPositionCorrection();this.initialContainerPosition=t-e},t.prototype.getContainerPositionCorrection=function(){var t=0;return this.properties.loop?0:((this.cellLength-this.preliminarySlideCounter<this.visibleCellsCount||this.isSlideLengthLimited)&&(this.visibleWidth<this.totalContainerCellsCount*this.fullCellWidth&&(t=-(this.visibleCellsCount*this.fullCellWidth-this.visibleWidth-this.margin)),t>=-this.margin&&(t=0)),t)},t.prototype.quicklyPositionContainer=function(){var t=this.getContainerPositionCorrection(),e=this.getNewContainerPosition()+t;this.transformPositionX(e,0),this.setInitialContainerPosition(e)},t.prototype.getNewContainerPosition=function(){return this.slideCounter>this.overflowCellsLimit&&"left"===this.alignCells?(this.lineUpCells(),-this.overflowCellsLimit*this.fullCellWidth):this.slideCounter<=this.overflowCellsLimit?(this.previousSlideCounter>this.overflowCellsLimit&&this.lineUpCells(),-this.slideCounter*this.fullCellWidth):void 0},t.prototype.setContainerWidth=function(){var t=this.getContainerWidth();this.element.style.width=t+"px"},t.prototype.getContainerWidth=function(){var t=this.totalContainerCellsCount*this.fullCellWidth,e=this.cellLength*this.fullCellWidth;return e<t&&(t=e),t},t.prototype.getFile=function(t){var e=this.getFileIndex(t),i=this.images[e];return i&&!i.type&&(i.type="image"),{image:this.images[e],imageIndex:e}},t.prototype.getFileIndex=function(t){var e,i=this.getPositionIndex(t),n=(this.totalContainerCellsCount,this.slideCounter);if(!this.isContainerLocked)return n<=this.overflowCellsLimit?t:(e=i+(n-this.overflowCellsLimit),this.images&&this.properties.loop&&(e%=this.images.length),e);"left"===this.alignCells&&(e=n>this.overflowCellsLimit?i+(n-this.overflowCellsLimit):t);return!(e>this.lastCellIndex&&!this.properties.loop)&&e},t.prototype.transformPositionX=function(t,e){void 0===e&&(e=this.transitionDuration),this.element.style.transition="transform "+e+"ms "+this.transitionTimingFunction,this.element.style.transform="translateX("+t+"px)"},t.prototype.detectSlide=function(){return this.distanceAbs>=this.minSwipeDistance},t.prototype.next=function(){this.isSlideInProgress||(this.direction="left",this.handleSlide(1))},t.prototype.prev=function(){this.isSlideInProgress||(this.direction="right",this.handleSlide(1))},t.prototype.select=function(t){this.slideCounter=t,this.quicklyPositionContainer()},t.prototype.handleSlide=function(t){void 0===t&&(t=undefined),this.slideLength=this.getSlideLength(),this.slideLength=t||this.limitSlideLength(this.slideLength),"left"!==this.direction||this.isSlideInProgress||(this.preliminarySlideCounter=this.slideCounter+this.slideLength,this.detectLastSlide(this.slideCounter+this.slideLength)||(this.newContainerPositionIndex=this.newContainerPositionIndex-this.slideLength,this.isSlideInProgress=!0,this.isLazyLoad&&(this.isContainerLocked=this.preliminarySlideCounter>this.overflowCellsLimit,this.detectContainerUnlock()&&(this.isContainerLocked=!1)))),"right"!==this.direction||this.isSlideInProgress||(this.slideCounter-this.slideLength<0&&(this.slideLength=this.slideCounter),this.preliminarySlideCounter=this.slideCounter-this.slideLength,this.isFirstCell||(this.newContainerPositionIndex=this.newContainerPositionIndex+this.slideLength,this.isSlideInProgress=!0,this.isLazyLoad&&(this.preliminarySlideCounter>this.overflowCellsLimit?this.isContainerLocked=!0:this.isContainerLocked=!1,this.detectContainerUnlock()&&(this.isContainerLocked=!1)))),this.alignContainer()},t.prototype.getSlideLength=function(){var t=this.getContainerPositionCorrection(),e=Math.floor((this.distanceAbs+t)/this.fullCellWidth);return this.distanceAbs%this.fullCellWidth>=this.minSwipeDistance&&e++,e},t.prototype.limitSlideLength=function(t){if(1<t)for(var e=0;e<t;e++){var i=this.slideCounter+(t-e);if(!this.detectLastSlide(i)){t-=e,this.isSlideLengthLimited=0<e;break}}return t},t.prototype.detectLastSlide=function(t){return!this.properties.loop&&this.cellLength-t<this.visibleCellsCount},t.prototype.isNextArrowDisabled=function(){return this.visibleCellsOverflowContainer?this.detectLastSlide(this.slideCounter+1)&&this.isContainerPositionCorrection:this.detectLastSlide(this.slideCounter+1)},t.prototype.isPrevArrowDisabled=function(){return 0===this.slideCounter},t.prototype.detectContainerUnlock=function(){return this.cellLength-this.preliminarySlideCounter<this.visibleCellsCount+this.overflowCellsLimit},t.prototype.handleSlideEnd=function(){this.isSlideInProgress&&(this.transformSlideEnd(),this.isSlideInProgress=!1,this.newContainerPositionIndex=0,this.isSlideLengthLimited=undefined)},t.prototype.transformSlideEnd=function(){this.isLazyLoad&&(this.setSlideCounter(),(this.images||!this.images&&this.properties.loop)&&this.quicklyPositionContainer()),this.previousSlideCounter=this.slideCounter},t.prototype.setSlideCounter=function(){"left"===this.direction&&(this.slideCounter=this.slideCounter+this.slideLength),"right"===this.direction&&(this.slideCounter=this.slideCounter-this.slideLength),this.direction=undefined,this.slideLength=0},t.prototype.resetTransition=function(){this.element.style.transition=""},t.prototype.getElementPosition=function(){return this.element.getBoundingClientRect()},t.prototype.getCarouselElementPosition=function(){return this.properties.container.getBoundingClientRect()},t.prototype.getDistance=function(){return this.startX-this.moveX},t.prototype.getDistanceAbs=function(){return Math.abs(this.startX-this.moveX)},t.prototype.getDirection=function(){var t=Math.sign(this.startX-this.moveX);return-1===t?"right":1===t?"left":void 0},t.prototype.lineUpCells=function(){for(var t=this.element.children,e=0;e<t.length;e++){var i=t[e],n=this.getCellPositionX(e);i.style.transform="translateX("+n+"px)",i.style.width=this.properties.cellWidth+"px"}},t.prototype.getCellPositionX=function(t){return this.getPositionIndex(t)*this.fullCellWidth},t.prototype.getPositionIndex=function(t){var e,i=this.slideCounter,n=this.totalContainerCellsCount,o=i-this.overflowCellsLimit;return n<o&&(o%=n),o<0?t:((e=t-o)<0&&(e=n+e),e)},t.prototype.getCenterPositionIndex=function(){return(this.totalContainerCellsCount-1)/2},t.prototype.autoplay=function(){var t=this;this.autoplayId=setInterval(function(){t.next()},this.properties.autoplayInterval)},t.prototype.stopAutoplay=function(){this.autoplayId&&clearInterval(this.autoplayId)},t.prototype.destroy=function(){this.stopAutoplay()},t}(),s=function(){function t(t,e){var s=this;this.elementRef=t,this.ref=e,this.minTimeout=30,this._cellWidth=200,this.events=new i.EventEmitter,this.height=200,this.loop=!1,this.autoplay=!1,this.autoplayInterval=5e3,this.pauseOnHover=!0,this.dots=!1,this.margin=10,this.objectFit="cover",this.minSwipeDistance=50,this.transitionDuration=200,this.transitionTimingFunction="ease",this.counterSeparator=" / ",this.overflowCellsLimit=3,this.listeners="mouse and touch",this.arrows=!0,this.arrowsTheme="light",this.hostClassCarousel=!0,this.handleTouchstart=function(t){t.preventDefault(),s.carousel.handleTouchstart(t),s.isMoving=!0,s.events.emit({type:"touchstart",event:t})},this.handleHorizontalSwipe=function(t){t.preventDefault(),s.carousel.handleHorizontalSwipe(t),s.events.emit({type:"swipe",event:t})},this.handleTouchend=function(t){t.touches;s.carousel.handleTouchend(t),s.isMoving=!1,s.events.emit({type:"touchend",event:t})},this.handleTap=function(t){var e=s.carousel.slideCounter,i=s.carousel.currentCellIndex,n=s.carousel.getFileIndex(e),o=s.carousel.getFile(i);s.events.emit({type:"click",file:o,index:n})}}return Object.defineProperty(t.prototype,"isContainerLocked",{get:function(){return this.carousel.isContainerLocked},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"slideCounter",{get:function(){return this.carousel.slideCounter},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"previousSlideCounter",{get:function(){return this.carousel.previousSlideCounter},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"lapCounter",{get:function(){return this.carousel.lapCounter},enumerable:!0,configurable:!0}),t.prototype.lineUpCells=function(){this.carousel.lineUpCells()},t.prototype.quicklyPositionContainer=function(){this.carousel.quicklyPositionContainer()},Object.defineProperty(t.prototype,"isLandscape",{get:function(){return window.innerWidth>window.innerHeight},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isSafari",{get:function(){var t=navigator.userAgent.toLowerCase();if(-1!==t.indexOf("safari"))return!(-1<t.indexOf("chrome"))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"counter",{get:function(){return(this.loop?this.slideCounter%this.cellLength:this.slideCounter)+1+this.counterSeparator+this.cellLength},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"cellsElement",{get:function(){return this.elementRef.nativeElement.querySelector(".carousel-cells")},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"images",{get:function(){return this._images},set:function(t){this._images=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"cellWidth",{set:function(t){t&&(this._cellWidth=t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isCounter",{get:function(){return this._isCounter&&1<this.cellLength},set:function(t){t&&(this._isCounter=t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"activeDotIndex",{get:function(){return this.slideCounter%this.cellLength},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"cellLimit",{get:function(){if(this.carousel)return this.carousel.cellLimit},enumerable:!0,configurable:!0}),t.prototype.onWindowResize=function(t){this.landscapeMode=this.isLandscape,this.ref.detectChanges(),this.initCarousel(),this.carousel.lineUpCells()},t.prototype.onMousemove=function(t){this.autoplay&&this.pauseOnHover&&this.carousel.stopAutoplay()},t.prototype.onMouseleave=function(t){this.autoplay&&this.pauseOnHover&&this.carousel.autoplay()},t.prototype.ngOnInit=function(){this.isNgContent=0<this.cellsElement.children.length,this.touches=new n({element:this.cellsElement,listeners:this.listeners}),this.touches.on("touchstart",this.handleTouchstart),this.touches.on("horizontal-swipe",this.handleHorizontalSwipe),this.touches.on("touchend",this.handleTouchend),this.touches.on("mousedown",this.handleTouchstart),this.touches.on("mouseup",this.handleTouchend),this.touches.on("tap",this.handleTap),this.initCarousel(),this.setDimensions(),this.autoplay&&this.carousel.autoplay()},t.prototype.ngAfterViewInit=function(){this.cellLength=this.getCellLength(),this.dotsArr=Array(this.cellLength).fill(1),this.ref.detectChanges(),this.carousel.lineUpCells()},t.prototype.ngOnChanges=function(t){(t.width||t.height)&&(this.setDimensions(),this.initCarousel(),this.carousel.lineUpCells())},t.prototype.ngOnDestroy=function(){this.touches.destroy(),this.carousel.destroy()},t.prototype.initCarousel=function(){this.carousel=new o({element:this.elementRef.nativeElement.querySelector(".carousel-cells"),container:this.elementRef.nativeElement,images:this.images,cellWidth:this.getCellWidth(),loop:this.loop,autoplayInterval:this.autoplayInterval,overflowCellsLimit:this.overflowCellsLimit,visibleWidth:this.width,margin:this.margin,minSwipeDistance:this.minSwipeDistance,transitionDuration:this.transitionDuration,transitionTimingFunction:this.transitionTimingFunction,videoProperties:this.videoProperties})},t.prototype.setDimensions=function(){this.hostStyleHeight=this.height+"px",this.hostStyleWidth=this.width+"px"},t.prototype.getFile=function(t){return this.carousel.getFile(t)},t.prototype.handleTransitionendCellContainer=function(t){this.carousel.handleSlideEnd()},t.prototype.toggleVideo=function(t){event.preventDefault(),this.videoProperties.noPlay||(t.paused?(t.play(),this.isVideoPlaying=!0):(t.pause(),this.isVideoPlaying=!1),this.ref.detectChanges())},t.prototype.getCurrentIndex=function(){return this.carousel.slideCounter},t.prototype.getCellWidth=function(){return"100%"===this._cellWidth?this.elementRef.nativeElement.clientWidth:this._cellWidth},t.prototype.next=function(){this.carousel.next(1),this.carousel.stopAutoplay()},t.prototype.prev=function(){this.carousel.prev(1),this.carousel.stopAutoplay()},t.prototype.select=function(t){this.carousel.select(t)},t.prototype.isNextArrowDisabled=function(){return this.carousel.isNextArrowDisabled()},t.prototype.isPrevArrowDisabled=function(){return this.carousel.isPrevArrowDisabled()},t.prototype.getCellLength=function(){return this.images?this.images.length:this.cellsElement.children.length},t.decorators=[{type:i.Component,args:[{selector:"carousel, [carousel]",exportAs:"carousel",template:'<div class="carousel-counter" *ngIf="isCounter">{{counter}}</div>\n\n<div class="carousel-container" [class.carousel-moving]="isMoving">\n\t<div class="carousel-cells" #cells (transitionend)="handleTransitionendCellContainer($event)">\n\t\t<ng-content></ng-content>\n\n\t\t<ng-template ngFor let-image [ngForOf]="images" let-i="index">\n\t\t\t<div class="carousel-cell" \n\t\t\t\t*ngIf="i < cellLimit" \n\t\t\t\t[style.width]="getCellWidth()+\'px\'"\n\t\t\t\t[style.border-radius]="borderRadius+\'px\'">\n\n\t\t\t\t\x3c!-- Image --\x3e\n\t\t\t\t<img \n\t\t\t\t\t*ngIf="getFile(i) && getFile(i)[\'image\']" \n\t\t\t\t\t[src]="getFile(i)[\'image\'][\'path\']"\n\t\t\t\t\t[style.object-fit]="objectFit"\n\t\t\t\t\tdraggable="false" />\n\n\t\t\t\t\x3c!-- Video --\x3e\n\t\t\t\t<ng-template [ngIf]="getFile(i) && getFile(i)[\'type\'] === \'video\'">\n\t\t\t\t\t<div class="carousel-play" (click)="toggleVideo(video)"></div>\n\n\t\t\t\t\t<video #video\n\t\t\t\t\t\t[loop]="videoProperties.loop"\n\t\t\t\t\t\t[muted]="videoProperties.muted"\n\t\t\t\t\t\t[controls]="isSafari"\n\t\t\t\t\t\t[style.object-fit]="objectFit"\n\t\t\t\t\t\t[style.border-radius]="borderRadius+\'px\'">\n\t\t\t\t\t\t\n\t\t\t\t\t\t<source [src]="getFile(i)[\'path\']" type="video/mp4">\n\t\t\t\t\t</video>\n\t\t\t\t</ng-template>\n\t\t\t</div>\n\t\t</ng-template>\n\t</div>\n\n\t<div class="carousel-dots" *ngIf="dots">\n\t\t<div class="carousel-dot" [class.carousel-dot-active]="i === activeDotIndex" *ngFor="let dot of dotsArr; index as i"></div>\n\t</div>\n</div>\n\n<div class="carousel-arrows" \n\t[class.carousel-arrows-outside]="arrowsOutside" \n\t[class.carousel-dark-arrows]="arrowsTheme === \'dark\'"\n\t*ngIf="arrows">\n\t\n\t<div class="carousel-arrow carousel-arrow-prev" [class.carousel-arrow-disabled]="isPrevArrowDisabled()" (click)="prev()"></div>\n\t<div class="carousel-arrow carousel-arrow-next" [class.carousel-arrow-disabled]="isNextArrowDisabled()" (click)="next()"></div>\n</div>',styles:[":host{position:relative;display:block;top:0;left:0;width:100%;height:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:10000;-webkit-transform-origin:top left;transform-origin:top left;box-sizing:border-box}:host .carousel-container{overflow:hidden;width:100%;height:100%;cursor:-webkit-grab;cursor:grab}:host .carousel-container.carousel-moving{cursor:-webkit-grabbing;cursor:grabbing}:host .carousel-counter{text-align:right;position:absolute;z-index:30;transition:opacity .2s;top:8px;right:24px;border-radius:13px;background-color:rgba(23,37,68,.3);font-size:11px;color:#fff;padding:5px 7px;line-height:initial}:host ::ng-deep .carousel-cells{transition:transform .2s;transition:transform .2s,-webkit-transform .2s;width:100%;height:100%;display:block}:host ::ng-deep .carousel-cells .carousel-cell.swiper-prev-image{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}:host ::ng-deep .carousel-cells .carousel-cell.swiper-next-image{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}:host ::ng-deep .carousel-cells .carousel-cell{width:100%;height:100%;text-align:center;position:absolute;display:flex;align-items:center;justify-content:center;overflow:hidden}:host ::ng-deep .carousel-cells .carousel-cell img,:host ::ng-deep .carousel-cells .carousel-cell video{width:100%;height:100%;position:relative;-o-object-fit:contain;object-fit:contain}:host ::ng-deep .carousel-cells .carousel-cell img.swiper-hide{display:none}:host ::ng-deep .carousel-cells .carousel-cell .carousel-play{position:absolute;top:0;left:0;bottom:0;right:0;z-index:1}:host .carousel-arrow{width:40px;height:40px;background-color:#fff;background-repeat:no-repeat;background-size:31px;background-position:center;border-radius:100px;position:absolute;top:50%;margin-top:-20px;z-index:10;cursor:pointer;box-shadow:0 0 5px rgba(0,0,0,.15)}:host .carousel-arrow-prev{left:10px;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0Ij48cGF0aCBkPSJNMTUuNDEgMTYuNTlMMTAuODMgMTJsNC41OC00LjU5TDE0IDZsLTYgNiA2IDYgMS40MS0xLjQxeiIvPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMFYweiIgZmlsbD0ibm9uZSIvPjwvc3ZnPg==)}:host .carousel-arrow-next{right:10px;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0Ij48cGF0aCBkPSJNOC41OSAxNi41OUwxMy4xNyAxMiA4LjU5IDcuNDEgMTAgNmw2IDYtNiA2LTEuNDEtMS40MXoiLz48cGF0aCBkPSJNMCAwaDI0djI0SDBWMHoiIGZpbGw9Im5vbmUiLz48L3N2Zz4=)}:host .carousel-arrows-outside .carousel-arrow-prev{left:-60px}:host .carousel-arrows-outside .carousel-arrow-next{right:-60px}:host .carousel-dark-arrows .carousel-arrow{-webkit-filter:invert(1);filter:invert(1)}:host .carousel-arrow-disabled{cursor:default;opacity:.5}:host .carousel-dots{position:absolute;left:0;right:0;bottom:0;z-index:10;text-align:center}:host .carousel-dots .carousel-dot{display:inline-block;border:2px solid #fff;border-radius:100px;margin:4px;width:8px;height:8px}:host .carousel-dots .carousel-dot-active{background-color:#fff}"]}]}],t.ctorParameters=function(){return[{type:i.ElementRef},{type:i.ChangeDetectorRef}]},t.propDecorators={images:[{type:i.Input}],events:[{type:i.Output}],height:[{type:i.Input}],width:[{type:i.Input}],loop:[{type:i.Input}],autoplay:[{type:i.Input}],autoplayInterval:[{type:i.Input}],pauseOnHover:[{type:i.Input}],dots:[{type:i.Input}],borderRadius:[{type:i.Input}],margin:[{type:i.Input}],objectFit:[{type:i.Input}],minSwipeDistance:[{type:i.Input}],transitionDuration:[{type:i.Input}],transitionTimingFunction:[{type:i.Input}],videoProperties:[{type:i.Input}],counterSeparator:[{type:i.Input}],overflowCellsLimit:[{type:i.Input}],listeners:[{type:i.Input}],cellWidth:[{type:i.Input,args:["cellWidth"]}],isCounter:[{type:i.Input,args:["counter"]}],arrows:[{type:i.Input}],arrowsOutside:[{type:i.Input}],arrowsTheme:[{type:i.Input}],hostClassCarousel:[{type:i.HostBinding,args:["class.carousel"]}],hostStyleHeight:[{type:i.HostBinding,args:["style.height"]}],hostStyleWidth:[{type:i.HostBinding,args:["style.width"]}],onWindowResize:[{type:i.HostListener,args:["window:resize",["$event"]]}],onMousemove:[{type:i.HostListener,args:["mousemove",["$event"]]}],onMouseleave:[{type:i.HostListener,args:["mouseleave",["$event"]]}]},t}(),r=function(){function t(){}return t.decorators=[{type:i.NgModule,args:[{declarations:[s],imports:[e.CommonModule],exports:[s],providers:[],bootstrap:[],entryComponents:[s]}]}],t}();t.IvyCarouselModule=r,t.ɵa=s,Object.defineProperty(t,"__esModule",{value:!0})});
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@angular/common")):"function"==typeof define&&define.amd?define("angular-responsive-carousel",["exports","@angular/core","@angular/common"],e):e((t=t||self)["angular-responsive-carousel"]={},t.ng.core,t.ng.common)}(this,(function(t,e,i){"use strict";var n=function(){function t(t){var e=this;this.eventType=void 0,this.handlers={},this.startX=0,this.startY=0,this.lastTap=0,this.doubleTapMinTimeout=300,this.tapMinTimeout=200,this.touchstartTime=0,this.i=0,this.isMousedown=!1,this.touchListeners={touchstart:"handleTouchstart",touchmove:"handleTouchmove",touchend:"handleTouchend"},this.mouseListeners={mousedown:"handleMousedown",mousemove:"handleMousemove",mouseup:"handleMouseup",wheel:"handleWheel"},this.otherListeners={resize:"handleResize"},this.handleTouchstart=function(t){e.elementPosition=e.getElementPosition(),e.touchstartTime=(new Date).getTime(),void 0===e.eventType&&e.getTouchstartPosition(t),e.runHandler("touchstart",t)},this.handleTouchmove=function(t){var i=t.touches;switch(e.detectPan(i)&&e.runHandler("pan",t),e.detectPinch(t)&&e.runHandler("pinch",t),e.detectLinearSwipe(t)){case"horizontal-swipe":t.swipeType="horizontal-swipe",e.runHandler("horizontal-swipe",t);break;case"vertical-swipe":t.swipeType="vertical-swipe",e.runHandler("vertical-swipe",t)}(e.detectLinearSwipe(t)||"horizontal-swipe"===e.eventType||"vertical-swipe"===e.eventType)&&e.handleLinearSwipe(t)},this.handleTouchend=function(t){var i=t.touches;e.detectDoubleTap()&&e.runHandler("double-tap",t),e.detectTap(),e.runHandler("touchend",t),e.eventType="touchend",i&&0===i.length&&(e.eventType=void 0,e.i=0)},this.handleMousedown=function(t){e.isMousedown=!0,e.elementPosition=e.getElementPosition(),e.touchstartTime=(new Date).getTime(),void 0===e.eventType&&e.getMousedownPosition(t),e.runHandler("mousedown",t)},this.handleMousemove=function(t){if(e.isMousedown){switch(e.runHandler("pan",t),e.detectLinearSwipe(t)){case"horizontal-swipe":t.swipeType="horizontal-swipe",e.runHandler("horizontal-swipe",t);break;case"vertical-swipe":t.swipeType="vertical-swipe",e.runHandler("vertical-swipe",t)}(e.detectLinearSwipe(t)||"horizontal-swipe"===e.eventType||"vertical-swipe"===e.eventType)&&e.handleLinearSwipe(t)}},this.handleMouseup=function(t){e.detectTap(),e.isMousedown=!1,e.runHandler("mouseup",t),e.eventType=void 0,e.i=0},this.handleWheel=function(t){e.runHandler("wheel",t)},this.handleResize=function(t){e.runHandler("resize",t)},this.properties=t,this.element=this.properties.element,this.elementPosition=this.getElementPosition(),this.toggleEventListeners("addEventListener")}return t.prototype.destroy=function(){this.toggleEventListeners("removeEventListener")},t.prototype.toggleEventListeners=function(t){var e;for(var i in e="mouse and touch"===this.properties.listeners?Object.assign(this.touchListeners,this.mouseListeners):this.detectTouchScreen()?this.touchListeners:this.mouseListeners,this.properties.resize&&(e=Object.assign(e,this.otherListeners)),e){var n=e[i];"resize"===i?("addEventListener"===t&&window.addEventListener(i,this[n],!1),"removeEventListener"===t&&window.removeEventListener(i,this[n],!1)):"mouseup"===i||"mousemove"===i?("addEventListener"===t&&document.addEventListener(i,this[n],!1),"removeEventListener"===t&&document.removeEventListener(i,this[n],!1)):("addEventListener"===t&&this.element.addEventListener(i,this[n],!1),"removeEventListener"===t&&this.element.removeEventListener(i,this[n],!1))}},t.prototype.handleLinearSwipe=function(t){this.i++,this.i>3&&(this.eventType=this.getLinearSwipeType(t)),"horizontal-swipe"===this.eventType&&this.runHandler("horizontal-swipe",t),"vertical-swipe"===this.eventType&&this.runHandler("vertical-swipe",t)},t.prototype.runHandler=function(t,e){this.handlers[t]&&this.handlers[t](e)},t.prototype.detectPan=function(t){return 1===t.length&&!this.eventType||"pan"===this.eventType},t.prototype.detectDoubleTap=function(){var t=this;if(null==this.eventType){var e=(new Date).getTime(),i=e-this.lastTap;if(clearTimeout(this.doubleTapTimeout),i<this.doubleTapMinTimeout&&i>0)return!0;this.doubleTapTimeout=setTimeout((function(){clearTimeout(t.doubleTapTimeout)}),this.doubleTapMinTimeout),this.lastTap=e}},t.prototype.detectTap=function(){if(null==this.eventType){var t=(new Date).getTime()-this.touchstartTime;t>0&&(t<this.tapMinTimeout?this.runHandler("tap",event):this.runHandler("longtap",event))}},t.prototype.detectPinch=function(t){return 2===t.touches.length&&void 0===this.eventType||"pinch"===this.eventType},t.prototype.detectLinearSwipe=function(t){var e=t.touches;if(e){if(1===e.length&&!this.eventType||"horizontal-swipe"===this.eventType||"vertical-swipe"===this.eventType)return this.getLinearSwipeType(t)}else if(!this.eventType||"horizontal-swipe"===this.eventType||"vertical-swipe"===this.eventType)return this.getLinearSwipeType(t)},t.prototype.getLinearSwipeType=function(t){if("horizontal-swipe"!==this.eventType&&"vertical-swipe"!==this.eventType){var e=Math.abs(this.moveLeft(0,t)-this.startX);return 3*Math.abs(this.moveTop(0,t)-this.startY)>e?"vertical-swipe":"horizontal-swipe"}return this.eventType},t.prototype.getElementPosition=function(){return this.element.getBoundingClientRect()},t.prototype.getTouchstartPosition=function(t){this.startX=t.touches[0].clientX-this.elementPosition.left,this.startY=t.touches[0].clientY-this.elementPosition.top},t.prototype.getMousedownPosition=function(t){this.startX=t.clientX-this.elementPosition.left,this.startY=t.clientY-this.elementPosition.top},t.prototype.moveLeft=function(t,e){var i=e.touches;return i?i[t].clientX-this.elementPosition.left:e.clientX-this.elementPosition.left},t.prototype.moveTop=function(t,e){var i=e.touches;return i?i[t].clientY-this.elementPosition.top:e.clientY-this.elementPosition.top},t.prototype.detectTouchScreen=function(){var t=" -webkit- -moz- -o- -ms- ".split(" ");return"ontouchstart"in window||function(t){return window.matchMedia(t).matches}(["(",t.join("touch-enabled),("),"heartz",")"].join(""))},t.prototype.on=function(t,e){t&&(this.handlers[t]=e)},t}(),o=function(){function t(t){var e=this;this.initialPositionX=0,this.newContainerPositionIndex=0,this.preliminarySlideCounter=0,this.slideCounter=0,this.previousSlideCounter=0,this.isContentImages=!0,this.isLazyLoad=!0,this.isContainerLocked=!0,this.alignCells="left",this.initialContainerPosition=0,this.handleTouchstart=function(t){if(e.isTouchstart=!0,!e.isSlideInProgress){var i=t.touches;e.startX=i?i[0].clientX-e.getCarouselElementPosition().left:t.clientX-e.getCarouselElementPosition().left,e.containerInitialPositionX=e.getElementPosition().left-e.getCarouselElementPosition().left,e.isMoveInProgress=!0}},this.handleHorizontalSwipe=function(t){if(!e.isSlideInProgress){var i=t.touches;e.moveX=i?i[0].clientX-e.getCarouselElementPosition().left:t.clientX-e.getCarouselElementPosition().left,e.distanceAbs=e.getDistanceAbs(),e.direction=e.getDirection(),e.moveContainer()}},this.handleTouchend=function(t){!e.isSlideInProgress&&e.isTouchstart?(e.isMoveInProgress=!1,e.detectSlide()?e.handleSlide():(e.newContainerPositionIndex=0,e.alignContainer()),e.startX=e.moveX=e.distanceAbs=void 0,e.isTouchstart=!1):e.isTouchstart=!1},this.element=t.element,this.properties=t,this.cells=this.element.children,this.visibleWidth=this.properties.visibleWidth||this.element.parentElement.clientWidth,this.setContainerWidth(),this.alignContainer(0)}return Object.defineProperty(t.prototype,"cellLength",{get:function(){return this.images?this.images.length:this.cells.length},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"totalContainerCellsCount",{get:function(){if(this.images){var t=this.visibleCellsCount+2*this.overflowCellsLimit;return t>this.images.length&&(t=this.images.length),t}return this.cellLength},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"isFirstCell",{get:function(){return 0===this.slideCounter},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"lastCellIndex",{get:function(){return this.images.length?this.images.length-1:this.cells.length-1},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"overflowCellsLimit",{get:function(){return this.images&&this.isImagesLessCellLimit?Math.floor((this.images.length-this.visibleCellsCount)/2):this.properties.overflowCellsLimit},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"isImagesLessCellLimit",{get:function(){return 2*this.properties.overflowCellsLimit+this.visibleCellsCount>this.images.length},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"cellLimit",{get:function(){return this.visibleCellsCount+2*this.overflowCellsLimit},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"images",{get:function(){return this.properties.images},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"margin",{get:function(){return this.properties.margin},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"minSwipeDistance",{get:function(){return this.properties.minSwipeDistance},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"transitionDuration",{get:function(){return this.properties.transitionDuration},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"transitionTimingFunction",{get:function(){return this.properties.transitionTimingFunction},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"fullCellWidth",{get:function(){return this.properties.cellWidth+this.margin},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"visibleCellsCount",{get:function(){return Math.ceil(this.visibleWidth/this.fullCellWidth)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"lapCounter",{get:function(){return Math.floor(this.slideCounter/this.totalContainerCellsCount)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"visibleCellsOverflowContainer",{get:function(){return this.visibleCellsCount*this.fullCellWidth-this.margin>this.visibleWidth},enumerable:!1,configurable:!0}),t.prototype.moveContainer=function(){var t=this.getMovePositionX();this.transformPositionX(t,0)},t.prototype.getMovePositionX=function(){var t=this.getDistance();return this.containerInitialPositionX-t},t.prototype.alignContainer=function(t){void 0===t&&(t=this.transitionDuration);var e=this.getContainerPosition();this.transformPositionX(e,t),this.setInitialContainerPosition(e)},t.prototype.getContainerPosition=function(){var t=this.getContainerPositionCorrection();return this.isContainerPositionCorrection=0!=t,this.initialContainerPosition+this.newContainerPositionIndex*this.fullCellWidth+t},t.prototype.setInitialContainerPosition=function(t){var e=this.getContainerPositionCorrection();this.initialContainerPosition=t-e},t.prototype.getContainerPositionCorrection=function(){var t=0;return this.properties.loop?0:((this.cellLength-this.preliminarySlideCounter<this.visibleCellsCount||this.isSlideLengthLimited)&&(this.visibleWidth<this.totalContainerCellsCount*this.fullCellWidth&&(t=-(this.visibleCellsCount*this.fullCellWidth-this.visibleWidth-this.margin)),t>=-this.margin&&(t=0)),t)},t.prototype.quicklyPositionContainer=function(){var t=this.getContainerPositionCorrection(),e=this.getNewContainerPosition()+t;this.transformPositionX(e,0),this.setInitialContainerPosition(e)},t.prototype.getNewContainerPosition=function(){return this.slideCounter>this.overflowCellsLimit&&"left"===this.alignCells?(this.lineUpCells(),-this.overflowCellsLimit*this.fullCellWidth):this.slideCounter<=this.overflowCellsLimit?(this.previousSlideCounter>this.overflowCellsLimit&&this.lineUpCells(),-this.slideCounter*this.fullCellWidth):void 0},t.prototype.setContainerWidth=function(){var t=this.getContainerWidth();this.element.style.width=t+"px"},t.prototype.getContainerWidth=function(){var t=this.totalContainerCellsCount*this.fullCellWidth,e=this.cellLength*this.fullCellWidth;return e<t&&(t=e),t},t.prototype.getFile=function(t){var e=this.getFileIndex(t),i=this.images[e];return i&&!i.type&&(i.type="image"),{image:this.images[e],imageIndex:e}},t.prototype.getFileIndex=function(t){var e,i=this.getPositionIndex(t),n=(this.totalContainerCellsCount,this.slideCounter);if(!this.isContainerLocked)return n<=this.overflowCellsLimit?t:(e=i+(n-this.overflowCellsLimit),this.images&&this.properties.loop&&(e%=this.images.length),e);"left"===this.alignCells&&(e=n>this.overflowCellsLimit?i+(n-this.overflowCellsLimit):t);return!(e>this.lastCellIndex&&!this.properties.loop)&&e},t.prototype.transformPositionX=function(t,e){void 0===e&&(e=this.transitionDuration),this.element.style.transition="transform "+e+"ms "+this.transitionTimingFunction,this.element.style.transform="translateX("+t+"px)"},t.prototype.detectSlide=function(){return this.distanceAbs>=this.minSwipeDistance},t.prototype.next=function(){this.isSlideInProgress||(this.direction="left",this.handleSlide(1))},t.prototype.prev=function(){this.isSlideInProgress||(this.direction="right",this.handleSlide(1))},t.prototype.select=function(t){this.slideCounter=t,this.quicklyPositionContainer()},t.prototype.handleSlide=function(t){void 0===t&&(t=void 0),this.slideLength=this.getSlideLength(),this.slideLength=t||this.limitSlideLength(this.slideLength),"left"!==this.direction||this.isSlideInProgress||(this.preliminarySlideCounter=this.slideCounter+this.slideLength,this.detectLastSlide(this.slideCounter+this.slideLength)||(this.newContainerPositionIndex=this.newContainerPositionIndex-this.slideLength,this.isSlideInProgress=!0,this.isLazyLoad&&(this.isContainerLocked=this.preliminarySlideCounter>this.overflowCellsLimit,this.detectContainerUnlock()&&(this.isContainerLocked=!1)))),"right"!==this.direction||this.isSlideInProgress||(this.slideCounter-this.slideLength<0&&(this.slideLength=this.slideCounter),this.preliminarySlideCounter=this.slideCounter-this.slideLength,this.isFirstCell||(this.newContainerPositionIndex=this.newContainerPositionIndex+this.slideLength,this.isSlideInProgress=!0,this.isLazyLoad&&(this.preliminarySlideCounter>this.overflowCellsLimit?this.isContainerLocked=!0:this.isContainerLocked=!1,this.detectContainerUnlock()&&(this.isContainerLocked=!1)))),this.alignContainer()},t.prototype.getSlideLength=function(){var t=this.getContainerPositionCorrection(),e=Math.floor((this.distanceAbs+t)/this.fullCellWidth);return this.distanceAbs%this.fullCellWidth>=this.minSwipeDistance&&e++,e},t.prototype.limitSlideLength=function(t){if(t>1)for(var e=0;e<t;e++){var i=this.slideCounter+(t-e);if(!this.detectLastSlide(i)){t-=e,this.isSlideLengthLimited=e>0;break}}return t},t.prototype.detectLastSlide=function(t){return!this.properties.loop&&this.cellLength-t<this.visibleCellsCount},t.prototype.isNextArrowDisabled=function(){return this.visibleCellsOverflowContainer?this.detectLastSlide(this.slideCounter+1)&&this.isContainerPositionCorrection:this.detectLastSlide(this.slideCounter+1)},t.prototype.isPrevArrowDisabled=function(){return 0===this.slideCounter},t.prototype.detectContainerUnlock=function(){return this.cellLength-this.preliminarySlideCounter<this.visibleCellsCount+this.overflowCellsLimit},t.prototype.handleSlideEnd=function(){this.isSlideInProgress&&(this.transformSlideEnd(),this.isSlideInProgress=!1,this.newContainerPositionIndex=0,this.isSlideLengthLimited=void 0)},t.prototype.transformSlideEnd=function(){this.isLazyLoad&&(this.setSlideCounter(),(this.images||!this.images&&this.properties.loop)&&this.quicklyPositionContainer()),this.previousSlideCounter=this.slideCounter},t.prototype.setSlideCounter=function(){"left"===this.direction&&(this.slideCounter=this.slideCounter+this.slideLength),"right"===this.direction&&(this.slideCounter=this.slideCounter-this.slideLength),this.direction=void 0,this.slideLength=0},t.prototype.resetTransition=function(){this.element.style.transition=""},t.prototype.getElementPosition=function(){return this.element.getBoundingClientRect()},t.prototype.getCarouselElementPosition=function(){return this.properties.container.getBoundingClientRect()},t.prototype.getDistance=function(){return this.startX-this.moveX},t.prototype.getDistanceAbs=function(){return Math.abs(this.startX-this.moveX)},t.prototype.getDirection=function(){var t=Math.sign(this.startX-this.moveX);return-1===t?"right":1===t?"left":void 0},t.prototype.lineUpCells=function(){for(var t=this.element.children,e=0;e<t.length;e++){var i=t[e],n=this.getCellPositionX(e);i.style.transform="translateX("+n+"px)",i.style.width=this.properties.cellWidth+"px"}},t.prototype.getCellPositionX=function(t){return this.getPositionIndex(t)*this.fullCellWidth},t.prototype.getPositionIndex=function(t){var e,i=this.slideCounter,n=this.totalContainerCellsCount,o=i-this.overflowCellsLimit;return o>n&&(o%=n),o<0?t:((e=t-o)<0&&(e=n+e),e)},t.prototype.getCenterPositionIndex=function(){return(this.totalContainerCellsCount-1)/2},t.prototype.autoplay=function(){var t=this;this.autoplayId=setInterval((function(){t.next()}),this.properties.autoplayInterval)},t.prototype.stopAutoplay=function(){this.autoplayId&&clearInterval(this.autoplayId)},t.prototype.destroy=function(){this.stopAutoplay()},t}(),s=function(){function t(t,i){var n=this;this.elementRef=t,this.ref=i,this.minTimeout=30,this._cellWidth=200,this.events=new e.EventEmitter,this.height=200,this.loop=!1,this.autoplay=!1,this.autoplayInterval=5e3,this.pauseOnHover=!0,this.dots=!1,this.margin=10,this.objectFit="cover",this.minSwipeDistance=50,this.transitionDuration=200,this.transitionTimingFunction="ease",this.counterSeparator=" / ",this.overflowCellsLimit=3,this.listeners="mouse and touch",this.arrows=!0,this.arrowsTheme="light",this.hostClassCarousel=!0,this.handleTouchstart=function(t){t.preventDefault(),n.carousel.handleTouchstart(t),n.isMoving=!0,n.events.emit({type:"touchstart",event:t})},this.handleHorizontalSwipe=function(t){t.preventDefault(),n.carousel.handleHorizontalSwipe(t),n.events.emit({type:"swipe",event:t})},this.handleTouchend=function(t){t.touches;n.carousel.handleTouchend(t),n.isMoving=!1,n.events.emit({type:"touchend",event:t})},this.handleTap=function(t){var e=n.carousel.slideCounter,i=n.carousel.currentCellIndex,o=n.carousel.getFileIndex(e),s=n.carousel.getFile(i);n.events.emit({type:"click",file:s,index:o})}}return Object.defineProperty(t.prototype,"isContainerLocked",{get:function(){return this.carousel.isContainerLocked},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"slideCounter",{get:function(){return this.carousel.slideCounter},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"previousSlideCounter",{get:function(){return this.carousel.previousSlideCounter},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"lapCounter",{get:function(){return this.carousel.lapCounter},enumerable:!1,configurable:!0}),t.prototype.lineUpCells=function(){this.carousel.lineUpCells()},t.prototype.quicklyPositionContainer=function(){this.carousel.quicklyPositionContainer()},Object.defineProperty(t.prototype,"isLandscape",{get:function(){return window.innerWidth>window.innerHeight},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"isSafari",{get:function(){var t=navigator.userAgent.toLowerCase();if(-1!==t.indexOf("safari"))return!(t.indexOf("chrome")>-1)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"counter",{get:function(){return(this.loop?this.slideCounter%this.cellLength:this.slideCounter)+1+this.counterSeparator+this.cellLength},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"cellsElement",{get:function(){return this.elementRef.nativeElement.querySelector(".carousel-cells")},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"images",{get:function(){return this._images},set:function(t){this._images=t},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"cellWidth",{set:function(t){t&&(this._cellWidth=t)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"isCounter",{get:function(){return this._isCounter&&this.cellLength>1},set:function(t){t&&(this._isCounter=t)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"activeDotIndex",{get:function(){return this.slideCounter%this.cellLength},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"cellLimit",{get:function(){if(this.carousel)return this.carousel.cellLimit},enumerable:!1,configurable:!0}),t.prototype.onWindowResize=function(t){this.landscapeMode=this.isLandscape,this.ref.detectChanges(),this.initCarousel(),this.carousel.lineUpCells()},t.prototype.onMousemove=function(t){this.autoplay&&this.pauseOnHover&&this.carousel.stopAutoplay()},t.prototype.onMouseleave=function(t){this.autoplay&&this.pauseOnHover&&this.carousel.autoplay()},t.prototype.ngOnInit=function(){this.isNgContent=this.cellsElement.children.length>0,this.touches=new n({element:this.cellsElement,listeners:this.listeners}),this.touches.on("touchstart",this.handleTouchstart),this.touches.on("horizontal-swipe",this.handleHorizontalSwipe),this.touches.on("touchend",this.handleTouchend),this.touches.on("mousedown",this.handleTouchstart),this.touches.on("mouseup",this.handleTouchend),this.touches.on("tap",this.handleTap),this.initCarousel(),this.setDimensions(),this.autoplay&&this.carousel.autoplay()},t.prototype.ngAfterViewInit=function(){this.cellLength=this.getCellLength(),this.dotsArr=Array(this.cellLength).fill(1),this.ref.detectChanges(),this.carousel.lineUpCells()},t.prototype.ngOnChanges=function(t){(t.width||t.height)&&(this.setDimensions(),this.initCarousel(),this.carousel.lineUpCells())},t.prototype.ngOnDestroy=function(){this.touches.destroy(),this.carousel.destroy()},t.prototype.initCarousel=function(){this.carousel=new o({element:this.elementRef.nativeElement.querySelector(".carousel-cells"),container:this.elementRef.nativeElement,images:this.images,cellWidth:this.getCellWidth(),loop:this.loop,autoplayInterval:this.autoplayInterval,overflowCellsLimit:this.overflowCellsLimit,visibleWidth:this.width,margin:this.margin,minSwipeDistance:this.minSwipeDistance,transitionDuration:this.transitionDuration,transitionTimingFunction:this.transitionTimingFunction,videoProperties:this.videoProperties})},t.prototype.setDimensions=function(){this.hostStyleHeight=this.height+"px",this.hostStyleWidth=this.width+"px"},t.prototype.getFile=function(t){return this.carousel.getFile(t)},t.prototype.handleTransitionendCellContainer=function(t){this.carousel.handleSlideEnd()},t.prototype.toggleVideo=function(t){event.preventDefault(),this.videoProperties.noPlay||(t.paused?(t.play(),this.isVideoPlaying=!0):(t.pause(),this.isVideoPlaying=!1),this.ref.detectChanges())},t.prototype.getCurrentIndex=function(){return this.carousel.slideCounter},t.prototype.getCellWidth=function(){return"100%"===this._cellWidth?this.elementRef.nativeElement.clientWidth:this._cellWidth},t.prototype.next=function(){this.carousel.next(1),this.carousel.stopAutoplay()},t.prototype.prev=function(){this.carousel.prev(1),this.carousel.stopAutoplay()},t.prototype.select=function(t){this.carousel.select(t)},t.prototype.isNextArrowDisabled=function(){return this.carousel.isNextArrowDisabled()},t.prototype.isPrevArrowDisabled=function(){return this.carousel.isPrevArrowDisabled()},t.prototype.getCellLength=function(){return this.images?this.images.length:this.cellsElement.children.length},t}();s.decorators=[{type:e.Component,args:[{selector:"carousel, [carousel]",exportAs:"carousel",template:'<div class="carousel-counter" *ngIf="isCounter">{{counter}}</div>\n\n<div class="carousel-container" [class.carousel-moving]="isMoving">\n\t<div class="carousel-cells" #cells (transitionend)="handleTransitionendCellContainer($event)">\n\t\t<ng-content></ng-content>\n\n\t\t<ng-template ngFor let-image [ngForOf]="images" let-i="index">\n\t\t\t<div class="carousel-cell" \n\t\t\t\t*ngIf="i < cellLimit" \n\t\t\t\t[style.width]="getCellWidth()+\'px\'"\n\t\t\t\t[style.border-radius]="borderRadius+\'px\'">\n\n\t\t\t\t\x3c!-- Image --\x3e\n\t\t\t\t<img \n\t\t\t\t\t*ngIf="getFile(i) && getFile(i)[\'image\']" \n\t\t\t\t\t[src]="getFile(i)[\'image\'][\'path\']"\n\t\t\t\t\t[style.object-fit]="objectFit"\n\t\t\t\t\tdraggable="false" />\n\n\t\t\t\t\x3c!-- Video --\x3e\n\t\t\t\t<ng-template [ngIf]="getFile(i) && getFile(i)[\'type\'] === \'video\'">\n\t\t\t\t\t<div class="carousel-play" (click)="toggleVideo(video)"></div>\n\n\t\t\t\t\t<video #video\n\t\t\t\t\t\t[loop]="videoProperties.loop"\n\t\t\t\t\t\t[muted]="videoProperties.muted"\n\t\t\t\t\t\t[controls]="isSafari"\n\t\t\t\t\t\t[style.object-fit]="objectFit"\n\t\t\t\t\t\t[style.border-radius]="borderRadius+\'px\'">\n\t\t\t\t\t\t\n\t\t\t\t\t\t<source [src]="getFile(i)[\'path\']" type="video/mp4">\n\t\t\t\t\t</video>\n\t\t\t\t</ng-template>\n\t\t\t</div>\n\t\t</ng-template>\n\t</div>\n\n\t<div class="carousel-dots" *ngIf="dots">\n\t\t<div class="carousel-dot" [class.carousel-dot-active]="i === activeDotIndex" *ngFor="let dot of dotsArr; index as i"></div>\n\t</div>\n</div>\n\n<div class="carousel-arrows" \n\t[class.carousel-arrows-outside]="arrowsOutside" \n\t[class.carousel-dark-arrows]="arrowsTheme === \'dark\'"\n\t*ngIf="arrows">\n\t\n\t<div class="carousel-arrow carousel-arrow-prev" [class.carousel-arrow-disabled]="isPrevArrowDisabled()" (click)="prev()"></div>\n\t<div class="carousel-arrow carousel-arrow-next" [class.carousel-arrow-disabled]="isNextArrowDisabled()" (click)="next()"></div>\n</div>',styles:[":host{-moz-user-select:none;-webkit-user-select:none;box-sizing:border-box;display:block;height:100%;left:0;position:relative;top:0;transform-origin:top left;user-select:none;width:100%;z-index:10000}:host .carousel-container{cursor:grab;height:100%;overflow:hidden;width:100%}:host .carousel-container.carousel-moving{cursor:grabbing}:host .carousel-counter{background-color:rgba(23,37,68,.3);border-radius:13px;color:#fff;font-size:11px;line-height:normal;padding:5px 7px;position:absolute;right:24px;text-align:right;top:8px;transition:opacity .2s;z-index:30}:host ::ng-deep .carousel-cells{display:block;height:100%;transition:transform .2s;width:100%}:host ::ng-deep .carousel-cells .carousel-cell.swiper-prev-image{transform:translate3d(-100%,0,0)}:host ::ng-deep .carousel-cells .carousel-cell.swiper-next-image{transform:translate3d(100%,0,0)}:host ::ng-deep .carousel-cells .carousel-cell{align-items:center;display:flex;height:100%;justify-content:center;overflow:hidden;position:absolute;text-align:center;width:100%}:host ::ng-deep .carousel-cells .carousel-cell img,:host ::ng-deep .carousel-cells .carousel-cell video{height:100%;object-fit:contain;position:relative;width:100%}:host ::ng-deep .carousel-cells .carousel-cell img.swiper-hide{display:none}:host ::ng-deep .carousel-cells .carousel-cell .carousel-play{bottom:0;left:0;position:absolute;right:0;top:0;z-index:1}:host .carousel-arrow{background-color:#fff;background-position:50%;background-repeat:no-repeat;background-size:31px;border-radius:100px;box-shadow:0 0 5px rgba(0,0,0,.15);cursor:pointer;height:40px;margin-top:-20px;position:absolute;top:50%;width:40px;z-index:10}:host .carousel-arrow-prev{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0Ij48cGF0aCBkPSJNMTUuNDEgMTYuNTlMMTAuODMgMTJsNC41OC00LjU5TDE0IDZsLTYgNiA2IDYgMS40MS0xLjQxeiIvPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMFYweiIgZmlsbD0ibm9uZSIvPjwvc3ZnPg==);left:10px}:host .carousel-arrow-next{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0Ij48cGF0aCBkPSJNOC41OSAxNi41OUwxMy4xNyAxMiA4LjU5IDcuNDEgMTAgNmw2IDYtNiA2LTEuNDEtMS40MXoiLz48cGF0aCBkPSJNMCAwaDI0djI0SDBWMHoiIGZpbGw9Im5vbmUiLz48L3N2Zz4=);right:10px}:host .carousel-arrows-outside .carousel-arrow-prev{left:-60px}:host .carousel-arrows-outside .carousel-arrow-next{right:-60px}:host .carousel-dark-arrows .carousel-arrow{filter:invert(1)}:host .carousel-arrow-disabled{cursor:default;opacity:.5}:host .carousel-dots{bottom:0;left:0;position:absolute;right:0;text-align:center;z-index:10}:host .carousel-dots .carousel-dot{border:2px solid #fff;border-radius:100px;display:inline-block;height:8px;margin:4px;width:8px}:host .carousel-dots .carousel-dot-active{background-color:#fff}"]}]}],s.ctorParameters=function(){return[{type:e.ElementRef},{type:e.ChangeDetectorRef}]},s.propDecorators={images:[{type:e.Input}],events:[{type:e.Output}],height:[{type:e.Input}],width:[{type:e.Input}],loop:[{type:e.Input}],autoplay:[{type:e.Input}],autoplayInterval:[{type:e.Input}],pauseOnHover:[{type:e.Input}],dots:[{type:e.Input}],borderRadius:[{type:e.Input}],margin:[{type:e.Input}],objectFit:[{type:e.Input}],minSwipeDistance:[{type:e.Input}],transitionDuration:[{type:e.Input}],transitionTimingFunction:[{type:e.Input}],videoProperties:[{type:e.Input}],counterSeparator:[{type:e.Input}],overflowCellsLimit:[{type:e.Input}],listeners:[{type:e.Input}],cellWidth:[{type:e.Input,args:["cellWidth"]}],isCounter:[{type:e.Input,args:["counter"]}],arrows:[{type:e.Input}],arrowsOutside:[{type:e.Input}],arrowsTheme:[{type:e.Input}],hostClassCarousel:[{type:e.HostBinding,args:["class.carousel"]}],hostStyleHeight:[{type:e.HostBinding,args:["style.height"]}],hostStyleWidth:[{type:e.HostBinding,args:["style.width"]}],onWindowResize:[{type:e.HostListener,args:["window:resize",["$event"]]}],onMousemove:[{type:e.HostListener,args:["mousemove",["$event"]]}],onMouseleave:[{type:e.HostListener,args:["mouseleave",["$event"]]}]};var r=function(){};r.decorators=[{type:e.NgModule,args:[{declarations:[s],imports:[i.CommonModule],exports:[s],providers:[],bootstrap:[],entryComponents:[s]}]}],t.CarouselComponent=s,t.IvyCarouselModule=r,Object.defineProperty(t,"__esModule",{value:!0})}));
//# sourceMappingURL=angular-responsive-carousel.umd.min.js.map
/**
* @fileoverview added by tsickle
* Generated from: angular-responsive-carousel.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* Generated bundle index. Do not edit.
*/
export { IvyCarouselModule } from './public-api';
export { CarouselComponent as ɵa } from './lib/carousel.component';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1yZXNwb25zaXZlLWNhcm91c2VsLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci1yZXNwb25zaXZlLWNhcm91c2VsLyIsInNvdXJjZXMiOlsiYW5ndWxhci1yZXNwb25zaXZlLWNhcm91c2VsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBSUEsa0NBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxpQkFBaUIsSUFBSSxFQUFFLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcblxuZXhwb3J0IHtDYXJvdXNlbENvbXBvbmVudCBhcyDJtWF9IGZyb20gJy4vbGliL2Nhcm91c2VsLmNvbXBvbmVudCc7Il19
export * from './public-api';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1yZXNwb25zaXZlLWNhcm91c2VsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1yZXNwb25zaXZlLWNhcm91c2VsL3NyYy9hbmd1bGFyLXJlc3BvbnNpdmUtY2Fyb3VzZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==

@@ -1,6 +0,1 @@

/**
* @fileoverview added by tsickle
* Generated from: lib/carousel.component.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { ChangeDetectorRef, Component, ElementRef, EventEmitter, HostBinding, HostListener, Input, Output } from '@angular/core';

@@ -10,6 +5,2 @@ import { Touches } from './touches';

export class CarouselComponent {
/**
* @param {?} elementRef
* @param {?} ref
*/
constructor(elementRef, ref) {

@@ -39,7 +30,3 @@ this.elementRef = elementRef;

/* Touchstart */
this.handleTouchstart = (/**
* @param {?} event
* @return {?}
*/
(event) => {
this.handleTouchstart = (event) => {
event.preventDefault();

@@ -52,9 +39,5 @@ this.carousel.handleTouchstart(event);

});
});
};
/* Touchmove */
this.handleHorizontalSwipe = (/**
* @param {?} event
* @return {?}
*/
(event) => {
this.handleHorizontalSwipe = (event) => {
event.preventDefault();

@@ -66,10 +49,5 @@ this.carousel.handleHorizontalSwipe(event);

});
});
};
/* Touchend */
this.handleTouchend = (/**
* @param {?} event
* @return {?}
*/
(event) => {
/** @type {?} */
this.handleTouchend = (event) => {
const touches = event.touches;

@@ -82,16 +60,8 @@ this.carousel.handleTouchend(event);

});
});
};
/* Tap */
this.handleTap = (/**
* @param {?} event
* @return {?}
*/
(event) => {
/** @type {?} */
this.handleTap = (event) => {
const i = this.carousel.slideCounter;
/** @type {?} */
const cellIndex = this.carousel.currentCellIndex;
/** @type {?} */
const fileIndex = this.carousel.getFileIndex(i);
/** @type {?} */
const file = this.carousel.getFile(cellIndex);

@@ -103,51 +73,26 @@ this.events.emit({

});
});
};
}
/**
* @return {?}
*/
get isContainerLocked() {
return this.carousel.isContainerLocked;
}
/**
* @return {?}
*/
get slideCounter() {
return this.carousel.slideCounter;
}
/**
* @return {?}
*/
get previousSlideCounter() {
return this.carousel.previousSlideCounter;
}
/**
* @return {?}
*/
get lapCounter() {
return this.carousel.lapCounter;
}
/**
* @return {?}
*/
lineUpCells() {
this.carousel.lineUpCells();
}
/**
* @return {?}
*/
quicklyPositionContainer() {
this.carousel.quicklyPositionContainer();
}
/**
* @return {?}
*/
get isLandscape() {
return window.innerWidth > window.innerHeight;
}
/**
* @return {?}
*/
get isSafari() {
/** @type {?} */
const ua = navigator.userAgent.toLowerCase();

@@ -158,7 +103,3 @@ if (ua.indexOf('safari') !== -1) {

}
/**
* @return {?}
*/
get counter() {
/** @type {?} */
let counter;

@@ -173,25 +114,11 @@ if (this.loop) {

}
/**
* @return {?}
*/
get cellsElement() {
return this.elementRef.nativeElement.querySelector('.carousel-cells');
}
/**
* @param {?} images
* @return {?}
*/
set images(images) {
this._images = images;
}
/**
* @return {?}
*/
get images() {
return this._images;
}
/**
* @param {?} value
* @return {?}
*/
set cellWidth(value) {

@@ -202,6 +129,2 @@ if (value) {

}
/**
* @param {?} value
* @return {?}
*/
set isCounter(value) {

@@ -212,17 +135,8 @@ if (value) {

}
/**
* @return {?}
*/
get isCounter() {
return this._isCounter && this.cellLength > 1;
}
/**
* @return {?}
*/
get activeDotIndex() {
return this.slideCounter % this.cellLength;
}
/**
* @return {?}
*/
get cellLimit() {

@@ -233,6 +147,2 @@ if (this.carousel) {

}
/**
* @param {?} event
* @return {?}
*/
onWindowResize(event) {

@@ -244,6 +154,2 @@ this.landscapeMode = this.isLandscape;

}
/**
* @param {?} event
* @return {?}
*/
onMousemove(event) {

@@ -254,6 +160,2 @@ if (this.autoplay && this.pauseOnHover) {

}
/**
* @param {?} event
* @return {?}
*/
onMouseleave(event) {

@@ -264,5 +166,2 @@ if (this.autoplay && this.pauseOnHover) {

}
/**
* @return {?}
*/
ngOnInit() {

@@ -286,5 +185,2 @@ this.isNgContent = this.cellsElement.children.length > 0;

}
/**
* @return {?}
*/
ngAfterViewInit() {

@@ -296,6 +192,2 @@ this.cellLength = this.getCellLength();

}
/**
* @param {?} changes
* @return {?}
*/
ngOnChanges(changes) {

@@ -308,5 +200,2 @@ if (changes.width || changes.height) {

}
/**
* @return {?}
*/
ngOnDestroy() {

@@ -316,5 +205,2 @@ this.touches.destroy();

}
/**
* @return {?}
*/
initCarousel() {

@@ -337,5 +223,2 @@ this.carousel = new Carousel({

}
/**
* @return {?}
*/
setDimensions() {

@@ -345,20 +228,8 @@ this.hostStyleHeight = this.height + 'px';

}
/**
* @param {?} index
* @return {?}
*/
getFile(index) {
return this.carousel.getFile(index);
}
/**
* @param {?} event
* @return {?}
*/
handleTransitionendCellContainer(event) {
this.carousel.handleSlideEnd();
}
/**
* @param {?} video
* @return {?}
*/
toggleVideo(video) {

@@ -379,11 +250,5 @@ event.preventDefault();

}
/**
* @return {?}
*/
getCurrentIndex() {
return this.carousel.slideCounter;
}
/**
* @return {?}
*/
getCellWidth() {

@@ -397,5 +262,2 @@ if (this._cellWidth === '100%') {

}
/**
* @return {?}
*/
next() {

@@ -405,5 +267,2 @@ this.carousel.next(1);

}
/**
* @return {?}
*/
prev() {

@@ -413,24 +272,11 @@ this.carousel.prev(1);

}
/**
* @param {?} index
* @return {?}
*/
select(index) {
this.carousel.select(index);
}
/**
* @return {?}
*/
isNextArrowDisabled() {
return this.carousel.isNextArrowDisabled();
}
/**
* @return {?}
*/
isPrevArrowDisabled() {
return this.carousel.isPrevArrowDisabled();
}
/**
* @return {?}
*/
getCellLength() {

@@ -450,6 +296,5 @@ if (this.images) {

template: "<div class=\"carousel-counter\" *ngIf=\"isCounter\">{{counter}}</div>\n\n<div class=\"carousel-container\" [class.carousel-moving]=\"isMoving\">\n\t<div class=\"carousel-cells\" #cells (transitionend)=\"handleTransitionendCellContainer($event)\">\n\t\t<ng-content></ng-content>\n\n\t\t<ng-template ngFor let-image [ngForOf]=\"images\" let-i=\"index\">\n\t\t\t<div class=\"carousel-cell\" \n\t\t\t\t*ngIf=\"i < cellLimit\" \n\t\t\t\t[style.width]=\"getCellWidth()+'px'\"\n\t\t\t\t[style.border-radius]=\"borderRadius+'px'\">\n\n\t\t\t\t<!-- Image -->\n\t\t\t\t<img \n\t\t\t\t\t*ngIf=\"getFile(i) && getFile(i)['image']\" \n\t\t\t\t\t[src]=\"getFile(i)['image']['path']\"\n\t\t\t\t\t[style.object-fit]=\"objectFit\"\n\t\t\t\t\tdraggable=\"false\" />\n\n\t\t\t\t<!-- Video -->\n\t\t\t\t<ng-template [ngIf]=\"getFile(i) && getFile(i)['type'] === 'video'\">\n\t\t\t\t\t<div class=\"carousel-play\" (click)=\"toggleVideo(video)\"></div>\n\n\t\t\t\t\t<video #video\n\t\t\t\t\t\t[loop]=\"videoProperties.loop\"\n\t\t\t\t\t\t[muted]=\"videoProperties.muted\"\n\t\t\t\t\t\t[controls]=\"isSafari\"\n\t\t\t\t\t\t[style.object-fit]=\"objectFit\"\n\t\t\t\t\t\t[style.border-radius]=\"borderRadius+'px'\">\n\t\t\t\t\t\t\n\t\t\t\t\t\t<source [src]=\"getFile(i)['path']\" type=\"video/mp4\">\n\t\t\t\t\t</video>\n\t\t\t\t</ng-template>\n\t\t\t</div>\n\t\t</ng-template>\n\t</div>\n\n\t<div class=\"carousel-dots\" *ngIf=\"dots\">\n\t\t<div class=\"carousel-dot\" [class.carousel-dot-active]=\"i === activeDotIndex\" *ngFor=\"let dot of dotsArr; index as i\"></div>\n\t</div>\n</div>\n\n<div class=\"carousel-arrows\" \n\t[class.carousel-arrows-outside]=\"arrowsOutside\" \n\t[class.carousel-dark-arrows]=\"arrowsTheme === 'dark'\"\n\t*ngIf=\"arrows\">\n\t\n\t<div class=\"carousel-arrow carousel-arrow-prev\" [class.carousel-arrow-disabled]=\"isPrevArrowDisabled()\" (click)=\"prev()\"></div>\n\t<div class=\"carousel-arrow carousel-arrow-next\" [class.carousel-arrow-disabled]=\"isNextArrowDisabled()\" (click)=\"next()\"></div>\n</div>",
styles: [":host{position:relative;display:block;top:0;left:0;width:100%;height:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:10000;-webkit-transform-origin:top left;transform-origin:top left;box-sizing:border-box}:host .carousel-container{overflow:hidden;width:100%;height:100%;cursor:-webkit-grab;cursor:grab}:host .carousel-container.carousel-moving{cursor:-webkit-grabbing;cursor:grabbing}:host .carousel-counter{text-align:right;position:absolute;z-index:30;transition:opacity .2s;top:8px;right:24px;border-radius:13px;background-color:rgba(23,37,68,.3);font-size:11px;color:#fff;padding:5px 7px;line-height:initial}:host ::ng-deep .carousel-cells{transition:transform .2s;transition:transform .2s,-webkit-transform .2s;width:100%;height:100%;display:block}:host ::ng-deep .carousel-cells .carousel-cell.swiper-prev-image{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}:host ::ng-deep .carousel-cells .carousel-cell.swiper-next-image{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}:host ::ng-deep .carousel-cells .carousel-cell{width:100%;height:100%;text-align:center;position:absolute;display:flex;align-items:center;justify-content:center;overflow:hidden}:host ::ng-deep .carousel-cells .carousel-cell img,:host ::ng-deep .carousel-cells .carousel-cell video{width:100%;height:100%;position:relative;-o-object-fit:contain;object-fit:contain}:host ::ng-deep .carousel-cells .carousel-cell img.swiper-hide{display:none}:host ::ng-deep .carousel-cells .carousel-cell .carousel-play{position:absolute;top:0;left:0;bottom:0;right:0;z-index:1}:host .carousel-arrow{width:40px;height:40px;background-color:#fff;background-repeat:no-repeat;background-size:31px;background-position:center;border-radius:100px;position:absolute;top:50%;margin-top:-20px;z-index:10;cursor:pointer;box-shadow:0 0 5px rgba(0,0,0,.15)}:host .carousel-arrow-prev{left:10px;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0Ij48cGF0aCBkPSJNMTUuNDEgMTYuNTlMMTAuODMgMTJsNC41OC00LjU5TDE0IDZsLTYgNiA2IDYgMS40MS0xLjQxeiIvPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMFYweiIgZmlsbD0ibm9uZSIvPjwvc3ZnPg==)}:host .carousel-arrow-next{right:10px;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0Ij48cGF0aCBkPSJNOC41OSAxNi41OUwxMy4xNyAxMiA4LjU5IDcuNDEgMTAgNmw2IDYtNiA2LTEuNDEtMS40MXoiLz48cGF0aCBkPSJNMCAwaDI0djI0SDBWMHoiIGZpbGw9Im5vbmUiLz48L3N2Zz4=)}:host .carousel-arrows-outside .carousel-arrow-prev{left:-60px}:host .carousel-arrows-outside .carousel-arrow-next{right:-60px}:host .carousel-dark-arrows .carousel-arrow{-webkit-filter:invert(1);filter:invert(1)}:host .carousel-arrow-disabled{cursor:default;opacity:.5}:host .carousel-dots{position:absolute;left:0;right:0;bottom:0;z-index:10;text-align:center}:host .carousel-dots .carousel-dot{display:inline-block;border:2px solid #fff;border-radius:100px;margin:4px;width:8px;height:8px}:host .carousel-dots .carousel-dot-active{background-color:#fff}"]
}] }
styles: [":host{-moz-user-select:none;-webkit-user-select:none;box-sizing:border-box;display:block;height:100%;left:0;position:relative;top:0;transform-origin:top left;user-select:none;width:100%;z-index:10000}:host .carousel-container{cursor:grab;height:100%;overflow:hidden;width:100%}:host .carousel-container.carousel-moving{cursor:grabbing}:host .carousel-counter{background-color:rgba(23,37,68,.3);border-radius:13px;color:#fff;font-size:11px;line-height:normal;padding:5px 7px;position:absolute;right:24px;text-align:right;top:8px;transition:opacity .2s;z-index:30}:host ::ng-deep .carousel-cells{display:block;height:100%;transition:transform .2s;width:100%}:host ::ng-deep .carousel-cells .carousel-cell.swiper-prev-image{transform:translate3d(-100%,0,0)}:host ::ng-deep .carousel-cells .carousel-cell.swiper-next-image{transform:translate3d(100%,0,0)}:host ::ng-deep .carousel-cells .carousel-cell{align-items:center;display:flex;height:100%;justify-content:center;overflow:hidden;position:absolute;text-align:center;width:100%}:host ::ng-deep .carousel-cells .carousel-cell img,:host ::ng-deep .carousel-cells .carousel-cell video{height:100%;object-fit:contain;position:relative;width:100%}:host ::ng-deep .carousel-cells .carousel-cell img.swiper-hide{display:none}:host ::ng-deep .carousel-cells .carousel-cell .carousel-play{bottom:0;left:0;position:absolute;right:0;top:0;z-index:1}:host .carousel-arrow{background-color:#fff;background-position:50%;background-repeat:no-repeat;background-size:31px;border-radius:100px;box-shadow:0 0 5px rgba(0,0,0,.15);cursor:pointer;height:40px;margin-top:-20px;position:absolute;top:50%;width:40px;z-index:10}:host .carousel-arrow-prev{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0Ij48cGF0aCBkPSJNMTUuNDEgMTYuNTlMMTAuODMgMTJsNC41OC00LjU5TDE0IDZsLTYgNiA2IDYgMS40MS0xLjQxeiIvPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMFYweiIgZmlsbD0ibm9uZSIvPjwvc3ZnPg==);left:10px}:host .carousel-arrow-next{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0Ij48cGF0aCBkPSJNOC41OSAxNi41OUwxMy4xNyAxMiA4LjU5IDcuNDEgMTAgNmw2IDYtNiA2LTEuNDEtMS40MXoiLz48cGF0aCBkPSJNMCAwaDI0djI0SDBWMHoiIGZpbGw9Im5vbmUiLz48L3N2Zz4=);right:10px}:host .carousel-arrows-outside .carousel-arrow-prev{left:-60px}:host .carousel-arrows-outside .carousel-arrow-next{right:-60px}:host .carousel-dark-arrows .carousel-arrow{filter:invert(1)}:host .carousel-arrow-disabled{cursor:default;opacity:.5}:host .carousel-dots{bottom:0;left:0;position:absolute;right:0;text-align:center;z-index:10}:host .carousel-dots .carousel-dot{border:2px solid #fff;border-radius:100px;display:inline-block;height:8px;margin:4px;width:8px}:host .carousel-dots .carousel-dot-active{background-color:#fff}"]
},] }
];
/** @nocollapse */
CarouselComponent.ctorParameters = () => [

@@ -491,98 +336,2 @@ { type: ElementRef },

};
if (false) {
/** @type {?} */
CarouselComponent.prototype._id;
/** @type {?} */
CarouselComponent.prototype._images;
/** @type {?} */
CarouselComponent.prototype.touches;
/** @type {?} */
CarouselComponent.prototype.carousel;
/** @type {?} */
CarouselComponent.prototype.landscapeMode;
/** @type {?} */
CarouselComponent.prototype.minTimeout;
/** @type {?} */
CarouselComponent.prototype.isVideoPlaying;
/** @type {?} */
CarouselComponent.prototype._isCounter;
/** @type {?} */
CarouselComponent.prototype._width;
/** @type {?} */
CarouselComponent.prototype._cellWidth;
/** @type {?} */
CarouselComponent.prototype.isMoving;
/** @type {?} */
CarouselComponent.prototype.isNgContent;
/** @type {?} */
CarouselComponent.prototype.cellLength;
/** @type {?} */
CarouselComponent.prototype.dotsArr;
/** @type {?} */
CarouselComponent.prototype.events;
/** @type {?} */
CarouselComponent.prototype.height;
/** @type {?} */
CarouselComponent.prototype.width;
/** @type {?} */
CarouselComponent.prototype.loop;
/** @type {?} */
CarouselComponent.prototype.autoplay;
/** @type {?} */
CarouselComponent.prototype.autoplayInterval;
/** @type {?} */
CarouselComponent.prototype.pauseOnHover;
/** @type {?} */
CarouselComponent.prototype.dots;
/** @type {?} */
CarouselComponent.prototype.borderRadius;
/** @type {?} */
CarouselComponent.prototype.margin;
/** @type {?} */
CarouselComponent.prototype.objectFit;
/** @type {?} */
CarouselComponent.prototype.minSwipeDistance;
/** @type {?} */
CarouselComponent.prototype.transitionDuration;
/** @type {?} */
CarouselComponent.prototype.transitionTimingFunction;
/** @type {?} */
CarouselComponent.prototype.videoProperties;
/** @type {?} */
CarouselComponent.prototype.counterSeparator;
/** @type {?} */
CarouselComponent.prototype.overflowCellsLimit;
/** @type {?} */
CarouselComponent.prototype.listeners;
/** @type {?} */
CarouselComponent.prototype.arrows;
/** @type {?} */
CarouselComponent.prototype.arrowsOutside;
/** @type {?} */
CarouselComponent.prototype.arrowsTheme;
/** @type {?} */
CarouselComponent.prototype.hostClassCarousel;
/** @type {?} */
CarouselComponent.prototype.hostStyleHeight;
/** @type {?} */
CarouselComponent.prototype.hostStyleWidth;
/** @type {?} */
CarouselComponent.prototype.handleTouchstart;
/** @type {?} */
CarouselComponent.prototype.handleHorizontalSwipe;
/** @type {?} */
CarouselComponent.prototype.handleTouchend;
/** @type {?} */
CarouselComponent.prototype.handleTap;
/**
* @type {?}
* @private
*/
CarouselComponent.prototype.elementRef;
/**
* @type {?}
* @private
*/
CarouselComponent.prototype.ref;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci1yZXNwb25zaXZlLWNhcm91c2VsLyIsInNvdXJjZXMiOlsibGliL2Nhcm91c2VsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFhLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQTJCLE1BQU0sZUFBZSxDQUFDO0FBR3BLLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDbEMsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLFlBQVksQ0FBQztBQVVwQyxNQUFNLE9BQU8saUJBQWlCOzs7OztJQXFKMUIsWUFDWSxVQUFzQixFQUN0QixHQUFzQjtRQUR0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBM0hsQyxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBSWhCLGVBQVUsR0FBb0IsR0FBRyxDQUFDO1FBeUN4QixXQUFNLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFFckQsV0FBTSxHQUFXLEdBQUcsQ0FBQztRQUVyQixTQUFJLEdBQVksS0FBSyxDQUFDO1FBQ3RCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIscUJBQWdCLEdBQVcsSUFBSSxDQUFDO1FBQ2hDLGlCQUFZLEdBQVksSUFBSSxDQUFDO1FBQzdCLFNBQUksR0FBWSxLQUFLLENBQUM7UUFFdEIsV0FBTSxHQUFXLEVBQUUsQ0FBQztRQUNwQixjQUFTLEdBQWlDLE9BQU8sQ0FBQztRQUNsRCxxQkFBZ0IsR0FBVyxFQUFFLENBQUM7UUFDOUIsdUJBQWtCLEdBQVcsR0FBRyxDQUFDO1FBQ2pDLDZCQUF3QixHQUErRCxNQUFNLENBQUM7UUFFOUYscUJBQWdCLEdBQVcsS0FBSyxDQUFDO1FBQ2pDLHVCQUFrQixHQUFX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QyxjQUFjOzZCQUMxQixXQUFXLFNBQUMsYUFBYTs2QkFFekIsWUFBWSxTQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQzswQkFTeEMsWUFBWSxTQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQzsyQkFPcEMsWUFBWSxTQUFDLFlBQVksRUFBRSxDQUFDLFFBQVEsQ0FBQzs7OztJQXZIdEMsZ0NBQVk7O0lBQ1osb0NBQWdCOztJQUNoQixvQ0FBYTs7SUFDYixxQ0FBYzs7SUFDZCwwQ0FBbUI7O0lBQ25CLHVDQUFnQjs7SUFDaEIsMkNBQXdCOztJQUN4Qix1Q0FBb0I7O0lBQ3BCLG1DQUFlOztJQUNmLHVDQUFrQzs7SUFDbEMscUNBQWtCOztJQUNsQix3Q0FBcUI7O0lBQ3JCLHVDQUFtQjs7SUFDbkIsb0NBQVk7O0lBcUNaLG1DQUE4RDs7SUFFOUQsbUNBQThCOztJQUM5QixrQ0FBdUI7O0lBQ3ZCLGlDQUErQjs7SUFDL0IscUNBQW1DOztJQUNuQyw2Q0FBeUM7O0lBQ3pDLHlDQUFzQzs7SUFDdEMsaUNBQStCOztJQUMvQix5Q0FBOEI7O0lBQzlCLG1DQUE2Qjs7SUFDN0Isc0NBQTJEOztJQUMzRCw2Q0FBdUM7O0lBQ3ZDLCtDQUEwQzs7SUFDMUMscURBQXVHOztJQUN2Ryw0Q0FBOEI7O0lBQzlCLDZDQUEwQzs7SUFDMUMsK0NBQXdDOztJQUN4QyxzQ0FBbUU7O0lBcUJuRSxtQ0FBZ0M7O0lBQ2hDLDBDQUFnQzs7SUFDaEMsd0NBQWlEOztJQVFqRCw4Q0FBaUU7O0lBQ2pFLDRDQUFxRDs7SUFDckQsMkNBQW1EOztJQXFHbkQsNkNBUUM7O0lBR0Qsa0RBT0M7O0lBR0QsMkNBUUM7O0lBR0Qsc0NBV0M7Ozs7O0lBdEhHLHVDQUE4Qjs7Ozs7SUFDOUIsZ0NBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE91dHB1dCwgT25EZXN0cm95LCBTaW1wbGVDaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtJbWFnZXN9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5pbXBvcnQge1RvdWNoZXN9IGZyb20gJy4vdG91Y2hlcyc7XG5pbXBvcnQge0Nhcm91c2VsfSBmcm9tICcuL2Nhcm91c2VsJztcblxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdjYXJvdXNlbCwgW2Nhcm91c2VsXScsXG4gICAgZXhwb3J0QXM6ICdjYXJvdXNlbCcsXG5cdHRlbXBsYXRlVXJsOiAnLi9jYXJvdXNlbC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY2Fyb3VzZWwuY29tcG9uZW50LnNhc3MnXVxufSlcblxuZXhwb3J0IGNsYXNzIENhcm91c2VsQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICAgIGdldCBpc0NvbnRhaW5lckxvY2tlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2Fyb3VzZWwuaXNDb250YWluZXJMb2NrZWQ7XG4gICAgfVxuICAgIGdldCBzbGlkZUNvdW50ZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhcm91c2VsLnNsaWRlQ291bnRlcjtcbiAgICB9XG4gICAgZ2V0IHByZXZpb3VzU2xpZGVDb3VudGVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jYXJvdXNlbC5wcmV2aW91c1NsaWRlQ291bnRlcjtcbiAgICB9XG4gICAgZ2V0IGxhcENvdW50ZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhcm91c2VsLmxhcENvdW50ZXI7XG4gICAgfVxuXG4gICAgbGluZVVwQ2VsbHMoKSB7XG4gICAgICAgIHRoaXMuY2Fyb3VzZWwubGluZVVwQ2VsbHMoKTtcbiAgICB9XG5cbiAgICBxdWlja2x5UG9zaXRpb25Db250YWluZXIoKSB7XG4gICAgICAgIHRoaXMuY2Fyb3VzZWwucXVpY2tseVBvc2l0aW9uQ29udGFpbmVyKCk7XG4gICAgfVxuICAgIFxuICAgIF9pZDogc3RyaW5nO1xuICAgIF9pbWFnZXM6IEltYWdlcztcbiAgICB0b3VjaGVzOiBhbnk7XG4gICAgY2Fyb3VzZWw6IGFueTtcbiAgICBsYW5kc2NhcGVNb2RlOiBhbnk7XG4gICAgbWluVGltZW91dCA9IDMwO1xuICAgIGlzVmlkZW9QbGF5aW5nOiBib29sZWFuO1xuICAgIF9pc0NvdW50ZXI6IGJvb2xlYW47XG4gICAgX3dpZHRoOiBudW1iZXI7XG4gICAgX2NlbGxXaWR0aDogbnVtYmVyIHwgJzEwMCUnID0gMjAwO1xuICAgIGlzTW92aW5nOiBib29sZWFuO1xuICAgIGlzTmdDb250ZW50OiBib29sZWFuO1xuICAgIGNlbGxMZW5ndGg6IG51bWJlcjtcbiAgICBkb3RzQXJyOmFueTtcblxuICAgIGdldCBpc0xhbmRzY2FwZSgpe1xuICAgICAgICByZXR1cm4gd2luZG93LmlubmVyV2lkdGggPiB3aW5kb3cuaW5uZXJIZWlnaHQ7XG4gICAgfVxuXG4gICAgZ2V0IGlzU2FmYXJpKCk6IGFueSB7XG4gICAgICAgIGNvbnN0IHVhID0gbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAodWEuaW5kZXhPZignc2FmYXJpJykgIT09IC0xKSB7XG4gICAgICAgICAgICByZXR1cm4gISh1YS5pbmRleE9mKCdjaHJvbWUnKSA+IC0xKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBjb3VudGVyKCkge1xuICAgICAgICBsZXQgY291bnRlcjtcblxuICAgICAgICBpZiAodGhpcy5sb29wKSB7XG4gICAgICAgICAgICBjb3VudGVyID0gdGhpcy5zbGlkZUNvdW50ZXIgJSB0aGlzLmNlbGxMZW5ndGg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb3VudGVyID0gdGhpcy5zbGlkZUNvdW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY291bnRlciArIDEgKyB0aGlzLmNvdW50ZXJTZXBhcmF0b3IgKyB0aGlzLmNlbGxMZW5ndGg7XG4gICAgfVxuXG4gICAgZ2V0IGNlbGxzRWxlbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5jYXJvdXNlbC1jZWxscycpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGltYWdlcyhpbWFnZXM6IEltYWdlcyAmIGFueSkge1xuICAgICAgICB0aGlzLl9pbWFnZXMgPSBpbWFnZXM7XG4gICAgfVxuICAgIGdldCBpbWFnZXMoKXtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ltYWdlcztcbiAgICB9XG5cbiAgICBAT3V0cHV0KCkgZXZlbnRzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgQElucHV0KCkgaGVpZ2h0OiBudW1iZXIgPSAyMDA7XG4gICAgQElucHV0KCkgd2lkdGg6IG51bWJlcjtcbiAgICBASW5wdXQoKSBsb29wOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgYXV0b3BsYXk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBhdXRvcGxheUludGVydmFsOiBudW1iZXIgPSA1MDAwO1xuICAgIEBJbnB1dCgpIHBhdXNlT25Ib3ZlcjogYm9vbGVhbiA9IHRydWU7XG4gICAgQElucHV0KCkgZG90czogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGJvcmRlclJhZGl1czogbnVtYmVyO1xuICAgIEBJbnB1dCgpIG1hcmdpbjogbnVtYmVyID0gMTA7XG4gICAgQElucHV0KCkgb2JqZWN0Rml0OiAnY29udGFpbicgfCAnY292ZXInIHwgJ25vbmUnID0gJ2NvdmVyJztcbiAgICBASW5wdXQoKSBtaW5Td2lwZURpc3RhbmNlOiBudW1iZXIgPSA1MDtcbiAgICBASW5wdXQoKSB0cmFuc2l0aW9uRHVyYXRpb246IG51bWJlciA9IDIwMDtcbiAgICBASW5wdXQoKSB0cmFuc2l0aW9uVGltaW5nRnVuY3Rpb246ICdlYXNlJyB8ICdlYXNlLWluJyB8ICdlYXNlLW91dCcgfCAnZWFzZS1pbi1vdXQnIHwgJ2xpbmVhcicgPSAnZWFzZSc7XG4gICAgQElucHV0KCkgdmlkZW9Qcm9wZXJ0aWVzOiBhbnk7XG4gICAgQElucHV0KCkgY291bnRlclNlcGFyYXRvcjogc3RyaW5nID0gXCIgLyBcIjtcbiAgICBASW5wdXQoKSBvdmVyZmxvd0NlbGxzTGltaXQ6IG51bWJlciA9IDM7XG4gICAgQElucHV0KCkgbGlzdGVuZXJzOiAnYXV0bycgfCAnbW91c2UgYW5kIHRvdWNoJyA9ICdtb3VzZSBhbmQgdG91Y2gnO1xuXG4gICAgQElucHV0KCdjZWxsV2lkdGgnKSBzZXQgY2VsbFdpZHRoKHZhbHVlOiBudW1iZXIgfCAnMTAwJScpIHtcbiAgICAgICAgaWYgKHZhbHVlKXtcbiAgICAgICAgICAgIHRoaXMuX2NlbGxXaWR0aCA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQElucHV0KCdjb3VudGVyJykgc2V0IGlzQ291bnRlcih2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICBpZiAodmFsdWUpe1xuICAgICAgICAgICAgdGhpcy5faXNDb3VudGVyID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IGlzQ291bnRlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzQ291bnRlciAmJiB0aGlzLmNlbGxMZW5ndGggPiAxO1xuICAgIH1cblxuICAgIGdldCBhY3RpdmVEb3RJbmRleCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2xpZGVDb3VudGVyICUgdGhpcy5jZWxsTGVuZ3RoO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGFycm93czogYm9vbGVhbiA9IHRydWU7XG4gICAgQElucHV0KCkgYXJyb3dzT3V0c2lkZTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBhcnJvd3NUaGVtZTogJ2xpZ2h0JyB8ICdkYXJrJyA9ICdsaWdodCc7XG5cbiAgICBnZXQgY2VsbExpbWl0KCkge1xuICAgICAgICBpZiAodGhpcy5jYXJvdXNlbCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2Fyb3VzZWwuY2VsbExpbWl0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jYXJvdXNlbCcpIGhvc3RDbGFzc0Nhcm91c2VsOiBib29sZWFuID0gdHJ1ZTtcbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLmhlaWdodCcpIGhvc3RTdHlsZUhlaWdodDogc3RyaW5nO1xuICAgIEBIb3N0QmluZGluZygnc3R5bGUud2lkdGgnKSBob3N0U3R5bGVXaWR0aDogc3RyaW5nO1xuXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gICAgb25XaW5kb3dSZXNpemUoZXZlbnQ6IGFueSkge1xuICAgICAgICB0aGlzLmxhbmRzY2FwZU1vZGUgPSB0aGlzLmlzTGFuZHNjYXBlO1xuICAgICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgdGhpcy5pbml0Q2Fyb3VzZWwoKTtcbiAgICAgICAgdGhpcy5jYXJvdXNlbC5saW5lVXBDZWxscygpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ21vdXNlbW92ZScsIFsnJGV2ZW50J10pXG4gICAgb25Nb3VzZW1vdmUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuYXV0b3BsYXkgJiYgdGhpcy5wYXVzZU9uSG92ZXIpIHtcbiAgICAgICAgICAgIHRoaXMuY2Fyb3VzZWwuc3RvcEF1dG9wbGF5KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJywgWyckZXZlbnQnXSlcbiAgICBvbk1vdXNlbGVhdmUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuYXV0b3BsYXkgJiYgdGhpcy5wYXVzZU9uSG92ZXIpIHtcbiAgICAgICAgICAgIHRoaXMuY2Fyb3VzZWwuYXV0b3BsYXkoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIFxuICAgICAgICBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpe1xuICAgIH1cblxuICAgIG5nT25Jbml0KCl7XG4gICAgICAgIHRoaXMuaXNOZ0NvbnRlbnQgPSB0aGlzLmNlbGxzRWxlbWVudC5jaGlsZHJlbi5sZW5ndGggPiAwO1xuXG4gICAgICAgIHRoaXMudG91Y2hlcyA9IG5ldyBUb3VjaGVzKHtcbiAgICAgICAgICAgIGVsZW1lbnQ6IHRoaXMuY2VsbHNFbGVtZW50LFxuICAgICAgICAgICAgbGlzdGVuZXJzOiB0aGlzLmxpc3RlbmVyc1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnRvdWNoZXMub24oJ3RvdWNoc3RhcnQnLCB0aGlzLmhhbmRsZVRvdWNoc3RhcnQpO1xuICAgICAgICB0aGlzLnRvdWNoZXMub24oJ2hvcml6b250YWwtc3dpcGUnLCB0aGlzLmhhbmRsZUhvcml6b250YWxTd2lwZSk7XG4gICAgICAgIHRoaXMudG91Y2hlcy5vbigndG91Y2hlbmQnLCB0aGlzLmhhbmRsZVRvdWNoZW5kKTtcbiAgICAgICAgdGhpcy50b3VjaGVzLm9uKCdtb3VzZWRvd24nLCB0aGlzLmhhbmRsZVRvdWNoc3RhcnQpO1xuICAgICAgICB0aGlzLnRvdWNoZXMub24oJ21vdXNldXAnLCB0aGlzLmhhbmRsZVRvdWNoZW5kKTtcbiAgICAgICAgdGhpcy50b3VjaGVzLm9uKCd0YXAnLCB0aGlzLmhhbmRsZVRhcCk7XG5cbiAgICAgICAgdGhpcy5pbml0Q2Fyb3VzZWwoKTtcbiAgICAgICAgdGhpcy5zZXREaW1lbnNpb25zKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuYXV0b3BsYXkpIHtcbiAgICAgICAgICAgIHRoaXMuY2Fyb3VzZWwuYXV0b3BsYXkoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5jZWxsTGVuZ3RoID0gdGhpcy5nZXRDZWxsTGVuZ3RoKCk7XG4gICAgICAgIHRoaXMuZG90c0FyciA9IEFycmF5KHRoaXMuY2VsbExlbmd0aCkuZmlsbCgxKTtcbiAgICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB0aGlzLmNhcm91c2VsLmxpbmVVcENlbGxzKCk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBpZiAoY2hhbmdlcy53aWR0aCB8fCBjaGFuZ2VzLmhlaWdodCkge1xuICAgICAgICAgICAgdGhpcy5zZXREaW1lbnNpb25zKCk7XG4gICAgICAgICAgICB0aGlzLmluaXRDYXJvdXNlbCgpO1xuICAgICAgICAgICAgdGhpcy5jYXJvdXNlbC5saW5lVXBDZWxscygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMudG91Y2hlcy5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMuY2Fyb3VzZWwuZGVzdHJveSgpXG4gICAgfVxuXG4gICAgaW5pdENhcm91c2VsKCkge1xuICAgICAgICB0aGlzLmNhcm91c2VsID0gbmV3IENhcm91c2VsKHtcbiAgICAgICAgICAgIGVsZW1lbnQ6IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5jYXJvdXNlbC1jZWxscycpLFxuICAgICAgICAgICAgY29udGFpbmVyOiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgIGltYWdlczogdGhpcy5pbWFnZXMsXG4gICAgICAgICAgICBjZWxsV2lkdGg6IHRoaXMuZ2V0Q2VsbFdpZHRoKCksXG4gICAgICAgICAgICBsb29wOiB0aGlzLmxvb3AsXG4gICAgICAgICAgICBhdXRvcGxheUludGVydmFsOiB0aGlzLmF1dG9wbGF5SW50ZXJ2YWwsXG4gICAgICAgICAgICBvdmVyZmxvd0NlbGxzTGltaXQ6IHRoaXMub3ZlcmZsb3dDZWxsc0xpbWl0LFxuICAgICAgICAgICAgdmlzaWJsZVdpZHRoOiB0aGlzLndpZHRoLFxuICAgICAgICAgICAgbWFyZ2luOiB0aGlzLm1hcmdpbixcbiAgICAgICAgICAgIG1pblN3aXBlRGlzdGFuY2U6IHRoaXMubWluU3dpcGVEaXN0YW5jZSxcbiAgICAgICAgICAgIHRyYW5zaXRpb25EdXJhdGlvbjogdGhpcy50cmFuc2l0aW9uRHVyYXRpb24sXG4gICAgICAgICAgICB0cmFuc2l0aW9uVGltaW5nRnVuY3Rpb246IHRoaXMudHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uLFxuICAgICAgICAgICAgdmlkZW9Qcm9wZXJ0aWVzOiB0aGlzLnZpZGVvUHJvcGVydGllc1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzZXREaW1lbnNpb25zKCkge1xuICAgICAgICB0aGlzLmhvc3RTdHlsZUhlaWdodCA9IHRoaXMuaGVpZ2h0ICsgJ3B4JztcbiAgICAgICAgdGhpcy5ob3N0U3R5bGVXaWR0aCA9IHRoaXMud2lkdGggKyAncHgnO1xuICAgIH1cblxuICAgIGdldEZpbGUoaW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2Fyb3VzZWwuZ2V0RmlsZShpbmRleCk7XG4gICAgfVxuXG4gICAgLyogVG91Y2hzdGFydCAqL1xuICAgIGhhbmRsZVRvdWNoc3RhcnQgPSAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmNhcm91c2VsLmhhbmRsZVRvdWNoc3RhcnQoZXZlbnQpO1xuICAgICAgICB0aGlzLmlzTW92aW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5ldmVudHMuZW1pdCh7XG4gICAgICAgICAgICB0eXBlOiAndG91Y2hzdGFydCcsXG4gICAgICAgICAgICBldmVudFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiBUb3VjaG1vdmUgKi9cbiAgICBoYW5kbGVIb3Jpem9udGFsU3dpcGUgPSAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmNhcm91c2VsLmhhbmRsZUhvcml6b250YWxTd2lwZShldmVudCk7XG4gICAgICAgIHRoaXMuZXZlbnRzLmVtaXQoe1xuICAgICAgICAgICAgdHlwZTogJ3N3aXBlJyxcbiAgICAgICAgICAgIGV2ZW50XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qIFRvdWNoZW5kICovXG4gICAgaGFuZGxlVG91Y2hlbmQgPSAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCB0b3VjaGVzID0gZXZlbnQudG91Y2hlcztcbiAgICAgICAgdGhpcy5jYXJvdXNlbC5oYW5kbGVUb3VjaGVuZChldmVudCk7XG4gICAgICAgIHRoaXMuaXNNb3ZpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5ldmVudHMuZW1pdCh7XG4gICAgICAgICAgICB0eXBlOiAndG91Y2hlbmQnLFxuICAgICAgICAgICAgZXZlbnRcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyogVGFwICovXG4gICAgaGFuZGxlVGFwID0gKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgaSA9IHRoaXMuY2Fyb3VzZWwuc2xpZGVDb3VudGVyO1xuICAgICAgICBjb25zdCBjZWxsSW5kZXggPSB0aGlzLmNhcm91c2VsLmN1cnJlbnRDZWxsSW5kZXg7XG4gICAgICAgIGNvbnN0IGZpbGVJbmRleCA9IHRoaXMuY2Fyb3VzZWwuZ2V0RmlsZUluZGV4KGkpO1xuICAgICAgICBjb25zdCBmaWxlID0gdGhpcy5jYXJvdXNlbC5nZXRGaWxlKGNlbGxJbmRleCk7XG5cbiAgICAgICAgdGhpcy5ldmVudHMuZW1pdCh7XG4gICAgICAgICAgICB0eXBlOiAnY2xpY2snLFxuICAgICAgICAgICAgZmlsZTogZmlsZSxcbiAgICAgICAgICAgIGluZGV4OiBmaWxlSW5kZXhcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaGFuZGxlVHJhbnNpdGlvbmVuZENlbGxDb250YWluZXIoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5jYXJvdXNlbC5oYW5kbGVTbGlkZUVuZCgpO1xuICAgIH1cblxuICAgIHRvZ2dsZVZpZGVvKHZpZGVvKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmICh0aGlzLnZpZGVvUHJvcGVydGllcy5ub1BsYXkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2aWRlby5wYXVzZWQpIHtcbiAgICAgICAgICAgIHZpZGVvLnBsYXkoKTtcbiAgICAgICAgICAgIHRoaXMuaXNWaWRlb1BsYXlpbmcgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmlkZW8ucGF1c2UoKTtcbiAgICAgICAgICAgIHRoaXMuaXNWaWRlb1BsYXlpbmcgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBnZXRDdXJyZW50SW5kZXgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhcm91c2VsLnNsaWRlQ291bnRlcjtcbiAgICB9XG5cbiAgICBnZXRDZWxsV2lkdGgoKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKHRoaXMuX2NlbGxXaWR0aCA9PT0gJzEwMCUnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fY2VsbFdpZHRoO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmV4dCgpIHtcbiAgICAgICAgdGhpcy5jYXJvdXNlbC5uZXh0KDEpO1xuICAgICAgICB0aGlzLmNhcm91c2VsLnN0b3BBdXRvcGxheSgpO1xuICAgIH1cblxuICAgIHByZXYoKSB7XG4gICAgICAgIHRoaXMuY2Fyb3VzZWwucHJldigxKTtcbiAgICAgICAgdGhpcy5jYXJvdXNlbC5zdG9wQXV0b3BsYXkoKTtcbiAgICB9XG5cbiAgICBzZWxlY3QoaW5kZXg6IG51bWJlcikge1xuICAgICAgICB0aGlzLmNhcm91c2VsLnNlbGVjdChpbmRleCk7XG4gICAgfVxuXG4gICAgaXNOZXh0QXJyb3dEaXNhYmxlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2Fyb3VzZWwuaXNOZXh0QXJyb3dEaXNhYmxlZCgpO1xuICAgIH1cblxuICAgIGlzUHJldkFycm93RGlzYWJsZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhcm91c2VsLmlzUHJldkFycm93RGlzYWJsZWQoKTtcbiAgICB9XG5cbiAgICBnZXRDZWxsTGVuZ3RoKCkge1xuICAgICAgICBpZiAodGhpcy5pbWFnZXMpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmltYWdlcy5sZW5ndGg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jZWxsc0VsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoO1xuICAgICAgICB9XG4gICAgfVxufSJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1yZXNwb25zaXZlLWNhcm91c2VsL3NyYy9saWIvY2Fyb3VzZWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFhLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQTJCLE1BQU0sZUFBZSxDQUFDO0FBR3BLLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDbEMsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLFlBQVksQ0FBQztBQVVwQyxNQUFNLE9BQU8saUJBQWlCO0lBcUoxQixZQUNZLFVBQXNCLEVBQ3RCLEdBQXNCO1FBRHRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUEzSGxDLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFJaEIsZUFBVSxHQUFvQixHQUFHLENBQUM7UUF5Q3hCLFdBQU0sR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVyRCxXQUFNLEdBQVcsR0FBRyxDQUFDO1FBRXJCLFNBQUksR0FBWSxLQUFLLENBQUM7UUFDdEIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixxQkFBZ0IsR0FBVyxJQUFJLENBQUM7UUFDaEMsaUJBQVksR0FBWSxJQUFJLENBQUM7UUFDN0IsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUV0QixXQUFNLEdBQVcsRUFBRSxDQUFDO1FBQ3BCLGNBQVMsR0FBaUMsT0FBTyxDQUFDO1FBQ2xELHFCQUFnQixHQUFXLEVBQUUsQ0FBQztRQUM5Qix1QkFBa0IsR0FBVyxHQUFHLENBQUM7UUFDakMsNkJBQXdCLEdBQStELE1BQU0sQ0FBQztRQUU5RixxQkFBZ0IsR0FBVyxLQUFLLENBQUM7UUFDakMs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YTs2QkFFekIsWUFBWSxTQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQzswQkFTeEMsWUFBWSxTQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQzsyQkFPcEMsWUFBWSxTQUFDLFlBQVksRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgVmlld0NoaWxkLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPdXRwdXQsIE9uRGVzdHJveSwgU2ltcGxlQ2hhbmdlc30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7SW1hZ2VzfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtUb3VjaGVzfSBmcm9tICcuL3RvdWNoZXMnO1xuaW1wb3J0IHtDYXJvdXNlbH0gZnJvbSAnLi9jYXJvdXNlbCc7XG5cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnY2Fyb3VzZWwsIFtjYXJvdXNlbF0nLFxuICAgIGV4cG9ydEFzOiAnY2Fyb3VzZWwnLFxuXHR0ZW1wbGF0ZVVybDogJy4vY2Fyb3VzZWwuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2Nhcm91c2VsLmNvbXBvbmVudC5zYXNzJ11cbn0pXG5cbmV4cG9ydCBjbGFzcyBDYXJvdXNlbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgICBnZXQgaXNDb250YWluZXJMb2NrZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhcm91c2VsLmlzQ29udGFpbmVyTG9ja2VkO1xuICAgIH1cbiAgICBnZXQgc2xpZGVDb3VudGVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jYXJvdXNlbC5zbGlkZUNvdW50ZXI7XG4gICAgfVxuICAgIGdldCBwcmV2aW91c1NsaWRlQ291bnRlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2Fyb3VzZWwucHJldmlvdXNTbGlkZUNvdW50ZXI7XG4gICAgfVxuICAgIGdldCBsYXBDb3VudGVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jYXJvdXNlbC5sYXBDb3VudGVyO1xuICAgIH1cblxuICAgIGxpbmVVcENlbGxzKCkge1xuICAgICAgICB0aGlzLmNhcm91c2VsLmxpbmVVcENlbGxzKCk7XG4gICAgfVxuXG4gICAgcXVpY2tseVBvc2l0aW9uQ29udGFpbmVyKCkge1xuICAgICAgICB0aGlzLmNhcm91c2VsLnF1aWNrbHlQb3NpdGlvbkNvbnRhaW5lcigpO1xuICAgIH1cbiAgICBcbiAgICBfaWQ6IHN0cmluZztcbiAgICBfaW1hZ2VzOiBJbWFnZXM7XG4gICAgdG91Y2hlczogYW55O1xuICAgIGNhcm91c2VsOiBhbnk7XG4gICAgbGFuZHNjYXBlTW9kZTogYW55O1xuICAgIG1pblRpbWVvdXQgPSAzMDtcbiAgICBpc1ZpZGVvUGxheWluZzogYm9vbGVhbjtcbiAgICBfaXNDb3VudGVyOiBib29sZWFuO1xuICAgIF93aWR0aDogbnVtYmVyO1xuICAgIF9jZWxsV2lkdGg6IG51bWJlciB8ICcxMDAlJyA9IDIwMDtcbiAgICBpc01vdmluZzogYm9vbGVhbjtcbiAgICBpc05nQ29udGVudDogYm9vbGVhbjtcbiAgICBjZWxsTGVuZ3RoOiBudW1iZXI7XG4gICAgZG90c0Fycjphbnk7XG5cbiAgICBnZXQgaXNMYW5kc2NhcGUoKXtcbiAgICAgICAgcmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoID4gd2luZG93LmlubmVySGVpZ2h0O1xuICAgIH1cblxuICAgIGdldCBpc1NhZmFyaSgpOiBhbnkge1xuICAgICAgICBjb25zdCB1YSA9IG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKHVhLmluZGV4T2YoJ3NhZmFyaScpICE9PSAtMSkge1xuICAgICAgICAgICAgcmV0dXJuICEodWEuaW5kZXhPZignY2hyb21lJykgPiAtMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgY291bnRlcigpIHtcbiAgICAgICAgbGV0IGNvdW50ZXI7XG5cbiAgICAgICAgaWYgKHRoaXMubG9vcCkge1xuICAgICAgICAgICAgY291bnRlciA9IHRoaXMuc2xpZGVDb3VudGVyICUgdGhpcy5jZWxsTGVuZ3RoO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY291bnRlciA9IHRoaXMuc2xpZGVDb3VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvdW50ZXIgKyAxICsgdGhpcy5jb3VudGVyU2VwYXJhdG9yICsgdGhpcy5jZWxsTGVuZ3RoO1xuICAgIH1cblxuICAgIGdldCBjZWxsc0VsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuY2Fyb3VzZWwtY2VsbHMnKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBpbWFnZXMoaW1hZ2VzOiBJbWFnZXMgJiBhbnkpIHtcbiAgICAgICAgdGhpcy5faW1hZ2VzID0gaW1hZ2VzO1xuICAgIH1cbiAgICBnZXQgaW1hZ2VzKCl7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbWFnZXM7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpIGV2ZW50czogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIEBJbnB1dCgpIGhlaWdodDogbnVtYmVyID0gMjAwO1xuICAgIEBJbnB1dCgpIHdpZHRoOiBudW1iZXI7XG4gICAgQElucHV0KCkgbG9vcDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGF1dG9wbGF5OiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgYXV0b3BsYXlJbnRlcnZhbDogbnVtYmVyID0gNTAwMDtcbiAgICBASW5wdXQoKSBwYXVzZU9uSG92ZXI6IGJvb2xlYW4gPSB0cnVlO1xuICAgIEBJbnB1dCgpIGRvdHM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBib3JkZXJSYWRpdXM6IG51bWJlcjtcbiAgICBASW5wdXQoKSBtYXJnaW46IG51bWJlciA9IDEwO1xuICAgIEBJbnB1dCgpIG9iamVjdEZpdDogJ2NvbnRhaW4nIHwgJ2NvdmVyJyB8ICdub25lJyA9ICdjb3Zlcic7XG4gICAgQElucHV0KCkgbWluU3dpcGVEaXN0YW5jZTogbnVtYmVyID0gNTA7XG4gICAgQElucHV0KCkgdHJhbnNpdGlvbkR1cmF0aW9uOiBudW1iZXIgPSAyMDA7XG4gICAgQElucHV0KCkgdHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uOiAnZWFzZScgfCAnZWFzZS1pbicgfCAnZWFzZS1vdXQnIHwgJ2Vhc2UtaW4tb3V0JyB8ICdsaW5lYXInID0gJ2Vhc2UnO1xuICAgIEBJbnB1dCgpIHZpZGVvUHJvcGVydGllczogYW55O1xuICAgIEBJbnB1dCgpIGNvdW50ZXJTZXBhcmF0b3I6IHN0cmluZyA9IFwiIC8gXCI7XG4gICAgQElucHV0KCkgb3ZlcmZsb3dDZWxsc0xpbWl0OiBudW1iZXIgPSAzO1xuICAgIEBJbnB1dCgpIGxpc3RlbmVyczogJ2F1dG8nIHwgJ21vdXNlIGFuZCB0b3VjaCcgPSAnbW91c2UgYW5kIHRvdWNoJztcblxuICAgIEBJbnB1dCgnY2VsbFdpZHRoJykgc2V0IGNlbGxXaWR0aCh2YWx1ZTogbnVtYmVyIHwgJzEwMCUnKSB7XG4gICAgICAgIGlmICh2YWx1ZSl7XG4gICAgICAgICAgICB0aGlzLl9jZWxsV2lkdGggPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCgnY291bnRlcicpIHNldCBpc0NvdW50ZXIodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHZhbHVlKXtcbiAgICAgICAgICAgIHRoaXMuX2lzQ291bnRlciA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBpc0NvdW50ZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0NvdW50ZXIgJiYgdGhpcy5jZWxsTGVuZ3RoID4gMTtcbiAgICB9XG5cbiAgICBnZXQgYWN0aXZlRG90SW5kZXgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNsaWRlQ291bnRlciAlIHRoaXMuY2VsbExlbmd0aDtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBhcnJvd3M6IGJvb2xlYW4gPSB0cnVlO1xuICAgIEBJbnB1dCgpIGFycm93c091dHNpZGU6IGJvb2xlYW47XG4gICAgQElucHV0KCkgYXJyb3dzVGhlbWU6ICdsaWdodCcgfCAnZGFyaycgPSAnbGlnaHQnO1xuXG4gICAgZ2V0IGNlbGxMaW1pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuY2Fyb3VzZWwpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNhcm91c2VsLmNlbGxMaW1pdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuY2Fyb3VzZWwnKSBob3N0Q2xhc3NDYXJvdXNlbDogYm9vbGVhbiA9IHRydWU7XG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5oZWlnaHQnKSBob3N0U3R5bGVIZWlnaHQ6IHN0cmluZztcbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLndpZHRoJykgaG9zdFN0eWxlV2lkdGg6IHN0cmluZztcblxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxuICAgIG9uV2luZG93UmVzaXplKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgdGhpcy5sYW5kc2NhcGVNb2RlID0gdGhpcy5pc0xhbmRzY2FwZTtcbiAgICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgIHRoaXMuaW5pdENhcm91c2VsKCk7XG4gICAgICAgIHRoaXMuY2Fyb3VzZWwubGluZVVwQ2VsbHMoKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZW1vdmUnLCBbJyRldmVudCddKVxuICAgIG9uTW91c2Vtb3ZlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmF1dG9wbGF5ICYmIHRoaXMucGF1c2VPbkhvdmVyKSB7XG4gICAgICAgICAgICB0aGlzLmNhcm91c2VsLnN0b3BBdXRvcGxheSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignbW91c2VsZWF2ZScsIFsnJGV2ZW50J10pXG4gICAgb25Nb3VzZWxlYXZlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmF1dG9wbGF5ICYmIHRoaXMucGF1c2VPbkhvdmVyKSB7XG4gICAgICAgICAgICB0aGlzLmNhcm91c2VsLmF1dG9wbGF5KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBcbiAgICAgICAgcHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmKXtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpe1xuICAgICAgICB0aGlzLmlzTmdDb250ZW50ID0gdGhpcy5jZWxsc0VsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoID4gMDtcblxuICAgICAgICB0aGlzLnRvdWNoZXMgPSBuZXcgVG91Y2hlcyh7XG4gICAgICAgICAgICBlbGVtZW50OiB0aGlzLmNlbGxzRWxlbWVudCxcbiAgICAgICAgICAgIGxpc3RlbmVyczogdGhpcy5saXN0ZW5lcnNcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy50b3VjaGVzLm9uKCd0b3VjaHN0YXJ0JywgdGhpcy5oYW5kbGVUb3VjaHN0YXJ0KTtcbiAgICAgICAgdGhpcy50b3VjaGVzLm9uKCdob3Jpem9udGFsLXN3aXBlJywgdGhpcy5oYW5kbGVIb3Jpem9udGFsU3dpcGUpO1xuICAgICAgICB0aGlzLnRvdWNoZXMub24oJ3RvdWNoZW5kJywgdGhpcy5oYW5kbGVUb3VjaGVuZCk7XG4gICAgICAgIHRoaXMudG91Y2hlcy5vbignbW91c2Vkb3duJywgdGhpcy5oYW5kbGVUb3VjaHN0YXJ0KTtcbiAgICAgICAgdGhpcy50b3VjaGVzLm9uKCdtb3VzZXVwJywgdGhpcy5oYW5kbGVUb3VjaGVuZCk7XG4gICAgICAgIHRoaXMudG91Y2hlcy5vbigndGFwJywgdGhpcy5oYW5kbGVUYXApO1xuXG4gICAgICAgIHRoaXMuaW5pdENhcm91c2VsKCk7XG4gICAgICAgIHRoaXMuc2V0RGltZW5zaW9ucygpO1xuXG4gICAgICAgIGlmICh0aGlzLmF1dG9wbGF5KSB7XG4gICAgICAgICAgICB0aGlzLmNhcm91c2VsLmF1dG9wbGF5KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMuY2VsbExlbmd0aCA9IHRoaXMuZ2V0Q2VsbExlbmd0aCgpO1xuICAgICAgICB0aGlzLmRvdHNBcnIgPSBBcnJheSh0aGlzLmNlbGxMZW5ndGgpLmZpbGwoMSk7XG4gICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5jYXJvdXNlbC5saW5lVXBDZWxscygpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKGNoYW5nZXMud2lkdGggfHwgY2hhbmdlcy5oZWlnaHQpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0RGltZW5zaW9ucygpO1xuICAgICAgICAgICAgdGhpcy5pbml0Q2Fyb3VzZWwoKTtcbiAgICAgICAgICAgIHRoaXMuY2Fyb3VzZWwubGluZVVwQ2VsbHMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnRvdWNoZXMuZGVzdHJveSgpO1xuICAgICAgICB0aGlzLmNhcm91c2VsLmRlc3Ryb3koKVxuICAgIH1cblxuICAgIGluaXRDYXJvdXNlbCgpIHtcbiAgICAgICAgdGhpcy5jYXJvdXNlbCA9IG5ldyBDYXJvdXNlbCh7XG4gICAgICAgICAgICBlbGVtZW50OiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuY2Fyb3VzZWwtY2VsbHMnKSxcbiAgICAgICAgICAgIGNvbnRhaW5lcjogdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICBpbWFnZXM6IHRoaXMuaW1hZ2VzLFxuICAgICAgICAgICAgY2VsbFdpZHRoOiB0aGlzLmdldENlbGxXaWR0aCgpLFxuICAgICAgICAgICAgbG9vcDogdGhpcy5sb29wLFxuICAgICAgICAgICAgYXV0b3BsYXlJbnRlcnZhbDogdGhpcy5hdXRvcGxheUludGVydmFsLFxuICAgICAgICAgICAgb3ZlcmZsb3dDZWxsc0xpbWl0OiB0aGlzLm92ZXJmbG93Q2VsbHNMaW1pdCxcbiAgICAgICAgICAgIHZpc2libGVXaWR0aDogdGhpcy53aWR0aCxcbiAgICAgICAgICAgIG1hcmdpbjogdGhpcy5tYXJnaW4sXG4gICAgICAgICAgICBtaW5Td2lwZURpc3RhbmNlOiB0aGlzLm1pblN3aXBlRGlzdGFuY2UsXG4gICAgICAgICAgICB0cmFuc2l0aW9uRHVyYXRpb246IHRoaXMudHJhbnNpdGlvbkR1cmF0aW9uLFxuICAgICAgICAgICAgdHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uOiB0aGlzLnRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbixcbiAgICAgICAgICAgIHZpZGVvUHJvcGVydGllczogdGhpcy52aWRlb1Byb3BlcnRpZXNcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2V0RGltZW5zaW9ucygpIHtcbiAgICAgICAgdGhpcy5ob3N0U3R5bGVIZWlnaHQgPSB0aGlzLmhlaWdodCArICdweCc7XG4gICAgICAgIHRoaXMuaG9zdFN0eWxlV2lkdGggPSB0aGlzLndpZHRoICsgJ3B4JztcbiAgICB9XG5cbiAgICBnZXRGaWxlKGluZGV4KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhcm91c2VsLmdldEZpbGUoaW5kZXgpO1xuICAgIH1cblxuICAgIC8qIFRvdWNoc3RhcnQgKi9cbiAgICBoYW5kbGVUb3VjaHN0YXJ0ID0gKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5jYXJvdXNlbC5oYW5kbGVUb3VjaHN0YXJ0KGV2ZW50KTtcbiAgICAgICAgdGhpcy5pc01vdmluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuZXZlbnRzLmVtaXQoe1xuICAgICAgICAgICAgdHlwZTogJ3RvdWNoc3RhcnQnLFxuICAgICAgICAgICAgZXZlbnRcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyogVG91Y2htb3ZlICovXG4gICAgaGFuZGxlSG9yaXpvbnRhbFN3aXBlID0gKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5jYXJvdXNlbC5oYW5kbGVIb3Jpem9udGFsU3dpcGUoZXZlbnQpO1xuICAgICAgICB0aGlzLmV2ZW50cy5lbWl0KHtcbiAgICAgICAgICAgIHR5cGU6ICdzd2lwZScsXG4gICAgICAgICAgICBldmVudFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiBUb3VjaGVuZCAqL1xuICAgIGhhbmRsZVRvdWNoZW5kID0gKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgdG91Y2hlcyA9IGV2ZW50LnRvdWNoZXM7XG4gICAgICAgIHRoaXMuY2Fyb3VzZWwuaGFuZGxlVG91Y2hlbmQoZXZlbnQpO1xuICAgICAgICB0aGlzLmlzTW92aW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZXZlbnRzLmVtaXQoe1xuICAgICAgICAgICAgdHlwZTogJ3RvdWNoZW5kJyxcbiAgICAgICAgICAgIGV2ZW50XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qIFRhcCAqL1xuICAgIGhhbmRsZVRhcCA9IChldmVudDogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IGkgPSB0aGlzLmNhcm91c2VsLnNsaWRlQ291bnRlcjtcbiAgICAgICAgY29uc3QgY2VsbEluZGV4ID0gdGhpcy5jYXJvdXNlbC5jdXJyZW50Q2VsbEluZGV4O1xuICAgICAgICBjb25zdCBmaWxlSW5kZXggPSB0aGlzLmNhcm91c2VsLmdldEZpbGVJbmRleChpKTtcbiAgICAgICAgY29uc3QgZmlsZSA9IHRoaXMuY2Fyb3VzZWwuZ2V0RmlsZShjZWxsSW5kZXgpO1xuXG4gICAgICAgIHRoaXMuZXZlbnRzLmVtaXQoe1xuICAgICAgICAgICAgdHlwZTogJ2NsaWNrJyxcbiAgICAgICAgICAgIGZpbGU6IGZpbGUsXG4gICAgICAgICAgICBpbmRleDogZmlsZUluZGV4XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGhhbmRsZVRyYW5zaXRpb25lbmRDZWxsQ29udGFpbmVyKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuY2Fyb3VzZWwuaGFuZGxlU2xpZGVFbmQoKTtcbiAgICB9XG5cbiAgICB0b2dnbGVWaWRlbyh2aWRlbykge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBpZiAodGhpcy52aWRlb1Byb3BlcnRpZXMubm9QbGF5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmlkZW8ucGF1c2VkKSB7XG4gICAgICAgICAgICB2aWRlby5wbGF5KCk7XG4gICAgICAgICAgICB0aGlzLmlzVmlkZW9QbGF5aW5nID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZpZGVvLnBhdXNlKCk7XG4gICAgICAgICAgICB0aGlzLmlzVmlkZW9QbGF5aW5nID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgZ2V0Q3VycmVudEluZGV4KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jYXJvdXNlbC5zbGlkZUNvdW50ZXI7XG4gICAgfVxuXG4gICAgZ2V0Q2VsbFdpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIGlmICh0aGlzLl9jZWxsV2lkdGggPT09ICcxMDAlJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2NlbGxXaWR0aDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5leHQoKSB7XG4gICAgICAgIHRoaXMuY2Fyb3VzZWwubmV4dCgxKTtcbiAgICAgICAgdGhpcy5jYXJvdXNlbC5zdG9wQXV0b3BsYXkoKTtcbiAgICB9XG5cbiAgICBwcmV2KCkge1xuICAgICAgICB0aGlzLmNhcm91c2VsLnByZXYoMSk7XG4gICAgICAgIHRoaXMuY2Fyb3VzZWwuc3RvcEF1dG9wbGF5KCk7XG4gICAgfVxuXG4gICAgc2VsZWN0KGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5jYXJvdXNlbC5zZWxlY3QoaW5kZXgpO1xuICAgIH1cblxuICAgIGlzTmV4dEFycm93RGlzYWJsZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhcm91c2VsLmlzTmV4dEFycm93RGlzYWJsZWQoKTtcbiAgICB9XG5cbiAgICBpc1ByZXZBcnJvd0Rpc2FibGVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jYXJvdXNlbC5pc1ByZXZBcnJvd0Rpc2FibGVkKCk7XG4gICAgfVxuXG4gICAgZ2V0Q2VsbExlbmd0aCgpIHtcbiAgICAgICAgaWYgKHRoaXMuaW1hZ2VzKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pbWFnZXMubGVuZ3RoO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2VsbHNFbGVtZW50LmNoaWxkcmVuLmxlbmd0aDtcbiAgICAgICAgfVxuICAgIH1cbn0iXX0=

@@ -1,6 +0,1 @@

/**
* @fileoverview added by tsickle
* Generated from: lib/carousel.module.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { NgModule } from '@angular/core';

@@ -29,2 +24,2 @@ import { CommonModule } from '@angular/common';

];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci1yZXNwb25zaXZlLWNhcm91c2VsLyIsInNvdXJjZXMiOlsibGliL2Nhcm91c2VsLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBc0J6RCxNQUFNLE9BQU8saUJBQWlCOzs7WUFwQjdCLFFBQVEsU0FBQztnQkFDTixZQUFZLEVBQUU7b0JBQ1YsaUJBQWlCO2lCQUNwQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ0wsWUFBWTtpQkFDZjtnQkFDRCxPQUFPLEVBQUU7b0JBQ0wsaUJBQWlCO2lCQUNwQjtnQkFDRCxTQUFTLEVBQUUsRUFFVjtnQkFDRCxTQUFTLEVBQUUsRUFFVjtnQkFDRCxlQUFlLEVBQUU7b0JBQ2IsaUJBQWlCO2lCQUNwQjthQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDYXJvdXNlbENvbXBvbmVudCB9IGZyb20gJy4vY2Fyb3VzZWwuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgQ2Fyb3VzZWxDb21wb25lbnRcbiAgICBdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlXG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIENhcm91c2VsQ29tcG9uZW50XG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtcblxuICAgIF0sXG4gICAgYm9vdHN0cmFwOiBbXG4gICAgICAgIFxuICAgIF0sXG4gICAgZW50cnlDb21wb25lbnRzOiBbXG4gICAgICAgIENhcm91c2VsQ29tcG9uZW50XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBJdnlDYXJvdXNlbE1vZHVsZSB7IH1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1yZXNwb25zaXZlLWNhcm91c2VsL3NyYy9saWIvY2Fyb3VzZWwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBc0J6RCxNQUFNLE9BQU8saUJBQWlCOzs7WUFwQjdCLFFBQVEsU0FBQztnQkFDTixZQUFZLEVBQUU7b0JBQ1YsaUJBQWlCO2lCQUNwQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ0wsWUFBWTtpQkFDZjtnQkFDRCxPQUFPLEVBQUU7b0JBQ0wsaUJBQWlCO2lCQUNwQjtnQkFDRCxTQUFTLEVBQUUsRUFFVjtnQkFDRCxTQUFTLEVBQUUsRUFFVjtnQkFDRCxlQUFlLEVBQUU7b0JBQ2IsaUJBQWlCO2lCQUNwQjthQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDYXJvdXNlbENvbXBvbmVudCB9IGZyb20gJy4vY2Fyb3VzZWwuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgQ2Fyb3VzZWxDb21wb25lbnRcbiAgICBdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlXG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIENhcm91c2VsQ29tcG9uZW50XG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtcblxuICAgIF0sXG4gICAgYm9vdHN0cmFwOiBbXG4gICAgICAgIFxuICAgIF0sXG4gICAgZW50cnlDb21wb25lbnRzOiBbXG4gICAgICAgIENhcm91c2VsQ29tcG9uZW50XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBJdnlDYXJvdXNlbE1vZHVsZSB7IH1cbiJdfQ==

@@ -1,22 +0,1 @@

/**
* @fileoverview added by tsickle
* Generated from: lib/interfaces.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @record
*/
export function Images() { }
/**
* @record
*/
export function Image() { }
if (false) {
/** @type {?} */
Image.prototype.path;
/** @type {?|undefined} */
Image.prototype.width;
/** @type {?|undefined} */
Image.prototype.height;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItcmVzcG9uc2l2ZS1jYXJvdXNlbC8iLCJzb3VyY2VzIjpbImxpYi9pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsNEJBT0M7Ozs7QUFFRCwyQkFJQzs7O0lBSEcscUJBQWE7O0lBQ2Isc0JBQWU7O0lBQ2YsdUJBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJbWFnZXMge1xuICAgIFtpbmRleDogbnVtYmVyXTogeyBcbiAgICBcdHBhdGg6IHN0cmluZzsgXG4gICAgXHR3aWR0aD86IG51bWJlcjsgXG4gICAgXHRoZWlnaHQ/OiBudW1iZXI7XG4gICAgXHQvL3R5cGU/OiAnaW1hZ2UnIHwgJ3ZpZGVvJ1xuICAgIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2Uge1xuICAgIHBhdGg6IHN0cmluZzsgXG4gICAgd2lkdGg/OiBudW1iZXI7IFxuICAgIGhlaWdodD86IG51bWJlcjtcbn0iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItcmVzcG9uc2l2ZS1jYXJvdXNlbC9zcmMvbGliL2ludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VzIHtcbiAgICBbaW5kZXg6IG51bWJlcl06IHsgXG4gICAgXHRwYXRoOiBzdHJpbmc7IFxuICAgIFx0d2lkdGg/OiBudW1iZXI7IFxuICAgIFx0aGVpZ2h0PzogbnVtYmVyO1xuICAgIFx0Ly90eXBlPzogJ2ltYWdlJyB8ICd2aWRlbydcbiAgICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEltYWdlIHtcbiAgICBwYXRoOiBzdHJpbmc7IFxuICAgIHdpZHRoPzogbnVtYmVyOyBcbiAgICBoZWlnaHQ/OiBudW1iZXI7XG59Il19

@@ -1,22 +0,2 @@

/**
* @fileoverview added by tsickle
* Generated from: lib/touches.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @record
*/
export function Properties() { }
if (false) {
/** @type {?} */
Properties.prototype.element;
/** @type {?|undefined} */
Properties.prototype.listeners;
/** @type {?|undefined} */
Properties.prototype.resize;
}
export class Touches {
/**
* @param {?} properties
*/
constructor(properties) {

@@ -48,10 +28,6 @@ this.eventType = undefined;

/*
* Listeners
*/
* Listeners
*/
/* Touchstart */
this.handleTouchstart = (/**
* @param {?} event
* @return {?}
*/
(event) => {
this.handleTouchstart = (event) => {
this.elementPosition = this.getElementPosition();

@@ -63,10 +39,5 @@ this.touchstartTime = new Date().getTime();

this.runHandler("touchstart", event);
});
};
/* Touchmove */
this.handleTouchmove = (/**
* @param {?} event
* @return {?}
*/
(event) => {
/** @type {?} */
this.handleTouchmove = (event) => {
const touches = event.touches;

@@ -98,10 +69,5 @@ // Pan

}
});
};
/* Touchend */
this.handleTouchend = (/**
* @param {?} event
* @return {?}
*/
(event) => {
/** @type {?} */
this.handleTouchend = (event) => {
const touches = event.touches;

@@ -120,9 +86,5 @@ // Double Tap

}
});
};
/* Mousedown */
this.handleMousedown = (/**
* @param {?} event
* @return {?}
*/
(event) => {
this.handleMousedown = (event) => {
this.isMousedown = true;

@@ -135,9 +97,5 @@ this.elementPosition = this.getElementPosition();

this.runHandler("mousedown", event);
});
};
/* Mousemove */
this.handleMousemove = (/**
* @param {?} event
* @return {?}
*/
(event) => {
this.handleMousemove = (event) => {
//event.preventDefault();

@@ -166,9 +124,5 @@ if (!this.isMousedown) {

}
});
};
/* Mouseup */
this.handleMouseup = (/**
* @param {?} event
* @return {?}
*/
(event) => {
this.handleMouseup = (event) => {
// Tap

@@ -180,19 +134,11 @@ this.detectTap();

this.i = 0;
});
};
/* Wheel */
this.handleWheel = (/**
* @param {?} event
* @return {?}
*/
(event) => {
this.handleWheel = (event) => {
this.runHandler("wheel", event);
});
};
/* Resize */
this.handleResize = (/**
* @param {?} event
* @return {?}
*/
(event) => {
this.handleResize = (event) => {
this.runHandler("resize", event);
});
};
this.properties = properties;

@@ -203,14 +149,6 @@ this.element = this.properties.element;

}
/**
* @return {?}
*/
destroy() {
this.toggleEventListeners('removeEventListener');
}
/**
* @param {?} action
* @return {?}
*/
toggleEventListeners(action) {
/** @type {?} */
let listeners;

@@ -227,3 +165,2 @@ if (this.properties.listeners === 'mouse and touch') {

for (var listener in listeners) {
/** @type {?} */
const handler = listeners[listener];

@@ -259,6 +196,2 @@ // Window

}
/**
* @param {?} event
* @return {?}
*/
handleLinearSwipe(event) {

@@ -277,7 +210,2 @@ //event.preventDefault();

}
/**
* @param {?} eventName
* @param {?} response
* @return {?}
*/
runHandler(eventName, response) {

@@ -289,7 +217,3 @@ if (this.handlers[eventName]) {

/*
* Detection
*/
/**
* @param {?} touches
* @return {?}
* Detection
*/

@@ -299,5 +223,2 @@ detectPan(touches) {

}
/**
* @return {?}
*/
detectDoubleTap() {

@@ -307,5 +228,3 @@ if (this.eventType != undefined) {

}
/** @type {?} */
const currentTime = new Date().getTime();
/** @type {?} */
const tapLength = currentTime - this.lastTap;

@@ -317,14 +236,8 @@ clearTimeout(this.doubleTapTimeout);

else {
this.doubleTapTimeout = setTimeout((/**
* @return {?}
*/
() => {
this.doubleTapTimeout = setTimeout(() => {
clearTimeout(this.doubleTapTimeout);
}), this.doubleTapMinTimeout);
}, this.doubleTapMinTimeout);
}
this.lastTap = currentTime;
}
/**
* @return {?}
*/
detectTap() {

@@ -334,5 +247,3 @@ if (this.eventType != undefined) {

}
/** @type {?} */
const currentTime = new Date().getTime();
/** @type {?} */
const tapLength = currentTime - this.touchstartTime;

@@ -348,17 +259,7 @@ if (tapLength > 0) {

}
/**
* @param {?} event
* @return {?}
*/
detectPinch(event) {
/** @type {?} */
const touches = event.touches;
return (touches.length === 2 && this.eventType === undefined) || this.eventType === 'pinch';
}
/**
* @param {?} event
* @return {?}
*/
detectLinearSwipe(event) {
/** @type {?} */
const touches = event.touches;

@@ -376,11 +277,5 @@ if (touches) {

}
/**
* @param {?} event
* @return {?}
*/
getLinearSwipeType(event) {
if (this.eventType !== 'horizontal-swipe' && this.eventType !== 'vertical-swipe') {
/** @type {?} */
const movementX = Math.abs(this.moveLeft(0, event) - this.startX);
/** @type {?} */
const movementY = Math.abs(this.moveTop(0, event) - this.startY);

@@ -398,12 +293,5 @@ if ((movementY * 3) > movementX) {

}
/**
* @return {?}
*/
getElementPosition() {
return this.element.getBoundingClientRect();
}
/**
* @param {?} event
* @return {?}
*/
getTouchstartPosition(event) {

@@ -413,6 +301,2 @@ this.startX = event.touches[0].clientX - this.elementPosition.left;

}
/**
* @param {?} event
* @return {?}
*/
getMousedownPosition(event) {

@@ -422,9 +306,3 @@ this.startX = event.clientX - this.elementPosition.left;

}
/**
* @param {?} index
* @param {?} event
* @return {?}
*/
moveLeft(index, event) {
/** @type {?} */
const touches = event.touches;

@@ -438,9 +316,3 @@ if (touches) {

}
/**
* @param {?} index
* @param {?} event
* @return {?}
*/
moveTop(index, event) {
/** @type {?} */
const touches = event.touches;

@@ -454,16 +326,7 @@ if (touches) {

}
/**
* @return {?}
*/
detectTouchScreen() {
/** @type {?} */
var prefixes = ' -webkit- -moz- -o- -ms- '.split(' ');
/** @type {?} */
var mq = (/**
* @param {?} query
* @return {?}
*/
function (query) {
var mq = function (query) {
return window.matchMedia(query).matches;
});
};
if (('ontouchstart' in window)) {

@@ -474,3 +337,2 @@ return true;

// https://git.io/vznFH
/** @type {?} */
var query = ['(', prefixes.join('touch-enabled),('), 'heartz', ')'].join('');

@@ -480,7 +342,2 @@ return mq(query);

/* Public properties and methods */
/**
* @param {?} event
* @param {?} handler
* @return {?}
*/
on(event, handler) {

@@ -492,54 +349,2 @@ if (event) {

}
if (false) {
/** @type {?} */
Touches.prototype.properties;
/** @type {?} */
Touches.prototype.element;
/** @type {?} */
Touches.prototype.elementPosition;
/** @type {?} */
Touches.prototype.eventType;
/** @type {?} */
Touches.prototype.handlers;
/** @type {?} */
Touches.prototype.startX;
/** @type {?} */
Touches.prototype.startY;
/** @type {?} */
Touches.prototype.lastTap;
/** @type {?} */
Touches.prototype.doubleTapTimeout;
/** @type {?} */
Touches.prototype.doubleTapMinTimeout;
/** @type {?} */
Touches.prototype.tapMinTimeout;
/** @type {?} */
Touches.prototype.touchstartTime;
/** @type {?} */
Touches.prototype.i;
/** @type {?} */
Touches.prototype.isMousedown;
/** @type {?} */
Touches.prototype.touchListeners;
/** @type {?} */
Touches.prototype.mouseListeners;
/** @type {?} */
Touches.prototype.otherListeners;
/** @type {?} */
Touches.prototype.handleTouchstart;
/** @type {?} */
Touches.prototype.handleTouchmove;
/** @type {?} */
Touches.prototype.handleTouchend;
/** @type {?} */
Touches.prototype.handleMousedown;
/** @type {?} */
Touches.prototype.handleMousemove;
/** @type {?} */
Touches.prototype.handleMouseup;
/** @type {?} */
Touches.prototype.handleWheel;
/** @type {?} */
Touches.prototype.handleResize;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG91Y2hlcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItcmVzcG9uc2l2ZS1jYXJvdXNlbC8iLCJzb3VyY2VzIjpbImxpYi90b3VjaGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsZ0NBSUM7OztJQUhHLDZCQUFxQjs7SUFDckIsK0JBQXVDOztJQUN2Qyw0QkFBaUI7O0FBT3JCLE1BQU0sT0FBTyxPQUFPOzs7O0lBK0JoQixZQUFZLFVBQXNCO1FBM0JsQyxjQUFTLEdBQWMsU0FBUyxDQUFDO1FBQ2pDLGFBQVEsR0FBUSxFQUFFLENBQUM7UUFDbkIsV0FBTSxHQUFHLENBQUMsQ0FBQztRQUNYLFdBQU0sR0FBRyxDQUFDLENBQUM7UUFDWCxZQUFPLEdBQUcsQ0FBQyxDQUFDO1FBRVosd0JBQW1CLEdBQUcsR0FBRyxDQUFDO1FBQzFCLGtCQUFhLEdBQUcsR0FBRyxDQUFDO1FBQ3BCLG1CQUFjLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLE1BQUMsR0FBVyxDQUFDLENBQUM7UUFDZCxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUVwQixtQkFBYyxHQUFRO1lBQ2xCLFlBQVksRUFBRSxrQkFBa0I7WUFDaEMsV0FBVyxFQUFFLGlCQUFpQjtZQUM5QixVQUFVLEVBQUUsZ0JBQWdCO1NBQy9CLENBQUE7UUFDRCxtQkFBYyxHQUFRO1lBQ2xCLFdBQVcsRUFBRSxpQkFBaUI7WUFDOUIsV0FBVyxFQUFFLGlCQUFpQjtZQUM5QixTQUFTLEVBQUUsZUFBZTtZQUMxQixPQUFPLEVBQUUsYUFBYTtTQUN6QixDQUFBO1FBQ0QsbUJBQWMsR0FBUTtZQUNsQixRQUFRLEVBQUUsY0FBYztTQUMzQixDQUFBOzs7OztRQWdFRCxxQkFBZ0I7Ozs7UUFBRyxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQzlCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDakQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLElBQUksRUFBRSxD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OEJBRUM7O0lBSUQsK0JBRUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFByb3BlcnRpZXMge1xyXG4gICAgZWxlbWVudDogSFRNTEVsZW1lbnQ7XHJcbiAgICBsaXN0ZW5lcnM/OiAnYXV0bycgfCAnbW91c2UgYW5kIHRvdWNoJztcclxuICAgIHJlc2l6ZT86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEV2ZW50VHlwZSA9IHVuZGVmaW5lZCB8ICd0b3VjaGVuZCcgfCAncGFuJyB8ICdwaW5jaCcgfCAnaG9yaXpvbnRhbC1zd2lwZScgfCAndmVydGljYWwtc3dpcGUnIHwgJ3RhcCcgfCAnbG9uZ3RhcCc7XHJcbmV4cG9ydCB0eXBlIFRvdWNoSGFuZGxlciA9ICdoYW5kbGVUb3VjaHN0YXJ0JyB8ICdoYW5kbGVUb3VjaG1vdmUnIHwgJ2hhbmRsZVRvdWNoZW5kJztcclxuZXhwb3J0IHR5cGUgTW91c2VIYW5kbGVyID0gJ2hhbmRsZU1vdXNlZG93bicgfCAnaGFuZGxlTW91c2Vtb3ZlJyB8ICdoYW5kbGVNb3VzZXVwJztcclxuXHJcbmV4cG9ydCBjbGFzcyBUb3VjaGVzIHtcclxuICAgIHByb3BlcnRpZXM6IFByb3BlcnRpZXM7XHJcbiAgICBlbGVtZW50OiBIVE1MRWxlbWVudDtcclxuICAgIGVsZW1lbnRQb3NpdGlvbjogQ2xpZW50UmVjdDtcclxuICAgIGV2ZW50VHlwZTogRXZlbnRUeXBlID0gdW5kZWZpbmVkO1xyXG4gICAgaGFuZGxlcnM6IGFueSA9IHt9O1xyXG4gICAgc3RhcnRYID0gMDtcclxuICAgIHN0YXJ0WSA9IDA7XHJcbiAgICBsYXN0VGFwID0gMDtcclxuICAgIGRvdWJsZVRhcFRpbWVvdXQ6IGFueTtcclxuICAgIGRvdWJsZVRhcE1pblRpbWVvdXQgPSAzMDA7XHJcbiAgICB0YXBNaW5UaW1lb3V0ID0gMjAwO1xyXG4gICAgdG91Y2hzdGFydFRpbWUgPSAwO1xyXG4gICAgaTogbnVtYmVyID0gMDtcclxuICAgIGlzTW91c2Vkb3duID0gZmFsc2U7XHJcblxyXG4gICAgdG91Y2hMaXN0ZW5lcnM6IGFueSA9IHtcclxuICAgICAgICBcInRvdWNoc3RhcnRcIjogXCJoYW5kbGVUb3VjaHN0YXJ0XCIsXHJcbiAgICAgICAgXCJ0b3VjaG1vdmVcIjogXCJoYW5kbGVUb3VjaG1vdmVcIixcclxuICAgICAgICBcInRvdWNoZW5kXCI6IFwiaGFuZGxlVG91Y2hlbmRcIlxyXG4gICAgfVxyXG4gICAgbW91c2VMaXN0ZW5lcnM6IGFueSA9IHtcclxuICAgICAgICBcIm1vdXNlZG93blwiOiBcImhhbmRsZU1vdXNlZG93blwiLFxyXG4gICAgICAgIFwibW91c2Vtb3ZlXCI6IFwiaGFuZGxlTW91c2Vtb3ZlXCIsXHJcbiAgICAgICAgXCJtb3VzZXVwXCI6IFwiaGFuZGxlTW91c2V1cFwiLFxyXG4gICAgICAgIFwid2hlZWxcIjogXCJoYW5kbGVXaGVlbFwiXHJcbiAgICB9XHJcbiAgICBvdGhlckxpc3RlbmVyczogYW55ID0ge1xyXG4gICAgICAgIFwicmVzaXplXCI6IFwiaGFuZGxlUmVzaXplXCJcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcm9wZXJ0aWVzOiBQcm9wZXJ0aWVzKSB7XHJcbiAgICAgICAgdGhpcy5wcm9wZXJ0aWVzID0gcHJvcGVydGllcztcclxuICAgICAgICB0aGlzLmVsZW1lbnQgPSB0aGlzLnByb3BlcnRpZXMuZWxlbWVudDtcclxuICAgICAgICB0aGlzLmVsZW1lbnRQb3NpdGlvbiA9IHRoaXMuZ2V0RWxlbWVudFBvc2l0aW9uKCk7XHJcblxyXG4gICAgICAgIHRoaXMudG9nZ2xlRXZlbnRMaXN0ZW5lcnMoJ2FkZEV2ZW50TGlzdGVuZXInKTtcclxuICAgIH1cclxuXHJcbiAgICBkZXN0cm95KCkge1xyXG4gICAgICAgIHRoaXMudG9nZ2xlRXZlbnRMaXN0ZW5lcnMoJ3JlbW92ZUV2ZW50TGlzdGVuZXInKTtcclxuICAgIH1cclxuXHJcbiAgICB0b2dnbGVFdmVudExpc3RlbmVycyhhY3Rpb246ICdhZGRFdmVudExpc3RlbmVyJyB8ICdyZW1vdmVFdmVudExpc3RlbmVyJykge1xyXG4gICAgICAgIGxldCBsaXN0ZW5lcnM7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnByb3BlcnRpZXMubGlzdGVuZXJzID09PSAnbW91c2UgYW5kIHRvdWNoJykge1xyXG4gICAgICAgICAgICBsaXN0ZW5lcnMgPSBPYmplY3QuYXNzaWduKHRoaXMudG91Y2hMaXN0ZW5lcnMsIHRoaXMubW91c2VMaXN0ZW5lcnMpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGxpc3RlbmVycyA9IHRoaXMuZGV0ZWN0VG91Y2hTY3JlZW4oKSA/IHRoaXMudG91Y2hMaXN0ZW5lcnMgOiB0aGlzLm1vdXNlTGlzdGVuZXJzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMucHJvcGVydGllcy5yZXNpemUpIHtcclxuICAgICAgICAgICAgbGlzdGVuZXJzID0gT2JqZWN0LmFzc2lnbihsaXN0ZW5lcnMsIHRoaXMub3RoZXJMaXN0ZW5lcnMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZm9yICh2YXIgbGlzdGVuZXIgaW4gbGlzdGVuZXJzKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZXI6IE1vdXNlSGFuZGxlciA9IGxpc3RlbmVyc1tsaXN0ZW5lcl07XHJcblxyXG4gICAgICAgICAgICAvLyBXaW5kb3dcclxuICAgICAgICAgICAgaWYgKGxpc3RlbmVyID09PSBcInJlc2l6ZVwiKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoYWN0aW9uID09PSAnYWRkRXZlbnRMaXN0ZW5lcicpIHtcclxuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihsaXN0ZW5lciwgdGhpc1toYW5kbGVyXSwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKGFjdGlvbiA9PT0gJ3JlbW92ZUV2ZW50TGlzdGVuZXInKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIobGlzdGVuZXIsIHRoaXNbaGFuZGxlcl0sIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gRG9jdW1lbnRcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChsaXN0ZW5lciA9PT0gJ21vdXNldXAnIHx8IGxpc3RlbmVyID09PSBcIm1vdXNlbW92ZVwiKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoYWN0aW9uID09PSAnYWRkRXZlbnRMaXN0ZW5lcicpIHtcclxuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKGxpc3RlbmVyLCB0aGlzW2hhbmRsZXJdLCBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoYWN0aW9uID09PSAncmVtb3ZlRXZlbnRMaXN0ZW5lcicpIHtcclxuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKGxpc3RlbmVyLCB0aGlzW2hhbmRsZXJdLCBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIEVsZW1lbnRcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGlmIChhY3Rpb24gPT09ICdhZGRFdmVudExpc3RlbmVyJykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKGxpc3RlbmVyLCB0aGlzW2hhbmRsZXJdLCBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoYWN0aW9uID09PSAncmVtb3ZlRXZlbnRMaXN0ZW5lcicpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihsaXN0ZW5lciwgdGhpc1toYW5kbGVyXSwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qXHJcbiAgICAgKiBMaXN0ZW5lcnNcclxuICAgICAqL1xyXG5cclxuICAgIC8qIFRvdWNoc3RhcnQgKi9cclxuXHJcbiAgICBoYW5kbGVUb3VjaHN0YXJ0ID0gKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmVsZW1lbnRQb3NpdGlvbiA9IHRoaXMuZ2V0RWxlbWVudFBvc2l0aW9uKCk7XHJcbiAgICAgICAgdGhpcy50b3VjaHN0YXJ0VGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5ldmVudFR5cGUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICB0aGlzLmdldFRvdWNoc3RhcnRQb3NpdGlvbihldmVudCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnJ1bkhhbmRsZXIoXCJ0b3VjaHN0YXJ0XCIsIGV2ZW50KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyogVG91Y2htb3ZlICovXHJcblxyXG4gICAgaGFuZGxlVG91Y2htb3ZlID0gKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCB0b3VjaGVzID0gZXZlbnQudG91Y2hlcztcclxuXHJcbiAgICAgICAgLy8gUGFuXHJcbiAgICAgICAgaWYgKHRoaXMuZGV0ZWN0UGFuKHRvdWNoZXMpKSB7XHJcbiAgICAgICAgICAgIHRoaXMucnVuSGFuZGxlcihcInBhblwiLCBldmVudCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBQaW5jaFxyXG4gICAgICAgIGlmICh0aGlzLmRldGVjdFBpbmNoKGV2ZW50KSkge1xyXG4gICAgICAgICAgICB0aGlzLnJ1bkhhbmRsZXIoXCJwaW5jaFwiLCBldmVudCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBMaW5lYXIgc3dpcGVcclxuICAgICAgICBzd2l0Y2ggKHRoaXMuZGV0ZWN0TGluZWFyU3dpcGUoZXZlbnQpKSB7XHJcbiAgICAgICAgICAgIGNhc2UgXCJob3Jpem9udGFsLXN3aXBlXCI6XHJcbiAgICAgICAgICAgICAgICBldmVudC5zd2lwZVR5cGUgPSBcImhvcml6b250YWwtc3dpcGVcIjtcclxuICAgICAgICAgICAgICAgIHRoaXMucnVuSGFuZGxlcihcImhvcml6b250YWwtc3dpcGVcIiwgZXZlbnQpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJ2ZXJ0aWNhbC1zd2lwZVwiOlxyXG4gICAgICAgICAgICAgICAgZXZlbnQuc3dpcGVUeXBlID0gXCJ2ZXJ0aWNhbC1zd2lwZVwiO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ydW5IYW5kbGVyKFwidmVydGljYWwtc3dpcGVcIiwgZXZlbnQpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBMaW5lYXIgc3dpcGVcclxuICAgICAgICBpZiAodGhpcy5kZXRlY3RMaW5lYXJTd2lwZShldmVudCkgfHxcclxuICAgICAgICAgICAgdGhpcy5ldmVudFR5cGUgPT09ICdob3Jpem9udGFsLXN3aXBlJyB8fFxyXG4gICAgICAgICAgICB0aGlzLmV2ZW50VHlwZSA9PT0gJ3ZlcnRpY2FsLXN3aXBlJykge1xyXG5cclxuICAgICAgICAgICAgdGhpcy5oYW5kbGVMaW5lYXJTd2lwZShldmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZUxpbmVhclN3aXBlKGV2ZW50OiBhbnkpIHtcclxuICAgICAgICAvL2V2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG4gICAgICAgIHRoaXMuaSsrO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5pID4gMykge1xyXG4gICAgICAgICAgICB0aGlzLmV2ZW50VHlwZSA9IHRoaXMuZ2V0TGluZWFyU3dpcGVUeXBlKGV2ZW50KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmV2ZW50VHlwZSA9PT0gJ2hvcml6b250YWwtc3dpcGUnKSB7XHJcbiAgICAgICAgICAgIHRoaXMucnVuSGFuZGxlcignaG9yaXpvbnRhbC1zd2lwZScsIGV2ZW50KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmV2ZW50VHlwZSA9PT0gJ3ZlcnRpY2FsLXN3aXBlJykge1xyXG4gICAgICAgICAgICB0aGlzLnJ1bkhhbmRsZXIoJ3ZlcnRpY2FsLXN3aXBlJywgZXZlbnQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLyogVG91Y2hlbmQgKi9cclxuXHJcbiAgICBoYW5kbGVUb3VjaGVuZCA9IChldmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc3QgdG91Y2hlcyA9IGV2ZW50LnRvdWNoZXM7XHJcblxyXG4gICAgICAgIC8vIERvdWJsZSBUYXBcclxuICAgICAgICBpZiAodGhpcy5kZXRlY3REb3VibGVUYXAoKSkge1xyXG4gICAgICAgICAgICB0aGlzLnJ1bkhhbmRsZXIoXCJkb3VibGUtdGFwXCIsIGV2ZW50KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIFRhcFxyXG4gICAgICAgIHRoaXMuZGV0ZWN0VGFwKCk7XHJcblxyXG4gICAgICAgIHRoaXMucnVuSGFuZGxlcihcInRvdWNoZW5kXCIsIGV2ZW50KTtcclxuICAgICAgICB0aGlzLmV2ZW50VHlwZSA9ICd0b3VjaGVuZCc7XHJcblxyXG4gICAgICAgIGlmICh0b3VjaGVzICYmIHRvdWNoZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZXZlbnRUeXBlID0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICB0aGlzLmkgPSAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLyogTW91c2Vkb3duICovXHJcblxyXG4gICAgaGFuZGxlTW91c2Vkb3duID0gKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmlzTW91c2Vkb3duID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmVsZW1lbnRQb3NpdGlvbiA9IHRoaXMuZ2V0RWxlbWVudFBvc2l0aW9uKCk7XHJcbiAgICAgICAgdGhpcy50b3VjaHN0YXJ0VGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5ldmVudFR5cGUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICB0aGlzLmdldE1vdXNlZG93blBvc2l0aW9uKGV2ZW50KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMucnVuSGFuZGxlcihcIm1vdXNlZG93blwiLCBldmVudCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qIE1vdXNlbW92ZSAqL1xyXG5cclxuICAgIGhhbmRsZU1vdXNlbW92ZSA9IChldmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgLy9ldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGlmICghdGhpcy5pc01vdXNlZG93bikge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBQYW5cclxuICAgICAgICB0aGlzLnJ1bkhhbmRsZXIoXCJwYW5cIiwgZXZlbnQpO1xyXG5cclxuICAgICAgICAvLyBMaW5lYXIgc3dpcGVcclxuICAgICAgICBzd2l0Y2ggKHRoaXMuZGV0ZWN0TGluZWFyU3dpcGUoZXZlbnQpKSB7XHJcbiAgICAgICAgICAgIGNhc2UgXCJob3Jpem9udGFsLXN3aXBlXCI6XHJcbiAgICAgICAgICAgICAgICBldmVudC5zd2lwZVR5cGUgPSBcImhvcml6b250YWwtc3dpcGVcIjtcclxuICAgICAgICAgICAgICAgIHRoaXMucnVuSGFuZGxlcihcImhvcml6b250YWwtc3dpcGVcIiwgZXZlbnQpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJ2ZXJ0aWNhbC1zd2lwZVwiOlxyXG4gICAgICAgICAgICAgICAgZXZlbnQuc3dpcGVUeXBlID0gXCJ2ZXJ0aWNhbC1zd2lwZVwiO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ydW5IYW5kbGVyKFwidmVydGljYWwtc3dpcGVcIiwgZXZlbnQpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBMaW5lYXIgc3dpcGVcclxuICAgICAgICBpZiAodGhpcy5kZXRlY3RMaW5lYXJTd2lwZShldmVudCkgfHxcclxuICAgICAgICAgICAgdGhpcy5ldmVudFR5cGUgPT09ICdob3Jpem9udGFsLXN3aXBlJyB8fFxyXG4gICAgICAgICAgICB0aGlzLmV2ZW50VHlwZSA9PT0gJ3ZlcnRpY2FsLXN3aXBlJykge1xyXG5cclxuICAgICAgICAgICAgdGhpcy5oYW5kbGVMaW5lYXJTd2lwZShldmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiBNb3VzZXVwICovXHJcblxyXG4gICAgaGFuZGxlTW91c2V1cCA9IChldmVudDogYW55KSA9PiB7XHJcblxyXG4gICAgICAgIC8vIFRhcFxyXG4gICAgICAgIHRoaXMuZGV0ZWN0VGFwKCk7XHJcblxyXG4gICAgICAgIHRoaXMuaXNNb3VzZWRvd24gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnJ1bkhhbmRsZXIoXCJtb3VzZXVwXCIsIGV2ZW50KTtcclxuICAgICAgICB0aGlzLmV2ZW50VHlwZSA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLmkgPSAwO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiBXaGVlbCAqL1xyXG5cclxuICAgIGhhbmRsZVdoZWVsID0gKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnJ1bkhhbmRsZXIoXCJ3aGVlbFwiLCBldmVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyogUmVzaXplICovXHJcblxyXG4gICAgaGFuZGxlUmVzaXplID0gKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnJ1bkhhbmRsZXIoXCJyZXNpemVcIiwgZXZlbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIHJ1bkhhbmRsZXIoZXZlbnROYW1lOiBhbnksIHJlc3BvbnNlOiBhbnkpIHtcclxuICAgICAgICBpZiAodGhpcy5oYW5kbGVyc1tldmVudE5hbWVdKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlcnNbZXZlbnROYW1lXShyZXNwb25zZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKlxyXG4gICAgICogRGV0ZWN0aW9uXHJcbiAgICAgKi9cclxuXHJcbiAgICBkZXRlY3RQYW4odG91Y2hlczogYW55KSB7XHJcbiAgICAgICAgcmV0dXJuIHRvdWNoZXMubGVuZ3RoID09PSAxICYmICF0aGlzLmV2ZW50VHlwZSB8fCB0aGlzLmV2ZW50VHlwZSA9PT0gJ3Bhbic7XHJcbiAgICB9XHJcblxyXG4gICAgZGV0ZWN0RG91YmxlVGFwKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmV2ZW50VHlwZSAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgY3VycmVudFRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuICAgICAgICBjb25zdCB0YXBMZW5ndGggPSBjdXJyZW50VGltZSAtIHRoaXMubGFzdFRhcDtcclxuXHJcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuZG91YmxlVGFwVGltZW91dCk7XHJcblxyXG4gICAgICAgIGlmICh0YXBMZW5ndGggPCB0aGlzLmRvdWJsZVRhcE1pblRpbWVvdXQgJiYgdGFwTGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmRvdWJsZVRhcFRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmRvdWJsZVRhcFRpbWVvdXQpO1xyXG4gICAgICAgICAgICB9LCB0aGlzLmRvdWJsZVRhcE1pblRpbWVvdXQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmxhc3RUYXAgPSBjdXJyZW50VGltZTtcclxuICAgIH1cclxuXHJcbiAgICBkZXRlY3RUYXAoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuZXZlbnRUeXBlICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBjdXJyZW50VGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgIGNvbnN0IHRhcExlbmd0aCA9IGN1cnJlbnRUaW1lIC0gdGhpcy50b3VjaHN0YXJ0VGltZTtcclxuXHJcbiAgICAgICAgaWYgKHRhcExlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgaWYgKHRhcExlbmd0aCA8IHRoaXMudGFwTWluVGltZW91dCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ydW5IYW5kbGVyKFwidGFwXCIsIGV2ZW50KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucnVuSGFuZGxlcihcImxvbmd0YXBcIiwgZXZlbnQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGRldGVjdFBpbmNoKGV2ZW50OiBhbnkpIHtcclxuICAgICAgICBjb25zdCB0b3VjaGVzID0gZXZlbnQudG91Y2hlcztcclxuICAgICAgICByZXR1cm4gKHRvdWNoZXMubGVuZ3RoID09PSAyICYmIHRoaXMuZXZlbnRUeXBlID09PSB1bmRlZmluZWQpIHx8IHRoaXMuZXZlbnRUeXBlID09PSAncGluY2gnO1xyXG4gICAgfVxyXG5cclxuICAgIGRldGVjdExpbmVhclN3aXBlKGV2ZW50OiBhbnkpIHtcclxuICAgICAgICBjb25zdCB0b3VjaGVzID0gZXZlbnQudG91Y2hlcztcclxuXHJcbiAgICAgICAgaWYgKHRvdWNoZXMpIHtcclxuICAgICAgICAgICAgaWYgKHRvdWNoZXMubGVuZ3RoID09PSAxICYmICF0aGlzLmV2ZW50VHlwZSB8fCB0aGlzLmV2ZW50VHlwZSA9PT0gJ2hvcml6b250YWwtc3dpcGUnIHx8IHRoaXMuZXZlbnRUeXBlID09PSAndmVydGljYWwtc3dpcGUnKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRMaW5lYXJTd2lwZVR5cGUoZXZlbnQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLmV2ZW50VHlwZSB8fCB0aGlzLmV2ZW50VHlwZSA9PT0gJ2hvcml6b250YWwtc3dpcGUnIHx8IHRoaXMuZXZlbnRUeXBlID09PSAndmVydGljYWwtc3dpcGUnKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRMaW5lYXJTd2lwZVR5cGUoZXZlbnQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldExpbmVhclN3aXBlVHlwZShldmVudDogYW55KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZXZlbnRUeXBlICE9PSAnaG9yaXpvbnRhbC1zd2lwZScgJiYgdGhpcy5ldmVudFR5cGUgIT09ICd2ZXJ0aWNhbC1zd2lwZScpIHtcclxuICAgICAgICAgICAgY29uc3QgbW92ZW1lbnRYID0gTWF0aC5hYnModGhpcy5tb3ZlTGVmdCgwLCBldmVudCkgLSB0aGlzLnN0YXJ0WCk7XHJcbiAgICAgICAgICAgIGNvbnN0IG1vdmVtZW50WSA9IE1hdGguYWJzKHRoaXMubW92ZVRvcCgwLCBldmVudCkgLSB0aGlzLnN0YXJ0WSk7XHJcblxyXG4gICAgICAgICAgICBpZiAoKG1vdmVtZW50WSAqIDMpID4gbW92ZW1lbnRYKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3ZlcnRpY2FsLXN3aXBlJztcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAnaG9yaXpvbnRhbC1zd2lwZSc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5ldmVudFR5cGU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldEVsZW1lbnRQb3NpdGlvbigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFRvdWNoc3RhcnRQb3NpdGlvbihldmVudDogYW55KSB7XHJcbiAgICAgICAgdGhpcy5zdGFydFggPSBldmVudC50b3VjaGVzWzBdLmNsaWVudFggLSB0aGlzLmVsZW1lbnRQb3NpdGlvbi5sZWZ0O1xyXG4gICAgICAgIHRoaXMuc3RhcnRZID0gZXZlbnQudG91Y2hlc1swXS5jbGllbnRZIC0gdGhpcy5lbGVtZW50UG9zaXRpb24udG9wO1xyXG4gICAgfVxyXG5cclxuICAgIGdldE1vdXNlZG93blBvc2l0aW9uKGV2ZW50OiBhbnkpIHtcclxuICAgICAgICB0aGlzLnN0YXJ0WCA9IGV2ZW50LmNsaWVudFggLSB0aGlzLmVsZW1lbnRQb3NpdGlvbi5sZWZ0O1xyXG4gICAgICAgIHRoaXMuc3RhcnRZID0gZXZlbnQuY2xpZW50WSAtIHRoaXMuZWxlbWVudFBvc2l0aW9uLnRvcDtcclxuICAgIH1cclxuXHJcbiAgICBtb3ZlTGVmdChpbmRleDogYW55LCBldmVudDogYW55KSB7XHJcbiAgICAgICAgY29uc3QgdG91Y2hlcyA9IGV2ZW50LnRvdWNoZXM7XHJcblxyXG4gICAgICAgIGlmICh0b3VjaGVzKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0b3VjaGVzW2luZGV4XS5jbGllbnRYIC0gdGhpcy5lbGVtZW50UG9zaXRpb24ubGVmdDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gZXZlbnQuY2xpZW50WCAtIHRoaXMuZWxlbWVudFBvc2l0aW9uLmxlZnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG1vdmVUb3AoaW5kZXg6IGFueSwgZXZlbnQ6IGFueSkge1xyXG4gICAgICAgIGNvbnN0IHRvdWNoZXMgPSBldmVudC50b3VjaGVzO1xyXG5cclxuICAgICAgICBpZiAodG91Y2hlcykge1xyXG4gICAgICAgICAgICByZXR1cm4gdG91Y2hlc1tpbmRleF0uY2xpZW50WSAtIHRoaXMuZWxlbWVudFBvc2l0aW9uLnRvcDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gZXZlbnQuY2xpZW50WSAtIHRoaXMuZWxlbWVudFBvc2l0aW9uLnRvcDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZGV0ZWN0VG91Y2hTY3JlZW4oKSB7XHJcbiAgICAgICAgdmFyIHByZWZpeGVzID0gJyAtd2Via2l0LSAtbW96LSAtby0gLW1zLSAnLnNwbGl0KCcgJyk7XHJcbiAgICAgICAgdmFyIG1xID0gZnVuY3Rpb24ocXVlcnk6IGFueSkge1xyXG4gICAgICAgICAgICByZXR1cm4gd2luZG93Lm1hdGNoTWVkaWEocXVlcnkpLm1hdGNoZXM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoKCdvbnRvdWNoc3RhcnQnIGluIHdpbmRvdykpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBpbmNsdWRlIHRoZSAnaGVhcnR6JyBhcyBhIHdheSB0byBoYXZlIGEgbm9uIG1hdGNoaW5nIE1RIHRvIGhlbHAgdGVybWluYXRlIHRoZSBqb2luXHJcbiAgICAgICAgLy8gaHR0cHM6Ly9naXQuaW8vdnpuRkhcclxuICAgICAgICB2YXIgcXVlcnkgPSBbJygnLCBwcmVmaXhlcy5qb2luKCd0b3VjaC1lbmFibGVkKSwoJyksICdoZWFydHonLCAnKSddLmpvaW4oJycpO1xyXG4gICAgICAgIHJldHVybiBtcShxdWVyeSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qIFB1YmxpYyBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzICovXHJcbiAgICBvbihldmVudDogRXZlbnRUeXBlLCBoYW5kbGVyOiBGdW5jdGlvbikge1xyXG4gICAgICAgIGlmIChldmVudCkge1xyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZXJzW2V2ZW50XSA9IGhhbmRsZXI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG91Y2hlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItcmVzcG9uc2l2ZS1jYXJvdXNlbC9zcmMvbGliL3RvdWNoZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUEsTUFBTSxPQUFPLE9BQU87SUErQmhCLFlBQVksVUFBc0I7UUEzQmxDLGNBQVMsR0FBYyxTQUFTLENBQUM7UUFDakMsYUFBUSxHQUFRLEVBQUUsQ0FBQztRQUNuQixXQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsV0FBTSxHQUFHLENBQUMsQ0FBQztRQUNYLFlBQU8sR0FBRyxDQUFDLENBQUM7UUFFWix3QkFBbUIsR0FBRyxHQUFHLENBQUM7UUFDMUIsa0JBQWEsR0FBRyxHQUFHLENBQUM7UUFDcEIsbUJBQWMsR0FBRyxDQUFDLENBQUM7UUFDbkIsTUFBQyxHQUFXLENBQUMsQ0FBQztRQUNkLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXBCLG1CQUFjLEdBQVE7WUFDbEIsWUFBWSxFQUFFLGtCQUFrQjtZQUNoQyxXQUFXLEVBQUUsaUJBQWlCO1lBQzlCLFVBQVUsRUFBRSxnQkFBZ0I7U0FDL0IsQ0FBQTtRQUNELG1CQUFjLEdBQVE7WUFDbEIsV0FBVyxFQUFFLGlCQUFpQjtZQUM5QixXQUFXLEVBQUUsaUJBQWlCO1lBQzlCLFNBQVMsRUFBRSxlQUFlO1lBQzFCLE9BQU8sRUFBRSxhQUFhO1NBQ3pCLENBQUE7UUFDRCxtQkFBYyxHQUFRO1lBQ2xCLFFBQVEsRUFBRSxjQUFjO1NBQzNCLENBQUE7UUEwREQ7O1dBRUc7UUFFSCxnQkFBZ0I7UUFFaEIscUJBQWdCLEdBQUcsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUM5QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQ2pELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUUzQyxJQUFJ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QU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUM7U0FDNUQ7YUFBTTtZQUNILE9BQU8sS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQztTQUNuRDtJQUNMLENBQUM7SUFFRCxpQkFBaUI7UUFDYixJQUFJLFFBQVEsR0FBRywyQkFBMkIsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEQsSUFBSSxFQUFFLEdBQUcsVUFBUyxLQUFVO1lBQ3hCLE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDNUMsQ0FBQyxDQUFBO1FBRUQsSUFBSSxDQUFDLGNBQWMsSUFBSSxNQUFNLENBQUMsRUFBRTtZQUM1QixPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQscUZBQXFGO1FBQ3JGLHVCQUF1QjtRQUN2QixJQUFJLEtBQUssR0FBRyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3RSxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBR0QsbUNBQW1DO0lBQ25DLEVBQUUsQ0FBQyxLQUFnQixFQUFFLE9BQWlCO1FBQ2xDLElBQUksS0FBSyxFQUFFO1lBQ1AsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxPQUFPLENBQUM7U0FDbEM7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFByb3BlcnRpZXMge1xyXG4gICAgZWxlbWVudDogSFRNTEVsZW1lbnQ7XHJcbiAgICBsaXN0ZW5lcnM/OiAnYXV0bycgfCAnbW91c2UgYW5kIHRvdWNoJztcclxuICAgIHJlc2l6ZT86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEV2ZW50VHlwZSA9IHVuZGVmaW5lZCB8ICd0b3VjaGVuZCcgfCAncGFuJyB8ICdwaW5jaCcgfCAnaG9yaXpvbnRhbC1zd2lwZScgfCAndmVydGljYWwtc3dpcGUnIHwgJ3RhcCcgfCAnbG9uZ3RhcCc7XHJcbmV4cG9ydCB0eXBlIFRvdWNoSGFuZGxlciA9ICdoYW5kbGVUb3VjaHN0YXJ0JyB8ICdoYW5kbGVUb3VjaG1vdmUnIHwgJ2hhbmRsZVRvdWNoZW5kJztcclxuZXhwb3J0IHR5cGUgTW91c2VIYW5kbGVyID0gJ2hhbmRsZU1vdXNlZG93bicgfCAnaGFuZGxlTW91c2Vtb3ZlJyB8ICdoYW5kbGVNb3VzZXVwJztcclxuXHJcbmV4cG9ydCBjbGFzcyBUb3VjaGVzIHtcclxuICAgIHByb3BlcnRpZXM6IFByb3BlcnRpZXM7XHJcbiAgICBlbGVtZW50OiBIVE1MRWxlbWVudDtcclxuICAgIGVsZW1lbnRQb3NpdGlvbjogQ2xpZW50UmVjdDtcclxuICAgIGV2ZW50VHlwZTogRXZlbnRUeXBlID0gdW5kZWZpbmVkO1xyXG4gICAgaGFuZGxlcnM6IGFueSA9IHt9O1xyXG4gICAgc3RhcnRYID0gMDtcclxuICAgIHN0YXJ0WSA9IDA7XHJcbiAgICBsYXN0VGFwID0gMDtcclxuICAgIGRvdWJsZVRhcFRpbWVvdXQ6IGFueTtcclxuICAgIGRvdWJsZVRhcE1pblRpbWVvdXQgPSAzMDA7XHJcbiAgICB0YXBNaW5UaW1lb3V0ID0gMjAwO1xyXG4gICAgdG91Y2hzdGFydFRpbWUgPSAwO1xyXG4gICAgaTogbnVtYmVyID0gMDtcclxuICAgIGlzTW91c2Vkb3duID0gZmFsc2U7XHJcblxyXG4gICAgdG91Y2hMaXN0ZW5lcnM6IGFueSA9IHtcclxuICAgICAgICBcInRvdWNoc3RhcnRcIjogXCJoYW5kbGVUb3VjaHN0YXJ0XCIsXHJcbiAgICAgICAgXCJ0b3VjaG1vdmVcIjogXCJoYW5kbGVUb3VjaG1vdmVcIixcclxuICAgICAgICBcInRvdWNoZW5kXCI6IFwiaGFuZGxlVG91Y2hlbmRcIlxyXG4gICAgfVxyXG4gICAgbW91c2VMaXN0ZW5lcnM6IGFueSA9IHtcclxuICAgICAgICBcIm1vdXNlZG93blwiOiBcImhhbmRsZU1vdXNlZG93blwiLFxyXG4gICAgICAgIFwibW91c2Vtb3ZlXCI6IFwiaGFuZGxlTW91c2Vtb3ZlXCIsXHJcbiAgICAgICAgXCJtb3VzZXVwXCI6IFwiaGFuZGxlTW91c2V1cFwiLFxyXG4gICAgICAgIFwid2hlZWxcIjogXCJoYW5kbGVXaGVlbFwiXHJcbiAgICB9XHJcbiAgICBvdGhlckxpc3RlbmVyczogYW55ID0ge1xyXG4gICAgICAgIFwicmVzaXplXCI6IFwiaGFuZGxlUmVzaXplXCJcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcm9wZXJ0aWVzOiBQcm9wZXJ0aWVzKSB7XHJcbiAgICAgICAgdGhpcy5wcm9wZXJ0aWVzID0gcHJvcGVydGllcztcclxuICAgICAgICB0aGlzLmVsZW1lbnQgPSB0aGlzLnByb3BlcnRpZXMuZWxlbWVudDtcclxuICAgICAgICB0aGlzLmVsZW1lbnRQb3NpdGlvbiA9IHRoaXMuZ2V0RWxlbWVudFBvc2l0aW9uKCk7XHJcblxyXG4gICAgICAgIHRoaXMudG9nZ2xlRXZlbnRMaXN0ZW5lcnMoJ2FkZEV2ZW50TGlzdGVuZXInKTtcclxuICAgIH1cclxuXHJcbiAgICBkZXN0cm95KCkge1xyXG4gICAgICAgIHRoaXMudG9nZ2xlRXZlbnRMaXN0ZW5lcnMoJ3JlbW92ZUV2ZW50TGlzdGVuZXInKTtcclxuICAgIH1cclxuXHJcbiAgICB0b2dnbGVFdmVudExpc3RlbmVycyhhY3Rpb246ICdhZGRFdmVudExpc3RlbmVyJyB8ICdyZW1vdmVFdmVudExpc3RlbmVyJykge1xyXG4gICAgICAgIGxldCBsaXN0ZW5lcnM7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnByb3BlcnRpZXMubGlzdGVuZXJzID09PSAnbW91c2UgYW5kIHRvdWNoJykge1xyXG4gICAgICAgICAgICBsaXN0ZW5lcnMgPSBPYmplY3QuYXNzaWduKHRoaXMudG91Y2hMaXN0ZW5lcnMsIHRoaXMubW91c2VMaXN0ZW5lcnMpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGxpc3RlbmVycyA9IHRoaXMuZGV0ZWN0VG91Y2hTY3JlZW4oKSA/IHRoaXMudG91Y2hMaXN0ZW5lcnMgOiB0aGlzLm1vdXNlTGlzdGVuZXJzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMucHJvcGVydGllcy5yZXNpemUpIHtcclxuICAgICAgICAgICAgbGlzdGVuZXJzID0gT2JqZWN0LmFzc2lnbihsaXN0ZW5lcnMsIHRoaXMub3RoZXJMaXN0ZW5lcnMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZm9yICh2YXIgbGlzdGVuZXIgaW4gbGlzdGVuZXJzKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZXI6IE1vdXNlSGFuZGxlciA9IGxpc3RlbmVyc1tsaXN0ZW5lcl07XHJcblxyXG4gICAgICAgICAgICAvLyBXaW5kb3dcclxuICAgICAgICAgICAgaWYgKGxpc3RlbmVyID09PSBcInJlc2l6ZVwiKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoYWN0aW9uID09PSAnYWRkRXZlbnRMaXN0ZW5lcicpIHtcclxuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihsaXN0ZW5lciwgdGhpc1toYW5kbGVyXSwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKGFjdGlvbiA9PT0gJ3JlbW92ZUV2ZW50TGlzdGVuZXInKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIobGlzdGVuZXIsIHRoaXNbaGFuZGxlcl0sIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gRG9jdW1lbnRcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChsaXN0ZW5lciA9PT0gJ21vdXNldXAnIHx8IGxpc3RlbmVyID09PSBcIm1vdXNlbW92ZVwiKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoYWN0aW9uID09PSAnYWRkRXZlbnRMaXN0ZW5lcicpIHtcclxuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKGxpc3RlbmVyLCB0aGlzW2hhbmRsZXJdLCBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoYWN0aW9uID09PSAncmVtb3ZlRXZlbnRMaXN0ZW5lcicpIHtcclxuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKGxpc3RlbmVyLCB0aGlzW2hhbmRsZXJdLCBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIEVsZW1lbnRcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGlmIChhY3Rpb24gPT09ICdhZGRFdmVudExpc3RlbmVyJykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKGxpc3RlbmVyLCB0aGlzW2hhbmRsZXJdLCBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoYWN0aW9uID09PSAncmVtb3ZlRXZlbnRMaXN0ZW5lcicpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihsaXN0ZW5lciwgdGhpc1toYW5kbGVyXSwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qXHJcbiAgICAgKiBMaXN0ZW5lcnNcclxuICAgICAqL1xyXG5cclxuICAgIC8qIFRvdWNoc3RhcnQgKi9cclxuXHJcbiAgICBoYW5kbGVUb3VjaHN0YXJ0ID0gKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmVsZW1lbnRQb3NpdGlvbiA9IHRoaXMuZ2V0RWxlbWVudFBvc2l0aW9uKCk7XHJcbiAgICAgICAgdGhpcy50b3VjaHN0YXJ0VGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5ldmVudFR5cGUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICB0aGlzLmdldFRvdWNoc3RhcnRQb3NpdGlvbihldmVudCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnJ1bkhhbmRsZXIoXCJ0b3VjaHN0YXJ0XCIsIGV2ZW50KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyogVG91Y2htb3ZlICovXHJcblxyXG4gICAgaGFuZGxlVG91Y2htb3ZlID0gKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCB0b3VjaGVzID0gZXZlbnQudG91Y2hlcztcclxuXHJcbiAgICAgICAgLy8gUGFuXHJcbiAgICAgICAgaWYgKHRoaXMuZGV0ZWN0UGFuKHRvdWNoZXMpKSB7XHJcbiAgICAgICAgICAgIHRoaXMucnVuSGFuZGxlcihcInBhblwiLCBldmVudCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBQaW5jaFxyXG4gICAgICAgIGlmICh0aGlzLmRldGVjdFBpbmNoKGV2ZW50KSkge1xyXG4gICAgICAgICAgICB0aGlzLnJ1bkhhbmRsZXIoXCJwaW5jaFwiLCBldmVudCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBMaW5lYXIgc3dpcGVcclxuICAgICAgICBzd2l0Y2ggKHRoaXMuZGV0ZWN0TGluZWFyU3dpcGUoZXZlbnQpKSB7XHJcbiAgICAgICAgICAgIGNhc2UgXCJob3Jpem9udGFsLXN3aXBlXCI6XHJcbiAgICAgICAgICAgICAgICBldmVudC5zd2lwZVR5cGUgPSBcImhvcml6b250YWwtc3dpcGVcIjtcclxuICAgICAgICAgICAgICAgIHRoaXMucnVuSGFuZGxlcihcImhvcml6b250YWwtc3dpcGVcIiwgZXZlbnQpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJ2ZXJ0aWNhbC1zd2lwZVwiOlxyXG4gICAgICAgICAgICAgICAgZXZlbnQuc3dpcGVUeXBlID0gXCJ2ZXJ0aWNhbC1zd2lwZVwiO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ydW5IYW5kbGVyKFwidmVydGljYWwtc3dpcGVcIiwgZXZlbnQpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBMaW5lYXIgc3dpcGVcclxuICAgICAgICBpZiAodGhpcy5kZXRlY3RMaW5lYXJTd2lwZShldmVudCkgfHxcclxuICAgICAgICAgICAgdGhpcy5ldmVudFR5cGUgPT09ICdob3Jpem9udGFsLXN3aXBlJyB8fFxyXG4gICAgICAgICAgICB0aGlzLmV2ZW50VHlwZSA9PT0gJ3ZlcnRpY2FsLXN3aXBlJykge1xyXG5cclxuICAgICAgICAgICAgdGhpcy5oYW5kbGVMaW5lYXJTd2lwZShldmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZUxpbmVhclN3aXBlKGV2ZW50OiBhbnkpIHtcclxuICAgICAgICAvL2V2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG4gICAgICAgIHRoaXMuaSsrO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5pID4gMykge1xyXG4gICAgICAgICAgICB0aGlzLmV2ZW50VHlwZSA9IHRoaXMuZ2V0TGluZWFyU3dpcGVUeXBlKGV2ZW50KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmV2ZW50VHlwZSA9PT0gJ2hvcml6b250YWwtc3dpcGUnKSB7XHJcbiAgICAgICAgICAgIHRoaXMucnVuSGFuZGxlcignaG9yaXpvbnRhbC1zd2lwZScsIGV2ZW50KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmV2ZW50VHlwZSA9PT0gJ3ZlcnRpY2FsLXN3aXBlJykge1xyXG4gICAgICAgICAgICB0aGlzLnJ1bkhhbmRsZXIoJ3ZlcnRpY2FsLXN3aXBlJywgZXZlbnQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLyogVG91Y2hlbmQgKi9cclxuXHJcbiAgICBoYW5kbGVUb3VjaGVuZCA9IChldmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc3QgdG91Y2hlcyA9IGV2ZW50LnRvdWNoZXM7XHJcblxyXG4gICAgICAgIC8vIERvdWJsZSBUYXBcclxuICAgICAgICBpZiAodGhpcy5kZXRlY3REb3VibGVUYXAoKSkge1xyXG4gICAgICAgICAgICB0aGlzLnJ1bkhhbmRsZXIoXCJkb3VibGUtdGFwXCIsIGV2ZW50KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIFRhcFxyXG4gICAgICAgIHRoaXMuZGV0ZWN0VGFwKCk7XHJcblxyXG4gICAgICAgIHRoaXMucnVuSGFuZGxlcihcInRvdWNoZW5kXCIsIGV2ZW50KTtcclxuICAgICAgICB0aGlzLmV2ZW50VHlwZSA9ICd0b3VjaGVuZCc7XHJcblxyXG4gICAgICAgIGlmICh0b3VjaGVzICYmIHRvdWNoZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZXZlbnRUeXBlID0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICB0aGlzLmkgPSAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLyogTW91c2Vkb3duICovXHJcblxyXG4gICAgaGFuZGxlTW91c2Vkb3duID0gKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmlzTW91c2Vkb3duID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmVsZW1lbnRQb3NpdGlvbiA9IHRoaXMuZ2V0RWxlbWVudFBvc2l0aW9uKCk7XHJcbiAgICAgICAgdGhpcy50b3VjaHN0YXJ0VGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5ldmVudFR5cGUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICB0aGlzLmdldE1vdXNlZG93blBvc2l0aW9uKGV2ZW50KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMucnVuSGFuZGxlcihcIm1vdXNlZG93blwiLCBldmVudCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qIE1vdXNlbW92ZSAqL1xyXG5cclxuICAgIGhhbmRsZU1vdXNlbW92ZSA9IChldmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgLy9ldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGlmICghdGhpcy5pc01vdXNlZG93bikge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBQYW5cclxuICAgICAgICB0aGlzLnJ1bkhhbmRsZXIoXCJwYW5cIiwgZXZlbnQpO1xyXG5cclxuICAgICAgICAvLyBMaW5lYXIgc3dpcGVcclxuICAgICAgICBzd2l0Y2ggKHRoaXMuZGV0ZWN0TGluZWFyU3dpcGUoZXZlbnQpKSB7XHJcbiAgICAgICAgICAgIGNhc2UgXCJob3Jpem9udGFsLXN3aXBlXCI6XHJcbiAgICAgICAgICAgICAgICBldmVudC5zd2lwZVR5cGUgPSBcImhvcml6b250YWwtc3dpcGVcIjtcclxuICAgICAgICAgICAgICAgIHRoaXMucnVuSGFuZGxlcihcImhvcml6b250YWwtc3dpcGVcIiwgZXZlbnQpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJ2ZXJ0aWNhbC1zd2lwZVwiOlxyXG4gICAgICAgICAgICAgICAgZXZlbnQuc3dpcGVUeXBlID0gXCJ2ZXJ0aWNhbC1zd2lwZVwiO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ydW5IYW5kbGVyKFwidmVydGljYWwtc3dpcGVcIiwgZXZlbnQpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBMaW5lYXIgc3dpcGVcclxuICAgICAgICBpZiAodGhpcy5kZXRlY3RMaW5lYXJTd2lwZShldmVudCkgfHxcclxuICAgICAgICAgICAgdGhpcy5ldmVudFR5cGUgPT09ICdob3Jpem9udGFsLXN3aXBlJyB8fFxyXG4gICAgICAgICAgICB0aGlzLmV2ZW50VHlwZSA9PT0gJ3ZlcnRpY2FsLXN3aXBlJykge1xyXG5cclxuICAgICAgICAgICAgdGhpcy5oYW5kbGVMaW5lYXJTd2lwZShldmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiBNb3VzZXVwICovXHJcblxyXG4gICAgaGFuZGxlTW91c2V1cCA9IChldmVudDogYW55KSA9PiB7XHJcblxyXG4gICAgICAgIC8vIFRhcFxyXG4gICAgICAgIHRoaXMuZGV0ZWN0VGFwKCk7XHJcblxyXG4gICAgICAgIHRoaXMuaXNNb3VzZWRvd24gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnJ1bkhhbmRsZXIoXCJtb3VzZXVwXCIsIGV2ZW50KTtcclxuICAgICAgICB0aGlzLmV2ZW50VHlwZSA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLmkgPSAwO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiBXaGVlbCAqL1xyXG5cclxuICAgIGhhbmRsZVdoZWVsID0gKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnJ1bkhhbmRsZXIoXCJ3aGVlbFwiLCBldmVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyogUmVzaXplICovXHJcblxyXG4gICAgaGFuZGxlUmVzaXplID0gKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnJ1bkhhbmRsZXIoXCJyZXNpemVcIiwgZXZlbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIHJ1bkhhbmRsZXIoZXZlbnROYW1lOiBhbnksIHJlc3BvbnNlOiBhbnkpIHtcclxuICAgICAgICBpZiAodGhpcy5oYW5kbGVyc1tldmVudE5hbWVdKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlcnNbZXZlbnROYW1lXShyZXNwb25zZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKlxyXG4gICAgICogRGV0ZWN0aW9uXHJcbiAgICAgKi9cclxuXHJcbiAgICBkZXRlY3RQYW4odG91Y2hlczogYW55KSB7XHJcbiAgICAgICAgcmV0dXJuIHRvdWNoZXMubGVuZ3RoID09PSAxICYmICF0aGlzLmV2ZW50VHlwZSB8fCB0aGlzLmV2ZW50VHlwZSA9PT0gJ3Bhbic7XHJcbiAgICB9XHJcblxyXG4gICAgZGV0ZWN0RG91YmxlVGFwKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmV2ZW50VHlwZSAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgY3VycmVudFRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuICAgICAgICBjb25zdCB0YXBMZW5ndGggPSBjdXJyZW50VGltZSAtIHRoaXMubGFzdFRhcDtcclxuXHJcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuZG91YmxlVGFwVGltZW91dCk7XHJcblxyXG4gICAgICAgIGlmICh0YXBMZW5ndGggPCB0aGlzLmRvdWJsZVRhcE1pblRpbWVvdXQgJiYgdGFwTGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmRvdWJsZVRhcFRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmRvdWJsZVRhcFRpbWVvdXQpO1xyXG4gICAgICAgICAgICB9LCB0aGlzLmRvdWJsZVRhcE1pblRpbWVvdXQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmxhc3RUYXAgPSBjdXJyZW50VGltZTtcclxuICAgIH1cclxuXHJcbiAgICBkZXRlY3RUYXAoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuZXZlbnRUeXBlICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBjdXJyZW50VGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgIGNvbnN0IHRhcExlbmd0aCA9IGN1cnJlbnRUaW1lIC0gdGhpcy50b3VjaHN0YXJ0VGltZTtcclxuXHJcbiAgICAgICAgaWYgKHRhcExlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgaWYgKHRhcExlbmd0aCA8IHRoaXMudGFwTWluVGltZW91dCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ydW5IYW5kbGVyKFwidGFwXCIsIGV2ZW50KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucnVuSGFuZGxlcihcImxvbmd0YXBcIiwgZXZlbnQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGRldGVjdFBpbmNoKGV2ZW50OiBhbnkpIHtcclxuICAgICAgICBjb25zdCB0b3VjaGVzID0gZXZlbnQudG91Y2hlcztcclxuICAgICAgICByZXR1cm4gKHRvdWNoZXMubGVuZ3RoID09PSAyICYmIHRoaXMuZXZlbnRUeXBlID09PSB1bmRlZmluZWQpIHx8IHRoaXMuZXZlbnRUeXBlID09PSAncGluY2gnO1xyXG4gICAgfVxyXG5cclxuICAgIGRldGVjdExpbmVhclN3aXBlKGV2ZW50OiBhbnkpIHtcclxuICAgICAgICBjb25zdCB0b3VjaGVzID0gZXZlbnQudG91Y2hlcztcclxuXHJcbiAgICAgICAgaWYgKHRvdWNoZXMpIHtcclxuICAgICAgICAgICAgaWYgKHRvdWNoZXMubGVuZ3RoID09PSAxICYmICF0aGlzLmV2ZW50VHlwZSB8fCB0aGlzLmV2ZW50VHlwZSA9PT0gJ2hvcml6b250YWwtc3dpcGUnIHx8IHRoaXMuZXZlbnRUeXBlID09PSAndmVydGljYWwtc3dpcGUnKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRMaW5lYXJTd2lwZVR5cGUoZXZlbnQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLmV2ZW50VHlwZSB8fCB0aGlzLmV2ZW50VHlwZSA9PT0gJ2hvcml6b250YWwtc3dpcGUnIHx8IHRoaXMuZXZlbnRUeXBlID09PSAndmVydGljYWwtc3dpcGUnKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRMaW5lYXJTd2lwZVR5cGUoZXZlbnQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldExpbmVhclN3aXBlVHlwZShldmVudDogYW55KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZXZlbnRUeXBlICE9PSAnaG9yaXpvbnRhbC1zd2lwZScgJiYgdGhpcy5ldmVudFR5cGUgIT09ICd2ZXJ0aWNhbC1zd2lwZScpIHtcclxuICAgICAgICAgICAgY29uc3QgbW92ZW1lbnRYID0gTWF0aC5hYnModGhpcy5tb3ZlTGVmdCgwLCBldmVudCkgLSB0aGlzLnN0YXJ0WCk7XHJcbiAgICAgICAgICAgIGNvbnN0IG1vdmVtZW50WSA9IE1hdGguYWJzKHRoaXMubW92ZVRvcCgwLCBldmVudCkgLSB0aGlzLnN0YXJ0WSk7XHJcblxyXG4gICAgICAgICAgICBpZiAoKG1vdmVtZW50WSAqIDMpID4gbW92ZW1lbnRYKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3ZlcnRpY2FsLXN3aXBlJztcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAnaG9yaXpvbnRhbC1zd2lwZSc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5ldmVudFR5cGU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldEVsZW1lbnRQb3NpdGlvbigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFRvdWNoc3RhcnRQb3NpdGlvbihldmVudDogYW55KSB7XHJcbiAgICAgICAgdGhpcy5zdGFydFggPSBldmVudC50b3VjaGVzWzBdLmNsaWVudFggLSB0aGlzLmVsZW1lbnRQb3NpdGlvbi5sZWZ0O1xyXG4gICAgICAgIHRoaXMuc3RhcnRZID0gZXZlbnQudG91Y2hlc1swXS5jbGllbnRZIC0gdGhpcy5lbGVtZW50UG9zaXRpb24udG9wO1xyXG4gICAgfVxyXG5cclxuICAgIGdldE1vdXNlZG93blBvc2l0aW9uKGV2ZW50OiBhbnkpIHtcclxuICAgICAgICB0aGlzLnN0YXJ0WCA9IGV2ZW50LmNsaWVudFggLSB0aGlzLmVsZW1lbnRQb3NpdGlvbi5sZWZ0O1xyXG4gICAgICAgIHRoaXMuc3RhcnRZID0gZXZlbnQuY2xpZW50WSAtIHRoaXMuZWxlbWVudFBvc2l0aW9uLnRvcDtcclxuICAgIH1cclxuXHJcbiAgICBtb3ZlTGVmdChpbmRleDogYW55LCBldmVudDogYW55KSB7XHJcbiAgICAgICAgY29uc3QgdG91Y2hlcyA9IGV2ZW50LnRvdWNoZXM7XHJcblxyXG4gICAgICAgIGlmICh0b3VjaGVzKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0b3VjaGVzW2luZGV4XS5jbGllbnRYIC0gdGhpcy5lbGVtZW50UG9zaXRpb24ubGVmdDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gZXZlbnQuY2xpZW50WCAtIHRoaXMuZWxlbWVudFBvc2l0aW9uLmxlZnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG1vdmVUb3AoaW5kZXg6IGFueSwgZXZlbnQ6IGFueSkge1xyXG4gICAgICAgIGNvbnN0IHRvdWNoZXMgPSBldmVudC50b3VjaGVzO1xyXG5cclxuICAgICAgICBpZiAodG91Y2hlcykge1xyXG4gICAgICAgICAgICByZXR1cm4gdG91Y2hlc1tpbmRleF0uY2xpZW50WSAtIHRoaXMuZWxlbWVudFBvc2l0aW9uLnRvcDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gZXZlbnQuY2xpZW50WSAtIHRoaXMuZWxlbWVudFBvc2l0aW9uLnRvcDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZGV0ZWN0VG91Y2hTY3JlZW4oKSB7XHJcbiAgICAgICAgdmFyIHByZWZpeGVzID0gJyAtd2Via2l0LSAtbW96LSAtby0gLW1zLSAnLnNwbGl0KCcgJyk7XHJcbiAgICAgICAgdmFyIG1xID0gZnVuY3Rpb24ocXVlcnk6IGFueSkge1xyXG4gICAgICAgICAgICByZXR1cm4gd2luZG93Lm1hdGNoTWVkaWEocXVlcnkpLm1hdGNoZXM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoKCdvbnRvdWNoc3RhcnQnIGluIHdpbmRvdykpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBpbmNsdWRlIHRoZSAnaGVhcnR6JyBhcyBhIHdheSB0byBoYXZlIGEgbm9uIG1hdGNoaW5nIE1RIHRvIGhlbHAgdGVybWluYXRlIHRoZSBqb2luXHJcbiAgICAgICAgLy8gaHR0cHM6Ly9naXQuaW8vdnpuRkhcclxuICAgICAgICB2YXIgcXVlcnkgPSBbJygnLCBwcmVmaXhlcy5qb2luKCd0b3VjaC1lbmFibGVkKSwoJyksICdoZWFydHonLCAnKSddLmpvaW4oJycpO1xyXG4gICAgICAgIHJldHVybiBtcShxdWVyeSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qIFB1YmxpYyBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzICovXHJcbiAgICBvbihldmVudDogRXZlbnRUeXBlLCBoYW5kbGVyOiBGdW5jdGlvbikge1xyXG4gICAgICAgIGlmIChldmVudCkge1xyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZXJzW2V2ZW50XSA9IGhhbmRsZXI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59Il19

@@ -1,11 +0,7 @@

/**
* @fileoverview added by tsickle
* Generated from: public-api.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/*
* Public API Surface of angular-responsive-carousel
*/
export {} from './lib/interfaces';
export { IvyCarouselModule } from './lib/carousel.module';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItcmVzcG9uc2l2ZS1jYXJvdXNlbC8iLCJzb3VyY2VzIjpbInB1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFJQSxlQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGtDQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBhbmd1bGFyLXJlc3BvbnNpdmUtY2Fyb3VzZWxcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Nhcm91c2VsLm1vZHVsZSc7Il19
export * from './lib/interfaces';
export * from './lib/carousel.module';
export * from './lib/carousel.component';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItcmVzcG9uc2l2ZS1jYXJvdXNlbC9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBhbmd1bGFyLXJlc3BvbnNpdmUtY2Fyb3VzZWxcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Nhcm91c2VsLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jYXJvdXNlbC5jb21wb25lbnQnO1xuIl19

@@ -0,19 +1,5 @@

import { EventEmitter, Component, ElementRef, ChangeDetectorRef, Input, Output, HostBinding, HostListener, NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { ChangeDetectorRef, Component, ElementRef, EventEmitter, HostBinding, HostListener, Input, Output, NgModule } from '@angular/core';
/**
* @fileoverview added by tsickle
* Generated from: lib/interfaces.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* Generated from: lib/touches.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class Touches {
/**
* @param {?} properties
*/
constructor(properties) {

@@ -45,10 +31,6 @@ this.eventType = undefined;

/*
* Listeners
*/
* Listeners
*/
/* Touchstart */
this.handleTouchstart = (/**
* @param {?} event
* @return {?}
*/
(event) => {
this.handleTouchstart = (event) => {
this.elementPosition = this.getElementPosition();

@@ -60,10 +42,5 @@ this.touchstartTime = new Date().getTime();

this.runHandler("touchstart", event);
});
};
/* Touchmove */
this.handleTouchmove = (/**
* @param {?} event
* @return {?}
*/
(event) => {
/** @type {?} */
this.handleTouchmove = (event) => {
const touches = event.touches;

@@ -95,10 +72,5 @@ // Pan

}
});
};
/* Touchend */
this.handleTouchend = (/**
* @param {?} event
* @return {?}
*/
(event) => {
/** @type {?} */
this.handleTouchend = (event) => {
const touches = event.touches;

@@ -117,9 +89,5 @@ // Double Tap

}
});
};
/* Mousedown */
this.handleMousedown = (/**
* @param {?} event
* @return {?}
*/
(event) => {
this.handleMousedown = (event) => {
this.isMousedown = true;

@@ -132,9 +100,5 @@ this.elementPosition = this.getElementPosition();

this.runHandler("mousedown", event);
});
};
/* Mousemove */
this.handleMousemove = (/**
* @param {?} event
* @return {?}
*/
(event) => {
this.handleMousemove = (event) => {
//event.preventDefault();

@@ -163,9 +127,5 @@ if (!this.isMousedown) {

}
});
};
/* Mouseup */
this.handleMouseup = (/**
* @param {?} event
* @return {?}
*/
(event) => {
this.handleMouseup = (event) => {
// Tap

@@ -177,19 +137,11 @@ this.detectTap();

this.i = 0;
});
};
/* Wheel */
this.handleWheel = (/**
* @param {?} event
* @return {?}
*/
(event) => {
this.handleWheel = (event) => {
this.runHandler("wheel", event);
});
};
/* Resize */
this.handleResize = (/**
* @param {?} event
* @return {?}
*/
(event) => {
this.handleResize = (event) => {
this.runHandler("resize", event);
});
};
this.properties = properties;

@@ -200,14 +152,6 @@ this.element = this.properties.element;

}
/**
* @return {?}
*/
destroy() {
this.toggleEventListeners('removeEventListener');
}
/**
* @param {?} action
* @return {?}
*/
toggleEventListeners(action) {
/** @type {?} */
let listeners;

@@ -224,3 +168,2 @@ if (this.properties.listeners === 'mouse and touch') {

for (var listener in listeners) {
/** @type {?} */
const handler = listeners[listener];

@@ -256,6 +199,2 @@ // Window

}
/**
* @param {?} event
* @return {?}
*/
handleLinearSwipe(event) {

@@ -274,7 +213,2 @@ //event.preventDefault();

}
/**
* @param {?} eventName
* @param {?} response
* @return {?}
*/
runHandler(eventName, response) {

@@ -286,7 +220,3 @@ if (this.handlers[eventName]) {

/*
* Detection
*/
/**
* @param {?} touches
* @return {?}
* Detection
*/

@@ -296,5 +226,2 @@ detectPan(touches) {

}
/**
* @return {?}
*/
detectDoubleTap() {

@@ -304,5 +231,3 @@ if (this.eventType != undefined) {

}
/** @type {?} */
const currentTime = new Date().getTime();
/** @type {?} */
const tapLength = currentTime - this.lastTap;

@@ -314,14 +239,8 @@ clearTimeout(this.doubleTapTimeout);

else {
this.doubleTapTimeout = setTimeout((/**
* @return {?}
*/
() => {
this.doubleTapTimeout = setTimeout(() => {
clearTimeout(this.doubleTapTimeout);
}), this.doubleTapMinTimeout);
}, this.doubleTapMinTimeout);
}
this.lastTap = currentTime;
}
/**
* @return {?}
*/
detectTap() {

@@ -331,5 +250,3 @@ if (this.eventType != undefined) {

}
/** @type {?} */
const currentTime = new Date().getTime();
/** @type {?} */
const tapLength = currentTime - this.touchstartTime;

@@ -345,17 +262,7 @@ if (tapLength > 0) {

}
/**
* @param {?} event
* @return {?}
*/
detectPinch(event) {
/** @type {?} */
const touches = event.touches;
return (touches.length === 2 && this.eventType === undefined) || this.eventType === 'pinch';
}
/**
* @param {?} event
* @return {?}
*/
detectLinearSwipe(event) {
/** @type {?} */
const touches = event.touches;

@@ -373,11 +280,5 @@ if (touches) {

}
/**
* @param {?} event
* @return {?}
*/
getLinearSwipeType(event) {
if (this.eventType !== 'horizontal-swipe' && this.eventType !== 'vertical-swipe') {
/** @type {?} */
const movementX = Math.abs(this.moveLeft(0, event) - this.startX);
/** @type {?} */
const movementY = Math.abs(this.moveTop(0, event) - this.startY);

@@ -395,12 +296,5 @@ if ((movementY * 3) > movementX) {

}
/**
* @return {?}
*/
getElementPosition() {
return this.element.getBoundingClientRect();
}
/**
* @param {?} event
* @return {?}
*/
getTouchstartPosition(event) {

@@ -410,6 +304,2 @@ this.startX = event.touches[0].clientX - this.elementPosition.left;

}
/**
* @param {?} event
* @return {?}
*/
getMousedownPosition(event) {

@@ -419,9 +309,3 @@ this.startX = event.clientX - this.elementPosition.left;

}
/**
* @param {?} index
* @param {?} event
* @return {?}
*/
moveLeft(index, event) {
/** @type {?} */
const touches = event.touches;

@@ -435,9 +319,3 @@ if (touches) {

}
/**
* @param {?} index
* @param {?} event
* @return {?}
*/
moveTop(index, event) {
/** @type {?} */
const touches = event.touches;

@@ -451,16 +329,7 @@ if (touches) {

}
/**
* @return {?}
*/
detectTouchScreen() {
/** @type {?} */
var prefixes = ' -webkit- -moz- -o- -ms- '.split(' ');
/** @type {?} */
var mq = (/**
* @param {?} query
* @return {?}
*/
function (query) {
var mq = function (query) {
return window.matchMedia(query).matches;
});
};
if (('ontouchstart' in window)) {

@@ -471,3 +340,2 @@ return true;

// https://git.io/vznFH
/** @type {?} */
var query = ['(', prefixes.join('touch-enabled),('), 'heartz', ')'].join('');

@@ -477,7 +345,2 @@ return mq(query);

/* Public properties and methods */
/**
* @param {?} event
* @param {?} handler
* @return {?}
*/
on(event, handler) {

@@ -490,18 +353,8 @@ if (event) {

/**
* @fileoverview added by tsickle
* Generated from: lib/carousel.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class Carousel {
/**
* @param {?} properties
*/
constructor(properties) {
this.initialPositionX = 0;
this.newContainerPositionIndex = 0; // The index of the new position relative to the active index, for example -1 or +1
// The index of the new position relative to the active index, for example -1 or +1
this.preliminarySlideCounter = 0;
this.slideCounter = 0; // Scrolling Index (counter)
// Scrolling Index (counter)
this.previousSlideCounter = 0;

@@ -513,7 +366,3 @@ this.isContentImages = true;

this.initialContainerPosition = 0;
this.handleTouchstart = (/**
* @param {?} event
* @return {?}
*/
(event) => {
this.handleTouchstart = (event) => {
this.isTouchstart = true;

@@ -523,3 +372,2 @@ if (this.isSlideInProgress) {

}
/** @type {?} */
const touches = event.touches;

@@ -534,12 +382,7 @@ if (touches) {

this.isMoveInProgress = true;
});
this.handleHorizontalSwipe = (/**
* @param {?} event
* @return {?}
*/
(event) => {
};
this.handleHorizontalSwipe = (event) => {
if (this.isSlideInProgress) {
return;
}
/** @type {?} */
const touches = event.touches;

@@ -555,8 +398,4 @@ if (touches) {

this.moveContainer();
});
this.handleTouchend = (/**
* @param {?} event
* @return {?}
*/
(event) => {
};
this.handleTouchend = (event) => {
if (this.isSlideInProgress || !this.isTouchstart) {

@@ -576,3 +415,3 @@ this.isTouchstart = false;

this.isTouchstart = false;
});
};
this.element = properties.element;

@@ -585,5 +424,2 @@ this.properties = properties;

}
/**
* @return {?}
*/
get cellLength() {

@@ -597,8 +433,4 @@ if (this.images) {

}
/**
* @return {?}
*/
get totalContainerCellsCount() {
if (this.images) {
/** @type {?} */
let cellLength = this.visibleCellsCount + this.overflowCellsLimit * 2;

@@ -614,17 +446,8 @@ if (cellLength > this.images.length) {

}
/**
* @return {?}
*/
get isFirstCell() {
return this.slideCounter === 0;
}
/**
* @return {?}
*/
get lastCellIndex() {
return this.images.length ? (this.images.length - 1) : (this.cells.length - 1);
}
/**
* @return {?}
*/
get overflowCellsLimit() {

@@ -638,65 +461,32 @@ if (this.images && this.isImagesLessCellLimit) {

}
/**
* @return {?}
*/
get isImagesLessCellLimit() {
return this.properties.overflowCellsLimit * 2 + this.visibleCellsCount > this.images.length;
}
/**
* @return {?}
*/
get cellLimit() {
return this.visibleCellsCount + this.overflowCellsLimit * 2;
}
/**
* @return {?}
*/
get images() {
return this.properties.images;
}
/**
* @return {?}
*/
get margin() {
return this.properties.margin;
}
/**
* @return {?}
*/
get minSwipeDistance() {
return this.properties.minSwipeDistance;
}
/**
* @return {?}
*/
get transitionDuration() {
return this.properties.transitionDuration;
}
/**
* @return {?}
*/
get transitionTimingFunction() {
return this.properties.transitionTimingFunction;
}
/**
* @return {?}
*/
get fullCellWidth() {
return this.properties.cellWidth + this.margin;
}
/**
* @return {?}
*/
get visibleCellsCount() {
return Math.ceil(this.visibleWidth / this.fullCellWidth);
}
/**
* @return {?}
*/
get lapCounter() {
return Math.floor(this.slideCounter / this.totalContainerCellsCount);
}
/**
* @return {?}
*/
get visibleCellsOverflowContainer() {

@@ -706,15 +496,7 @@ return (this.visibleCellsCount * this.fullCellWidth - this.margin) > this.visibleWidth;

/* Move */
/**
* @return {?}
*/
moveContainer() {
/** @type {?} */
let positionX = this.getMovePositionX();
this.transformPositionX(positionX, 0);
}
/**
* @return {?}
*/
getMovePositionX() {
/** @type {?} */
const distance = this.getDistance();

@@ -724,8 +506,3 @@ return this.containerInitialPositionX - distance;

/* Align */
/**
* @param {?=} duration
* @return {?}
*/
alignContainer(duration = this.transitionDuration) {
/** @type {?} */
let positionX = this.getContainerPosition();

@@ -735,7 +512,3 @@ this.transformPositionX(positionX, duration);

}
/**
* @return {?}
*/
getContainerPosition() {
/** @type {?} */
let correction = this.getContainerPositionCorrection();

@@ -745,16 +518,7 @@ this.isContainerPositionCorrection = correction != 0;

}
/**
* @param {?} position
* @return {?}
*/
setInitialContainerPosition(position) {
/** @type {?} */
let correction = this.getContainerPositionCorrection();
this.initialContainerPosition = position - correction;
}
/**
* @return {?}
*/
getContainerPositionCorrection() {
/** @type {?} */
let correction = 0;

@@ -775,9 +539,4 @@ if (this.properties.loop) {

/* Quickly center */
/**
* @return {?}
*/
quicklyPositionContainer() {
/** @type {?} */
let correction = this.getContainerPositionCorrection();
/** @type {?} */
const initialPosition = this.getNewContainerPosition() + correction;

@@ -787,5 +546,2 @@ this.transformPositionX(initialPosition, 0);

}
/**
* @return {?}
*/
getNewContainerPosition() {

@@ -805,17 +561,8 @@ if (this.slideCounter > this.overflowCellsLimit) {

}
/**
* @return {?}
*/
setContainerWidth() {
/** @type {?} */
const containerWidth = this.getContainerWidth();
this.element.style.width = containerWidth + "px";
}
/**
* @return {?}
*/
getContainerWidth() {
/** @type {?} */
let containerWidth = this.totalContainerCellsCount * this.fullCellWidth;
/** @type {?} */
let totalImageWidth = this.cellLength * this.fullCellWidth;

@@ -827,10 +574,4 @@ if (totalImageWidth < containerWidth) {

}
/**
* @param {?} cellIndex
* @return {?}
*/
getFile(cellIndex) {
/** @type {?} */
let imageIndex = this.getFileIndex(cellIndex);
/** @type {?} */
let file = this.images[imageIndex];

@@ -845,14 +586,6 @@ if (file && !file.type) {

}
/**
* @param {?} cellIndex
* @return {?}
*/
getFileIndex(cellIndex) {
/** @type {?} */
const positionIndex = this.getPositionIndex(cellIndex);
/** @type {?} */
const numberLeftCells = (this.totalContainerCellsCount - 1) / 2;
/** @type {?} */
let imageIndex;
/** @type {?} */
let counter = this.slideCounter;

@@ -864,3 +597,2 @@ if (!this.isContainerLocked) {

else {
/** @type {?} */
let cellLimitOverflow = counter - this.overflowCellsLimit;

@@ -876,3 +608,2 @@ imageIndex = positionIndex + cellLimitOverflow;

if (counter > this.overflowCellsLimit) {
/** @type {?} */
let cellLimitOverflow = counter - this.overflowCellsLimit;

@@ -890,7 +621,2 @@ imageIndex = positionIndex + cellLimitOverflow;

}
/**
* @param {?} value
* @param {?=} duration
* @return {?}
*/
transformPositionX(value, duration = this.transitionDuration) {

@@ -900,11 +626,5 @@ this.element.style.transition = 'transform ' + duration + 'ms ' + this.transitionTimingFunction;

}
/**
* @return {?}
*/
detectSlide() {
return this.distanceAbs >= this.minSwipeDistance;
}
/**
* @return {?}
*/
next() {

@@ -917,5 +637,2 @@ if (this.isSlideInProgress) {

}
/**
* @return {?}
*/
prev() {

@@ -928,6 +645,2 @@ if (this.isSlideInProgress) {

}
/**
* @param {?} index
* @return {?}
*/
select(index) {

@@ -937,6 +650,2 @@ this.slideCounter = index;

}
/**
* @param {?=} slideLength
* @return {?}
*/
handleSlide(slideLength = undefined) {

@@ -981,9 +690,4 @@ this.slideLength = this.getSlideLength();

}
/**
* @return {?}
*/
getSlideLength() {
/** @type {?} */
let correction = this.getContainerPositionCorrection();
/** @type {?} */
let length = Math.floor((this.distanceAbs + correction) / this.fullCellWidth);

@@ -995,10 +699,5 @@ if (this.distanceAbs % this.fullCellWidth >= this.minSwipeDistance) {

}
/**
* @param {?} slideLength
* @return {?}
*/
limitSlideLength(slideLength) {
if (slideLength > 1) {
for (var i = 0; i < slideLength; i++) {
/** @type {?} */
let newSlideCounter = this.slideCounter + (slideLength - i);

@@ -1014,6 +713,2 @@ if (!this.detectLastSlide(newSlideCounter)) {

}
/**
* @param {?} slideCounter
* @return {?}
*/
detectLastSlide(slideCounter) {

@@ -1027,5 +722,2 @@ if (this.properties.loop) {

}
/**
* @return {?}
*/
isNextArrowDisabled() {

@@ -1039,17 +731,8 @@ if (this.visibleCellsOverflowContainer) {

}
/**
* @return {?}
*/
isPrevArrowDisabled() {
return this.slideCounter === 0;
}
/**
* @return {?}
*/
detectContainerUnlock() {
return (this.cellLength - this.preliminarySlideCounter) < (this.visibleCellsCount + this.overflowCellsLimit);
}
/**
* @return {?}
*/
handleSlideEnd() {

@@ -1063,5 +746,2 @@ if (this.isSlideInProgress) {

}
/**
* @return {?}
*/
transformSlideEnd() {

@@ -1076,5 +756,2 @@ if (this.isLazyLoad) {

}
/**
* @return {?}
*/
setSlideCounter() {

@@ -1090,37 +767,18 @@ if (this.direction === 'left') {

}
/**
* @return {?}
*/
resetTransition() {
this.element.style.transition = '';
}
/**
* @return {?}
*/
getElementPosition() {
return this.element.getBoundingClientRect();
}
/**
* @return {?}
*/
getCarouselElementPosition() {
return this.properties.container.getBoundingClientRect();
}
/**
* @return {?}
*/
getDistance() {
return this.startX - this.moveX;
}
/**
* @return {?}
*/
getDistanceAbs() {
return Math.abs(this.startX - this.moveX);
}
/**
* @return {?}
*/
getDirection() {
/** @type {?} */
const direction = Math.sign(this.startX - this.moveX);

@@ -1134,39 +792,21 @@ if (direction === -1) {

}
/**
* @return {?}
*/
lineUpCells() {
/** @type {?} */
const cells = this.element.children;
for (var i = 0; i < cells.length; i++) {
/** @type {?} */
let cell = cells[i];
/** @type {?} */
let positionX = this.getCellPositionX(i);
((/** @type {?} */ (cell))).style.transform = 'translateX(' + positionX + 'px)';
cell.style.transform = 'translateX(' + positionX + 'px)';
// notice
((/** @type {?} */ (cell))).style.width = this.properties.cellWidth + 'px';
cell.style.width = this.properties.cellWidth + 'px';
}
;
}
/**
* @param {?} index
* @return {?}
*/
getCellPositionX(index) {
/** @type {?} */
let positionIndex = this.getPositionIndex(index);
return positionIndex * this.fullCellWidth;
}
/**
* @param {?} cellIndex
* @return {?}
*/
getPositionIndex(cellIndex) {
/** @type {?} */
let counter = this.slideCounter;
/** @type {?} */
let cellLength = this.totalContainerCellsCount;
/** @type {?} */
let slideCounter = counter - this.overflowCellsLimit;
/** @type {?} */
let positionIndex;

@@ -1187,22 +827,10 @@ if (slideCounter > cellLength) {

}
/**
* @return {?}
*/
getCenterPositionIndex() {
return (this.totalContainerCellsCount - 1) / 2;
}
/**
* @return {?}
*/
autoplay() {
this.autoplayId = setInterval((/**
* @return {?}
*/
() => {
this.autoplayId = setInterval(() => {
this.next();
}), this.properties.autoplayInterval);
}, this.properties.autoplayInterval);
}
/**
* @return {?}
*/
stopAutoplay() {

@@ -1213,5 +841,2 @@ if (this.autoplayId) {

}
/**
* @return {?}
*/
destroy() {

@@ -1222,12 +847,3 @@ this.stopAutoplay();

/**
* @fileoverview added by tsickle
* Generated from: lib/carousel.component.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class CarouselComponent {
/**
* @param {?} elementRef
* @param {?} ref
*/
constructor(elementRef, ref) {

@@ -1257,7 +873,3 @@ this.elementRef = elementRef;

/* Touchstart */
this.handleTouchstart = (/**
* @param {?} event
* @return {?}
*/
(event) => {
this.handleTouchstart = (event) => {
event.preventDefault();

@@ -1270,9 +882,5 @@ this.carousel.handleTouchstart(event);

});
});
};
/* Touchmove */
this.handleHorizontalSwipe = (/**
* @param {?} event
* @return {?}
*/
(event) => {
this.handleHorizontalSwipe = (event) => {
event.preventDefault();

@@ -1284,10 +892,5 @@ this.carousel.handleHorizontalSwipe(event);

});
});
};
/* Touchend */
this.handleTouchend = (/**
* @param {?} event
* @return {?}
*/
(event) => {
/** @type {?} */
this.handleTouchend = (event) => {
const touches = event.touches;

@@ -1300,16 +903,8 @@ this.carousel.handleTouchend(event);

});
});
};
/* Tap */
this.handleTap = (/**
* @param {?} event
* @return {?}
*/
(event) => {
/** @type {?} */
this.handleTap = (event) => {
const i = this.carousel.slideCounter;
/** @type {?} */
const cellIndex = this.carousel.currentCellIndex;
/** @type {?} */
const fileIndex = this.carousel.getFileIndex(i);
/** @type {?} */
const file = this.carousel.getFile(cellIndex);

@@ -1321,51 +916,26 @@ this.events.emit({

});
});
};
}
/**
* @return {?}
*/
get isContainerLocked() {
return this.carousel.isContainerLocked;
}
/**
* @return {?}
*/
get slideCounter() {
return this.carousel.slideCounter;
}
/**
* @return {?}
*/
get previousSlideCounter() {
return this.carousel.previousSlideCounter;
}
/**
* @return {?}
*/
get lapCounter() {
return this.carousel.lapCounter;
}
/**
* @return {?}
*/
lineUpCells() {
this.carousel.lineUpCells();
}
/**
* @return {?}
*/
quicklyPositionContainer() {
this.carousel.quicklyPositionContainer();
}
/**
* @return {?}
*/
get isLandscape() {
return window.innerWidth > window.innerHeight;
}
/**
* @return {?}
*/
get isSafari() {
/** @type {?} */
const ua = navigator.userAgent.toLowerCase();

@@ -1376,7 +946,3 @@ if (ua.indexOf('safari') !== -1) {

}
/**
* @return {?}
*/
get counter() {
/** @type {?} */
let counter;

@@ -1391,25 +957,11 @@ if (this.loop) {

}
/**
* @return {?}
*/
get cellsElement() {
return this.elementRef.nativeElement.querySelector('.carousel-cells');
}
/**
* @param {?} images
* @return {?}
*/
set images(images) {
this._images = images;
}
/**
* @return {?}
*/
get images() {
return this._images;
}
/**
* @param {?} value
* @return {?}
*/
set cellWidth(value) {

@@ -1420,6 +972,2 @@ if (value) {

}
/**
* @param {?} value
* @return {?}
*/
set isCounter(value) {

@@ -1430,17 +978,8 @@ if (value) {

}
/**
* @return {?}
*/
get isCounter() {
return this._isCounter && this.cellLength > 1;
}
/**
* @return {?}
*/
get activeDotIndex() {
return this.slideCounter % this.cellLength;
}
/**
* @return {?}
*/
get cellLimit() {

@@ -1451,6 +990,2 @@ if (this.carousel) {

}
/**
* @param {?} event
* @return {?}
*/
onWindowResize(event) {

@@ -1462,6 +997,2 @@ this.landscapeMode = this.isLandscape;

}
/**
* @param {?} event
* @return {?}
*/
onMousemove(event) {

@@ -1472,6 +1003,2 @@ if (this.autoplay && this.pauseOnHover) {

}
/**
* @param {?} event
* @return {?}
*/
onMouseleave(event) {

@@ -1482,5 +1009,2 @@ if (this.autoplay && this.pauseOnHover) {

}
/**
* @return {?}
*/
ngOnInit() {

@@ -1504,5 +1028,2 @@ this.isNgContent = this.cellsElement.children.length > 0;

}
/**
* @return {?}
*/
ngAfterViewInit() {

@@ -1514,6 +1035,2 @@ this.cellLength = this.getCellLength();

}
/**
* @param {?} changes
* @return {?}
*/
ngOnChanges(changes) {

@@ -1526,5 +1043,2 @@ if (changes.width || changes.height) {

}
/**
* @return {?}
*/
ngOnDestroy() {

@@ -1534,5 +1048,2 @@ this.touches.destroy();

}
/**
* @return {?}
*/
initCarousel() {

@@ -1555,5 +1066,2 @@ this.carousel = new Carousel({

}
/**
* @return {?}
*/
setDimensions() {

@@ -1563,20 +1071,8 @@ this.hostStyleHeight = this.height + 'px';

}
/**
* @param {?} index
* @return {?}
*/
getFile(index) {
return this.carousel.getFile(index);
}
/**
* @param {?} event
* @return {?}
*/
handleTransitionendCellContainer(event) {
this.carousel.handleSlideEnd();
}
/**
* @param {?} video
* @return {?}
*/
toggleVideo(video) {

@@ -1597,11 +1093,5 @@ event.preventDefault();

}
/**
* @return {?}
*/
getCurrentIndex() {
return this.carousel.slideCounter;
}
/**
* @return {?}
*/
getCellWidth() {

@@ -1615,5 +1105,2 @@ if (this._cellWidth === '100%') {

}
/**
* @return {?}
*/
next() {

@@ -1623,5 +1110,2 @@ this.carousel.next(1);

}
/**
* @return {?}
*/
prev() {

@@ -1631,24 +1115,11 @@ this.carousel.prev(1);

}
/**
* @param {?} index
* @return {?}
*/
select(index) {
this.carousel.select(index);
}
/**
* @return {?}
*/
isNextArrowDisabled() {
return this.carousel.isNextArrowDisabled();
}
/**
* @return {?}
*/
isPrevArrowDisabled() {
return this.carousel.isPrevArrowDisabled();
}
/**
* @return {?}
*/
getCellLength() {

@@ -1668,6 +1139,5 @@ if (this.images) {

template: "<div class=\"carousel-counter\" *ngIf=\"isCounter\">{{counter}}</div>\n\n<div class=\"carousel-container\" [class.carousel-moving]=\"isMoving\">\n\t<div class=\"carousel-cells\" #cells (transitionend)=\"handleTransitionendCellContainer($event)\">\n\t\t<ng-content></ng-content>\n\n\t\t<ng-template ngFor let-image [ngForOf]=\"images\" let-i=\"index\">\n\t\t\t<div class=\"carousel-cell\" \n\t\t\t\t*ngIf=\"i < cellLimit\" \n\t\t\t\t[style.width]=\"getCellWidth()+'px'\"\n\t\t\t\t[style.border-radius]=\"borderRadius+'px'\">\n\n\t\t\t\t<!-- Image -->\n\t\t\t\t<img \n\t\t\t\t\t*ngIf=\"getFile(i) && getFile(i)['image']\" \n\t\t\t\t\t[src]=\"getFile(i)['image']['path']\"\n\t\t\t\t\t[style.object-fit]=\"objectFit\"\n\t\t\t\t\tdraggable=\"false\" />\n\n\t\t\t\t<!-- Video -->\n\t\t\t\t<ng-template [ngIf]=\"getFile(i) && getFile(i)['type'] === 'video'\">\n\t\t\t\t\t<div class=\"carousel-play\" (click)=\"toggleVideo(video)\"></div>\n\n\t\t\t\t\t<video #video\n\t\t\t\t\t\t[loop]=\"videoProperties.loop\"\n\t\t\t\t\t\t[muted]=\"videoProperties.muted\"\n\t\t\t\t\t\t[controls]=\"isSafari\"\n\t\t\t\t\t\t[style.object-fit]=\"objectFit\"\n\t\t\t\t\t\t[style.border-radius]=\"borderRadius+'px'\">\n\t\t\t\t\t\t\n\t\t\t\t\t\t<source [src]=\"getFile(i)['path']\" type=\"video/mp4\">\n\t\t\t\t\t</video>\n\t\t\t\t</ng-template>\n\t\t\t</div>\n\t\t</ng-template>\n\t</div>\n\n\t<div class=\"carousel-dots\" *ngIf=\"dots\">\n\t\t<div class=\"carousel-dot\" [class.carousel-dot-active]=\"i === activeDotIndex\" *ngFor=\"let dot of dotsArr; index as i\"></div>\n\t</div>\n</div>\n\n<div class=\"carousel-arrows\" \n\t[class.carousel-arrows-outside]=\"arrowsOutside\" \n\t[class.carousel-dark-arrows]=\"arrowsTheme === 'dark'\"\n\t*ngIf=\"arrows\">\n\t\n\t<div class=\"carousel-arrow carousel-arrow-prev\" [class.carousel-arrow-disabled]=\"isPrevArrowDisabled()\" (click)=\"prev()\"></div>\n\t<div class=\"carousel-arrow carousel-arrow-next\" [class.carousel-arrow-disabled]=\"isNextArrowDisabled()\" (click)=\"next()\"></div>\n</div>",
styles: [":host{position:relative;display:block;top:0;left:0;width:100%;height:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:10000;-webkit-transform-origin:top left;transform-origin:top left;box-sizing:border-box}:host .carousel-container{overflow:hidden;width:100%;height:100%;cursor:-webkit-grab;cursor:grab}:host .carousel-container.carousel-moving{cursor:-webkit-grabbing;cursor:grabbing}:host .carousel-counter{text-align:right;position:absolute;z-index:30;transition:opacity .2s;top:8px;right:24px;border-radius:13px;background-color:rgba(23,37,68,.3);font-size:11px;color:#fff;padding:5px 7px;line-height:initial}:host ::ng-deep .carousel-cells{transition:transform .2s;transition:transform .2s,-webkit-transform .2s;width:100%;height:100%;display:block}:host ::ng-deep .carousel-cells .carousel-cell.swiper-prev-image{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}:host ::ng-deep .carousel-cells .carousel-cell.swiper-next-image{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}:host ::ng-deep .carousel-cells .carousel-cell{width:100%;height:100%;text-align:center;position:absolute;display:flex;align-items:center;justify-content:center;overflow:hidden}:host ::ng-deep .carousel-cells .carousel-cell img,:host ::ng-deep .carousel-cells .carousel-cell video{width:100%;height:100%;position:relative;-o-object-fit:contain;object-fit:contain}:host ::ng-deep .carousel-cells .carousel-cell img.swiper-hide{display:none}:host ::ng-deep .carousel-cells .carousel-cell .carousel-play{position:absolute;top:0;left:0;bottom:0;right:0;z-index:1}:host .carousel-arrow{width:40px;height:40px;background-color:#fff;background-repeat:no-repeat;background-size:31px;background-position:center;border-radius:100px;position:absolute;top:50%;margin-top:-20px;z-index:10;cursor:pointer;box-shadow:0 0 5px rgba(0,0,0,.15)}:host .carousel-arrow-prev{left:10px;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0Ij48cGF0aCBkPSJNMTUuNDEgMTYuNTlMMTAuODMgMTJsNC41OC00LjU5TDE0IDZsLTYgNiA2IDYgMS40MS0xLjQxeiIvPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMFYweiIgZmlsbD0ibm9uZSIvPjwvc3ZnPg==)}:host .carousel-arrow-next{right:10px;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0Ij48cGF0aCBkPSJNOC41OSAxNi41OUwxMy4xNyAxMiA4LjU5IDcuNDEgMTAgNmw2IDYtNiA2LTEuNDEtMS40MXoiLz48cGF0aCBkPSJNMCAwaDI0djI0SDBWMHoiIGZpbGw9Im5vbmUiLz48L3N2Zz4=)}:host .carousel-arrows-outside .carousel-arrow-prev{left:-60px}:host .carousel-arrows-outside .carousel-arrow-next{right:-60px}:host .carousel-dark-arrows .carousel-arrow{-webkit-filter:invert(1);filter:invert(1)}:host .carousel-arrow-disabled{cursor:default;opacity:.5}:host .carousel-dots{position:absolute;left:0;right:0;bottom:0;z-index:10;text-align:center}:host .carousel-dots .carousel-dot{display:inline-block;border:2px solid #fff;border-radius:100px;margin:4px;width:8px;height:8px}:host .carousel-dots .carousel-dot-active{background-color:#fff}"]
}] }
styles: [":host{-moz-user-select:none;-webkit-user-select:none;box-sizing:border-box;display:block;height:100%;left:0;position:relative;top:0;transform-origin:top left;user-select:none;width:100%;z-index:10000}:host .carousel-container{cursor:grab;height:100%;overflow:hidden;width:100%}:host .carousel-container.carousel-moving{cursor:grabbing}:host .carousel-counter{background-color:rgba(23,37,68,.3);border-radius:13px;color:#fff;font-size:11px;line-height:normal;padding:5px 7px;position:absolute;right:24px;text-align:right;top:8px;transition:opacity .2s;z-index:30}:host ::ng-deep .carousel-cells{display:block;height:100%;transition:transform .2s;width:100%}:host ::ng-deep .carousel-cells .carousel-cell.swiper-prev-image{transform:translate3d(-100%,0,0)}:host ::ng-deep .carousel-cells .carousel-cell.swiper-next-image{transform:translate3d(100%,0,0)}:host ::ng-deep .carousel-cells .carousel-cell{align-items:center;display:flex;height:100%;justify-content:center;overflow:hidden;position:absolute;text-align:center;width:100%}:host ::ng-deep .carousel-cells .carousel-cell img,:host ::ng-deep .carousel-cells .carousel-cell video{height:100%;object-fit:contain;position:relative;width:100%}:host ::ng-deep .carousel-cells .carousel-cell img.swiper-hide{display:none}:host ::ng-deep .carousel-cells .carousel-cell .carousel-play{bottom:0;left:0;position:absolute;right:0;top:0;z-index:1}:host .carousel-arrow{background-color:#fff;background-position:50%;background-repeat:no-repeat;background-size:31px;border-radius:100px;box-shadow:0 0 5px rgba(0,0,0,.15);cursor:pointer;height:40px;margin-top:-20px;position:absolute;top:50%;width:40px;z-index:10}:host .carousel-arrow-prev{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0Ij48cGF0aCBkPSJNMTUuNDEgMTYuNTlMMTAuODMgMTJsNC41OC00LjU5TDE0IDZsLTYgNiA2IDYgMS40MS0xLjQxeiIvPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMFYweiIgZmlsbD0ibm9uZSIvPjwvc3ZnPg==);left:10px}:host .carousel-arrow-next{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0Ij48cGF0aCBkPSJNOC41OSAxNi41OUwxMy4xNyAxMiA4LjU5IDcuNDEgMTAgNmw2IDYtNiA2LTEuNDEtMS40MXoiLz48cGF0aCBkPSJNMCAwaDI0djI0SDBWMHoiIGZpbGw9Im5vbmUiLz48L3N2Zz4=);right:10px}:host .carousel-arrows-outside .carousel-arrow-prev{left:-60px}:host .carousel-arrows-outside .carousel-arrow-next{right:-60px}:host .carousel-dark-arrows .carousel-arrow{filter:invert(1)}:host .carousel-arrow-disabled{cursor:default;opacity:.5}:host .carousel-dots{bottom:0;left:0;position:absolute;right:0;text-align:center;z-index:10}:host .carousel-dots .carousel-dot{border:2px solid #fff;border-radius:100px;display:inline-block;height:8px;margin:4px;width:8px}:host .carousel-dots .carousel-dot-active{background-color:#fff}"]
},] }
];
/** @nocollapse */
CarouselComponent.ctorParameters = () => [

@@ -1710,7 +1180,2 @@ { type: ElementRef },

/**
* @fileoverview added by tsickle
* Generated from: lib/carousel.module.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class IvyCarouselModule {

@@ -1737,16 +1202,11 @@ }

/**
* @fileoverview added by tsickle
* Generated from: public-api.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
/*
* Public API Surface of angular-responsive-carousel
*/
/**
* @fileoverview added by tsickle
* Generated from: angular-responsive-carousel.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
* Generated bundle index. Do not edit.
*/
export { IvyCarouselModule, CarouselComponent as ɵa };
//# sourceMappingURL=angular-responsive-carousel.js.map
export { CarouselComponent, IvyCarouselModule };
//# sourceMappingURL=angular-responsive-carousel.js.map

@@ -6,6 +6,6 @@ import { ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, SimpleChanges } from '@angular/core';

private ref;
readonly isContainerLocked: any;
readonly slideCounter: any;
readonly previousSlideCounter: any;
readonly lapCounter: any;
get isContainerLocked(): any;
get slideCounter(): any;
get previousSlideCounter(): any;
get lapCounter(): any;
lineUpCells(): void;

@@ -27,7 +27,8 @@ quicklyPositionContainer(): void;

dotsArr: any;
readonly isLandscape: boolean;
readonly isSafari: any;
readonly counter: string;
readonly cellsElement: any;
images: Images & any;
get isLandscape(): boolean;
get isSafari(): any;
get counter(): string;
get cellsElement(): any;
set images(images: Images & any);
get images(): Images & any;
events: EventEmitter<any>;

@@ -51,9 +52,10 @@ height: number;

listeners: 'auto' | 'mouse and touch';
cellWidth: number | '100%';
isCounter: boolean;
readonly activeDotIndex: number;
set cellWidth(value: number | '100%');
set isCounter(value: boolean);
get isCounter(): boolean;
get activeDotIndex(): number;
arrows: boolean;
arrowsOutside: boolean;
arrowsTheme: 'light' | 'dark';
readonly cellLimit: any;
get cellLimit(): any;
hostClassCarousel: boolean;

@@ -60,0 +62,0 @@ hostStyleHeight: string;

@@ -44,18 +44,18 @@ export interface Properties {

autoplayId: any;
readonly cellLength: any;
readonly totalContainerCellsCount: any;
readonly isFirstCell: boolean;
readonly lastCellIndex: number;
readonly overflowCellsLimit: number;
readonly isImagesLessCellLimit: boolean;
readonly cellLimit: number;
readonly images: any;
readonly margin: number;
readonly minSwipeDistance: number;
readonly transitionDuration: number;
readonly transitionTimingFunction: "linear" | "ease" | "ease-in" | "ease-out" | "ease-in-out";
readonly fullCellWidth: number;
readonly visibleCellsCount: number;
readonly lapCounter: number;
readonly visibleCellsOverflowContainer: boolean;
get cellLength(): any;
get totalContainerCellsCount(): any;
get isFirstCell(): boolean;
get lastCellIndex(): number;
get overflowCellsLimit(): number;
get isImagesLessCellLimit(): boolean;
get cellLimit(): number;
get images(): any;
get margin(): number;
get minSwipeDistance(): number;
get transitionDuration(): number;
get transitionTimingFunction(): "linear" | "ease" | "ease-in" | "ease-out" | "ease-in-out";
get fullCellWidth(): number;
get visibleCellsCount(): number;
get lapCounter(): number;
get visibleCellsOverflowContainer(): boolean;
constructor(properties: Properties);

@@ -96,4 +96,4 @@ handleTouchstart: (event: any) => void;

resetTransition(): void;
getElementPosition(): DOMRect | ClientRect;
getCarouselElementPosition(): DOMRect | ClientRect;
getElementPosition(): DOMRect;
getCarouselElementPosition(): DOMRect;
getDistance(): number;

@@ -100,0 +100,0 @@ getDistanceAbs(): number;

@@ -46,3 +46,3 @@ export interface Properties {

getLinearSwipeType(event: any): "horizontal-swipe" | "vertical-swipe";
getElementPosition(): DOMRect | ClientRect;
getElementPosition(): DOMRect;
getTouchstartPosition(event: any): void;

@@ -49,0 +49,0 @@ getMousedownPosition(event: any): void;

{
"name": "angular-responsive-carousel",
"version": "1.2.8",
"version": "1.2.9",
"description": "Carousel for Angular. A simple solution for horizontal scrolling images with lazy loading.",

@@ -29,5 +29,16 @@ "repository": {

"peerDependencies": {
"@angular/common": "^7.2.0",
"@angular/core": "^7.2.0"
}
}
"@angular/common": "^10.0.5",
"@angular/core": "^10.0.5"
},
"dependencies": {
"tslib": "^2.0.0"
},
"main": "bundles/angular-responsive-carousel.umd.js",
"module": "fesm2015/angular-responsive-carousel.js",
"es2015": "fesm2015/angular-responsive-carousel.js",
"esm2015": "esm2015/angular-responsive-carousel.js",
"fesm2015": "fesm2015/angular-responsive-carousel.js",
"typings": "angular-responsive-carousel.d.ts",
"metadata": "angular-responsive-carousel.metadata.json",
"sideEffects": false
}
export * from './lib/interfaces';
export * from './lib/carousel.module';
export * from './lib/carousel.component';

Sorry, the diff of this file is too big to display

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 too big to display

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc