ngx-doe-gallery
Advanced tools
Comparing version 1.0.0-beta.0 to 1.0.0-beta.2
@@ -1,2 +0,2 @@ | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("rxjs"),require("@angular/animations"),require("rxjs/operators"),require("@angular/common"),require("@angular/platform-browser/animations"),require("@angular/platform-browser")):"function"==typeof define&&define.amd?define("ngx-doe-gallery",["exports","@angular/core","rxjs","@angular/animations","rxjs/operators","@angular/common","@angular/platform-browser/animations","@angular/platform-browser"],t):t((e=e||self)["ngx-doe-gallery"]={},e.ng.core,e.rxjs,e.ng.animations,e.rxjs.operators,e.ng.common,e.ng.platformBrowser.animations,e.ng.platformBrowser)}(this,(function(e,t,n,o,i,r,s,a){"use strict"; | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("rxjs"),require("rxjs/operators"),require("@angular/common"),require("@angular/platform-browser")):"function"==typeof define&&define.amd?define("ngx-doe-gallery",["exports","@angular/core","rxjs","rxjs/operators","@angular/common","@angular/platform-browser"],t):t((e=e||self)["ngx-doe-gallery"]={},e.ng.core,e.rxjs,e.rxjs.operators,e.ng.common,e.ng.platformBrowser)}(this,(function(e,t,n,o,i,r){"use strict"; | ||
/*! ***************************************************************************** | ||
@@ -15,3 +15,3 @@ Copyright (c) Microsoft Corporation. All rights reserved. | ||
and limitations under the License. | ||
***************************************************************************** */var l=function(e,t){return(l=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function c(e,t){function n(){this.constructor=e}l(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function d(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var o,i,r=n.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(o=r.next()).done;)s.push(o.value)}catch(e){i={error:e}}finally{try{o&&!o.done&&(n=r.return)&&n.call(r)}finally{if(i)throw i.error}}return s}var h={galleryLabel:"Image Gallery",viewerLabel:"Displayed gallery image",thumbnailsLabel:"Gallery thumbnails"},u="undefined"!=typeof window,m={scrollBehavior:u&&"scrollBehavior"in document.body.style,nativeMediaLoading:u&&"loading"in Image.prototype,intersectionObserver:u&&"IntersectionObserver"in window},p={ios:u&&!!window.navigator.userAgent.match(/iP(ad|hone|od)/)},f=function(e,t,n,o,i){this.src=e,this.thumbSrc=t,this.alt=n,this.description=o,this.data=i};var b=function(e){function t(t,n,o,i,r,s){var a=e.call(this,t,n,o,i,s)||this;return a.pictureSources=r,a}return c(t,e),t}(f);var g=function(e){function t(t,n,o,i,r){return e.call(this,t,n,o,i,r)||this}return c(t,e),t}(f);var v=function(e){return e instanceof g};var y=function(){function e(e,o){var i=this;this._cd=e,this._elRef=o,this.items=[],this.thumbClick=new t.EventEmitter,this.thumbHover=new t.EventEmitter,this.isVideo=v,this._showStartArrow=!1,this._showEndArrow=!1,this._destroy$=new n.Subject,this._smoothScrollAllowed=!1,this.onArrowsObserved=function(e){var t=e[0].target,n=t===i.thumbsRef.first.nativeElement?e[0]:e[1],o=t===i.thumbsRef.last.nativeElement?e[0]:e[1];n&&(i._showStartArrow=n.intersectionRatio<1),o&&(i._showEndArrow=o.intersectionRatio<1),i._cd.detectChanges()}}return Object.defineProperty(e.prototype,"scrollBehavior",{get:function(){return this._smoothScrollAllowed?this._scrollBehavior:"auto"},set:function(e){this._scrollBehavior=e||"smooth"},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"cssClass",{get:function(){return"doe-thumbs--"+this.orientation},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"_hostOffsetAxis",{get:function(){return this._vertical?this._elRef.nativeElement.offsetHeight:this._elRef.nativeElement.offsetWidth},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"_scrollKey",{get:function(){return this._vertical?"scrollTop":"scrollLeft"},enumerable:!0,configurable:!0}),e.prototype.ngOnChanges=function(e){var t=this,n=e.arrows,o=e.items,i=e.orientation;if(i&&null!=i.currentValue){var r=i.currentValue;this._vertical="left"===r||"right"===r}if(n&&(n.currentValue&&this.items&&this.items.length?this.observeArrows():n.currentValue||(this._showStartArrow=!1,this._showEndArrow=!1,this.unobserveArrows())),o&&o.currentValue){var s=o.currentValue||[],a=o.previousValue||[];if(s.length===a.length)return;this.arrows&&s.length&&this.observeArrows(),a.length||setTimeout((function(){t.centerThumbIfNeeded(t.selectedIndex),t._smoothScrollAllowed=!0}))}},e.prototype.ngOnDestroy=function(){this._destroy$.next(null),this._destroy$.complete(),this._arrowObserver&&this._arrowObserver.disconnect()},e.prototype.slide=function(e){var t;if(this.arrowSlideByLength)t=this.arrowSlideByLength;else{var n=this.thumbListRef.nativeElement,o=this._vertical?n.scrollHeight:n.scrollWidth,i=this._vertical?n.offsetHeight:n.offsetWidth;t=Math.min(i,o-i)}this.scroll(t*e)},e.prototype.centerThumbIfNeeded=function(e){if(this.items&&!(this.items.length<=1)){var t=this.thumbsRef.toArray()[e].nativeElement;if(t){var n=t.offsetLeft,o=t.offsetTop,i=t.offsetWidth,r=t.offsetHeight,s=this._vertical?o:n,a=this._vertical?r:i,l=this._hostOffsetAxis,c=this.thumbListRef.nativeElement[this._scrollKey],d=s+a/2-l/2-c;(c+l<s+a||c>s)&&this.scroll(d)}}},e.prototype.select=function(e){var t=this;this.selectedIndex=e,this._cd.detectChanges(),this.autoScroll&&setTimeout((function(){return t.centerThumbIfNeeded(e)}))},e.prototype._emitEvent=function(e,t,n,o){o.emit({index:e,item:t,event:n})},e.prototype._onLoadChange=function(e,t){e._thumbFailed=!t},e.prototype.scroll=function(e){var t=this;if(u)if(m.scrollBehavior||"auto"===this.scrollBehavior)this.thumbListRef.nativeElement[this._scrollKey]+=e;else{null!=this._scrollId&&cancelAnimationFrame(this._scrollId);var n=Math.abs(e),o=Date.now(),i=200*(Math.log10(n)-1.1);i<0&&(i=200);var r=0,s=function(){var a=Math.ceil((Date.now()-o)/i*n),l=Math.min(a-r,n-r);l*=Math.sign(e),r=a,t.thumbListRef.nativeElement[t._scrollKey]+=l,r<=n&&(t._scrollId=requestAnimationFrame(s))};this._scrollId=requestAnimationFrame(s)}},e.prototype.observeArrows=function(){var e=this;this._arrowObserver?this._arrowObserver.disconnect():this._arrowObserver=new IntersectionObserver(this.onArrowsObserved,{root:this.thumbListRef.nativeElement,threshold:1}),setTimeout((function(){e._arrowObserver.observe(e.thumbsRef.first.nativeElement),e._arrowObserver.observe(e.thumbsRef.last.nativeElement)}))},e.prototype.unobserveArrows=function(){this._arrowObserver&&this._arrowObserver.disconnect()},e.decorators=[{type:t.Component,args:[{selector:"doe-thumbs",template:'<div\n *ngIf="_showStartArrow"\n class="doe-thumbs-arrow doe-thumbs-arrow-prev"\n (click)="slide(-1)"\n>\n <div *ngIf="!arrowTemplate; else arrowTemplate">\n <doe-chevron-icon></doe-chevron-icon>\n </div>\n</div>\n\n<ul\n #thumbs\n [style.scrollBehavior]="scrollBehavior"\n tabindex="0"\n [attr.aria-label]="aria?.thumbnailsLabel"\n>\n <li *ngIf="!items || !items.length" class="doe-thumbs-initial-item"></li>\n <li\n #thumb\n *ngFor="let item of items; let i = index"\n [class.doe-thumbs-item--selected]="i === selectedIndex"\n aria-hidden="true"\n (click)="_emitEvent(i, item, $event, thumbClick)"\n (mouseenter)="_emitEvent(i, item, $event, thumbHover)"\n >\n <ng-container *ngIf="!thumbTemplate; else customThumbTemplate">\n <img\n [src]="item.thumbSrc || \'\'"\n [alt]="item.alt"\n (load)="_onLoadChange(item, true)"\n (error)="_onLoadChange(item, false)"\n />\n\n <ng-container *ngIf="item._thumbFailed">\n <div\n *ngIf="!errorTemplate; else errorTemplate"\n class="doe-thumbs-error"\n >\n <div\n class="doe-thumbs-error-icon"\n [class.doe-thumbs-error-icon--video]="isVideo(item)"\n ></div>\n </div>\n </ng-container>\n </ng-container>\n\n <ng-template #customThumbTemplate>\n <ng-container\n *ngTemplateOutlet="\n thumbTemplate;\n context: { index: i, selectedIndex: selectedIndex, item: item }\n "\n ></ng-container>\n </ng-template>\n </li>\n</ul>\n\n<div\n *ngIf="_showEndArrow"\n class="doe-thumbs-arrow doe-thumbs-arrow-next"\n (click)="slide(1)"\n>\n <div *ngIf="!arrowTemplate; else arrowTemplate">\n <doe-chevron-icon></doe-chevron-icon>\n </div>\n</div>\n',changeDetection:t.ChangeDetectionStrategy.OnPush,styles:[':host{flex:1 0 auto;position:relative;background-color:#f3f3f3}:host.doe-thumbs--bottom,:host.doe-thumbs--top{width:100%}:host.doe-thumbs--bottom ul,:host.doe-thumbs--top ul{width:100%;display:flex;overflow-x:scroll;overflow-y:hidden}:host.doe-thumbs--bottom li,:host.doe-thumbs--top li{flex:none}:host.doe-thumbs--bottom li:not(:first-child),:host.doe-thumbs--top li:not(:first-child){border-left:0}:host.doe-thumbs--bottom li:first-child,:host.doe-thumbs--top li:first-child{margin-left:auto}:host.doe-thumbs--bottom li:last-child,:host.doe-thumbs--top li:last-child{margin-right:auto}:host.doe-thumbs--bottom .doe-thumbs-arrow,:host.doe-thumbs--top .doe-thumbs-arrow{top:0;height:100%}:host.doe-thumbs--bottom .doe-thumbs-arrow>div,:host.doe-thumbs--top .doe-thumbs-arrow>div{width:30px;height:100%}:host.doe-thumbs--bottom .doe-thumbs-arrow-prev,:host.doe-thumbs--top .doe-thumbs-arrow-prev{left:0}:host.doe-thumbs--bottom .doe-thumbs-arrow-next,:host.doe-thumbs--top .doe-thumbs-arrow-next{right:0}:host.doe-thumbs--bottom .doe-thumbs-error,:host.doe-thumbs--top .doe-thumbs-error{border-right:1px solid #cecece}:host.doe-thumbs--left,:host.doe-thumbs--right{height:100%}:host.doe-thumbs--left ul,:host.doe-thumbs--right ul{height:100%;overflow-y:scroll;overflow-x:hidden}:host.doe-thumbs--left li,:host.doe-thumbs--right li{border-top:0}:host.doe-thumbs--left .doe-thumbs-arrow,:host.doe-thumbs--right .doe-thumbs-arrow{width:100%}:host.doe-thumbs--left .doe-thumbs-arrow>div,:host.doe-thumbs--right .doe-thumbs-arrow>div{width:100%;height:30px}:host.doe-thumbs--left .doe-thumbs-arrow doe-chevron-icon,:host.doe-thumbs--right .doe-thumbs-arrow doe-chevron-icon{transform:rotate(90deg)}:host.doe-thumbs--left .doe-thumbs-arrow-prev,:host.doe-thumbs--right .doe-thumbs-arrow-prev{top:0}:host.doe-thumbs--left .doe-thumbs-arrow-next,:host.doe-thumbs--right .doe-thumbs-arrow-next{bottom:0}:host.doe-thumbs--left .doe-thumbs-error,:host.doe-thumbs--right .doe-thumbs-error{border-bottom:1px solid #cecece}:host.doe-thumbs--bottom,:host.doe-thumbs--right{order:1}ul{outline:0;scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;transform:translate3d(0,0,0)}ul::-webkit-scrollbar{width:0;height:0}li{box-sizing:border-box;width:120px;height:80px;position:relative;cursor:pointer}li.doe-thumbs-initial-item{visibility:hidden}li.doe-thumbs-item--selected::after{content:"";display:block;position:absolute;left:0;bottom:0;width:100%;height:100%;border:10px solid #ffffffcf;box-sizing:border-box}img{width:100%;height:100%;background-repeat:no-repeat;background-position:center;-o-object-fit:cover;object-fit:cover}.doe-thumbs-error{position:absolute;left:0;top:0;width:100%;height:100%;display:flex;flex-flow:column nowrap;justify-content:center;align-items:center;background:#e8e8e8;box-sizing:border-box}.doe-thumbs-error-icon:not(.doe-thumbs-error-icon--video){position:relative;border-left:16px solid transparent;border-right:16px solid transparent;border-bottom:28px solid #a5a5a5;margin-left:-8px}.doe-thumbs-error-icon:not(.doe-thumbs-error-icon--video)::after,.doe-thumbs-error-icon:not(.doe-thumbs-error-icon--video)::before{content:"";position:absolute}.doe-thumbs-error-icon:not(.doe-thumbs-error-icon--video)::before{height:10px;width:10px;background-color:#a5a5a5;border-radius:100%;left:14px}.doe-thumbs-error-icon:not(.doe-thumbs-error-icon--video)::after{border-left:14px solid transparent;border-right:14px solid transparent;border-bottom:17px solid #a5a5a5;top:11px}.doe-thumbs-error-icon--video{border-top:16px solid transparent;border-bottom:16px solid transparent;border-left:28px solid #a5a5a5;margin-left:9px}.doe-thumbs-arrow{position:absolute;cursor:pointer;z-index:10}.doe-thumbs-arrow-prev{transform:rotate(180deg)}.doe-thumbs-arrow>div{display:flex;justify-content:center;align-items:center;background:rgba(0,0,0,.5);padding:0;opacity:.7}@media (hover:hover) and (pointer:fine){.doe-thumbs-arrow>div:hover{opacity:1}}']}]}],e.ctorParameters=function(){return[{type:t.ChangeDetectorRef},{type:t.ElementRef}]},e.propDecorators={items:[{type:t.Input}],selectedIndex:[{type:t.Input}],aria:[{type:t.Input}],orientation:[{type:t.Input}],arrows:[{type:t.Input}],arrowSlideByLength:[{type:t.Input}],autoScroll:[{type:t.Input}],thumbTemplate:[{type:t.Input}],arrowTemplate:[{type:t.Input}],errorTemplate:[{type:t.Input}],scrollBehavior:[{type:t.Input}],thumbClick:[{type:t.Output}],thumbHover:[{type:t.Output}],thumbListRef:[{type:t.ViewChild,args:["thumbs",{static:!0}]}],thumbsRef:[{type:t.ViewChildren,args:["thumb"]}],cssClass:[{type:t.HostBinding,args:["class"]}]},e}();var w=function(){function e(e,o,i){var r=this;this._hostRef=e,this._cd=o,this._zone=i,this.imageClick=new t.EventEmitter,this.descriptionClick=new t.EventEmitter,this.selection=new t.EventEmitter,this.isVideo=v,this.UA=p,this._destroy$=new n.Subject,this._listX=0,this.onResize=function(){setTimeout((function(){var e=r.items;r._noAnimation=!0,e&&e.length?(r.readDimensions(),r._fringeCount=r.getFringeCount(),r._displayedItems=r.loop?function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(d(arguments[t]));return e}(e.slice(-r._fringeCount),e,e.slice(0,r._fringeCount)):e,r._cd.detectChanges(),r.center()):r.shift(0),setTimeout((function(){return r._noAnimation=!1}))}))},this.shiftByDelta=function(e){r.shift(r._listX-e)}}return Object.defineProperty(e.prototype,"loop",{get:function(){return this.items&&this.items.length>1&&this._loop},set:function(e){this._loop=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"itemWidth",{set:function(e){this.itemListRef.nativeElement.style.setProperty("--item-width",e||"")},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"_noAnimation",{set:function(e){this.itemListRef.nativeElement.style.transitionDuration=e?"0ms":""},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"lazyLoading",{get:function(){return"lazy"===this.loading},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"showArrow",{get:function(){return this.arrows&&this.items&&this.items.length>1},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"showPrevArrow",{get:function(){return this.showArrow&&(this.selectedIndex>0||this.loop)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"showNextArrow",{get:function(){return this.showArrow&&(this.selectedIndex<this.items.length-1||this.loop)},enumerable:!0,configurable:!0}),e.prototype.ngOnChanges=function(e){var t=this,n=e.thumbsOrientation,o=e.items;n&&!n.firstChange&&(n.currentValue&n.previousValue||setTimeout((function(){t.readDimensions(),t.center(),t._cd.detectChanges()}))),o&&o.currentValue&&o.currentValue.length&&this.onResize()},e.prototype.ngOnInit=function(){var e=this,t={passive:!0};u&&n.fromEvent(window,"resize",t).pipe(i.takeUntil(this._destroy$)).subscribe(this.onResize),u&&this.mouseGestures&&this._zone.runOutsideAngular((function(){var n,o=e.itemListRef.nativeElement,i=0,r=0,s=function(o){n=o,e._noAnimation=!0,document.addEventListener("mousemove",a,t),document.addEventListener("mouseup",l,t)},a=function(t){i=Math.max(Math.abs(n.x-t.x)),r=Math.max(Math.abs(n.y-t.y)),e.shiftByDelta(t.movementX)},l=function(t){var o=n.x-t.x;e._noAnimation=!1,e._zone.run((function(){return e.selectBySwipeStats(o)})),document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",l)},c=function(e){(i>10||r>10)&&(e.stopPropagation(),e.preventDefault()),r=i=0},d=function(e){return e.preventDefault()};o.addEventListener("mousedown",s,t),o.addEventListener("click",c,{capture:!0}),o.addEventListener("dragstart",d),e._destroy$.subscribe((function(){o.removeEventListener("mousedown",s),o.removeEventListener("click",c),o.removeEventListener("dragstart",d)}))})),u&&this.touchGestures&&this._zone.runOutsideAngular((function(){var n,o,i=e.itemListRef.nativeElement,r=null,s=function(t){n=t,e._noAnimation=!0},a=function(t){if(n&&1===t.touches.length){var i=n.touches[0],s=t.touches[0];if(null==r){var a=Math.abs(s.clientX-i.clientX),l=Math.abs(s.clientY-i.clientY);(a||l)&&(r=1.2*a>=l)}r&&(e.shiftByDelta(s.clientX-(o||n).touches[0].clientX),o=t,p.ios&&(t.preventDefault(),t.stopPropagation()))}},l=function(){if(e._noAnimation=!1,o){var t=n.touches[0].clientX-o.touches[0].clientX;e._zone.run((function(){return e.selectBySwipeStats(t)}))}r=null,n=null,o=null};i.addEventListener("touchstart",s,t),document.addEventListener("touchmove",a,{passive:!p.ios}),document.addEventListener("touchend",l,t),e._destroy$.subscribe((function(){i.removeEventListener("touchstart",s),document.removeEventListener("touchmove",a),document.removeEventListener("touchend",l)}))}))},e.prototype.ngOnDestroy=function(){this._destroy$.next(null),this._destroy$.complete()},e.prototype.isInScrollportProximity=function(e){this.loop&&(e-=this._fringeCount);var t=this.touched?Math.ceil(this._viewerWidth/(this._itemWidth+1))||1:Math.floor(Math.ceil(this._viewerWidth/this._itemWidth)/2),n=Math.abs(this.selectedIndex-e);return this.loop&&Math.abs(n-this.items.length)<=t||n<=t},e.prototype.isYoutube=function(e){return!!e.src.match(/youtube.*\/embed\//)},e.prototype.selectByDelta=function(e){this.select(this.selectedIndex+e)},e.prototype.select=function(e){var t=this,n=!this.items[e],o=this.loop&&n;if(this.selectedIndex===e)return this.center();if(!o&&n&&(e=e<0?0:this.items.length-1),o){var i=e;e=i-Math.sign(e)*this.items.length,this._noAnimation=!0,setTimeout((function(){var e=t._listX-Math.sign(i)*t.items.length*t._itemWidth;t.shift(e),setTimeout((function(){t._noAnimation=!1,t.center()}))}))}if(this.isVideo(this.items[e])){var r=this.itemsRef.toArray()[this.selectedIndex].nativeElement.querySelector("video");r&&r.pause()}this.selectedIndex=e,this.selection.emit(e),o||this.center()},e.prototype.onImageClick=function(e,t){this.imageClick.emit({event:t,item:e,index:this.items.indexOf(e)})},e.prototype.onTab=function(e){var t=this;e>=0&&e<this.items.length&&(this.select(e),requestAnimationFrame((function(){return t._hostRef.nativeElement.scrollLeft=0})))},e.prototype.onItemLoaded=function(e,t){t.target.getAttribute("src")&&(e._loaded=!0,e._failed=!1,this._cd.detectChanges())},e.prototype.onItemErrored=function(e,t){t.target.getAttribute("src")&&(e._failed=!0,this._cd.detectChanges())},e.prototype.center=function(){var e=(this._viewerWidth-this._itemWidth)/2;this.shift((this.selectedIndex+this._fringeCount)*this._itemWidth-e)},e.prototype.getFringeCount=function(){return this.loop?Math.min(Math.ceil(this._viewerWidth/(this._itemWidth+1)),this.items.length):0},e.prototype.readDimensions=function(){this._viewerWidth=this._hostRef.nativeElement.offsetWidth,this._itemWidth=this._hostRef.nativeElement.querySelector("li").offsetWidth},e.prototype.selectBySwipeStats=function(e){var t=Math.ceil((Math.abs(e)-25)/this._itemWidth);t?this.selectByDelta(t*Math.sign(e)):this.center()},e.prototype.shift=function(e){this.itemListRef.nativeElement.style.transform="translate3d("+-(this._listX=e)+"px, 0, 0)"},e.decorators=[{type:t.Component,args:[{selector:"doe-viewer",template:'<div\n *ngIf="showPrevArrow"\n class="doe-viewer-arrow doe-viewer-arrow-prev"\n (click)="selectByDelta(-1)"\n>\n <doe-chevron-icon\n *ngIf="!arrowTemplate; else arrowTemplate"\n ></doe-chevron-icon>\n</div>\n\n<ul #itemList [attr.aria-label]="aria?.viewerLabel">\n <li *ngIf="!_displayedItems?.length" class="doe-viewer-initial-item"></li>\n <li\n #itemsRef\n *ngFor="let item of _displayedItems; let i = index"\n [class.doe-viewer-item--selected]="i === selectedIndex"\n tabindex="0"\n [attr.aria-label]="item.alt"\n [attr.aria-describedby]="\'doe-viewer-aria-description-\' + i"\n (click)="onImageClick(item, $event)"\n (doe-media-load)="onItemLoaded(item, $event.detail)"\n (doe-media-error)="onItemErrored(item, $event.detail)"\n (keydown.Tab)="onTab(i + 1)"\n (keydown.shift.Tab)="onTab(i - 1)"\n >\n <ng-container *ngIf="!lazyLoading || isInScrollportProximity(i)">\n <ng-container *ngIf="!itemTemplate; else customTemplate">\n <picture *ngIf="!isVideo(item)" @remove>\n <source\n *ngFor="let source of item.pictureSources"\n [srcset]="source.srcset"\n [attr.media]="source.media"\n [attr.sizes]="source.sizes"\n [attr.type]="source.type"\n />\n <img\n [src]="item.src"\n [alt]="item.alt"\n [class.doe-viewer-media-loading]="!item._loaded"\n [style.objectFit]="objectFit"\n (load)="onItemLoaded(item, $event)"\n (error)="onItemErrored(item, $event)"\n />\n </picture>\n \x3c!-- Using loadedmetadata instead of loadeddata because iOS loads data lazily upon user\'s interaction --\x3e\n <video\n @remove\n *ngIf="!isYoutube(item) && isVideo(item)"\n [src]="item.src"\n [poster]="item.thumbSrc || \'\'"\n [class.doe-viewer-media-loading]="!item._loaded"\n [style.objectFit]="objectFit"\n controls\n playsinline\n (loadedmetadata)="onItemLoaded(item, $event)"\n (error)="onItemErrored(item, $event)"\n ></video>\n\n <iframe\n @remove\n *ngIf="isYoutube(item)"\n [src]="item.src | safe"\n frameborder="0"\n allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"\n allowfullscreen\n (load)="onItemLoaded(item, $event)"\n ></iframe>\n </ng-container>\n\n <ng-container *ngIf="!item._loaded && !item._failed">\n <ng-container *ngTemplateOutlet="loadingTemplate"></ng-container>\n </ng-container>\n\n <ng-container *ngIf="item._failed">\n <div\n *ngIf="!errorTemplate; else errorTemplate"\n class="doe-viewer-error"\n >\n <div class="doe-viewer-error-icon">⚠</div>\n <p class="doe-viewer-error-text">\n {{ errorText || \'Loading of this media failed\' }}\n </p>\n </div>\n </ng-container>\n\n <span\n [id]="\'doe-viewer-aria-description-\' + i"\n class="doe-viewer-aria-description"\n [innerHTML]="item.description"\n aria-hidden="true"\n ></span>\n </ng-container>\n\n <ng-template #customTemplate>\n <ng-container\n *ngTemplateOutlet="\n itemTemplate;\n context: {\n index: items?.indexOf(item),\n selectedIndex: selectedIndex,\n item: item,\n video: isVideo(item)\n }\n "\n ></ng-container>\n </ng-template>\n </li>\n</ul>\n\n<ng-container *ngIf="items?.length <= 0">\n <ng-container *ngTemplateOutlet="loadingTemplate"></ng-container>\n</ng-container>\n\n<div\n *ngIf="showNextArrow"\n class="doe-viewer-arrow doe-viewer-arrow-next"\n (click)="selectByDelta(1)"\n>\n <doe-chevron-icon\n *ngIf="!arrowTemplate; else arrowTemplate"\n ></doe-chevron-icon>\n</div>\n\n<doe-counter\n *ngIf="counter && items?.length"\n [itemQuantity]="items?.length"\n [selectedIndex]="selectedIndex"\n [orientation]="counterOrientation"\n></doe-counter>\n\n<div\n *ngIf="descriptions && items"\n class="doe-viewer-description"\n [class.doe-viewer-description--above-counter]="\n counter && counterOrientation === \'bottom\'\n "\n aria-hidden="true"\n>\n <div\n *ngIf="items[selectedIndex]?.description as description"\n class="doe-viewer-description-inner"\n [innerHTML]="description"\n (click)="descriptionClick.emit($event)"\n ></div>\n</div>\n',changeDetection:t.ChangeDetectionStrategy.OnPush,animations:[o.trigger("remove",[o.transition(":leave",o.animate("0ms 100ms")),o.transition(":enter",[o.style({opacity:0}),o.animate("400ms",o.style({opacity:1}))])])],styles:[':host{display:block;position:relative;width:100%;height:100%;overflow:hidden;outline:0;background-color:#ececec;z-index:1}ul{--item-width:calc(100% - 0.01px);display:flex;width:100%;height:100%;transition:transform .4s;scrollbar-width:none;-ms-overflow-style:none}ul::-webkit-scrollbar{width:0;height:0}li{display:flex;align-items:center;flex:none;position:relative;width:var(--item-width);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;outline:0}picture{width:100%;height:100%}iframe,img,video{width:100%;height:100%;background-color:transparent;transition:opacity .3s ease-out;outline:0}iframe[src=""],img[src=""],video[src=""]{opacity:0}iframe.doe-viewer-media-loading,img.doe-viewer-media-loading,video.doe-viewer-media-loading{opacity:.5}img{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.doe-viewer-description{position:absolute;bottom:5px;width:100%;display:flex;justify-content:center}.doe-viewer-description--above-counter{bottom:35px}.doe-viewer-description-inner{display:inline-block;background:#000;opacity:.8;color:#fff;padding:6px 15px;max-width:80%;font-size:.95em;text-align:center}.doe-viewer-aria-description{opacity:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:absolute;bottom:0;left:50%;transform:translateX(-50%)}.doe-viewer-error{position:absolute;left:0;top:0;width:100%;height:100%;display:flex;flex-flow:column nowrap;justify-content:center;align-items:center;background-color:#f5f5f5;color:#7d7d7d}.doe-viewer-error-icon{font-size:40px}.doe-viewer-error-text{margin-top:10px;letter-spacing:.01em}.doe-viewer-arrow{display:flex;position:absolute;top:50%;transform:translateY(-50%);z-index:100;cursor:pointer}.doe-viewer-arrow-prev{left:0;transform:rotate(180deg) translateY(50%)}.doe-viewer-arrow-next{right:0}.doe-viewer-arrow doe-chevron-icon{margin:15px 6px;opacity:.7}@media (hover:hover) and (pointer:fine){.doe-viewer-arrow doe-chevron-icon:hover{opacity:1}}.doe-viewer-arrow doe-chevron-icon::ng-deep svg{height:32px;width:32px}']}]}],e.ctorParameters=function(){return[{type:t.ElementRef},{type:t.ChangeDetectorRef},{type:t.NgZone}]},e.propDecorators={items:[{type:t.Input}],arrows:[{type:t.Input}],selectedIndex:[{type:t.Input}],descriptions:[{type:t.Input}],errorText:[{type:t.Input}],mouseGestures:[{type:t.Input}],touchGestures:[{type:t.Input}],counter:[{type:t.Input}],counterOrientation:[{type:t.Input}],loading:[{type:t.Input}],objectFit:[{type:t.Input}],itemTemplate:[{type:t.Input}],loadingTemplate:[{type:t.Input}],errorTemplate:[{type:t.Input}],arrowTemplate:[{type:t.Input}],thumbsOrientation:[{type:t.Input}],aria:[{type:t.Input}],loop:[{type:t.Input}],itemWidth:[{type:t.Input}],touched:[{type:t.Input}],imageClick:[{type:t.Output}],descriptionClick:[{type:t.Output}],selection:[{type:t.Output}],itemListRef:[{type:t.ViewChild,args:["itemList",{static:!0}]}],itemsRef:[{type:t.ViewChildren,args:["itemsRef"]}]},e}();var x=function(){function e(e,n){var o=this;this.cd=e,this.hostRef=n,this.selectedIndex=0,this.aria=h,this.arrows=!0,this.descriptions=!1,this.mouseGestures=!0,this.touchGestures=!0,this.counter=!0,this.counterOrientation="bottom",this.loading="auto",this.loop=!1,this.objectFit="cover",this.thumbs=!0,this.thumbsAutoScroll=!0,this.thumbsOrientation="bottom",this.thumbsArrows=!0,this.thumbsScrollBehavior="smooth",this.imageClick=new t.EventEmitter,this.thumbClick=new t.EventEmitter,this.thumbHover=new t.EventEmitter,this.descriptionClick=new t.EventEmitter,this.selection=new t.EventEmitter,this._tabindex=0,this._touched=!1,this.INIT_INTERACTIONS=["touchstart","mousedown","keydown"],this._onInitInteraction=function(){var e=o.hostRef.nativeElement;o._touched=!0,o.cd.detectChanges(),o.INIT_INTERACTIONS.forEach((function(t){return e.removeEventListener(t,o._onInitInteraction)}))},this.INIT_INTERACTIONS.forEach((function(e){return n.nativeElement.addEventListener(e,o._onInitInteraction,{passive:!0})}))}return Object.defineProperty(e.prototype,"ariaLabel",{get:function(){return this.aria&&this.aria.galleryLabel},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"_galleryColumn",{get:function(){return"top"===this.thumbsOrientation||"bottom"===this.thumbsOrientation},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"_thumbsOrientationFlag",{get:function(){return"top"===this.thumbsOrientation||"bottom"===this.thumbsOrientation?6:24},enumerable:!0,configurable:!0}),e.prototype.focus=function(){this._viewerElRef.nativeElement.focus()},e.prototype.next=function(){this._viewerRef.selectByDelta(1)},e.prototype.prev=function(){this._viewerRef.selectByDelta(-1)},e.prototype.select=function(e){this._viewerRef.select(e),this._thumbsRef.select(e),this._selectInternal(e)},e.prototype.slideThumbs=function(e){this._thumbsRef.slide(e)},e.prototype._onThumbClick=function(e){this._viewerRef.select(e.index),this.thumbClick.emit(e),this._selectInternal(e.index)},e.prototype._selectInternal=function(e){this.selectedIndex=e,this.selection.emit(this.items[e])},e.decorators=[{type:t.Component,args:[{selector:"doe-gallery",template:'<doe-thumbs\n *ngIf="thumbs"\n [items]="items"\n [selectedIndex]="selectedIndex"\n [orientation]="thumbsOrientation"\n [arrows]="thumbsArrows"\n [arrowSlideByLength]="thumbsArrowSlideByLength"\n [autoScroll]="thumbsAutoScroll"\n [scrollBehavior]="thumbsScrollBehavior"\n [thumbTemplate]="thumbTemplate"\n [arrowTemplate]="thumbsArrowTemplate"\n [errorTemplate]="thumbErrorTemplate"\n [aria]="aria"\n (thumbClick)="_onThumbClick($event)"\n (thumbHover)="thumbHover.emit($event)"\n></doe-thumbs>\n\n<doe-viewer\n tabindex="0"\n [items]="items"\n [selectedIndex]="selectedIndex"\n [arrows]="arrows"\n [descriptions]="descriptions"\n [errorText]="errorText"\n [mouseGestures]="mouseGestures"\n [touchGestures]="touchGestures"\n [counter]="counter"\n [counterOrientation]="counterOrientation"\n [itemWidth]="itemWidth"\n [objectFit]="objectFit"\n [loading]="loading"\n [itemTemplate]="itemTemplate"\n [loadingTemplate]="loadingTemplate || defaultLoadingTemplate"\n [errorTemplate]="errorTemplate"\n [loop]="loop"\n [thumbsOrientation]="_thumbsOrientationFlag"\n [arrowTemplate]="arrowTemplate"\n [aria]="aria"\n [touched]="_touched"\n (imageClick)="imageClick.emit($event)"\n (descriptionClick)="descriptionClick.emit($event)"\n (selection)="_selectInternal($event); _thumbsRef?.select($event)"\n></doe-viewer>\n\n<ng-template #defaultLoadingTemplate>\n <div class="doe-loading">\n <div></div>\n <div></div>\n <div></div>\n </div>\n</ng-template>\n',changeDetection:t.ChangeDetectionStrategy.OnPush,styles:[":host{display:flex;height:600px;width:500px;outline:0;position:relative}:host.doe-gallery--column{flex-direction:column}:host::ng-deep{font-family:Helvetica Neue,Helvetica,Arial,sans-serif}:host::ng-deep button{border:none}:host::ng-deep ul{list-style-type:none;margin:0;padding:0}.doe-loading{display:flex;justify-content:center;align-items:center;position:absolute;width:100%;height:100%;left:0;top:0;background-color:transparent;z-index:10}.doe-loading>div{height:13px;width:13px;background-color:#4a4a4a;-webkit-animation:2s infinite bounce;animation:2s infinite bounce;border-radius:50%;box-shadow:0 0 0 1px #f5f5f5,0 0 1px 1px #f5f5f5}.doe-loading>div+div{margin-left:10px;-webkit-animation-delay:125ms;animation-delay:125ms}.doe-loading>div+div+div{-webkit-animation-delay:.3s;animation-delay:.3s}@-webkit-keyframes bounce{20%{transform:translateY(-20px)}50%{transform:translateY(0)}}@keyframes bounce{20%{transform:translateY(-20px)}50%{transform:translateY(0)}}"]}]}],e.ctorParameters=function(){return[{type:t.ChangeDetectorRef},{type:t.ElementRef}]},e.propDecorators={items:[{type:t.Input}],selectedIndex:[{type:t.Input}],aria:[{type:t.Input}],arrows:[{type:t.Input}],descriptions:[{type:t.Input}],errorText:[{type:t.Input}],mouseGestures:[{type:t.Input}],touchGestures:[{type:t.Input}],counter:[{type:t.Input}],counterOrientation:[{type:t.Input}],itemWidth:[{type:t.Input}],loading:[{type:t.Input}],loop:[{type:t.Input}],objectFit:[{type:t.Input}],itemTemplate:[{type:t.Input}],loadingTemplate:[{type:t.Input}],errorTemplate:[{type:t.Input}],arrowTemplate:[{type:t.Input}],thumbs:[{type:t.Input}],thumbsAutoScroll:[{type:t.Input}],thumbsOrientation:[{type:t.Input}],thumbsArrows:[{type:t.Input}],thumbsArrowSlideByLength:[{type:t.Input}],thumbsScrollBehavior:[{type:t.Input}],thumbTemplate:[{type:t.Input}],thumbsArrowTemplate:[{type:t.Input}],thumbErrorTemplate:[{type:t.Input}],imageClick:[{type:t.Output}],thumbClick:[{type:t.Output}],thumbHover:[{type:t.Output}],descriptionClick:[{type:t.Output}],selection:[{type:t.Output}],_viewerRef:[{type:t.ViewChild,args:[w,{static:!1}]}],_thumbsRef:[{type:t.ViewChild,args:[y,{static:!1}]}],_viewerElRef:[{type:t.ViewChild,args:[w,{static:!1,read:t.ElementRef}]}],_tabindex:[{type:t.HostBinding,args:["tabindex"]}],ariaLabel:[{type:t.HostBinding,args:["attr.aria-label"]}],_galleryColumn:[{type:t.HostBinding,args:["class.doe-gallery--column"]}],next:[{type:t.HostListener,args:["keydown.arrowright"]}],prev:[{type:t.HostListener,args:["keydown.arrowleft"]}]},e}();var I=function(){function e(){}return e.decorators=[{type:t.Component,args:[{selector:"doe-counter",template:'\n <span aria-hidden="true">\n {{ selectedIndex + 1 }}<span class="doe-counter-delimiter">/</span\n >{{ itemQuantity || 0 }}\n </span>\n ',changeDetection:t.ChangeDetectionStrategy.OnPush,styles:[":host{position:absolute;left:50%;transform:translateX(-50%);background:#000;padding:4px 7px 3px;color:#fff;opacity:.7;font-size:14px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}:host.top{top:0}:host.bottom{bottom:0}.doe-counter-delimiter{padding:0 2px}"]}]}],e.propDecorators={itemQuantity:[{type:t.Input}],selectedIndex:[{type:t.Input}],orientation:[{type:t.HostBinding,args:["class"]},{type:t.Input}]},e}();var _=function(){function e(){}return e.decorators=[{type:t.Component,args:[{selector:"doe-chevron-icon",template:'\x3c!-- Icon made by Dave Gandy from www.flaticon.com --\x3e\n<svg\n version="1.1"\n xmlns="http://www.w3.org/2000/svg"\n xmlns:xlink="http://www.w3.org/1999/xlink"\n x="0px"\n y="0px"\n viewBox="0 0 407.436 407.436"\n xml:space="preserve"\n>\n <polygon\n points="112.814,0 91.566,21.178 273.512,203.718 91.566,386.258 112.814,407.436 315.869,203.718 "\n />\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n</svg>\n',changeDetection:t.ChangeDetectionStrategy.OnPush,styles:["svg{width:26px;height:26px;fill:#fff;-webkit-filter:drop-shadow(0 0 1px #000);filter:drop-shadow(0 0 1px #000);display:block}"]}]}],e}(),T=function(){function e(e){this.sanitizer=e}return e.prototype.transform=function(e){return this.sanitizer.bypassSecurityTrustResourceUrl(e)},e.decorators=[{type:t.Pipe,args:[{name:"safe"}]}],e.ctorParameters=function(){return[{type:a.DomSanitizer}]},e}();var E=function(){function e(e){this.hostRef=e}return e.prototype.onLoad=function(e){var t="error"===e.type?"doe-media-error":"doe-media-load";this.hostRef.nativeElement.dispatchEvent(new CustomEvent(t,{bubbles:!0,detail:e}))},e.decorators=[{type:t.Directive,args:[{selector:"[doeMedia]"}]}],e.ctorParameters=function(){return[{type:t.ElementRef}]},e.propDecorators={onLoad:[{type:t.HostListener,args:["load",["$event"]]},{type:t.HostListener,args:["loadedmetadata",["$event"]]},{type:t.HostListener,args:["error",["$event"]]}]},e}();var O=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{declarations:[x,y,w,_,I,T,E],imports:[r.CommonModule,s.BrowserAnimationsModule],exports:[x,E]}]}],e}();e.GalleryComponent=x,e.GalleryImage=b,e.GalleryItem=f,e.GalleryModule=O,e.GalleryVideo=g,e.SUPPORT=m,e.UA=p,e.isBrowser=u,e.orientations={left:2,right:4,top:8,bottom:16},e.ɵa=w,e.ɵb=y,e.ɵc=_,e.ɵd=I,e.ɵe=T,e.ɵf=E,Object.defineProperty(e,"__esModule",{value:!0})})); | ||
***************************************************************************** */var s=function(e,t){return(s=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function a(e,t){function n(){this.constructor=e}s(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function l(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var o,i,r=n.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(o=r.next()).done;)s.push(o.value)}catch(e){i={error:e}}finally{try{o&&!o.done&&(n=r.return)&&n.call(r)}finally{if(i)throw i.error}}return s}var c={galleryLabel:"Image Gallery",viewerLabel:"Displayed gallery image",thumbnailsLabel:"Gallery thumbnails"},d="undefined"!=typeof window,h={scrollBehavior:d&&"scrollBehavior"in document.body.style,nativeMediaLoading:d&&"loading"in Image.prototype,intersectionObserver:d&&"IntersectionObserver"in window},u={ios:d&&!!window.navigator.userAgent.match(/iP(ad|hone|od)/)},m=function(e,t,n,o,i){this.src=e,this.thumbSrc=t,this.alt=n,this.description=o,this.data=i};var p=function(e){function t(t,n,o,i,r,s){var a=e.call(this,t,n,o,i,s)||this;return a.pictureSources=r,a}return a(t,e),t}(m);var f=function(e){function t(t,n,o,i,r){return e.call(this,t,n,o,i,r)||this}return a(t,e),t}(m);var b=function(e){return e instanceof f};var g=function(){function e(e,o){var i=this;this._cd=e,this._elRef=o,this.items=[],this.thumbClick=new t.EventEmitter,this.thumbHover=new t.EventEmitter,this.isVideo=b,this._showStartArrow=!1,this._showEndArrow=!1,this._destroy$=new n.Subject,this._smoothScrollAllowed=!1,this.onArrowsObserved=function(e){var t=e[0].target,n=t===i.thumbsRef.first.nativeElement?e[0]:e[1],o=t===i.thumbsRef.last.nativeElement?e[0]:e[1];n&&(i._showStartArrow=n.intersectionRatio<1),o&&(i._showEndArrow=o.intersectionRatio<1),i._cd.detectChanges()}}return Object.defineProperty(e.prototype,"scrollBehavior",{get:function(){return this._smoothScrollAllowed?this._scrollBehavior:"auto"},set:function(e){this._scrollBehavior=e||"smooth"},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"cssClass",{get:function(){return"doe-thumbs--"+this.orientation},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"_hostOffsetAxis",{get:function(){return this._vertical?this._elRef.nativeElement.offsetHeight:this._elRef.nativeElement.offsetWidth},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"_scrollKey",{get:function(){return this._vertical?"scrollTop":"scrollLeft"},enumerable:!0,configurable:!0}),e.prototype.ngOnChanges=function(e){var t=this,n=e.arrows,o=e.items,i=e.orientation;if(i&&null!=i.currentValue){var r=i.currentValue;this._vertical="left"===r||"right"===r}if(n&&(n.currentValue&&this.items&&this.items.length?this.observeArrows():n.currentValue||(this._showStartArrow=!1,this._showEndArrow=!1,this.unobserveArrows())),o&&o.currentValue){var s=o.currentValue||[],a=o.previousValue||[];if(s.length===a.length)return;this.arrows&&s.length&&this.observeArrows(),a.length||setTimeout((function(){t.centerThumbIfNeeded(t.selectedIndex),t._smoothScrollAllowed=!0}))}},e.prototype.ngOnDestroy=function(){this._destroy$.next(null),this._destroy$.complete(),this._arrowObserver&&this._arrowObserver.disconnect()},e.prototype.slide=function(e){var t;if(this.arrowSlideByLength)t=this.arrowSlideByLength;else{var n=this.thumbListRef.nativeElement,o=this._vertical?n.scrollHeight:n.scrollWidth,i=this._vertical?n.offsetHeight:n.offsetWidth;t=Math.min(i,o-i)}this.scroll(t*e)},e.prototype.centerThumbIfNeeded=function(e){if(this.items&&!(this.items.length<=1)){var t=this.thumbsRef.toArray()[e];if(t){var n=t.nativeElement,o=n.offsetLeft,i=n.offsetTop,r=n.offsetWidth,s=n.offsetHeight,a=this._vertical?i:o,l=this._vertical?s:r,c=this._hostOffsetAxis,d=this.thumbListRef.nativeElement[this._scrollKey],h=a+l/2-c/2-d;(d+c<a+l||d>a)&&this.scroll(h)}}},e.prototype.select=function(e){var t=this;this.selectedIndex=e,this._cd.detectChanges(),this.autoScroll&&setTimeout((function(){return t.centerThumbIfNeeded(e)}))},e.prototype._emitEvent=function(e,t,n,o){o.emit({index:e,item:t,event:n})},e.prototype._onLoadChange=function(e,t){e._thumbFailed=!t},e.prototype.scroll=function(e){var t=this;if(d)if(h.scrollBehavior||"auto"===this.scrollBehavior)this.thumbListRef.nativeElement[this._scrollKey]+=e;else{null!=this._scrollId&&cancelAnimationFrame(this._scrollId);var n=Math.abs(e),o=Date.now(),i=200*(Math.log10(n)-1.1);i<0&&(i=200);var r=0,s=function(){var a=Math.ceil((Date.now()-o)/i*n),l=Math.min(a-r,n-r);l*=Math.sign(e),r=a,t.thumbListRef.nativeElement[t._scrollKey]+=l,r<=n&&(t._scrollId=requestAnimationFrame(s))};this._scrollId=requestAnimationFrame(s)}},e.prototype.observeArrows=function(){var e=this;this._arrowObserver?this._arrowObserver.disconnect():this._arrowObserver=new IntersectionObserver(this.onArrowsObserved,{root:this.thumbListRef.nativeElement,threshold:1}),setTimeout((function(){e._arrowObserver.observe(e.thumbsRef.first.nativeElement),e._arrowObserver.observe(e.thumbsRef.last.nativeElement)}))},e.prototype.unobserveArrows=function(){this._arrowObserver&&this._arrowObserver.disconnect()},e.decorators=[{type:t.Component,args:[{selector:"doe-thumbs",template:'<div\n *ngIf="_showStartArrow"\n class="doe-thumbs-arrow doe-thumbs-arrow-prev"\n (click)="slide(-1)"\n>\n <div *ngIf="!arrowTemplate; else arrowTemplate">\n <doe-chevron-icon></doe-chevron-icon>\n </div>\n</div>\n\n<ul\n #thumbs\n [style.scrollBehavior]="scrollBehavior"\n tabindex="0"\n [attr.aria-label]="aria?.thumbnailsLabel"\n>\n <li *ngIf="!items || !items.length" class="doe-thumbs-initial-item"></li>\n <li\n #thumb\n *ngFor="let item of items; let i = index"\n [class.doe-thumbs-item--selected]="i === selectedIndex"\n aria-hidden="true"\n (click)="_emitEvent(i, item, $event, thumbClick)"\n (mouseenter)="_emitEvent(i, item, $event, thumbHover)"\n >\n <ng-container *ngIf="!thumbTemplate; else customThumbTemplate">\n <img\n [src]="item.thumbSrc || \'\'"\n [alt]="item.alt"\n (load)="_onLoadChange(item, true)"\n (error)="_onLoadChange(item, false)"\n />\n\n <ng-container *ngIf="item._thumbFailed">\n <div\n *ngIf="!errorTemplate; else errorTemplate"\n class="doe-thumbs-error"\n >\n <div\n class="doe-thumbs-error-icon"\n [class.doe-thumbs-error-icon--video]="isVideo(item)"\n ></div>\n </div>\n </ng-container>\n </ng-container>\n\n <ng-template #customThumbTemplate>\n <ng-container\n *ngTemplateOutlet="\n thumbTemplate;\n context: { index: i, selectedIndex: selectedIndex, item: item }\n "\n ></ng-container>\n </ng-template>\n </li>\n</ul>\n\n<div\n *ngIf="_showEndArrow"\n class="doe-thumbs-arrow doe-thumbs-arrow-next"\n (click)="slide(1)"\n>\n <div *ngIf="!arrowTemplate; else arrowTemplate">\n <doe-chevron-icon></doe-chevron-icon>\n </div>\n</div>\n',changeDetection:t.ChangeDetectionStrategy.OnPush,styles:[':host{flex:1 0 auto;position:relative;background-color:#f3f3f3}:host.doe-thumbs--bottom,:host.doe-thumbs--top{width:100%}:host.doe-thumbs--bottom ul,:host.doe-thumbs--top ul{width:100%;display:flex;overflow-x:scroll;overflow-y:hidden}:host.doe-thumbs--bottom li,:host.doe-thumbs--top li{flex:none}:host.doe-thumbs--bottom li:not(:first-child),:host.doe-thumbs--top li:not(:first-child){border-left:0}:host.doe-thumbs--bottom li:first-child,:host.doe-thumbs--top li:first-child{margin-left:auto}:host.doe-thumbs--bottom li:last-child,:host.doe-thumbs--top li:last-child{margin-right:auto}:host.doe-thumbs--bottom .doe-thumbs-arrow,:host.doe-thumbs--top .doe-thumbs-arrow{top:0;height:100%}:host.doe-thumbs--bottom .doe-thumbs-arrow>div,:host.doe-thumbs--top .doe-thumbs-arrow>div{width:30px;height:100%}:host.doe-thumbs--bottom .doe-thumbs-arrow-prev,:host.doe-thumbs--top .doe-thumbs-arrow-prev{left:0}:host.doe-thumbs--bottom .doe-thumbs-arrow-next,:host.doe-thumbs--top .doe-thumbs-arrow-next{right:0}:host.doe-thumbs--bottom .doe-thumbs-error,:host.doe-thumbs--top .doe-thumbs-error{border-right:1px solid #cecece}:host.doe-thumbs--left,:host.doe-thumbs--right{height:100%}:host.doe-thumbs--left ul,:host.doe-thumbs--right ul{height:100%;overflow-y:scroll;overflow-x:hidden}:host.doe-thumbs--left li,:host.doe-thumbs--right li{border-top:0}:host.doe-thumbs--left .doe-thumbs-arrow,:host.doe-thumbs--right .doe-thumbs-arrow{width:100%}:host.doe-thumbs--left .doe-thumbs-arrow>div,:host.doe-thumbs--right .doe-thumbs-arrow>div{width:100%;height:30px}:host.doe-thumbs--left .doe-thumbs-arrow doe-chevron-icon,:host.doe-thumbs--right .doe-thumbs-arrow doe-chevron-icon{transform:rotate(90deg)}:host.doe-thumbs--left .doe-thumbs-arrow-prev,:host.doe-thumbs--right .doe-thumbs-arrow-prev{top:0}:host.doe-thumbs--left .doe-thumbs-arrow-next,:host.doe-thumbs--right .doe-thumbs-arrow-next{bottom:0}:host.doe-thumbs--left .doe-thumbs-error,:host.doe-thumbs--right .doe-thumbs-error{border-bottom:1px solid #cecece}:host.doe-thumbs--bottom,:host.doe-thumbs--right{order:1}ul{outline:0;scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;transform:translate3d(0,0,0)}ul::-webkit-scrollbar{width:0;height:0}li{box-sizing:border-box;width:120px;height:80px;position:relative;cursor:pointer}li.doe-thumbs-initial-item{visibility:hidden}li.doe-thumbs-item--selected::after{content:"";display:block;position:absolute;left:0;bottom:0;width:100%;height:100%;border:10px solid #ffffffcf;box-sizing:border-box}img{width:100%;height:100%;background-repeat:no-repeat;background-position:center;-o-object-fit:cover;object-fit:cover}.doe-thumbs-error{position:absolute;left:0;top:0;width:100%;height:100%;display:flex;flex-flow:column nowrap;justify-content:center;align-items:center;background:#e8e8e8;box-sizing:border-box}.doe-thumbs-error-icon:not(.doe-thumbs-error-icon--video){position:relative;border-left:16px solid transparent;border-right:16px solid transparent;border-bottom:28px solid #a5a5a5;margin-left:-8px}.doe-thumbs-error-icon:not(.doe-thumbs-error-icon--video)::after,.doe-thumbs-error-icon:not(.doe-thumbs-error-icon--video)::before{content:"";position:absolute}.doe-thumbs-error-icon:not(.doe-thumbs-error-icon--video)::before{height:10px;width:10px;background-color:#a5a5a5;border-radius:100%;left:14px}.doe-thumbs-error-icon:not(.doe-thumbs-error-icon--video)::after{border-left:14px solid transparent;border-right:14px solid transparent;border-bottom:17px solid #a5a5a5;top:11px}.doe-thumbs-error-icon--video{border-top:16px solid transparent;border-bottom:16px solid transparent;border-left:28px solid #a5a5a5;margin-left:9px}.doe-thumbs-arrow{position:absolute;cursor:pointer;z-index:10}.doe-thumbs-arrow-prev{transform:rotate(180deg)}.doe-thumbs-arrow>div{display:flex;justify-content:center;align-items:center;background:rgba(0,0,0,.5);padding:0;opacity:.7}@media (hover:hover) and (pointer:fine){.doe-thumbs-arrow>div:hover{opacity:1}}']}]}],e.ctorParameters=function(){return[{type:t.ChangeDetectorRef},{type:t.ElementRef}]},e.propDecorators={items:[{type:t.Input}],selectedIndex:[{type:t.Input}],aria:[{type:t.Input}],orientation:[{type:t.Input}],arrows:[{type:t.Input}],arrowSlideByLength:[{type:t.Input}],autoScroll:[{type:t.Input}],thumbTemplate:[{type:t.Input}],arrowTemplate:[{type:t.Input}],errorTemplate:[{type:t.Input}],scrollBehavior:[{type:t.Input}],thumbClick:[{type:t.Output}],thumbHover:[{type:t.Output}],thumbListRef:[{type:t.ViewChild,args:["thumbs",{static:!0}]}],thumbsRef:[{type:t.ViewChildren,args:["thumb"]}],cssClass:[{type:t.HostBinding,args:["class"]}]},e}();var v=function(){function e(e,o,i){var r=this;this._hostRef=e,this._cd=o,this._zone=i,this.imageClick=new t.EventEmitter,this.descriptionClick=new t.EventEmitter,this.selection=new t.EventEmitter,this.isVideo=b,this.UA=u,this._destroy$=new n.Subject,this._listX=0,this.onResize=function(){setTimeout((function(){var e=r.items;r._noAnimation=!0,e&&e.length?(r.readDimensions(),r._fringeCount=r.getFringeCount(),r._displayedItems=r.loop?function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(l(arguments[t]));return e}(e.slice(-r._fringeCount),e,e.slice(0,r._fringeCount)):e,r._cd.detectChanges(),r.center()):r.shift(0),setTimeout((function(){return r._noAnimation=!1}))}))},this.shiftByDelta=function(e){r.shift(r._listX-e)}}return Object.defineProperty(e.prototype,"loop",{get:function(){return this.items&&this.items.length>1&&this._loop},set:function(e){this._loop=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"itemWidth",{set:function(e){this.itemListRef.nativeElement.style.setProperty("--item-width",e||"")},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"_noAnimation",{set:function(e){this.itemListRef.nativeElement.style.transitionDuration=e?"0ms":""},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"lazyLoading",{get:function(){return"lazy"===this.loading},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"showArrow",{get:function(){return this.arrows&&this.items&&this.items.length>1},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"showPrevArrow",{get:function(){return this.showArrow&&(this.selectedIndex>0||this.loop)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"showNextArrow",{get:function(){return this.showArrow&&(this.selectedIndex<this.items.length-1||this.loop)},enumerable:!0,configurable:!0}),e.prototype.ngOnChanges=function(e){var t=this,n=e.thumbsOrientation,o=e.items;n&&!n.firstChange&&(n.currentValue&n.previousValue||setTimeout((function(){t.readDimensions(),t.center(),t._cd.detectChanges()}))),o&&o.currentValue&&o.currentValue.length&&this.onResize()},e.prototype.ngOnInit=function(){var e=this,t={passive:!0};d&&n.fromEvent(window,"resize",t).pipe(o.takeUntil(this._destroy$)).subscribe(this.onResize),d&&this.mouseGestures&&this._zone.runOutsideAngular((function(){var n,o=e.itemListRef.nativeElement,i=0,r=0,s=function(o){n=o,e._noAnimation=!0,document.addEventListener("mousemove",a,t),document.addEventListener("mouseup",l,t)},a=function(t){i=Math.max(Math.abs(n.x-t.x)),r=Math.max(Math.abs(n.y-t.y)),e.shiftByDelta(t.movementX)},l=function(t){var o=n.x-t.x;e._noAnimation=!1,e._zone.run((function(){return e.selectBySwipeStats(o)})),document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",l)},c=function(e){(i>10||r>10)&&(e.stopPropagation(),e.preventDefault()),r=i=0},d=function(e){return e.preventDefault()};o.addEventListener("mousedown",s,t),o.addEventListener("click",c,{capture:!0}),o.addEventListener("dragstart",d),e._destroy$.subscribe((function(){o.removeEventListener("mousedown",s),o.removeEventListener("click",c),o.removeEventListener("dragstart",d)}))})),d&&this.touchGestures&&this._zone.runOutsideAngular((function(){var n,o,i=e.itemListRef.nativeElement,r=null,s=function(t){n=t,e._noAnimation=!0},a=function(t){if(n&&1===t.touches.length){var i=n.touches[0],s=t.touches[0];if(null==r){var a=Math.abs(s.clientX-i.clientX),l=Math.abs(s.clientY-i.clientY);(a||l)&&(r=1.2*a>=l)}r&&(e.shiftByDelta(s.clientX-(o||n).touches[0].clientX),o=t,u.ios&&(t.preventDefault(),t.stopPropagation()))}},l=function(){if(e._noAnimation=!1,o){var t=n.touches[0].clientX-o.touches[0].clientX;e._zone.run((function(){return e.selectBySwipeStats(t)}))}r=null,n=null,o=null};i.addEventListener("touchstart",s,t),document.addEventListener("touchmove",a,{passive:!u.ios}),document.addEventListener("touchend",l,t),e._destroy$.subscribe((function(){i.removeEventListener("touchstart",s),document.removeEventListener("touchmove",a),document.removeEventListener("touchend",l)}))}))},e.prototype.ngOnDestroy=function(){this._destroy$.next(null),this._destroy$.complete()},e.prototype.isInScrollportProximity=function(e){this.loop&&(e-=this._fringeCount);var t=this.touched?Math.ceil(this._viewerWidth/(this._itemWidth+1))||1:Math.floor(Math.ceil(this._viewerWidth/this._itemWidth)/2),n=Math.abs(this.selectedIndex-e);return this.loop&&Math.abs(n-this.items.length)<=t||n<=t},e.prototype.isYoutube=function(e){return!!e.src.match(/youtube.*\/embed\//)},e.prototype.selectByDelta=function(e){this.select(this.selectedIndex+e)},e.prototype.select=function(e){var t=this,n=!this.items[e],o=this.loop&&n;if(this.selectedIndex===e)return this.center();if(!o&&n&&(e=e<0?0:this.items.length-1),o){var i=e;e=i-Math.sign(e)*this.items.length,this._noAnimation=!0,setTimeout((function(){var e=t._listX-Math.sign(i)*t.items.length*t._itemWidth;t.shift(e),setTimeout((function(){t._noAnimation=!1,t.center()}))}))}if(this.isVideo(this.items[e])){var r=this.itemsRef.toArray()[this.selectedIndex].nativeElement.querySelector("video");r&&r.pause()}this.selectedIndex=e,this.selection.emit(e),o||this.center()},e.prototype.onImageClick=function(e,t){this.imageClick.emit({event:t,item:e,index:this.items.indexOf(e)})},e.prototype.onTab=function(e){var t=this;e>=0&&e<this.items.length&&(this.select(e),requestAnimationFrame((function(){return t._hostRef.nativeElement.scrollLeft=0})))},e.prototype.onItemLoaded=function(e,t){t.target.getAttribute("src")&&(e._loaded=!0,e._failed=!1,this._cd.detectChanges())},e.prototype.onItemErrored=function(e,t){t.target.getAttribute("src")&&(e._failed=!0,this._cd.detectChanges())},e.prototype.center=function(){var e=(this._viewerWidth-this._itemWidth)/2;this.shift((this.selectedIndex+this._fringeCount)*this._itemWidth-e)},e.prototype.getFringeCount=function(){return this.loop?Math.min(Math.ceil(this._viewerWidth/(this._itemWidth+1)),this.items.length):0},e.prototype.readDimensions=function(){this._viewerWidth=this._hostRef.nativeElement.offsetWidth,this._itemWidth=this._hostRef.nativeElement.querySelector("li").offsetWidth},e.prototype.selectBySwipeStats=function(e){var t=Math.ceil((Math.abs(e)-25)/this._itemWidth);t?this.selectByDelta(t*Math.sign(e)):this.center()},e.prototype.shift=function(e){this.itemListRef.nativeElement.style.transform="translate3d("+-(this._listX=e)+"px, 0, 0)"},e.decorators=[{type:t.Component,args:[{selector:"doe-viewer",template:'<div\n *ngIf="showPrevArrow"\n class="doe-viewer-arrow doe-viewer-arrow-prev"\n (click)="selectByDelta(-1)"\n>\n <doe-chevron-icon\n *ngIf="!arrowTemplate; else arrowTemplate"\n ></doe-chevron-icon>\n</div>\n\n<ul #itemList [attr.aria-label]="aria?.viewerLabel">\n <li *ngIf="!_displayedItems?.length" class="doe-viewer-initial-item"></li>\n <li\n #itemsRef\n *ngFor="let item of _displayedItems; let i = index"\n [class.doe-viewer-item--selected]="i === selectedIndex"\n tabindex="0"\n [attr.aria-label]="item.alt"\n [attr.aria-describedby]="\'doe-viewer-aria-description-\' + i"\n (click)="onImageClick(item, $event)"\n (doe-media-load)="onItemLoaded(item, $event.detail)"\n (doe-media-error)="onItemErrored(item, $event.detail)"\n (keydown.Tab)="onTab(i + 1)"\n (keydown.shift.Tab)="onTab(i - 1)"\n >\n <ng-container *ngIf="!lazyLoading || isInScrollportProximity(i)">\n <ng-container *ngIf="!itemTemplate; else customTemplate">\n <picture *ngIf="!isVideo(item)">\n <source\n *ngFor="let source of item.pictureSources"\n [srcset]="source.srcset"\n [attr.media]="source.media"\n [attr.sizes]="source.sizes"\n [attr.type]="source.type"\n />\n <img\n [src]="item.src"\n [alt]="item.alt"\n [class.doe-viewer-media-loading]="!item._loaded"\n [style.objectFit]="objectFit"\n (load)="onItemLoaded(item, $event)"\n (error)="onItemErrored(item, $event)"\n />\n </picture>\n \x3c!-- Using loadedmetadata instead of loadeddata because iOS loads data lazily upon user\'s interaction --\x3e\n <video\n *ngIf="!isYoutube(item) && isVideo(item)"\n [src]="item.src"\n [poster]="item.thumbSrc || \'\'"\n [class.doe-viewer-media-loading]="!item._loaded"\n [style.objectFit]="objectFit"\n controls\n playsinline\n (loadedmetadata)="onItemLoaded(item, $event)"\n (error)="onItemErrored(item, $event)"\n ></video>\n\n <iframe\n *ngIf="isYoutube(item)"\n [src]="item.src | safe"\n frameborder="0"\n allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"\n allowfullscreen\n (load)="onItemLoaded(item, $event)"\n ></iframe>\n </ng-container>\n\n <ng-container *ngIf="!item._loaded && !item._failed">\n <ng-container *ngTemplateOutlet="loadingTemplate"></ng-container>\n </ng-container>\n\n <ng-container *ngIf="item._failed">\n <div\n *ngIf="!errorTemplate; else errorTemplate"\n class="doe-viewer-error"\n >\n <div class="doe-viewer-error-icon">⚠</div>\n <p class="doe-viewer-error-text">\n {{ errorText || \'Loading of this media failed\' }}\n </p>\n </div>\n </ng-container>\n\n <span\n [id]="\'doe-viewer-aria-description-\' + i"\n class="doe-viewer-aria-description"\n [innerHTML]="item.description"\n aria-hidden="true"\n ></span>\n </ng-container>\n\n <ng-template #customTemplate>\n <ng-container\n *ngTemplateOutlet="\n itemTemplate;\n context: {\n index: items?.indexOf(item),\n selectedIndex: selectedIndex,\n item: item,\n video: isVideo(item)\n }\n "\n ></ng-container>\n </ng-template>\n </li>\n</ul>\n\n<ng-container *ngIf="items?.length <= 0">\n <ng-container *ngTemplateOutlet="loadingTemplate"></ng-container>\n</ng-container>\n\n<div\n *ngIf="showNextArrow"\n class="doe-viewer-arrow doe-viewer-arrow-next"\n (click)="selectByDelta(1)"\n>\n <doe-chevron-icon\n *ngIf="!arrowTemplate; else arrowTemplate"\n ></doe-chevron-icon>\n</div>\n\n<doe-counter\n *ngIf="counter && items?.length"\n [itemQuantity]="items?.length"\n [selectedIndex]="selectedIndex"\n [orientation]="counterOrientation"\n></doe-counter>\n\n<div\n *ngIf="descriptions && items"\n class="doe-viewer-description"\n [class.doe-viewer-description--above-counter]="\n counter && counterOrientation === \'bottom\'\n "\n aria-hidden="true"\n>\n <div\n *ngIf="items[selectedIndex]?.description as description"\n class="doe-viewer-description-inner"\n [innerHTML]="description"\n (click)="descriptionClick.emit($event)"\n ></div>\n</div>\n',changeDetection:t.ChangeDetectionStrategy.OnPush,styles:[':host{display:block;position:relative;width:100%;height:100%;overflow:hidden;outline:0;background-color:#ececec;z-index:1}ul{--item-width:calc(100% - 0.01px);display:flex;width:100%;height:100%;transition:transform .4s;scrollbar-width:none;-ms-overflow-style:none}ul::-webkit-scrollbar{width:0;height:0}li{display:flex;align-items:center;flex:none;position:relative;width:var(--item-width);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;outline:0}picture{width:100%;height:100%}iframe,img,video{width:100%;height:100%;background-color:transparent;transition:opacity .3s ease-out;outline:0;-webkit-animation:.4s linear appear;animation:.4s linear appear}iframe[src=""],img[src=""],video[src=""]{opacity:0}iframe.doe-viewer-media-loading,img.doe-viewer-media-loading,video.doe-viewer-media-loading{opacity:.5}@-webkit-keyframes appear{0%{opacity:0}100%{opacity:1}}@keyframes appear{0%{opacity:0}100%{opacity:1}}img{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.doe-viewer-description{position:absolute;bottom:5px;width:100%;display:flex;justify-content:center}.doe-viewer-description--above-counter{bottom:35px}.doe-viewer-description-inner{display:inline-block;background:#000;opacity:.8;color:#fff;padding:6px 15px;max-width:80%;font-size:.95em;text-align:center}.doe-viewer-aria-description{opacity:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:absolute;bottom:0;left:50%;transform:translateX(-50%)}.doe-viewer-error{position:absolute;left:0;top:0;width:100%;height:100%;display:flex;flex-flow:column nowrap;justify-content:center;align-items:center;background-color:#f5f5f5;color:#7d7d7d}.doe-viewer-error-icon{font-size:40px}.doe-viewer-error-text{margin-top:10px;letter-spacing:.01em}.doe-viewer-arrow{display:flex;position:absolute;top:50%;transform:translateY(-50%);z-index:100;cursor:pointer}.doe-viewer-arrow-prev{left:0;transform:rotate(180deg) translateY(50%)}.doe-viewer-arrow-next{right:0}.doe-viewer-arrow doe-chevron-icon{margin:15px 6px;opacity:.7}@media (hover:hover) and (pointer:fine){.doe-viewer-arrow doe-chevron-icon:hover{opacity:1}}.doe-viewer-arrow doe-chevron-icon::ng-deep svg{height:32px;width:32px}']}]}],e.ctorParameters=function(){return[{type:t.ElementRef},{type:t.ChangeDetectorRef},{type:t.NgZone}]},e.propDecorators={items:[{type:t.Input}],arrows:[{type:t.Input}],selectedIndex:[{type:t.Input}],descriptions:[{type:t.Input}],errorText:[{type:t.Input}],mouseGestures:[{type:t.Input}],touchGestures:[{type:t.Input}],counter:[{type:t.Input}],counterOrientation:[{type:t.Input}],loading:[{type:t.Input}],objectFit:[{type:t.Input}],itemTemplate:[{type:t.Input}],loadingTemplate:[{type:t.Input}],errorTemplate:[{type:t.Input}],arrowTemplate:[{type:t.Input}],thumbsOrientation:[{type:t.Input}],aria:[{type:t.Input}],loop:[{type:t.Input}],itemWidth:[{type:t.Input}],touched:[{type:t.Input}],imageClick:[{type:t.Output}],descriptionClick:[{type:t.Output}],selection:[{type:t.Output}],itemListRef:[{type:t.ViewChild,args:["itemList",{static:!0}]}],itemsRef:[{type:t.ViewChildren,args:["itemsRef"]}]},e}();var y=function(){function e(e,n){var o=this;this.cd=e,this.hostRef=n,this.selectedIndex=0,this.aria=c,this.arrows=!0,this.descriptions=!1,this.mouseGestures=!0,this.touchGestures=!0,this.counter=!0,this.counterOrientation="bottom",this.loading="auto",this.loop=!1,this.objectFit="cover",this.thumbs=!0,this.thumbsAutoScroll=!0,this.thumbsOrientation="bottom",this.thumbsArrows=!0,this.thumbsScrollBehavior="smooth",this.imageClick=new t.EventEmitter,this.thumbClick=new t.EventEmitter,this.thumbHover=new t.EventEmitter,this.descriptionClick=new t.EventEmitter,this.selection=new t.EventEmitter,this._tabindex=0,this._touched=!1,this.INIT_INTERACTIONS=["touchstart","mousedown","keydown"],this._onInitInteraction=function(){var e=o.hostRef.nativeElement;o._touched=!0,o.cd.detectChanges(),o.INIT_INTERACTIONS.forEach((function(t){return e.removeEventListener(t,o._onInitInteraction)}))},this.INIT_INTERACTIONS.forEach((function(e){return n.nativeElement.addEventListener(e,o._onInitInteraction,{passive:!0})}))}return Object.defineProperty(e.prototype,"ariaLabel",{get:function(){return this.aria&&this.aria.galleryLabel},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"_galleryColumn",{get:function(){return"top"===this.thumbsOrientation||"bottom"===this.thumbsOrientation},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"_thumbsOrientationFlag",{get:function(){return"top"===this.thumbsOrientation||"bottom"===this.thumbsOrientation?6:24},enumerable:!0,configurable:!0}),e.prototype.focus=function(){this._viewerElRef.nativeElement.focus()},e.prototype.next=function(){this._viewerRef.selectByDelta(1)},e.prototype.prev=function(){this._viewerRef.selectByDelta(-1)},e.prototype.select=function(e){this._viewerRef.select(e),this._thumbsRef.select(e),this._selectInternal(e)},e.prototype.slideThumbs=function(e){this._thumbsRef.slide(e)},e.prototype._onThumbClick=function(e){this._viewerRef.select(e.index),this.thumbClick.emit(e),this._selectInternal(e.index)},e.prototype._selectInternal=function(e){this.selectedIndex=e,this.selection.emit(this.items[e])},e.decorators=[{type:t.Component,args:[{selector:"doe-gallery",template:'<doe-thumbs\n *ngIf="thumbs"\n [items]="items"\n [selectedIndex]="selectedIndex"\n [orientation]="thumbsOrientation"\n [arrows]="thumbsArrows"\n [arrowSlideByLength]="thumbsArrowSlideByLength"\n [autoScroll]="thumbsAutoScroll"\n [scrollBehavior]="thumbsScrollBehavior"\n [thumbTemplate]="thumbTemplate"\n [arrowTemplate]="thumbsArrowTemplate"\n [errorTemplate]="thumbErrorTemplate"\n [aria]="aria"\n (thumbClick)="_onThumbClick($event)"\n (thumbHover)="thumbHover.emit($event)"\n></doe-thumbs>\n\n<doe-viewer\n tabindex="0"\n [items]="items"\n [selectedIndex]="selectedIndex"\n [arrows]="arrows"\n [descriptions]="descriptions"\n [errorText]="errorText"\n [mouseGestures]="mouseGestures"\n [touchGestures]="touchGestures"\n [counter]="counter"\n [counterOrientation]="counterOrientation"\n [itemWidth]="itemWidth"\n [objectFit]="objectFit"\n [loading]="loading"\n [itemTemplate]="itemTemplate"\n [loadingTemplate]="loadingTemplate || defaultLoadingTemplate"\n [errorTemplate]="errorTemplate"\n [loop]="loop"\n [thumbsOrientation]="_thumbsOrientationFlag"\n [arrowTemplate]="arrowTemplate"\n [aria]="aria"\n [touched]="_touched"\n (imageClick)="imageClick.emit($event)"\n (descriptionClick)="descriptionClick.emit($event)"\n (selection)="_selectInternal($event); _thumbsRef?.select($event)"\n></doe-viewer>\n\n<ng-template #defaultLoadingTemplate>\n <div class="doe-loading">\n <div></div>\n <div></div>\n <div></div>\n </div>\n</ng-template>\n',changeDetection:t.ChangeDetectionStrategy.OnPush,styles:[":host{display:flex;height:600px;width:500px;outline:0;position:relative}:host.doe-gallery--column{flex-direction:column}:host::ng-deep{font-family:Helvetica Neue,Helvetica,Arial,sans-serif}:host::ng-deep button{border:none}:host::ng-deep ul{list-style-type:none;margin:0;padding:0}.doe-loading{display:flex;justify-content:center;align-items:center;position:absolute;width:100%;height:100%;left:0;top:0;background-color:transparent;z-index:10}.doe-loading>div{height:13px;width:13px;background-color:#4a4a4a;-webkit-animation:2s infinite bounce;animation:2s infinite bounce;border-radius:50%;box-shadow:0 0 0 1px #f5f5f5,0 0 1px 1px #f5f5f5}.doe-loading>div+div{margin-left:10px;-webkit-animation-delay:125ms;animation-delay:125ms}.doe-loading>div+div+div{-webkit-animation-delay:.3s;animation-delay:.3s}@-webkit-keyframes bounce{20%{transform:translateY(-20px)}50%{transform:translateY(0)}}@keyframes bounce{20%{transform:translateY(-20px)}50%{transform:translateY(0)}}"]}]}],e.ctorParameters=function(){return[{type:t.ChangeDetectorRef},{type:t.ElementRef}]},e.propDecorators={items:[{type:t.Input}],selectedIndex:[{type:t.Input}],aria:[{type:t.Input}],arrows:[{type:t.Input}],descriptions:[{type:t.Input}],errorText:[{type:t.Input}],mouseGestures:[{type:t.Input}],touchGestures:[{type:t.Input}],counter:[{type:t.Input}],counterOrientation:[{type:t.Input}],itemWidth:[{type:t.Input}],loading:[{type:t.Input}],loop:[{type:t.Input}],objectFit:[{type:t.Input}],itemTemplate:[{type:t.Input}],loadingTemplate:[{type:t.Input}],errorTemplate:[{type:t.Input}],arrowTemplate:[{type:t.Input}],thumbs:[{type:t.Input}],thumbsAutoScroll:[{type:t.Input}],thumbsOrientation:[{type:t.Input}],thumbsArrows:[{type:t.Input}],thumbsArrowSlideByLength:[{type:t.Input}],thumbsScrollBehavior:[{type:t.Input}],thumbTemplate:[{type:t.Input}],thumbsArrowTemplate:[{type:t.Input}],thumbErrorTemplate:[{type:t.Input}],imageClick:[{type:t.Output}],thumbClick:[{type:t.Output}],thumbHover:[{type:t.Output}],descriptionClick:[{type:t.Output}],selection:[{type:t.Output}],_viewerRef:[{type:t.ViewChild,args:[v,{static:!1}]}],_thumbsRef:[{type:t.ViewChild,args:[g,{static:!1}]}],_viewerElRef:[{type:t.ViewChild,args:[v,{static:!1,read:t.ElementRef}]}],_tabindex:[{type:t.HostBinding,args:["tabindex"]}],ariaLabel:[{type:t.HostBinding,args:["attr.aria-label"]}],_galleryColumn:[{type:t.HostBinding,args:["class.doe-gallery--column"]}],next:[{type:t.HostListener,args:["keydown.arrowright"]}],prev:[{type:t.HostListener,args:["keydown.arrowleft"]}]},e}();var w=function(){function e(){}return e.decorators=[{type:t.Component,args:[{selector:"doe-counter",template:'\n <span aria-hidden="true">\n {{ selectedIndex + 1 }}<span class="doe-counter-delimiter">/</span\n >{{ itemQuantity || 0 }}\n </span>\n ',changeDetection:t.ChangeDetectionStrategy.OnPush,styles:[":host{position:absolute;left:50%;transform:translateX(-50%);background:#000;padding:4px 7px 3px;color:#fff;opacity:.7;font-size:14px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}:host.top{top:0}:host.bottom{bottom:0}.doe-counter-delimiter{padding:0 2px}"]}]}],e.propDecorators={itemQuantity:[{type:t.Input}],selectedIndex:[{type:t.Input}],orientation:[{type:t.HostBinding,args:["class"]},{type:t.Input}]},e}();var x=function(){function e(){}return e.decorators=[{type:t.Component,args:[{selector:"doe-chevron-icon",template:'\x3c!-- Icon made by Dave Gandy from www.flaticon.com --\x3e\n<svg\n version="1.1"\n xmlns="http://www.w3.org/2000/svg"\n xmlns:xlink="http://www.w3.org/1999/xlink"\n x="0px"\n y="0px"\n viewBox="0 0 407.436 407.436"\n xml:space="preserve"\n>\n <polygon\n points="112.814,0 91.566,21.178 273.512,203.718 91.566,386.258 112.814,407.436 315.869,203.718 "\n />\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n</svg>\n',changeDetection:t.ChangeDetectionStrategy.OnPush,styles:["svg{width:26px;height:26px;fill:#fff;-webkit-filter:drop-shadow(0 0 1px #000);filter:drop-shadow(0 0 1px #000);display:block}"]}]}],e}(),I=function(){function e(e){this.sanitizer=e}return e.prototype.transform=function(e){return this.sanitizer.bypassSecurityTrustResourceUrl(e)},e.decorators=[{type:t.Pipe,args:[{name:"safe"}]}],e.ctorParameters=function(){return[{type:r.DomSanitizer}]},e}();var _=function(){function e(e){this.hostRef=e}return e.prototype.onLoad=function(e){var t="error"===e.type?"doe-media-error":"doe-media-load";this.hostRef.nativeElement.dispatchEvent(new CustomEvent(t,{bubbles:!0,detail:e}))},e.decorators=[{type:t.Directive,args:[{selector:"[doeMedia]"}]}],e.ctorParameters=function(){return[{type:t.ElementRef}]},e.propDecorators={onLoad:[{type:t.HostListener,args:["load",["$event"]]},{type:t.HostListener,args:["loadedmetadata",["$event"]]},{type:t.HostListener,args:["error",["$event"]]}]},e}();var T=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{declarations:[y,g,v,x,w,I,_],imports:[i.CommonModule],exports:[y,_]}]}],e}();e.GalleryComponent=y,e.GalleryImage=p,e.GalleryItem=m,e.GalleryModule=T,e.GalleryVideo=f,e.SUPPORT=h,e.UA=u,e.isBrowser=d,e.orientations={left:2,right:4,top:8,bottom:16},e.ɵa=v,e.ɵb=g,e.ɵc=x,e.ɵd=w,e.ɵe=I,e.ɵf=_,Object.defineProperty(e,"__esModule",{value:!0})})); | ||
//# sourceMappingURL=ngx-doe-gallery.umd.min.js.map |
@@ -168,6 +168,8 @@ /** | ||
/** @type {?} */ | ||
const nextItemEl = this.thumbsRef.toArray()[index].nativeElement; | ||
if (!nextItemEl) { | ||
const nextItemRef = this.thumbsRef.toArray()[index]; | ||
if (!nextItemRef) { | ||
return; | ||
} | ||
/** @type {?} */ | ||
const nextItemEl = nextItemRef.nativeElement; | ||
const { offsetLeft, offsetTop, offsetWidth, offsetHeight } = nextItemEl; | ||
@@ -415,2 +417,2 @@ /** @type {?} */ | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGh1bWJzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1kb2UtZ2FsbGVyeS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3RodW1icy90aHVtYnMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUVULFdBQVcsRUFDWCxTQUFTLEVBQ1QsWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUNMLFNBQVMsRUFFVCxPQUFPLEdBRVIsTUFBTSxZQUFZLENBQUM7QUFFcEIsT0FBTyxFQUdMLE9BQU8sR0FDUixNQUFNLHlCQUF5QixDQUFDO0FBUWpDLE1BQU0sT0FBTyxlQUFlOzs7OztJQW9EMUIsWUFDVSxHQUFzQixFQUN0QixNQUErQjtRQUQvQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixXQUFNLEdBQU4sTUFBTSxDQUF5QjtRQXJEaEMsVUFBSyxHQUEwQixFQUFFLENBQUM7UUFrQmpDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBb0IsQ0FBQztRQUNsRCxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQW9CLENBQUM7UUFLNUQsWUFBTyxHQUFHLE9BQU8sQ0FBQztRQUVsQixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUdkLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBSTFCLHlCQUFvQixHQUFHLEtBQUssQ0FBQztRQThMN0IscUJBQWdCOzs7O1FBQWlDLE9BQU8sQ0FBQyxFQUFFOztrQkFDM0QsUUFBUSxHQUFHLG1CQUFBLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFN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QUF3Qzs7Ozs7SUFDeEMsb0NBQTBCOzs7OztJQUMxQiwrQ0FBcUM7Ozs7O0lBOExyQywyQ0FlRTs7Ozs7SUEzTEEsOEJBQThCOzs7OztJQUM5QixpQ0FBdUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgaXNCcm93c2VyLFxuICBPcmllbnRhdGlvbixcbiAgU1VQUE9SVCxcbiAgVGh1bWJUZW1wbGF0ZUNvbnRleHQsXG59IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgQXJpYSB9IGZyb20gJy4uLy4uL2NvcmUvYXJpYSc7XG5pbXBvcnQge1xuICBHYWxsZXJ5SXRlbUludGVybmFsLFxuICBHYWxsZXJ5SXRlbUV2ZW50LFxuICBpc1ZpZGVvLFxufSBmcm9tICcuLi8uLi9jb3JlL2dhbGxlcnktaXRlbSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RvZS10aHVtYnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGh1bWJzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGh1bWJzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUaHVtYnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGl0ZW1zOiBHYWxsZXJ5SXRlbUludGVybmFsW10gPSBbXTtcbiAgQElucHV0KCkgc2VsZWN0ZWRJbmRleDogbnVtYmVyO1xuICBASW5wdXQoKSBhcmlhOiBBcmlhO1xuICBASW5wdXQoKSBvcmllbnRhdGlvbjogT3JpZW50YXRpb247XG4gIEBJbnB1dCgpIGFycm93czogYm9vbGVhbjtcbiAgQElucHV0KCkgYXJyb3dTbGlkZUJ5TGVuZ3RoOiBudW1iZXI7XG4gIEBJbnB1dCgpIGF1dG9TY3JvbGw6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHRodW1iVGVtcGxhdGU6IFRlbXBsYXRlUmVmPFRodW1iVGVtcGxhdGVDb250ZXh0PjtcbiAgQElucHV0KCkgYXJyb3dUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dm9pZD47XG4gIEBJbnB1dCgpIGVycm9yVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHZvaWQ+O1xuICBASW5wdXQoKVxuICBzZXQgc2Nyb2xsQmVoYXZpb3IodmFsOiBTY3JvbGxCZWhhdmlvcikge1xuICAgIHRoaXMuX3Njcm9sbEJlaGF2aW9yID0gdmFsIHx8ICdzbW9vdGgnO1xuICB9XG4gIGdldCBzY3JvbGxCZWhhdmlvcigpIHtcbiAgICByZXR1cm4gdGhpcy5fc21vb3RoU2Nyb2xsQWxsb3dlZCA/IHRoaXMuX3Njcm9sbEJlaGF2aW9yIDogJ2F1dG8nO1xuICB9XG5cbiAgQE91dHB1dCgpIHRodW1iQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEdhbGxlcnlJdGVtRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSB0aHVtYkhvdmVyID0gbmV3IEV2ZW50RW1pdHRlcjxHYWxsZXJ5SXRlbUV2ZW50PigpO1xuXG4gIEBWaWV3Q2hpbGQoJ3RodW1icycsIHsgc3RhdGljOiB0cnVlIH0pIHRodW1iTGlzdFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gIEBWaWV3Q2hpbGRyZW4oJ3RodW1iJykgdGh1bWJzUmVmOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+O1xuXG4gIGlzVmlkZW8gPSBpc1ZpZGVvO1xuXG4gIF9zaG93U3RhcnRBcnJvdyA9IGZhbHNlO1xuICBfc2hvd0VuZEFycm93ID0gZmFsc2U7XG4gIF92ZXJ0aWNhbDogYm9vbGVhbjtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG4gIHByaXZhdGUgX2Fycm93T2JzZXJ2ZXI6IEludGVyc2VjdGlvbk9ic2VydmVyO1xuICBwcml2YXRlIF9zY3JvbGxCZWhhdmlvcjogU2Nyb2xsQmVoYXZpb3I7XG4gIHByaXZhdGUgX3Njcm9sbElkOiBudW1iZXI7XG4gIHByaXZhdGUgX3Ntb290aFNjcm9sbEFsbG93ZWQgPSBmYWxzZTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGNzc0NsYXNzKCkge1xuICAgIHJldHVybiBgZG9lLXRodW1icy0tJHt0aGlzLm9yaWVudGF0aW9ufWA7XG4gIH1cblxuICBwcml2YXRlIGdldCBfaG9zdE9mZnNldEF4aXMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fdmVydGljYWxcbiAgICAgID8gdGhpcy5fZWxSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHRcbiAgICAgIDogdGhpcy5fZWxSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IF9zY3JvbGxLZXkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdmVydGljYWwgPyAnc2Nyb2xsVG9wJyA6ICdzY3JvbGxMZWZ0JztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIF9lbFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD5cbiAgKSB7fVxuXG4gIG5nT25DaGFuZ2VzKHsgYXJyb3dzLCBpdGVtcywgb3JpZW50YXRpb24gfTogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChvcmllbnRhdGlvbiAmJiBvcmllbnRhdGlvbi5jdXJyZW50VmFsdWUgIT0gbnVsbCkge1xuICAgICAgY29uc3QgbmV3T3JpZW50YXRpb246IE9yaWVudGF0aW9uID0gb3JpZW50YXRpb24uY3VycmVudFZhbHVlO1xuICAgICAgdGhpcy5fdmVydGljYWwgPSBuZXdPcmllbnRhdGlvbiA9PT0gJ2xlZnQnIHx8IG5ld09yaWVudGF0aW9uID09PSAncmlnaHQnO1xuICAgIH1cbiAgICBpZiAoYXJyb3dzKSB7XG4gICAgICBpZiAoYXJyb3dzLmN1cnJlbnRWYWx1ZSAmJiB0aGlzLml0ZW1zICYmIHRoaXMuaXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMub2JzZXJ2ZUFycm93cygpO1xuICAgICAgfSBlbHNlIGlmICghYXJyb3dzLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICB0aGlzLl9zaG93U3RhcnRBcnJvdyA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9zaG93RW5kQXJyb3cgPSBmYWxzZTtcbiAgICAgICAgdGhpcy51bm9ic2VydmVBcnJvd3MoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaXRlbXMgJiYgaXRlbXMuY3VycmVudFZhbHVlKSB7XG4gICAgICBjb25zdCBjdXJySXRlbXMgPSAoaXRlbXMuY3VycmVudFZhbHVlIHx8IFtdKSBhcyBHYWxsZXJ5SXRlbUludGVybmFsW107XG4gICAgICBjb25zdCBwcmV2SXRlbXMgPSAoaXRlbXMucHJldmlvdXNWYWx1ZSB8fCBbXSkgYXMgR2FsbGVyeUl0ZW1JbnRlcm5hbFtdO1xuXG4gICAgICBpZiAoY3Vyckl0ZW1zLmxlbmd0aCA9PT0gcHJldkl0ZW1zLmxlbmd0aCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmFycm93cyAmJiBjdXJySXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMub2JzZXJ2ZUFycm93cygpO1xuICAgICAgfVxuICAgICAgaWYgKCFwcmV2SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuY2VudGVyVGh1bWJJZk5lZWRlZCh0aGlzLnNlbGVjdGVkSW5kZXgpO1xuICAgICAgICAgIHRoaXMuX3Ntb290aFNjcm9sbEFsbG93ZWQgPSB0cnVlO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KG51bGwpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fYXJyb3dPYnNlcnZlciAmJiB0aGlzLl9hcnJvd09ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgfVxuXG4gIHNsaWRlKGRpcmVjdGlvbjogbnVtYmVyKSB7XG4gICAgbGV0IGRlbHRhOiBudW1iZXI7XG5cbiAgICBpZiAodGhpcy5hcnJvd1NsaWRlQnlMZW5ndGgpIHtcbiAgICAgIGRlbHRhID0gdGhpcy5hcnJvd1NsaWRlQnlMZW5ndGg7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE5vdGU6IFNsaWRlIGJ5IHRoZSBmdWxsIGhlaWdodC93aWR0aCBvZiB0aGUgZ2FsbGVyeVxuICAgICAgLy8gb3IgYnkgdGhlIG92ZXJmbG93IG9mIHRoZSB0aHVtYnMgLSB0byBwcmV2ZW50IHVubmVjZXNzYXJ5IHJlcXVlc3RBbmltYXRpb25GcmFtZSBjYWxscyB3aGlsZSB0cnlpbmcgdG8gc2Nyb2xsXG4gICAgICAvLyBvdXRzaWRlIG9mIHRoZSBtaW4vbWF4IHNjcm9sbCBvZiB0aGUgdGh1bWJzXG4gICAgICBjb25zdCB0aHVtYkxpc3QgPSB0aGlzLnRodW1iTGlzdFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgICAgY29uc3QgdGh1bWJMaXN0U2Nyb2xsQXhpcyA9IHRoaXMuX3ZlcnRpY2FsXG4gICAgICAgID8gdGh1bWJMaXN0LnNjcm9sbEhlaWdodFxuICAgICAgICA6IHRodW1iTGlzdC5zY3JvbGxXaWR0aDtcbiAgICAgIGNvbnN0IHRodW1iTGlzdE9mZnNldEF4aXMgPSB0aGlzLl92ZXJ0aWNhbFxuICAgICAgICA/IHRodW1iTGlzdC5vZmZzZXRIZWlnaHRcbiAgICAgICAgOiB0aHVtYkxpc3Qub2Zmc2V0V2lkdGg7XG5cbiAgICAgIGRlbHRhID0gTWF0aC5taW4oXG4gICAgICAgIHRodW1iTGlzdE9mZnNldEF4aXMsXG4gICAgICAgIHRodW1iTGlzdFNjcm9sbEF4aXMgLSB0aHVtYkxpc3RPZmZzZXRBeGlzXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLnNjcm9sbChkZWx0YSAqIGRpcmVjdGlvbik7XG4gIH1cblxuICBjZW50ZXJUaHVtYklmTmVlZGVkKGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAoIXRoaXMuaXRlbXMgfHwgdGhpcy5pdGVtcy5sZW5ndGggPD0gMSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG5leHRJdGVtRWwgPSB0aGlzLnRodW1ic1JlZi50b0FycmF5KClbaW5kZXhdLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICBpZiAoIW5leHRJdGVtRWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB7IG9mZnNldExlZnQsIG9mZnNldFRvcCwgb2Zmc2V0V2lkdGgsIG9mZnNldEhlaWdodCB9ID0gbmV4dEl0ZW1FbDtcblxuICAgIGNvbnN0IGl0ZW1PZmZzZXQgPSB0aGlzLl92ZXJ0aWNhbCA/IG9mZnNldFRvcCA6IG9mZnNldExlZnQ7XG4gICAgY29uc3QgaXRlbU9mZnNldEF4aXMgPSB0aGlzLl92ZXJ0aWNhbCA/IG9mZnNldEhlaWdodCA6IG9mZnNldFdpZHRoO1xuXG4gICAgY29uc3QgaG9zdFNjcm9sbEF4aXMgPSB0aGlzLl9ob3N0T2Zmc2V0QXhpcztcbiAgICBjb25zdCB0aHVtYkxpc3RTY3JvbGwgPSB0aGlzLnRodW1iTGlzdFJlZi5uYXRpdmVFbGVtZW50W3RoaXMuX3Njcm9sbEtleV07XG5cbiAgICBjb25zdCBuZXh0U2Nyb2xsRGVsdGEgPVxuICAgICAgaXRlbU9mZnNldCArIGl0ZW1PZmZzZXRBeGlzIC8gMiAtIGhvc3RTY3JvbGxBeGlzIC8gMiAtIHRodW1iTGlzdFNjcm9sbDtcblxuICAgIGlmIChcbiAgICAgIHRodW1iTGlzdFNjcm9sbCArIGhvc3RTY3JvbGxBeGlzIDwgaXRlbU9mZnNldCArIGl0ZW1PZmZzZXRBeGlzIHx8XG4gICAgICB0aHVtYkxpc3RTY3JvbGwgPiBpdGVtT2Zmc2V0XG4gICAgKSB7XG4gICAgICB0aGlzLnNjcm9sbChuZXh0U2Nyb2xsRGVsdGEpO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdChpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gaW5kZXg7XG4gICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgaWYgKHRoaXMuYXV0b1Njcm9sbCkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmNlbnRlclRodW1iSWZOZWVkZWQoaW5kZXgpKTtcbiAgICB9XG4gIH1cblxuICBfZW1pdEV2ZW50KFxuICAgIGluZGV4OiBudW1iZXIsXG4gICAgaXRlbTogR2FsbGVyeUl0ZW1JbnRlcm5hbCxcbiAgICBldmVudDogRXZlbnQsXG4gICAgZW1pdHRlcjogRXZlbnRFbWl0dGVyPEdhbGxlcnlJdGVtRXZlbnQ+XG4gICkge1xuICAgIGVtaXR0ZXIuZW1pdCh7XG4gICAgICBpbmRleCxcbiAgICAgIGl0ZW0sXG4gICAgICBldmVudCxcbiAgICB9KTtcbiAgfVxuXG4gIF9vbkxvYWRDaGFuZ2UoaXRlbTogR2FsbGVyeUl0ZW1JbnRlcm5hbCwgc3VjY2VzczogYm9vbGVhbikge1xuICAgIGl0ZW0uX3RodW1iRmFpbGVkID0gIXN1Y2Nlc3M7XG4gIH1cblxuICBwcml2YXRlIHNjcm9sbCh0b3RhbFNjcm9sbERlbHRhOiBudW1iZXIpIHtcbiAgICBpZiAoIWlzQnJvd3Nlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoU1VQUE9SVC5zY3JvbGxCZWhhdmlvciB8fCB0aGlzLnNjcm9sbEJlaGF2aW9yID09PSAnYXV0bycpIHtcbiAgICAgIHRoaXMudGh1bWJMaXN0UmVmLm5hdGl2ZUVsZW1lbnRbdGhpcy5fc2Nyb2xsS2V5XSArPSB0b3RhbFNjcm9sbERlbHRhO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5fc2Nyb2xsSWQgIT0gbnVsbCkge1xuICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5fc2Nyb2xsSWQpO1xuICAgIH1cblxuICAgIGNvbnN0IHRvdGFsRGlzdGFuY2UgPSBNYXRoLmFicyh0b3RhbFNjcm9sbERlbHRhKTtcbiAgICBjb25zdCBzdGFydFRpbWUgPSBEYXRlLm5vdygpO1xuICAgIGNvbnN0IGJhc2VBcnJvd1NsaWRlVGltZSA9IDIwMDtcbiAgICBsZXQgdG90YWxUaW1lID0gKE1hdGgubG9nMTAodG90YWxEaXN0YW5jZSkgLSAxLjEpICogYmFzZUFycm93U2xpZGVUaW1lO1xuICAgIGlmICh0b3RhbFRpbWUgPCAwKSB7XG4gICAgICB0b3RhbFRpbWUgPSBiYXNlQXJyb3dTbGlkZVRpbWU7XG4gICAgfVxuICAgIGxldCBjdXJyZW50U2Nyb2xsID0gMDtcblxuICAgIC8vIEVtdWxhdGluZyBuYXRpdmUgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGhcbiAgICAvLyBOT1RFOiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBvbiBwZXIgZnJhbWUgYmFzaXMgcmVjdXJzaXZlbHkgdG8gY3JlYXRlIHNtb290aCBhbmltYXRpb24uXG4gICAgLy8gVGhlIHNjcm9sbCB2YWx1ZSBpcyB1cGRhdGVkIHByb3BvcnRpb25hbGx5IHRvIHRoZSB0aW1lIGVsYXBzZWQgc2luY2UgdGhlIGFuaW1hdGlvbidzIHN0YXJ0LlxuICAgIC8vIFRoZSBwZXJpb2Qgb2YgcmVxdWVzdGVkIGZyYW1lcyBzaG91bGQgbWF0Y2ggdGhlIGRpc3BsYXkncyByZWZyZXNoIHJhdGUgYXMgcmVjb21tZW5kZWQgaW4gVzNDIHNwZWMuXG4gICAgY29uc3QgYW5pbWF0ZSA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHN1Z2dlc3RlZFNjcm9sbCA9IE1hdGguY2VpbChcbiAgICAgICAgKChEYXRlLm5vdygpIC0gc3RhcnRUaW1lKSAvIHRvdGFsVGltZSkgKiB0b3RhbERpc3RhbmNlXG4gICAgICApO1xuICAgICAgbGV0IGZyYW1lU2Nyb2xsID0gTWF0aC5taW4oXG4gICAgICAgIHN1Z2dlc3RlZFNjcm9sbCAtIGN1cnJlbnRTY3JvbGwsXG4gICAgICAgIHRvdGFsRGlzdGFuY2UgLSBjdXJyZW50U2Nyb2xsXG4gICAgICApO1xuICAgICAgZnJhbWVTY3JvbGwgKj0gTWF0aC5zaWduKHRvdGFsU2Nyb2xsRGVsdGEpO1xuICAgICAgY3VycmVudFNjcm9sbCA9IHN1Z2dlc3RlZFNjcm9sbDtcblxuICAgICAgdGhpcy50aHVtYkxpc3RSZWYubmF0aXZlRWxlbWVudFt0aGlzLl9zY3JvbGxLZXldICs9IGZyYW1lU2Nyb2xsO1xuXG4gICAgICBpZiAoY3VycmVudFNjcm9sbCA8PSB0b3RhbERpc3RhbmNlKSB7XG4gICAgICAgIHRoaXMuX3Njcm9sbElkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGFuaW1hdGUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB0aGlzLl9zY3JvbGxJZCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZShhbmltYXRlKTtcbiAgfVxuXG4gIHByaXZhdGUgb25BcnJvd3NPYnNlcnZlZDogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayA9IGVudHJpZXMgPT4ge1xuICAgIGNvbnN0IGVudHJ5RWwxID0gZW50cmllc1swXS50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgY29uc3QgZmlyc3RUaHVtYkVudHJ5ID1cbiAgICAgIGVudHJ5RWwxID09PSB0aGlzLnRodW1ic1JlZi5maXJzdC5uYXRpdmVFbGVtZW50ID8gZW50cmllc1swXSA6IGVudHJpZXNbMV07XG4gICAgY29uc3QgbGFzdFRodW1iRW50cnkgPVxuICAgICAgZW50cnlFbDEgPT09IHRoaXMudGh1bWJzUmVmLmxhc3QubmF0aXZlRWxlbWVudCA/IGVudHJpZXNbMF0gOiBlbnRyaWVzWzFdO1xuXG4gICAgaWYgKGZpcnN0VGh1bWJFbnRyeSkge1xuICAgICAgdGhpcy5fc2hvd1N0YXJ0QXJyb3cgPSBmaXJzdFRodW1iRW50cnkuaW50ZXJzZWN0aW9uUmF0aW8gPCAxO1xuICAgIH1cbiAgICBpZiAobGFzdFRodW1iRW50cnkpIHtcbiAgICAgIHRoaXMuX3Nob3dFbmRBcnJvdyA9IGxhc3RUaHVtYkVudHJ5LmludGVyc2VjdGlvblJhdGlvIDwgMTtcbiAgICB9XG5cbiAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBvYnNlcnZlQXJyb3dzKCkge1xuICAgIGlmICghdGhpcy5fYXJyb3dPYnNlcnZlcikge1xuICAgICAgdGhpcy5fYXJyb3dPYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcih0aGlzLm9uQXJyb3dzT2JzZXJ2ZWQsIHtcbiAgICAgICAgcm9vdDogdGhpcy50aHVtYkxpc3RSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgdGhyZXNob2xkOiAxLjAsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fYXJyb3dPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgfVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5fYXJyb3dPYnNlcnZlci5vYnNlcnZlKHRoaXMudGh1bWJzUmVmLmZpcnN0Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgdGhpcy5fYXJyb3dPYnNlcnZlci5vYnNlcnZlKHRoaXMudGh1bWJzUmVmLmxhc3QubmF0aXZlRWxlbWVudCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHVub2JzZXJ2ZUFycm93cygpIHtcbiAgICB0aGlzLl9hcnJvd09ic2VydmVyICYmIHRoaXMuX2Fycm93T2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICB9XG59XG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGh1bWJzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1kb2UtZ2FsbGVyeS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3RodW1icy90aHVtYnMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUVULFdBQVcsRUFDWCxTQUFTLEVBQ1QsWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUNMLFNBQVMsRUFFVCxPQUFPLEdBRVIsTUFBTSxZQUFZLENBQUM7QUFFcEIsT0FBTyxFQUdMLE9BQU8sR0FDUixNQUFNLHlCQUF5QixDQUFDO0FBUWpDLE1BQU0sT0FBTyxlQUFlOzs7OztJQW9EMUIsWUFDVSxHQUFzQixFQUN0QixNQUErQjtRQUQvQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixXQUFNLEdBQU4sTUFBTSxDQUF5QjtRQXJEaEMsVUFBSyxHQUEwQixFQUFFLENBQUM7UUFrQmpDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBb0IsQ0FBQztRQUNsRCxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQW9CLENBQUM7UUFLNUQsWUFBTyxHQUFHLE9BQU8sQ0FBQztRQUVsQixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUdkLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBSTFCLHlCQUFvQixHQUFHLEtBQUssQ0FBQztRQStMN0IscUJBQWdCOzs7O1FBQWlDLE9BQU8sQ0FBQyxFQUFFOztrQkFDM0QsUUFBUSxHQUFHLG1CQUFBLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFN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Q2xDLHlDQUE2Qzs7Ozs7SUFDN0MsMENBQXdDOzs7OztJQUN4QyxvQ0FBMEI7Ozs7O0lBQzFCLCtDQUFxQzs7Ozs7SUErTHJDLDJDQWVFOzs7OztJQTVMQSw4QkFBOEI7Ozs7O0lBQzlCLGlDQUF1QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q2hpbGRyZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICBpc0Jyb3dzZXIsXG4gIE9yaWVudGF0aW9uLFxuICBTVVBQT1JULFxuICBUaHVtYlRlbXBsYXRlQ29udGV4dCxcbn0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBBcmlhIH0gZnJvbSAnLi4vLi4vY29yZS9hcmlhJztcbmltcG9ydCB7XG4gIEdhbGxlcnlJdGVtSW50ZXJuYWwsXG4gIEdhbGxlcnlJdGVtRXZlbnQsXG4gIGlzVmlkZW8sXG59IGZyb20gJy4uLy4uL2NvcmUvZ2FsbGVyeS1pdGVtJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZG9lLXRodW1icycsXG4gIHRlbXBsYXRlVXJsOiAnLi90aHVtYnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90aHVtYnMuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFRodW1ic0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgQElucHV0KCkgaXRlbXM6IEdhbGxlcnlJdGVtSW50ZXJuYWxbXSA9IFtdO1xuICBASW5wdXQoKSBzZWxlY3RlZEluZGV4OiBudW1iZXI7XG4gIEBJbnB1dCgpIGFyaWE6IEFyaWE7XG4gIEBJbnB1dCgpIG9yaWVudGF0aW9uOiBPcmllbnRhdGlvbjtcbiAgQElucHV0KCkgYXJyb3dzOiBib29sZWFuO1xuICBASW5wdXQoKSBhcnJvd1NsaWRlQnlMZW5ndGg6IG51bWJlcjtcbiAgQElucHV0KCkgYXV0b1Njcm9sbDogYm9vbGVhbjtcbiAgQElucHV0KCkgdGh1bWJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8VGh1bWJUZW1wbGF0ZUNvbnRleHQ+O1xuICBASW5wdXQoKSBhcnJvd1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjx2b2lkPjtcbiAgQElucHV0KCkgZXJyb3JUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dm9pZD47XG4gIEBJbnB1dCgpXG4gIHNldCBzY3JvbGxCZWhhdmlvcih2YWw6IFNjcm9sbEJlaGF2aW9yKSB7XG4gICAgdGhpcy5fc2Nyb2xsQmVoYXZpb3IgPSB2YWwgfHwgJ3Ntb290aCc7XG4gIH1cbiAgZ2V0IHNjcm9sbEJlaGF2aW9yKCkge1xuICAgIHJldHVybiB0aGlzLl9zbW9vdGhTY3JvbGxBbGxvd2VkID8gdGhpcy5fc2Nyb2xsQmVoYXZpb3IgOiAnYXV0byc7XG4gIH1cblxuICBAT3V0cHV0KCkgdGh1bWJDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8R2FsbGVyeUl0ZW1FdmVudD4oKTtcbiAgQE91dHB1dCgpIHRodW1iSG92ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPEdhbGxlcnlJdGVtRXZlbnQ+KCk7XG5cbiAgQFZpZXdDaGlsZCgndGh1bWJzJywgeyBzdGF0aWM6IHRydWUgfSkgdGh1bWJMaXN0UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgQFZpZXdDaGlsZHJlbigndGh1bWInKSB0aHVtYnNSZWY6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj47XG5cbiAgaXNWaWRlbyA9IGlzVmlkZW87XG5cbiAgX3Nob3dTdGFydEFycm93ID0gZmFsc2U7XG4gIF9zaG93RW5kQXJyb3cgPSBmYWxzZTtcbiAgX3ZlcnRpY2FsOiBib29sZWFuO1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcbiAgcHJpdmF0ZSBfYXJyb3dPYnNlcnZlcjogSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG4gIHByaXZhdGUgX3Njcm9sbEJlaGF2aW9yOiBTY3JvbGxCZWhhdmlvcjtcbiAgcHJpdmF0ZSBfc2Nyb2xsSWQ6IG51bWJlcjtcbiAgcHJpdmF0ZSBfc21vb3RoU2Nyb2xsQWxsb3dlZCA9IGZhbHNlO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgY3NzQ2xhc3MoKSB7XG4gICAgcmV0dXJuIGBkb2UtdGh1bWJzLS0ke3RoaXMub3JpZW50YXRpb259YDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IF9ob3N0T2Zmc2V0QXhpcygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl92ZXJ0aWNhbFxuICAgICAgPyB0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodFxuICAgICAgOiB0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgX3Njcm9sbEtleSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl92ZXJ0aWNhbCA/ICdzY3JvbGxUb3AnIDogJ3Njcm9sbExlZnQnO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgX2VsUmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PlxuICApIHt9XG5cbiAgbmdPbkNoYW5nZXMoeyBhcnJvd3MsIGl0ZW1zLCBvcmllbnRhdGlvbiB9OiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKG9yaWVudGF0aW9uICYmIG9yaWVudGF0aW9uLmN1cnJlbnRWYWx1ZSAhPSBudWxsKSB7XG4gICAgICBjb25zdCBuZXdPcmllbnRhdGlvbjogT3JpZW50YXRpb24gPSBvcmllbnRhdGlvbi5jdXJyZW50VmFsdWU7XG4gICAgICB0aGlzLl92ZXJ0aWNhbCA9IG5ld09yaWVudGF0aW9uID09PSAnbGVmdCcgfHwgbmV3T3JpZW50YXRpb24gPT09ICdyaWdodCc7XG4gICAgfVxuICAgIGlmIChhcnJvd3MpIHtcbiAgICAgIGlmIChhcnJvd3MuY3VycmVudFZhbHVlICYmIHRoaXMuaXRlbXMgJiYgdGhpcy5pdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5vYnNlcnZlQXJyb3dzKCk7XG4gICAgICB9IGVsc2UgaWYgKCFhcnJvd3MuY3VycmVudFZhbHVlKSB7XG4gICAgICAgIHRoaXMuX3Nob3dTdGFydEFycm93ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3Nob3dFbmRBcnJvdyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnVub2JzZXJ2ZUFycm93cygpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChpdGVtcyAmJiBpdGVtcy5jdXJyZW50VmFsdWUpIHtcbiAgICAgIGNvbnN0IGN1cnJJdGVtcyA9IChpdGVtcy5jdXJyZW50VmFsdWUgfHwgW10pIGFzIEdhbGxlcnlJdGVtSW50ZXJuYWxbXTtcbiAgICAgIGNvbnN0IHByZXZJdGVtcyA9IChpdGVtcy5wcmV2aW91c1ZhbHVlIHx8IFtdKSBhcyBHYWxsZXJ5SXRlbUludGVybmFsW107XG5cbiAgICAgIGlmIChjdXJySXRlbXMubGVuZ3RoID09PSBwcmV2SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuYXJyb3dzICYmIGN1cnJJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5vYnNlcnZlQXJyb3dzKCk7XG4gICAgICB9XG4gICAgICBpZiAoIXByZXZJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jZW50ZXJUaHVtYklmTmVlZGVkKHRoaXMuc2VsZWN0ZWRJbmRleCk7XG4gICAgICAgICAgdGhpcy5fc21vb3RoU2Nyb2xsQWxsb3dlZCA9IHRydWU7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQobnVsbCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB0aGlzLl9hcnJvd09ic2VydmVyICYmIHRoaXMuX2Fycm93T2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICB9XG5cbiAgc2xpZGUoZGlyZWN0aW9uOiBudW1iZXIpIHtcbiAgICBsZXQgZGVsdGE6IG51bWJlcjtcblxuICAgIGlmICh0aGlzLmFycm93U2xpZGVCeUxlbmd0aCkge1xuICAgICAgZGVsdGEgPSB0aGlzLmFycm93U2xpZGVCeUxlbmd0aDtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTm90ZTogU2xpZGUgYnkgdGhlIGZ1bGwgaGVpZ2h0L3dpZHRoIG9mIHRoZSBnYWxsZXJ5XG4gICAgICAvLyBvciBieSB0aGUgb3ZlcmZsb3cgb2YgdGhlIHRodW1icyAtIHRvIHByZXZlbnQgdW5uZWNlc3NhcnkgcmVxdWVzdEFuaW1hdGlvbkZyYW1lIGNhbGxzIHdoaWxlIHRyeWluZyB0byBzY3JvbGxcbiAgICAgIC8vIG91dHNpZGUgb2YgdGhlIG1pbi9tYXggc2Nyb2xsIG9mIHRoZSB0aHVtYnNcbiAgICAgIGNvbnN0IHRodW1iTGlzdCA9IHRoaXMudGh1bWJMaXN0UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBjb25zdCB0aHVtYkxpc3RTY3JvbGxBeGlzID0gdGhpcy5fdmVydGljYWxcbiAgICAgICAgPyB0aHVtYkxpc3Quc2Nyb2xsSGVpZ2h0XG4gICAgICAgIDogdGh1bWJMaXN0LnNjcm9sbFdpZHRoO1xuICAgICAgY29uc3QgdGh1bWJMaXN0T2Zmc2V0QXhpcyA9IHRoaXMuX3ZlcnRpY2FsXG4gICAgICAgID8gdGh1bWJMaXN0Lm9mZnNldEhlaWdodFxuICAgICAgICA6IHRodW1iTGlzdC5vZmZzZXRXaWR0aDtcblxuICAgICAgZGVsdGEgPSBNYXRoLm1pbihcbiAgICAgICAgdGh1bWJMaXN0T2Zmc2V0QXhpcyxcbiAgICAgICAgdGh1bWJMaXN0U2Nyb2xsQXhpcyAtIHRodW1iTGlzdE9mZnNldEF4aXNcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuc2Nyb2xsKGRlbHRhICogZGlyZWN0aW9uKTtcbiAgfVxuXG4gIGNlbnRlclRodW1iSWZOZWVkZWQoaW5kZXg6IG51bWJlcikge1xuICAgIGlmICghdGhpcy5pdGVtcyB8fCB0aGlzLml0ZW1zLmxlbmd0aCA8PSAxKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbmV4dEl0ZW1SZWYgPSB0aGlzLnRodW1ic1JlZi50b0FycmF5KClbaW5kZXhdO1xuXG4gICAgaWYgKCFuZXh0SXRlbVJlZikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG5leHRJdGVtRWwgPSBuZXh0SXRlbVJlZi5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IHsgb2Zmc2V0TGVmdCwgb2Zmc2V0VG9wLCBvZmZzZXRXaWR0aCwgb2Zmc2V0SGVpZ2h0IH0gPSBuZXh0SXRlbUVsO1xuXG4gICAgY29uc3QgaXRlbU9mZnNldCA9IHRoaXMuX3ZlcnRpY2FsID8gb2Zmc2V0VG9wIDogb2Zmc2V0TGVmdDtcbiAgICBjb25zdCBpdGVtT2Zmc2V0QXhpcyA9IHRoaXMuX3ZlcnRpY2FsID8gb2Zmc2V0SGVpZ2h0IDogb2Zmc2V0V2lkdGg7XG5cbiAgICBjb25zdCBob3N0U2Nyb2xsQXhpcyA9IHRoaXMuX2hvc3RPZmZzZXRBeGlzO1xuICAgIGNvbnN0IHRodW1iTGlzdFNjcm9sbCA9IHRoaXMudGh1bWJMaXN0UmVmLm5hdGl2ZUVsZW1lbnRbdGhpcy5fc2Nyb2xsS2V5XTtcblxuICAgIGNvbnN0IG5leHRTY3JvbGxEZWx0YSA9XG4gICAgICBpdGVtT2Zmc2V0ICsgaXRlbU9mZnNldEF4aXMgLyAyIC0gaG9zdFNjcm9sbEF4aXMgLyAyIC0gdGh1bWJMaXN0U2Nyb2xsO1xuXG4gICAgaWYgKFxuICAgICAgdGh1bWJMaXN0U2Nyb2xsICsgaG9zdFNjcm9sbEF4aXMgPCBpdGVtT2Zmc2V0ICsgaXRlbU9mZnNldEF4aXMgfHxcbiAgICAgIHRodW1iTGlzdFNjcm9sbCA+IGl0ZW1PZmZzZXRcbiAgICApIHtcbiAgICAgIHRoaXMuc2Nyb2xsKG5leHRTY3JvbGxEZWx0YSk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0KGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLnNlbGVjdGVkSW5kZXggPSBpbmRleDtcbiAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICBpZiAodGhpcy5hdXRvU2Nyb2xsKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2VudGVyVGh1bWJJZk5lZWRlZChpbmRleCkpO1xuICAgIH1cbiAgfVxuXG4gIF9lbWl0RXZlbnQoXG4gICAgaW5kZXg6IG51bWJlcixcbiAgICBpdGVtOiBHYWxsZXJ5SXRlbUludGVybmFsLFxuICAgIGV2ZW50OiBFdmVudCxcbiAgICBlbWl0dGVyOiBFdmVudEVtaXR0ZXI8R2FsbGVyeUl0ZW1FdmVudD5cbiAgKSB7XG4gICAgZW1pdHRlci5lbWl0KHtcbiAgICAgIGluZGV4LFxuICAgICAgaXRlbSxcbiAgICAgIGV2ZW50LFxuICAgIH0pO1xuICB9XG5cbiAgX29uTG9hZENoYW5nZShpdGVtOiBHYWxsZXJ5SXRlbUludGVybmFsLCBzdWNjZXNzOiBib29sZWFuKSB7XG4gICAgaXRlbS5fdGh1bWJGYWlsZWQgPSAhc3VjY2VzcztcbiAgfVxuXG4gIHByaXZhdGUgc2Nyb2xsKHRvdGFsU2Nyb2xsRGVsdGE6IG51bWJlcikge1xuICAgIGlmICghaXNCcm93c2VyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChTVVBQT1JULnNjcm9sbEJlaGF2aW9yIHx8IHRoaXMuc2Nyb2xsQmVoYXZpb3IgPT09ICdhdXRvJykge1xuICAgICAgdGhpcy50aHVtYkxpc3RSZWYubmF0aXZlRWxlbWVudFt0aGlzLl9zY3JvbGxLZXldICs9IHRvdGFsU2Nyb2xsRGVsdGE7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLl9zY3JvbGxJZCAhPSBudWxsKSB7XG4gICAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9zY3JvbGxJZCk7XG4gICAgfVxuXG4gICAgY29uc3QgdG90YWxEaXN0YW5jZSA9IE1hdGguYWJzKHRvdGFsU2Nyb2xsRGVsdGEpO1xuICAgIGNvbnN0IHN0YXJ0VGltZSA9IERhdGUubm93KCk7XG4gICAgY29uc3QgYmFzZUFycm93U2xpZGVUaW1lID0gMjAwO1xuICAgIGxldCB0b3RhbFRpbWUgPSAoTWF0aC5sb2cxMCh0b3RhbERpc3RhbmNlKSAtIDEuMSkgKiBiYXNlQXJyb3dTbGlkZVRpbWU7XG4gICAgaWYgKHRvdGFsVGltZSA8IDApIHtcbiAgICAgIHRvdGFsVGltZSA9IGJhc2VBcnJvd1NsaWRlVGltZTtcbiAgICB9XG4gICAgbGV0IGN1cnJlbnRTY3JvbGwgPSAwO1xuXG4gICAgLy8gRW11bGF0aW5nIG5hdGl2ZSBzY3JvbGwtYmVoYXZpb3I6IHNtb290aFxuICAgIC8vIE5PVEU6IFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIG9uIHBlciBmcmFtZSBiYXNpcyByZWN1cnNpdmVseSB0byBjcmVhdGUgc21vb3RoIGFuaW1hdGlvbi5cbiAgICAvLyBUaGUgc2Nyb2xsIHZhbHVlIGlzIHVwZGF0ZWQgcHJvcG9ydGlvbmFsbHkgdG8gdGhlIHRpbWUgZWxhcHNlZCBzaW5jZSB0aGUgYW5pbWF0aW9uJ3Mgc3RhcnQuXG4gICAgLy8gVGhlIHBlcmlvZCBvZiByZXF1ZXN0ZWQgZnJhbWVzIHNob3VsZCBtYXRjaCB0aGUgZGlzcGxheSdzIHJlZnJlc2ggcmF0ZSBhcyByZWNvbW1lbmRlZCBpbiBXM0Mgc3BlYy5cbiAgICBjb25zdCBhbmltYXRlID0gKCkgPT4ge1xuICAgICAgY29uc3Qgc3VnZ2VzdGVkU2Nyb2xsID0gTWF0aC5jZWlsKFxuICAgICAgICAoKERhdGUubm93KCkgLSBzdGFydFRpbWUpIC8gdG90YWxUaW1lKSAqIHRvdGFsRGlzdGFuY2VcbiAgICAgICk7XG4gICAgICBsZXQgZnJhbWVTY3JvbGwgPSBNYXRoLm1pbihcbiAgICAgICAgc3VnZ2VzdGVkU2Nyb2xsIC0gY3VycmVudFNjcm9sbCxcbiAgICAgICAgdG90YWxEaXN0YW5jZSAtIGN1cnJlbnRTY3JvbGxcbiAgICAgICk7XG4gICAgICBmcmFtZVNjcm9sbCAqPSBNYXRoLnNpZ24odG90YWxTY3JvbGxEZWx0YSk7XG4gICAgICBjdXJyZW50U2Nyb2xsID0gc3VnZ2VzdGVkU2Nyb2xsO1xuXG4gICAgICB0aGlzLnRodW1iTGlzdFJlZi5uYXRpdmVFbGVtZW50W3RoaXMuX3Njcm9sbEtleV0gKz0gZnJhbWVTY3JvbGw7XG5cbiAgICAgIGlmIChjdXJyZW50U2Nyb2xsIDw9IHRvdGFsRGlzdGFuY2UpIHtcbiAgICAgICAgdGhpcy5fc2Nyb2xsSWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoYW5pbWF0ZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHRoaXMuX3Njcm9sbElkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGFuaW1hdGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkFycm93c09ic2VydmVkOiBJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrID0gZW50cmllcyA9PiB7XG4gICAgY29uc3QgZW50cnlFbDEgPSBlbnRyaWVzWzBdLnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICBjb25zdCBmaXJzdFRodW1iRW50cnkgPVxuICAgICAgZW50cnlFbDEgPT09IHRoaXMudGh1bWJzUmVmLmZpcnN0Lm5hdGl2ZUVsZW1lbnQgPyBlbnRyaWVzWzBdIDogZW50cmllc1sxXTtcbiAgICBjb25zdCBsYXN0VGh1bWJFbnRyeSA9XG4gICAgICBlbnRyeUVsMSA9PT0gdGhpcy50aHVtYnNSZWYubGFzdC5uYXRpdmVFbGVtZW50ID8gZW50cmllc1swXSA6IGVudHJpZXNbMV07XG5cbiAgICBpZiAoZmlyc3RUaHVtYkVudHJ5KSB7XG4gICAgICB0aGlzLl9zaG93U3RhcnRBcnJvdyA9IGZpcnN0VGh1bWJFbnRyeS5pbnRlcnNlY3Rpb25SYXRpbyA8IDE7XG4gICAgfVxuICAgIGlmIChsYXN0VGh1bWJFbnRyeSkge1xuICAgICAgdGhpcy5fc2hvd0VuZEFycm93ID0gbGFzdFRodW1iRW50cnkuaW50ZXJzZWN0aW9uUmF0aW8gPCAxO1xuICAgIH1cblxuICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgfTtcblxuICBwcml2YXRlIG9ic2VydmVBcnJvd3MoKSB7XG4gICAgaWYgKCF0aGlzLl9hcnJvd09ic2VydmVyKSB7XG4gICAgICB0aGlzLl9hcnJvd09ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKHRoaXMub25BcnJvd3NPYnNlcnZlZCwge1xuICAgICAgICByb290OiB0aGlzLnRodW1iTGlzdFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICB0aHJlc2hvbGQ6IDEuMCxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9hcnJvd09ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICB9XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLl9hcnJvd09ic2VydmVyLm9ic2VydmUodGhpcy50aHVtYnNSZWYuZmlyc3QubmF0aXZlRWxlbWVudCk7XG4gICAgICB0aGlzLl9hcnJvd09ic2VydmVyLm9ic2VydmUodGhpcy50aHVtYnNSZWYubGFzdC5uYXRpdmVFbGVtZW50KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdW5vYnNlcnZlQXJyb3dzKCkge1xuICAgIHRoaXMuX2Fycm93T2JzZXJ2ZXIgJiYgdGhpcy5fYXJyb3dPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gIH1cbn1cbiJdfQ== |
@@ -8,3 +8,2 @@ /** | ||
import { NgModule } from '@angular/core'; | ||
import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; | ||
import { CounterComponent } from './components/counter/counter.component'; | ||
@@ -30,6 +29,6 @@ import { GalleryComponent } from './components/gallery/gallery.component'; | ||
], | ||
imports: [CommonModule, BrowserAnimationsModule], | ||
imports: [CommonModule], | ||
exports: [GalleryComponent, MediaDirective], | ||
},] } | ||
]; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FsbGVyeS5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtZG9lLWdhbGxlcnkvIiwic291cmNlcyI6WyJsaWIvZ2FsbGVyeS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUUvRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUN6RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFlOUQsTUFBTSxPQUFPLGFBQWE7OztZQWJ6QixRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFO29CQUNaLGdCQUFnQjtvQkFDaEIsZUFBZTtvQkFDZixlQUFlO29CQUNmLG9CQUFvQjtvQkFDcEIsZ0JBQWdCO29CQUNoQixRQUFRO29CQUNSLGNBQWM7aUJBQ2Y7Z0JBQ0QsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLHVCQUF1QixDQUFDO2dCQUNoRCxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxjQUFjLENBQUM7YUFDNUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJyb3dzZXJBbmltYXRpb25zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci9hbmltYXRpb25zJztcblxuaW1wb3J0IHsgQ291bnRlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb3VudGVyL2NvdW50ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEdhbGxlcnlDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZ2FsbGVyeS9nYWxsZXJ5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDaGV2cm9uSWNvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9pY29ucy9jaGV2cm9uL2NoZXZyb24taWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGh1bWJzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RodW1icy90aHVtYnMuY29tcG9uZW50JztcbmltcG9ydCB7IFZpZXdlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy92aWV3ZXIvdmlld2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTYWZlUGlwZSB9IGZyb20gJy4vcGlwZXMvc2FmZS5waXBlJztcbmltcG9ydCB7IE1lZGlhRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL21lZGlhLmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEdhbGxlcnlDb21wb25lbnQsXG4gICAgVGh1bWJzQ29tcG9uZW50LFxuICAgIFZpZXdlckNvbXBvbmVudCxcbiAgICBDaGV2cm9uSWNvbkNvbXBvbmVudCxcbiAgICBDb3VudGVyQ29tcG9uZW50LFxuICAgIFNhZmVQaXBlLFxuICAgIE1lZGlhRGlyZWN0aXZlLFxuICBdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBCcm93c2VyQW5pbWF0aW9uc01vZHVsZV0sXG4gIGV4cG9ydHM6IFtHYWxsZXJ5Q29tcG9uZW50LCBNZWRpYURpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIEdhbGxlcnlNb2R1bGUge31cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FsbGVyeS5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtZG9lLWdhbGxlcnkvIiwic291cmNlcyI6WyJsaWIvZ2FsbGVyeS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUN6RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFlOUQsTUFBTSxPQUFPLGFBQWE7OztZQWJ6QixRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFO29CQUNaLGdCQUFnQjtvQkFDaEIsZUFBZTtvQkFDZixlQUFlO29CQUNmLG9CQUFvQjtvQkFDcEIsZ0JBQWdCO29CQUNoQixRQUFRO29CQUNSLGNBQWM7aUJBQ2Y7Z0JBQ0QsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2dCQUN2QixPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxjQUFjLENBQUM7YUFDNUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ291bnRlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb3VudGVyL2NvdW50ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEdhbGxlcnlDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZ2FsbGVyeS9nYWxsZXJ5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDaGV2cm9uSWNvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9pY29ucy9jaGV2cm9uL2NoZXZyb24taWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGh1bWJzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RodW1icy90aHVtYnMuY29tcG9uZW50JztcbmltcG9ydCB7IFZpZXdlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy92aWV3ZXIvdmlld2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTYWZlUGlwZSB9IGZyb20gJy4vcGlwZXMvc2FmZS5waXBlJztcbmltcG9ydCB7IE1lZGlhRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL21lZGlhLmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEdhbGxlcnlDb21wb25lbnQsXG4gICAgVGh1bWJzQ29tcG9uZW50LFxuICAgIFZpZXdlckNvbXBvbmVudCxcbiAgICBDaGV2cm9uSWNvbkNvbXBvbmVudCxcbiAgICBDb3VudGVyQ29tcG9uZW50LFxuICAgIFNhZmVQaXBlLFxuICAgIE1lZGlhRGlyZWN0aXZlLFxuICBdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgZXhwb3J0czogW0dhbGxlcnlDb21wb25lbnQsIE1lZGlhRGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgR2FsbGVyeU1vZHVsZSB7fVxuIl19 |
@@ -198,6 +198,8 @@ /** | ||
/** @type {?} */ | ||
var nextItemEl = this.thumbsRef.toArray()[index].nativeElement; | ||
if (!nextItemEl) { | ||
var nextItemRef = this.thumbsRef.toArray()[index]; | ||
if (!nextItemRef) { | ||
return; | ||
} | ||
/** @type {?} */ | ||
var nextItemEl = nextItemRef.nativeElement; | ||
var offsetLeft = nextItemEl.offsetLeft, offsetTop = nextItemEl.offsetTop, offsetWidth = nextItemEl.offsetWidth, offsetHeight = nextItemEl.offsetHeight; | ||
@@ -479,2 +481,2 @@ /** @type {?} */ | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGh1bWJzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1kb2UtZ2FsbGVyeS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3RodW1icy90aHVtYnMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUVULFdBQVcsRUFDWCxTQUFTLEVBQ1QsWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUNMLFNBQVMsRUFFVCxPQUFPLEdBRVIsTUFBTSxZQUFZLENBQUM7QUFFcEIsT0FBTyxFQUdMLE9BQU8sR0FDUixNQUFNLHlCQUF5QixDQUFDO0FBRWpDO0lBMERFLHlCQUNVLEdBQXNCLEVBQ3RCLE1BQStCO1FBRnpDLGlCQUdJO1FBRk0sUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBeUI7UUFyRGhDLFVBQUssR0FBMEIsRUFBRSxDQUFDO1FBa0JqQyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQW9CLENBQUM7UUFDbEQsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO1FBSzVELFlBQU8sR0FBRyxPQUFPLENBQUM7UUFFbEIsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFDeEIsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFHZCxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUkxQix5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUE4TDdCLHFCQUFnQjs7OztRQUFpQyxVQUFBLE9BQU87O2dCQUN4RCxRQUFRLEdBQUcsbUJBQUEsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBZTs7Z0JBQzND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NkI7O0lBQzdCLHdDQUEwRDs7SUFDMUQsd0NBQTBDOztJQUMxQyx3Q0FBMEM7O0lBUzFDLHFDQUE0RDs7SUFDNUQscUNBQTREOztJQUU1RCx1Q0FBNkU7O0lBQzdFLG9DQUFxRTs7SUFFckUsa0NBQWtCOztJQUVsQiwwQ0FBd0I7O0lBQ3hCLHdDQUFzQjs7SUFDdEIsb0NBQW1COzs7OztJQUVuQixvQ0FBa0M7Ozs7O0lBQ2xDLHlDQUE2Qzs7Ozs7SUFDN0MsMENBQXdDOzs7OztJQUN4QyxvQ0FBMEI7Ozs7O0lBQzFCLCtDQUFxQzs7Ozs7SUE4THJDLDJDQWVFOzs7OztJQTNMQSw4QkFBOEI7Ozs7O0lBQzlCLGlDQUF1QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q2hpbGRyZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICBpc0Jyb3dzZXIsXG4gIE9yaWVudGF0aW9uLFxuICBTVVBQT1JULFxuICBUaHVtYlRlbXBsYXRlQ29udGV4dCxcbn0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBBcmlhIH0gZnJvbSAnLi4vLi4vY29yZS9hcmlhJztcbmltcG9ydCB7XG4gIEdhbGxlcnlJdGVtSW50ZXJuYWwsXG4gIEdhbGxlcnlJdGVtRXZlbnQsXG4gIGlzVmlkZW8sXG59IGZyb20gJy4uLy4uL2NvcmUvZ2FsbGVyeS1pdGVtJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZG9lLXRodW1icycsXG4gIHRlbXBsYXRlVXJsOiAnLi90aHVtYnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90aHVtYnMuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFRodW1ic0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgQElucHV0KCkgaXRlbXM6IEdhbGxlcnlJdGVtSW50ZXJuYWxbXSA9IFtdO1xuICBASW5wdXQoKSBzZWxlY3RlZEluZGV4OiBudW1iZXI7XG4gIEBJbnB1dCgpIGFyaWE6IEFyaWE7XG4gIEBJbnB1dCgpIG9yaWVudGF0aW9uOiBPcmllbnRhdGlvbjtcbiAgQElucHV0KCkgYXJyb3dzOiBib29sZWFuO1xuICBASW5wdXQoKSBhcnJvd1NsaWRlQnlMZW5ndGg6IG51bWJlcjtcbiAgQElucHV0KCkgYXV0b1Njcm9sbDogYm9vbGVhbjtcbiAgQElucHV0KCkgdGh1bWJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8VGh1bWJUZW1wbGF0ZUNvbnRleHQ+O1xuICBASW5wdXQoKSBhcnJvd1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjx2b2lkPjtcbiAgQElucHV0KCkgZXJyb3JUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dm9pZD47XG4gIEBJbnB1dCgpXG4gIHNldCBzY3JvbGxCZWhhdmlvcih2YWw6IFNjcm9sbEJlaGF2aW9yKSB7XG4gICAgdGhpcy5fc2Nyb2xsQmVoYXZpb3IgPSB2YWwgfHwgJ3Ntb290aCc7XG4gIH1cbiAgZ2V0IHNjcm9sbEJlaGF2aW9yKCkge1xuICAgIHJldHVybiB0aGlzLl9zbW9vdGhTY3JvbGxBbGxvd2VkID8gdGhpcy5fc2Nyb2xsQmVoYXZpb3IgOiAnYXV0byc7XG4gIH1cblxuICBAT3V0cHV0KCkgdGh1bWJDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8R2FsbGVyeUl0ZW1FdmVudD4oKTtcbiAgQE91dHB1dCgpIHRodW1iSG92ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPEdhbGxlcnlJdGVtRXZlbnQ+KCk7XG5cbiAgQFZpZXdDaGlsZCgndGh1bWJzJywgeyBzdGF0aWM6IHRydWUgfSkgdGh1bWJMaXN0UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgQFZpZXdDaGlsZHJlbigndGh1bWInKSB0aHVtYnNSZWY6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj47XG5cbiAgaXNWaWRlbyA9IGlzVmlkZW87XG5cbiAgX3Nob3dTdGFydEFycm93ID0gZmFsc2U7XG4gIF9zaG93RW5kQXJyb3cgPSBmYWxzZTtcbiAgX3ZlcnRpY2FsOiBib29sZWFuO1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcbiAgcHJpdmF0ZSBfYXJyb3dPYnNlcnZlcjogSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG4gIHByaXZhdGUgX3Njcm9sbEJlaGF2aW9yOiBTY3JvbGxCZWhhdmlvcjtcbiAgcHJpdmF0ZSBfc2Nyb2xsSWQ6IG51bWJlcjtcbiAgcHJpdmF0ZSBfc21vb3RoU2Nyb2xsQWxsb3dlZCA9IGZhbHNlO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgY3NzQ2xhc3MoKSB7XG4gICAgcmV0dXJuIGBkb2UtdGh1bWJzLS0ke3RoaXMub3JpZW50YXRpb259YDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IF9ob3N0T2Zmc2V0QXhpcygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl92ZXJ0aWNhbFxuICAgICAgPyB0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodFxuICAgICAgOiB0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgX3Njcm9sbEtleSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl92ZXJ0aWNhbCA/ICdzY3JvbGxUb3AnIDogJ3Njcm9sbExlZnQnO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgX2VsUmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PlxuICApIHt9XG5cbiAgbmdPbkNoYW5nZXMoeyBhcnJvd3MsIGl0ZW1zLCBvcmllbnRhdGlvbiB9OiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKG9yaWVudGF0aW9uICYmIG9yaWVudGF0aW9uLmN1cnJlbnRWYWx1ZSAhPSBudWxsKSB7XG4gICAgICBjb25zdCBuZXdPcmllbnRhdGlvbjogT3JpZW50YXRpb24gPSBvcmllbnRhdGlvbi5jdXJyZW50VmFsdWU7XG4gICAgICB0aGlzLl92ZXJ0aWNhbCA9IG5ld09yaWVudGF0aW9uID09PSAnbGVmdCcgfHwgbmV3T3JpZW50YXRpb24gPT09ICdyaWdodCc7XG4gICAgfVxuICAgIGlmIChhcnJvd3MpIHtcbiAgICAgIGlmIChhcnJvd3MuY3VycmVudFZhbHVlICYmIHRoaXMuaXRlbXMgJiYgdGhpcy5pdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5vYnNlcnZlQXJyb3dzKCk7XG4gICAgICB9IGVsc2UgaWYgKCFhcnJvd3MuY3VycmVudFZhbHVlKSB7XG4gICAgICAgIHRoaXMuX3Nob3dTdGFydEFycm93ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3Nob3dFbmRBcnJvdyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnVub2JzZXJ2ZUFycm93cygpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChpdGVtcyAmJiBpdGVtcy5jdXJyZW50VmFsdWUpIHtcbiAgICAgIGNvbnN0IGN1cnJJdGVtcyA9IChpdGVtcy5jdXJyZW50VmFsdWUgfHwgW10pIGFzIEdhbGxlcnlJdGVtSW50ZXJuYWxbXTtcbiAgICAgIGNvbnN0IHByZXZJdGVtcyA9IChpdGVtcy5wcmV2aW91c1ZhbHVlIHx8IFtdKSBhcyBHYWxsZXJ5SXRlbUludGVybmFsW107XG5cbiAgICAgIGlmIChjdXJySXRlbXMubGVuZ3RoID09PSBwcmV2SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuYXJyb3dzICYmIGN1cnJJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5vYnNlcnZlQXJyb3dzKCk7XG4gICAgICB9XG4gICAgICBpZiAoIXByZXZJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jZW50ZXJUaHVtYklmTmVlZGVkKHRoaXMuc2VsZWN0ZWRJbmRleCk7XG4gICAgICAgICAgdGhpcy5fc21vb3RoU2Nyb2xsQWxsb3dlZCA9IHRydWU7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQobnVsbCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB0aGlzLl9hcnJvd09ic2VydmVyICYmIHRoaXMuX2Fycm93T2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICB9XG5cbiAgc2xpZGUoZGlyZWN0aW9uOiBudW1iZXIpIHtcbiAgICBsZXQgZGVsdGE6IG51bWJlcjtcblxuICAgIGlmICh0aGlzLmFycm93U2xpZGVCeUxlbmd0aCkge1xuICAgICAgZGVsdGEgPSB0aGlzLmFycm93U2xpZGVCeUxlbmd0aDtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTm90ZTogU2xpZGUgYnkgdGhlIGZ1bGwgaGVpZ2h0L3dpZHRoIG9mIHRoZSBnYWxsZXJ5XG4gICAgICAvLyBvciBieSB0aGUgb3ZlcmZsb3cgb2YgdGhlIHRodW1icyAtIHRvIHByZXZlbnQgdW5uZWNlc3NhcnkgcmVxdWVzdEFuaW1hdGlvbkZyYW1lIGNhbGxzIHdoaWxlIHRyeWluZyB0byBzY3JvbGxcbiAgICAgIC8vIG91dHNpZGUgb2YgdGhlIG1pbi9tYXggc2Nyb2xsIG9mIHRoZSB0aHVtYnNcbiAgICAgIGNvbnN0IHRodW1iTGlzdCA9IHRoaXMudGh1bWJMaXN0UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBjb25zdCB0aHVtYkxpc3RTY3JvbGxBeGlzID0gdGhpcy5fdmVydGljYWxcbiAgICAgICAgPyB0aHVtYkxpc3Quc2Nyb2xsSGVpZ2h0XG4gICAgICAgIDogdGh1bWJMaXN0LnNjcm9sbFdpZHRoO1xuICAgICAgY29uc3QgdGh1bWJMaXN0T2Zmc2V0QXhpcyA9IHRoaXMuX3ZlcnRpY2FsXG4gICAgICAgID8gdGh1bWJMaXN0Lm9mZnNldEhlaWdodFxuICAgICAgICA6IHRodW1iTGlzdC5vZmZzZXRXaWR0aDtcblxuICAgICAgZGVsdGEgPSBNYXRoLm1pbihcbiAgICAgICAgdGh1bWJMaXN0T2Zmc2V0QXhpcyxcbiAgICAgICAgdGh1bWJMaXN0U2Nyb2xsQXhpcyAtIHRodW1iTGlzdE9mZnNldEF4aXNcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuc2Nyb2xsKGRlbHRhICogZGlyZWN0aW9uKTtcbiAgfVxuXG4gIGNlbnRlclRodW1iSWZOZWVkZWQoaW5kZXg6IG51bWJlcikge1xuICAgIGlmICghdGhpcy5pdGVtcyB8fCB0aGlzLml0ZW1zLmxlbmd0aCA8PSAxKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbmV4dEl0ZW1FbCA9IHRoaXMudGh1bWJzUmVmLnRvQXJyYXkoKVtpbmRleF0ubmF0aXZlRWxlbWVudDtcblxuICAgIGlmICghbmV4dEl0ZW1FbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHsgb2Zmc2V0TGVmdCwgb2Zmc2V0VG9wLCBvZmZzZXRXaWR0aCwgb2Zmc2V0SGVpZ2h0IH0gPSBuZXh0SXRlbUVsO1xuXG4gICAgY29uc3QgaXRlbU9mZnNldCA9IHRoaXMuX3ZlcnRpY2FsID8gb2Zmc2V0VG9wIDogb2Zmc2V0TGVmdDtcbiAgICBjb25zdCBpdGVtT2Zmc2V0QXhpcyA9IHRoaXMuX3ZlcnRpY2FsID8gb2Zmc2V0SGVpZ2h0IDogb2Zmc2V0V2lkdGg7XG5cbiAgICBjb25zdCBob3N0U2Nyb2xsQXhpcyA9IHRoaXMuX2hvc3RPZmZzZXRBeGlzO1xuICAgIGNvbnN0IHRodW1iTGlzdFNjcm9sbCA9IHRoaXMudGh1bWJMaXN0UmVmLm5hdGl2ZUVsZW1lbnRbdGhpcy5fc2Nyb2xsS2V5XTtcblxuICAgIGNvbnN0IG5leHRTY3JvbGxEZWx0YSA9XG4gICAgICBpdGVtT2Zmc2V0ICsgaXRlbU9mZnNldEF4aXMgLyAyIC0gaG9zdFNjcm9sbEF4aXMgLyAyIC0gdGh1bWJMaXN0U2Nyb2xsO1xuXG4gICAgaWYgKFxuICAgICAgdGh1bWJMaXN0U2Nyb2xsICsgaG9zdFNjcm9sbEF4aXMgPCBpdGVtT2Zmc2V0ICsgaXRlbU9mZnNldEF4aXMgfHxcbiAgICAgIHRodW1iTGlzdFNjcm9sbCA+IGl0ZW1PZmZzZXRcbiAgICApIHtcbiAgICAgIHRoaXMuc2Nyb2xsKG5leHRTY3JvbGxEZWx0YSk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0KGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLnNlbGVjdGVkSW5kZXggPSBpbmRleDtcbiAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICBpZiAodGhpcy5hdXRvU2Nyb2xsKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2VudGVyVGh1bWJJZk5lZWRlZChpbmRleCkpO1xuICAgIH1cbiAgfVxuXG4gIF9lbWl0RXZlbnQoXG4gICAgaW5kZXg6IG51bWJlcixcbiAgICBpdGVtOiBHYWxsZXJ5SXRlbUludGVybmFsLFxuICAgIGV2ZW50OiBFdmVudCxcbiAgICBlbWl0dGVyOiBFdmVudEVtaXR0ZXI8R2FsbGVyeUl0ZW1FdmVudD5cbiAgKSB7XG4gICAgZW1pdHRlci5lbWl0KHtcbiAgICAgIGluZGV4LFxuICAgICAgaXRlbSxcbiAgICAgIGV2ZW50LFxuICAgIH0pO1xuICB9XG5cbiAgX29uTG9hZENoYW5nZShpdGVtOiBHYWxsZXJ5SXRlbUludGVybmFsLCBzdWNjZXNzOiBib29sZWFuKSB7XG4gICAgaXRlbS5fdGh1bWJGYWlsZWQgPSAhc3VjY2VzcztcbiAgfVxuXG4gIHByaXZhdGUgc2Nyb2xsKHRvdGFsU2Nyb2xsRGVsdGE6IG51bWJlcikge1xuICAgIGlmICghaXNCcm93c2VyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChTVVBQT1JULnNjcm9sbEJlaGF2aW9yIHx8IHRoaXMuc2Nyb2xsQmVoYXZpb3IgPT09ICdhdXRvJykge1xuICAgICAgdGhpcy50aHVtYkxpc3RSZWYubmF0aXZlRWxlbWVudFt0aGlzLl9zY3JvbGxLZXldICs9IHRvdGFsU2Nyb2xsRGVsdGE7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLl9zY3JvbGxJZCAhPSBudWxsKSB7XG4gICAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9zY3JvbGxJZCk7XG4gICAgfVxuXG4gICAgY29uc3QgdG90YWxEaXN0YW5jZSA9IE1hdGguYWJzKHRvdGFsU2Nyb2xsRGVsdGEpO1xuICAgIGNvbnN0IHN0YXJ0VGltZSA9IERhdGUubm93KCk7XG4gICAgY29uc3QgYmFzZUFycm93U2xpZGVUaW1lID0gMjAwO1xuICAgIGxldCB0b3RhbFRpbWUgPSAoTWF0aC5sb2cxMCh0b3RhbERpc3RhbmNlKSAtIDEuMSkgKiBiYXNlQXJyb3dTbGlkZVRpbWU7XG4gICAgaWYgKHRvdGFsVGltZSA8IDApIHtcbiAgICAgIHRvdGFsVGltZSA9IGJhc2VBcnJvd1NsaWRlVGltZTtcbiAgICB9XG4gICAgbGV0IGN1cnJlbnRTY3JvbGwgPSAwO1xuXG4gICAgLy8gRW11bGF0aW5nIG5hdGl2ZSBzY3JvbGwtYmVoYXZpb3I6IHNtb290aFxuICAgIC8vIE5PVEU6IFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIG9uIHBlciBmcmFtZSBiYXNpcyByZWN1cnNpdmVseSB0byBjcmVhdGUgc21vb3RoIGFuaW1hdGlvbi5cbiAgICAvLyBUaGUgc2Nyb2xsIHZhbHVlIGlzIHVwZGF0ZWQgcHJvcG9ydGlvbmFsbHkgdG8gdGhlIHRpbWUgZWxhcHNlZCBzaW5jZSB0aGUgYW5pbWF0aW9uJ3Mgc3RhcnQuXG4gICAgLy8gVGhlIHBlcmlvZCBvZiByZXF1ZXN0ZWQgZnJhbWVzIHNob3VsZCBtYXRjaCB0aGUgZGlzcGxheSdzIHJlZnJlc2ggcmF0ZSBhcyByZWNvbW1lbmRlZCBpbiBXM0Mgc3BlYy5cbiAgICBjb25zdCBhbmltYXRlID0gKCkgPT4ge1xuICAgICAgY29uc3Qgc3VnZ2VzdGVkU2Nyb2xsID0gTWF0aC5jZWlsKFxuICAgICAgICAoKERhdGUubm93KCkgLSBzdGFydFRpbWUpIC8gdG90YWxUaW1lKSAqIHRvdGFsRGlzdGFuY2VcbiAgICAgICk7XG4gICAgICBsZXQgZnJhbWVTY3JvbGwgPSBNYXRoLm1pbihcbiAgICAgICAgc3VnZ2VzdGVkU2Nyb2xsIC0gY3VycmVudFNjcm9sbCxcbiAgICAgICAgdG90YWxEaXN0YW5jZSAtIGN1cnJlbnRTY3JvbGxcbiAgICAgICk7XG4gICAgICBmcmFtZVNjcm9sbCAqPSBNYXRoLnNpZ24odG90YWxTY3JvbGxEZWx0YSk7XG4gICAgICBjdXJyZW50U2Nyb2xsID0gc3VnZ2VzdGVkU2Nyb2xsO1xuXG4gICAgICB0aGlzLnRodW1iTGlzdFJlZi5uYXRpdmVFbGVtZW50W3RoaXMuX3Njcm9sbEtleV0gKz0gZnJhbWVTY3JvbGw7XG5cbiAgICAgIGlmIChjdXJyZW50U2Nyb2xsIDw9IHRvdGFsRGlzdGFuY2UpIHtcbiAgICAgICAgdGhpcy5fc2Nyb2xsSWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoYW5pbWF0ZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHRoaXMuX3Njcm9sbElkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGFuaW1hdGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkFycm93c09ic2VydmVkOiBJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrID0gZW50cmllcyA9PiB7XG4gICAgY29uc3QgZW50cnlFbDEgPSBlbnRyaWVzWzBdLnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICBjb25zdCBmaXJzdFRodW1iRW50cnkgPVxuICAgICAgZW50cnlFbDEgPT09IHRoaXMudGh1bWJzUmVmLmZpcnN0Lm5hdGl2ZUVsZW1lbnQgPyBlbnRyaWVzWzBdIDogZW50cmllc1sxXTtcbiAgICBjb25zdCBsYXN0VGh1bWJFbnRyeSA9XG4gICAgICBlbnRyeUVsMSA9PT0gdGhpcy50aHVtYnNSZWYubGFzdC5uYXRpdmVFbGVtZW50ID8gZW50cmllc1swXSA6IGVudHJpZXNbMV07XG5cbiAgICBpZiAoZmlyc3RUaHVtYkVudHJ5KSB7XG4gICAgICB0aGlzLl9zaG93U3RhcnRBcnJvdyA9IGZpcnN0VGh1bWJFbnRyeS5pbnRlcnNlY3Rpb25SYXRpbyA8IDE7XG4gICAgfVxuICAgIGlmIChsYXN0VGh1bWJFbnRyeSkge1xuICAgICAgdGhpcy5fc2hvd0VuZEFycm93ID0gbGFzdFRodW1iRW50cnkuaW50ZXJzZWN0aW9uUmF0aW8gPCAxO1xuICAgIH1cblxuICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgfTtcblxuICBwcml2YXRlIG9ic2VydmVBcnJvd3MoKSB7XG4gICAgaWYgKCF0aGlzLl9hcnJvd09ic2VydmVyKSB7XG4gICAgICB0aGlzLl9hcnJvd09ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKHRoaXMub25BcnJvd3NPYnNlcnZlZCwge1xuICAgICAgICByb290OiB0aGlzLnRodW1iTGlzdFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICB0aHJlc2hvbGQ6IDEuMCxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9hcnJvd09ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICB9XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLl9hcnJvd09ic2VydmVyLm9ic2VydmUodGhpcy50aHVtYnNSZWYuZmlyc3QubmF0aXZlRWxlbWVudCk7XG4gICAgICB0aGlzLl9hcnJvd09ic2VydmVyLm9ic2VydmUodGhpcy50aHVtYnNSZWYubGFzdC5uYXRpdmVFbGVtZW50KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdW5vYnNlcnZlQXJyb3dzKCkge1xuICAgIHRoaXMuX2Fycm93T2JzZXJ2ZXIgJiYgdGhpcy5fYXJyb3dPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gIH1cbn1cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGh1bWJzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1kb2UtZ2FsbGVyeS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3RodW1icy90aHVtYnMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUVULFdBQVcsRUFDWCxTQUFTLEVBQ1QsWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUNMLFNBQVMsRUFFVCxPQUFPLEdBRVIsTUFBTSxZQUFZLENBQUM7QUFFcEIsT0FBTyxFQUdMLE9BQU8sR0FDUixNQUFNLHlCQUF5QixDQUFDO0FBRWpDO0lBMERFLHlCQUNVLEdBQXNCLEVBQ3RCLE1BQStCO1FBRnpDLGlCQUdJO1FBRk0sUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBeUI7UUFyRGhDLFVBQUssR0FBMEIsRUFBRSxDQUFDO1FBa0JqQyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQW9CLENBQUM7UUFDbEQsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO1FBSzVELFlBQU8sR0FBRyxPQUFPLENBQUM7UUFFbEIsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFDeEIsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFHZCxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUkxQix5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUErTDdCLHFCQUFnQjs7OztRQUFpQyxVQUFBLE9BQU87O2dCQUN4RCxRQUFRLEdBQUcsbUJBQUEsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBZTs7Z0JBQzND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QUN6Qiw2Q0FBb0M7O0lBQ3BDLHFDQUE2Qjs7SUFDN0Isd0NBQTBEOztJQUMxRCx3Q0FBMEM7O0lBQzFDLHdDQUEwQzs7SUFTMUMscUNBQTREOztJQUM1RCxxQ0FBNEQ7O0lBRTVELHVDQUE2RTs7SUFDN0Usb0NBQXFFOztJQUVyRSxrQ0FBa0I7O0lBRWxCLDBDQUF3Qjs7SUFDeEIsd0NBQXNCOztJQUN0QixvQ0FBbUI7Ozs7O0lBRW5CLG9DQUFrQzs7Ozs7SUFDbEMseUNBQTZDOzs7OztJQUM3QywwQ0FBd0M7Ozs7O0lBQ3hDLG9DQUEwQjs7Ozs7SUFDMUIsK0NBQXFDOzs7OztJQStMckMsMkNBZUU7Ozs7O0lBNUxBLDhCQUE4Qjs7Ozs7SUFDOUIsaUNBQXVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIGlzQnJvd3NlcixcbiAgT3JpZW50YXRpb24sXG4gIFNVUFBPUlQsXG4gIFRodW1iVGVtcGxhdGVDb250ZXh0LFxufSBmcm9tICcuLi8uLi9jb3JlJztcbmltcG9ydCB7IEFyaWEgfSBmcm9tICcuLi8uLi9jb3JlL2FyaWEnO1xuaW1wb3J0IHtcbiAgR2FsbGVyeUl0ZW1JbnRlcm5hbCxcbiAgR2FsbGVyeUl0ZW1FdmVudCxcbiAgaXNWaWRlbyxcbn0gZnJvbSAnLi4vLi4vY29yZS9nYWxsZXJ5LWl0ZW0nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkb2UtdGh1bWJzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RodW1icy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RodW1icy5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVGh1bWJzQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBpdGVtczogR2FsbGVyeUl0ZW1JbnRlcm5hbFtdID0gW107XG4gIEBJbnB1dCgpIHNlbGVjdGVkSW5kZXg6IG51bWJlcjtcbiAgQElucHV0KCkgYXJpYTogQXJpYTtcbiAgQElucHV0KCkgb3JpZW50YXRpb246IE9yaWVudGF0aW9uO1xuICBASW5wdXQoKSBhcnJvd3M6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGFycm93U2xpZGVCeUxlbmd0aDogbnVtYmVyO1xuICBASW5wdXQoKSBhdXRvU2Nyb2xsOiBib29sZWFuO1xuICBASW5wdXQoKSB0aHVtYlRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxUaHVtYlRlbXBsYXRlQ29udGV4dD47XG4gIEBJbnB1dCgpIGFycm93VGVtcGxhdGU6IFRlbXBsYXRlUmVmPHZvaWQ+O1xuICBASW5wdXQoKSBlcnJvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx2b2lkPjtcbiAgQElucHV0KClcbiAgc2V0IHNjcm9sbEJlaGF2aW9yKHZhbDogU2Nyb2xsQmVoYXZpb3IpIHtcbiAgICB0aGlzLl9zY3JvbGxCZWhhdmlvciA9IHZhbCB8fCAnc21vb3RoJztcbiAgfVxuICBnZXQgc2Nyb2xsQmVoYXZpb3IoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Ntb290aFNjcm9sbEFsbG93ZWQgPyB0aGlzLl9zY3JvbGxCZWhhdmlvciA6ICdhdXRvJztcbiAgfVxuXG4gIEBPdXRwdXQoKSB0aHVtYkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxHYWxsZXJ5SXRlbUV2ZW50PigpO1xuICBAT3V0cHV0KCkgdGh1bWJIb3ZlciA9IG5ldyBFdmVudEVtaXR0ZXI8R2FsbGVyeUl0ZW1FdmVudD4oKTtcblxuICBAVmlld0NoaWxkKCd0aHVtYnMnLCB7IHN0YXRpYzogdHJ1ZSB9KSB0aHVtYkxpc3RSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICBAVmlld0NoaWxkcmVuKCd0aHVtYicpIHRodW1ic1JlZjogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PjtcblxuICBpc1ZpZGVvID0gaXNWaWRlbztcblxuICBfc2hvd1N0YXJ0QXJyb3cgPSBmYWxzZTtcbiAgX3Nob3dFbmRBcnJvdyA9IGZhbHNlO1xuICBfdmVydGljYWw6IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuICBwcml2YXRlIF9hcnJvd09ic2VydmVyOiBJbnRlcnNlY3Rpb25PYnNlcnZlcjtcbiAgcHJpdmF0ZSBfc2Nyb2xsQmVoYXZpb3I6IFNjcm9sbEJlaGF2aW9yO1xuICBwcml2YXRlIF9zY3JvbGxJZDogbnVtYmVyO1xuICBwcml2YXRlIF9zbW9vdGhTY3JvbGxBbGxvd2VkID0gZmFsc2U7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBjc3NDbGFzcygpIHtcbiAgICByZXR1cm4gYGRvZS10aHVtYnMtLSR7dGhpcy5vcmllbnRhdGlvbn1gO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgX2hvc3RPZmZzZXRBeGlzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3ZlcnRpY2FsXG4gICAgICA/IHRoaXMuX2VsUmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0XG4gICAgICA6IHRoaXMuX2VsUmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gIH1cblxuICBwcml2YXRlIGdldCBfc2Nyb2xsS2V5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3ZlcnRpY2FsID8gJ3Njcm9sbFRvcCcgOiAnc2Nyb2xsTGVmdCc7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBfZWxSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+XG4gICkge31cblxuICBuZ09uQ2hhbmdlcyh7IGFycm93cywgaXRlbXMsIG9yaWVudGF0aW9uIH06IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAob3JpZW50YXRpb24gJiYgb3JpZW50YXRpb24uY3VycmVudFZhbHVlICE9IG51bGwpIHtcbiAgICAgIGNvbnN0IG5ld09yaWVudGF0aW9uOiBPcmllbnRhdGlvbiA9IG9yaWVudGF0aW9uLmN1cnJlbnRWYWx1ZTtcbiAgICAgIHRoaXMuX3ZlcnRpY2FsID0gbmV3T3JpZW50YXRpb24gPT09ICdsZWZ0JyB8fCBuZXdPcmllbnRhdGlvbiA9PT0gJ3JpZ2h0JztcbiAgICB9XG4gICAgaWYgKGFycm93cykge1xuICAgICAgaWYgKGFycm93cy5jdXJyZW50VmFsdWUgJiYgdGhpcy5pdGVtcyAmJiB0aGlzLml0ZW1zLmxlbmd0aCkge1xuICAgICAgICB0aGlzLm9ic2VydmVBcnJvd3MoKTtcbiAgICAgIH0gZWxzZSBpZiAoIWFycm93cy5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgdGhpcy5fc2hvd1N0YXJ0QXJyb3cgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fc2hvd0VuZEFycm93ID0gZmFsc2U7XG4gICAgICAgIHRoaXMudW5vYnNlcnZlQXJyb3dzKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGl0ZW1zICYmIGl0ZW1zLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgY29uc3QgY3Vyckl0ZW1zID0gKGl0ZW1zLmN1cnJlbnRWYWx1ZSB8fCBbXSkgYXMgR2FsbGVyeUl0ZW1JbnRlcm5hbFtdO1xuICAgICAgY29uc3QgcHJldkl0ZW1zID0gKGl0ZW1zLnByZXZpb3VzVmFsdWUgfHwgW10pIGFzIEdhbGxlcnlJdGVtSW50ZXJuYWxbXTtcblxuICAgICAgaWYgKGN1cnJJdGVtcy5sZW5ndGggPT09IHByZXZJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5hcnJvd3MgJiYgY3Vyckl0ZW1zLmxlbmd0aCkge1xuICAgICAgICB0aGlzLm9ic2VydmVBcnJvd3MoKTtcbiAgICAgIH1cbiAgICAgIGlmICghcHJldkl0ZW1zLmxlbmd0aCkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLmNlbnRlclRodW1iSWZOZWVkZWQodGhpcy5zZWxlY3RlZEluZGV4KTtcbiAgICAgICAgICB0aGlzLl9zbW9vdGhTY3JvbGxBbGxvd2VkID0gdHJ1ZTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dChudWxsKTtcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX2Fycm93T2JzZXJ2ZXIgJiYgdGhpcy5fYXJyb3dPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gIH1cblxuICBzbGlkZShkaXJlY3Rpb246IG51bWJlcikge1xuICAgIGxldCBkZWx0YTogbnVtYmVyO1xuXG4gICAgaWYgKHRoaXMuYXJyb3dTbGlkZUJ5TGVuZ3RoKSB7XG4gICAgICBkZWx0YSA9IHRoaXMuYXJyb3dTbGlkZUJ5TGVuZ3RoO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBOb3RlOiBTbGlkZSBieSB0aGUgZnVsbCBoZWlnaHQvd2lkdGggb2YgdGhlIGdhbGxlcnlcbiAgICAgIC8vIG9yIGJ5IHRoZSBvdmVyZmxvdyBvZiB0aGUgdGh1bWJzIC0gdG8gcHJldmVudCB1bm5lY2Vzc2FyeSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgY2FsbHMgd2hpbGUgdHJ5aW5nIHRvIHNjcm9sbFxuICAgICAgLy8gb3V0c2lkZSBvZiB0aGUgbWluL21heCBzY3JvbGwgb2YgdGhlIHRodW1ic1xuICAgICAgY29uc3QgdGh1bWJMaXN0ID0gdGhpcy50aHVtYkxpc3RSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICAgIGNvbnN0IHRodW1iTGlzdFNjcm9sbEF4aXMgPSB0aGlzLl92ZXJ0aWNhbFxuICAgICAgICA/IHRodW1iTGlzdC5zY3JvbGxIZWlnaHRcbiAgICAgICAgOiB0aHVtYkxpc3Quc2Nyb2xsV2lkdGg7XG4gICAgICBjb25zdCB0aHVtYkxpc3RPZmZzZXRBeGlzID0gdGhpcy5fdmVydGljYWxcbiAgICAgICAgPyB0aHVtYkxpc3Qub2Zmc2V0SGVpZ2h0XG4gICAgICAgIDogdGh1bWJMaXN0Lm9mZnNldFdpZHRoO1xuXG4gICAgICBkZWx0YSA9IE1hdGgubWluKFxuICAgICAgICB0aHVtYkxpc3RPZmZzZXRBeGlzLFxuICAgICAgICB0aHVtYkxpc3RTY3JvbGxBeGlzIC0gdGh1bWJMaXN0T2Zmc2V0QXhpc1xuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5zY3JvbGwoZGVsdGEgKiBkaXJlY3Rpb24pO1xuICB9XG5cbiAgY2VudGVyVGh1bWJJZk5lZWRlZChpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKCF0aGlzLml0ZW1zIHx8IHRoaXMuaXRlbXMubGVuZ3RoIDw9IDEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBuZXh0SXRlbVJlZiA9IHRoaXMudGh1bWJzUmVmLnRvQXJyYXkoKVtpbmRleF07XG5cbiAgICBpZiAoIW5leHRJdGVtUmVmKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbmV4dEl0ZW1FbCA9IG5leHRJdGVtUmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3QgeyBvZmZzZXRMZWZ0LCBvZmZzZXRUb3AsIG9mZnNldFdpZHRoLCBvZmZzZXRIZWlnaHQgfSA9IG5leHRJdGVtRWw7XG5cbiAgICBjb25zdCBpdGVtT2Zmc2V0ID0gdGhpcy5fdmVydGljYWwgPyBvZmZzZXRUb3AgOiBvZmZzZXRMZWZ0O1xuICAgIGNvbnN0IGl0ZW1PZmZzZXRBeGlzID0gdGhpcy5fdmVydGljYWwgPyBvZmZzZXRIZWlnaHQgOiBvZmZzZXRXaWR0aDtcblxuICAgIGNvbnN0IGhvc3RTY3JvbGxBeGlzID0gdGhpcy5faG9zdE9mZnNldEF4aXM7XG4gICAgY29uc3QgdGh1bWJMaXN0U2Nyb2xsID0gdGhpcy50aHVtYkxpc3RSZWYubmF0aXZlRWxlbWVudFt0aGlzLl9zY3JvbGxLZXldO1xuXG4gICAgY29uc3QgbmV4dFNjcm9sbERlbHRhID1cbiAgICAgIGl0ZW1PZmZzZXQgKyBpdGVtT2Zmc2V0QXhpcyAvIDIgLSBob3N0U2Nyb2xsQXhpcyAvIDIgLSB0aHVtYkxpc3RTY3JvbGw7XG5cbiAgICBpZiAoXG4gICAgICB0aHVtYkxpc3RTY3JvbGwgKyBob3N0U2Nyb2xsQXhpcyA8IGl0ZW1PZmZzZXQgKyBpdGVtT2Zmc2V0QXhpcyB8fFxuICAgICAgdGh1bWJMaXN0U2Nyb2xsID4gaXRlbU9mZnNldFxuICAgICkge1xuICAgICAgdGhpcy5zY3JvbGwobmV4dFNjcm9sbERlbHRhKTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3QoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IGluZGV4O1xuICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcblxuICAgIGlmICh0aGlzLmF1dG9TY3JvbGwpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jZW50ZXJUaHVtYklmTmVlZGVkKGluZGV4KSk7XG4gICAgfVxuICB9XG5cbiAgX2VtaXRFdmVudChcbiAgICBpbmRleDogbnVtYmVyLFxuICAgIGl0ZW06IEdhbGxlcnlJdGVtSW50ZXJuYWwsXG4gICAgZXZlbnQ6IEV2ZW50LFxuICAgIGVtaXR0ZXI6IEV2ZW50RW1pdHRlcjxHYWxsZXJ5SXRlbUV2ZW50PlxuICApIHtcbiAgICBlbWl0dGVyLmVtaXQoe1xuICAgICAgaW5kZXgsXG4gICAgICBpdGVtLFxuICAgICAgZXZlbnQsXG4gICAgfSk7XG4gIH1cblxuICBfb25Mb2FkQ2hhbmdlKGl0ZW06IEdhbGxlcnlJdGVtSW50ZXJuYWwsIHN1Y2Nlc3M6IGJvb2xlYW4pIHtcbiAgICBpdGVtLl90aHVtYkZhaWxlZCA9ICFzdWNjZXNzO1xuICB9XG5cbiAgcHJpdmF0ZSBzY3JvbGwodG90YWxTY3JvbGxEZWx0YTogbnVtYmVyKSB7XG4gICAgaWYgKCFpc0Jyb3dzZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKFNVUFBPUlQuc2Nyb2xsQmVoYXZpb3IgfHwgdGhpcy5zY3JvbGxCZWhhdmlvciA9PT0gJ2F1dG8nKSB7XG4gICAgICB0aGlzLnRodW1iTGlzdFJlZi5uYXRpdmVFbGVtZW50W3RoaXMuX3Njcm9sbEtleV0gKz0gdG90YWxTY3JvbGxEZWx0YTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3Njcm9sbElkICE9IG51bGwpIHtcbiAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuX3Njcm9sbElkKTtcbiAgICB9XG5cbiAgICBjb25zdCB0b3RhbERpc3RhbmNlID0gTWF0aC5hYnModG90YWxTY3JvbGxEZWx0YSk7XG4gICAgY29uc3Qgc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcbiAgICBjb25zdCBiYXNlQXJyb3dTbGlkZVRpbWUgPSAyMDA7XG4gICAgbGV0IHRvdGFsVGltZSA9IChNYXRoLmxvZzEwKHRvdGFsRGlzdGFuY2UpIC0gMS4xKSAqIGJhc2VBcnJvd1NsaWRlVGltZTtcbiAgICBpZiAodG90YWxUaW1lIDwgMCkge1xuICAgICAgdG90YWxUaW1lID0gYmFzZUFycm93U2xpZGVUaW1lO1xuICAgIH1cbiAgICBsZXQgY3VycmVudFNjcm9sbCA9IDA7XG5cbiAgICAvLyBFbXVsYXRpbmcgbmF0aXZlIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoXG4gICAgLy8gTk9URTogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgb24gcGVyIGZyYW1lIGJhc2lzIHJlY3Vyc2l2ZWx5IHRvIGNyZWF0ZSBzbW9vdGggYW5pbWF0aW9uLlxuICAgIC8vIFRoZSBzY3JvbGwgdmFsdWUgaXMgdXBkYXRlZCBwcm9wb3J0aW9uYWxseSB0byB0aGUgdGltZSBlbGFwc2VkIHNpbmNlIHRoZSBhbmltYXRpb24ncyBzdGFydC5cbiAgICAvLyBUaGUgcGVyaW9kIG9mIHJlcXVlc3RlZCBmcmFtZXMgc2hvdWxkIG1hdGNoIHRoZSBkaXNwbGF5J3MgcmVmcmVzaCByYXRlIGFzIHJlY29tbWVuZGVkIGluIFczQyBzcGVjLlxuICAgIGNvbnN0IGFuaW1hdGUgPSAoKSA9PiB7XG4gICAgICBjb25zdCBzdWdnZXN0ZWRTY3JvbGwgPSBNYXRoLmNlaWwoXG4gICAgICAgICgoRGF0ZS5ub3coKSAtIHN0YXJ0VGltZSkgLyB0b3RhbFRpbWUpICogdG90YWxEaXN0YW5jZVxuICAgICAgKTtcbiAgICAgIGxldCBmcmFtZVNjcm9sbCA9IE1hdGgubWluKFxuICAgICAgICBzdWdnZXN0ZWRTY3JvbGwgLSBjdXJyZW50U2Nyb2xsLFxuICAgICAgICB0b3RhbERpc3RhbmNlIC0gY3VycmVudFNjcm9sbFxuICAgICAgKTtcbiAgICAgIGZyYW1lU2Nyb2xsICo9IE1hdGguc2lnbih0b3RhbFNjcm9sbERlbHRhKTtcbiAgICAgIGN1cnJlbnRTY3JvbGwgPSBzdWdnZXN0ZWRTY3JvbGw7XG5cbiAgICAgIHRoaXMudGh1bWJMaXN0UmVmLm5hdGl2ZUVsZW1lbnRbdGhpcy5fc2Nyb2xsS2V5XSArPSBmcmFtZVNjcm9sbDtcblxuICAgICAgaWYgKGN1cnJlbnRTY3JvbGwgPD0gdG90YWxEaXN0YW5jZSkge1xuICAgICAgICB0aGlzLl9zY3JvbGxJZCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZShhbmltYXRlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdGhpcy5fc2Nyb2xsSWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoYW5pbWF0ZSk7XG4gIH1cblxuICBwcml2YXRlIG9uQXJyb3dzT2JzZXJ2ZWQ6IEludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2sgPSBlbnRyaWVzID0+IHtcbiAgICBjb25zdCBlbnRyeUVsMSA9IGVudHJpZXNbMF0udGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IGZpcnN0VGh1bWJFbnRyeSA9XG4gICAgICBlbnRyeUVsMSA9PT0gdGhpcy50aHVtYnNSZWYuZmlyc3QubmF0aXZlRWxlbWVudCA/IGVudHJpZXNbMF0gOiBlbnRyaWVzWzFdO1xuICAgIGNvbnN0IGxhc3RUaHVtYkVudHJ5ID1cbiAgICAgIGVudHJ5RWwxID09PSB0aGlzLnRodW1ic1JlZi5sYXN0Lm5hdGl2ZUVsZW1lbnQgPyBlbnRyaWVzWzBdIDogZW50cmllc1sxXTtcblxuICAgIGlmIChmaXJzdFRodW1iRW50cnkpIHtcbiAgICAgIHRoaXMuX3Nob3dTdGFydEFycm93ID0gZmlyc3RUaHVtYkVudHJ5LmludGVyc2VjdGlvblJhdGlvIDwgMTtcbiAgICB9XG4gICAgaWYgKGxhc3RUaHVtYkVudHJ5KSB7XG4gICAgICB0aGlzLl9zaG93RW5kQXJyb3cgPSBsYXN0VGh1bWJFbnRyeS5pbnRlcnNlY3Rpb25SYXRpbyA8IDE7XG4gICAgfVxuXG4gICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICB9O1xuXG4gIHByaXZhdGUgb2JzZXJ2ZUFycm93cygpIHtcbiAgICBpZiAoIXRoaXMuX2Fycm93T2JzZXJ2ZXIpIHtcbiAgICAgIHRoaXMuX2Fycm93T2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIodGhpcy5vbkFycm93c09ic2VydmVkLCB7XG4gICAgICAgIHJvb3Q6IHRoaXMudGh1bWJMaXN0UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgIHRocmVzaG9sZDogMS4wLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2Fycm93T2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgIH1cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuX2Fycm93T2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLnRodW1ic1JlZi5maXJzdC5uYXRpdmVFbGVtZW50KTtcbiAgICAgIHRoaXMuX2Fycm93T2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLnRodW1ic1JlZi5sYXN0Lm5hdGl2ZUVsZW1lbnQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1bm9ic2VydmVBcnJvd3MoKSB7XG4gICAgdGhpcy5fYXJyb3dPYnNlcnZlciAmJiB0aGlzLl9hcnJvd09ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgfVxufVxuIl19 |
@@ -8,3 +8,2 @@ /** | ||
import { NgModule } from '@angular/core'; | ||
import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; | ||
import { CounterComponent } from './components/counter/counter.component'; | ||
@@ -31,3 +30,3 @@ import { GalleryComponent } from './components/gallery/gallery.component'; | ||
], | ||
imports: [CommonModule, BrowserAnimationsModule], | ||
imports: [CommonModule], | ||
exports: [GalleryComponent, MediaDirective], | ||
@@ -39,2 +38,2 @@ },] } | ||
export { GalleryModule }; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FsbGVyeS5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtZG9lLWdhbGxlcnkvIiwic291cmNlcyI6WyJsaWIvZ2FsbGVyeS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUUvRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUN6RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFOUQ7SUFBQTtJQWE0QixDQUFDOztnQkFiNUIsUUFBUSxTQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixvQkFBb0I7d0JBQ3BCLGdCQUFnQjt3QkFDaEIsUUFBUTt3QkFDUixjQUFjO3FCQUNmO29CQUNELE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSx1QkFBdUIsQ0FBQztvQkFDaEQsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsY0FBYyxDQUFDO2lCQUM1Qzs7SUFDMkIsb0JBQUM7Q0FBQSxBQWI3QixJQWE2QjtTQUFoQixhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCcm93c2VyQW5pbWF0aW9uc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXIvYW5pbWF0aW9ucyc7XG5cbmltcG9ydCB7IENvdW50ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY291bnRlci9jb3VudGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHYWxsZXJ5Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2dhbGxlcnkvZ2FsbGVyeS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2hldnJvbkljb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaWNvbnMvY2hldnJvbi9jaGV2cm9uLWljb24uY29tcG9uZW50JztcbmltcG9ydCB7IFRodW1ic0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90aHVtYnMvdGh1bWJzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBWaWV3ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdmlld2VyL3ZpZXdlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2FmZVBpcGUgfSBmcm9tICcuL3BpcGVzL3NhZmUucGlwZSc7XG5pbXBvcnQgeyBNZWRpYURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9tZWRpYS5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBHYWxsZXJ5Q29tcG9uZW50LFxuICAgIFRodW1ic0NvbXBvbmVudCxcbiAgICBWaWV3ZXJDb21wb25lbnQsXG4gICAgQ2hldnJvbkljb25Db21wb25lbnQsXG4gICAgQ291bnRlckNvbXBvbmVudCxcbiAgICBTYWZlUGlwZSxcbiAgICBNZWRpYURpcmVjdGl2ZSxcbiAgXSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGVdLFxuICBleHBvcnRzOiBbR2FsbGVyeUNvbXBvbmVudCwgTWVkaWFEaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBHYWxsZXJ5TW9kdWxlIHt9XG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FsbGVyeS5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtZG9lLWdhbGxlcnkvIiwic291cmNlcyI6WyJsaWIvZ2FsbGVyeS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUN6RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFOUQ7SUFBQTtJQWE0QixDQUFDOztnQkFiNUIsUUFBUSxTQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixvQkFBb0I7d0JBQ3BCLGdCQUFnQjt3QkFDaEIsUUFBUTt3QkFDUixjQUFjO3FCQUNmO29CQUNELE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsY0FBYyxDQUFDO2lCQUM1Qzs7SUFDMkIsb0JBQUM7Q0FBQSxBQWI3QixJQWE2QjtTQUFoQixhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENvdW50ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY291bnRlci9jb3VudGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHYWxsZXJ5Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2dhbGxlcnkvZ2FsbGVyeS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2hldnJvbkljb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaWNvbnMvY2hldnJvbi9jaGV2cm9uLWljb24uY29tcG9uZW50JztcbmltcG9ydCB7IFRodW1ic0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90aHVtYnMvdGh1bWJzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBWaWV3ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdmlld2VyL3ZpZXdlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2FmZVBpcGUgfSBmcm9tICcuL3BpcGVzL3NhZmUucGlwZSc7XG5pbXBvcnQgeyBNZWRpYURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9tZWRpYS5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBHYWxsZXJ5Q29tcG9uZW50LFxuICAgIFRodW1ic0NvbXBvbmVudCxcbiAgICBWaWV3ZXJDb21wb25lbnQsXG4gICAgQ2hldnJvbkljb25Db21wb25lbnQsXG4gICAgQ291bnRlckNvbXBvbmVudCxcbiAgICBTYWZlUGlwZSxcbiAgICBNZWRpYURpcmVjdGl2ZSxcbiAgXSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIGV4cG9ydHM6IFtHYWxsZXJ5Q29tcG9uZW50LCBNZWRpYURpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIEdhbGxlcnlNb2R1bGUge31cbiJdfQ== |
@@ -1,1 +0,1 @@ | ||
{"__symbolic":"module","version":4,"exports":[{"from":"./lib/support"},{"from":"./lib/object-fit"},{"from":"./lib/loading"},{"from":"./lib/orientation"},{"from":"./lib/template-contexts"},{"export":[{"name":"GalleryItem","as":"GalleryItem"},{"name":"GalleryImage","as":"GalleryImage"},{"name":"GalleryVideo","as":"GalleryVideo"},{"name":"GalleryItemEvent","as":"GalleryItemEvent"}],"from":"./lib/gallery-item"},{"export":[{"name":"Aria","as":"Aria"}],"from":"./lib/aria"}],"metadata":{"GalleryComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":30,"character":1},"arguments":[{"selector":"doe-gallery","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":34,"character":19},"member":"OnPush"},"template":"<doe-thumbs\n *ngIf=\"thumbs\"\n [items]=\"items\"\n [selectedIndex]=\"selectedIndex\"\n [orientation]=\"thumbsOrientation\"\n [arrows]=\"thumbsArrows\"\n [arrowSlideByLength]=\"thumbsArrowSlideByLength\"\n [autoScroll]=\"thumbsAutoScroll\"\n [scrollBehavior]=\"thumbsScrollBehavior\"\n [thumbTemplate]=\"thumbTemplate\"\n [arrowTemplate]=\"thumbsArrowTemplate\"\n [errorTemplate]=\"thumbErrorTemplate\"\n [aria]=\"aria\"\n (thumbClick)=\"_onThumbClick($event)\"\n (thumbHover)=\"thumbHover.emit($event)\"\n></doe-thumbs>\n\n<doe-viewer\n tabindex=\"0\"\n [items]=\"items\"\n [selectedIndex]=\"selectedIndex\"\n [arrows]=\"arrows\"\n [descriptions]=\"descriptions\"\n [errorText]=\"errorText\"\n [mouseGestures]=\"mouseGestures\"\n [touchGestures]=\"touchGestures\"\n [counter]=\"counter\"\n [counterOrientation]=\"counterOrientation\"\n [itemWidth]=\"itemWidth\"\n [objectFit]=\"objectFit\"\n [loading]=\"loading\"\n [itemTemplate]=\"itemTemplate\"\n [loadingTemplate]=\"loadingTemplate || defaultLoadingTemplate\"\n [errorTemplate]=\"errorTemplate\"\n [loop]=\"loop\"\n [thumbsOrientation]=\"_thumbsOrientationFlag\"\n [arrowTemplate]=\"arrowTemplate\"\n [aria]=\"aria\"\n [touched]=\"_touched\"\n (imageClick)=\"imageClick.emit($event)\"\n (descriptionClick)=\"descriptionClick.emit($event)\"\n (selection)=\"_selectInternal($event); _thumbsRef?.select($event)\"\n></doe-viewer>\n\n<ng-template #defaultLoadingTemplate>\n <div class=\"doe-loading\">\n <div></div>\n <div></div>\n <div></div>\n </div>\n</ng-template>\n","styles":[":host{display:flex;height:600px;width:500px;outline:0;position:relative}:host.doe-gallery--column{flex-direction:column}:host::ng-deep{font-family:Helvetica Neue,Helvetica,Arial,sans-serif}:host::ng-deep button{border:none}:host::ng-deep ul{list-style-type:none;margin:0;padding:0}.doe-loading{display:flex;justify-content:center;align-items:center;position:absolute;width:100%;height:100%;left:0;top:0;background-color:transparent;z-index:10}.doe-loading>div{height:13px;width:13px;background-color:#4a4a4a;-webkit-animation:2s infinite bounce;animation:2s infinite bounce;border-radius:50%;box-shadow:0 0 0 1px #f5f5f5,0 0 1px 1px #f5f5f5}.doe-loading>div+div{margin-left:10px;-webkit-animation-delay:125ms;animation-delay:125ms}.doe-loading>div+div+div{-webkit-animation-delay:.3s;animation-delay:.3s}@-webkit-keyframes bounce{20%{transform:translateY(-20px)}50%{transform:translateY(0)}}@keyframes bounce{20%{transform:translateY(-20px)}50%{transform:translateY(0)}}"]}]}],"members":{"items":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":37,"character":3}}]}],"selectedIndex":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":38,"character":3}}]}],"aria":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":3}}]}],"arrows":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":3}}]}],"descriptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":41,"character":3}}]}],"errorText":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":42,"character":3}}]}],"mouseGestures":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":43,"character":3}}]}],"touchGestures":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":44,"character":3}}]}],"counter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":45,"character":3}}]}],"counterOrientation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":46,"character":3}}]}],"itemWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":47,"character":3}}]}],"loading":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":48,"character":3}}]}],"loop":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":49,"character":3}}]}],"objectFit":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":50,"character":3}}]}],"itemTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":51,"character":3}}]}],"loadingTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":52,"character":3}}]}],"errorTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":53,"character":3}}]}],"arrowTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":54,"character":3}}]}],"thumbs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":55,"character":3}}]}],"thumbsAutoScroll":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":56,"character":3}}]}],"thumbsOrientation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":57,"character":3}}]}],"thumbsArrows":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":58,"character":3}}]}],"thumbsArrowSlideByLength":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":59,"character":3}}]}],"thumbsScrollBehavior":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":60,"character":3}}]}],"thumbTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":61,"character":3}}]}],"thumbsArrowTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":62,"character":3}}]}],"thumbErrorTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":63,"character":3}}]}],"imageClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":65,"character":3}}]}],"thumbClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":66,"character":3}}]}],"thumbHover":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":67,"character":3}}]}],"descriptionClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":68,"character":3}}]}],"selection":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":69,"character":3}}]}],"_viewerRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":71,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵa"},{"static":false}]}]}],"_thumbsRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":72,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵb"},{"static":false}]}]}],"_viewerElRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":73,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵa"},{"static":false,"read":{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":73,"character":53}}]}]}],"_tabindex":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":76,"character":3},"arguments":["tabindex"]}]}],"ariaLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":81,"character":3},"arguments":["attr.aria-label"]}]}],"_galleryColumn":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":86,"character":3},"arguments":["class.doe-gallery--column"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":104,"character":16},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":105,"character":32,"context":{"typeName":"HTMLElement"},"module":"./lib/components/gallery/gallery.component"}]}]}],"focus":[{"__symbolic":"method"}],"next":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":127,"character":3},"arguments":["keydown.arrowright"]}]}],"prev":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":132,"character":3},"arguments":["keydown.arrowleft"]}]}],"select":[{"__symbolic":"method"}],"slideThumbs":[{"__symbolic":"method"}],"_onThumbClick":[{"__symbolic":"method"}],"_selectInternal":[{"__symbolic":"method"}]}},"GalleryModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":12,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"GalleryComponent"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","name":"ɵf"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":22,"character":12},{"__symbolic":"reference","module":"@angular/platform-browser/animations","name":"BrowserAnimationsModule","line":22,"character":26}],"exports":[{"__symbolic":"reference","name":"GalleryComponent"},{"__symbolic":"reference","name":"ɵf"}]}]}],"members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":35,"character":1},"arguments":[{"selector":"doe-viewer","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":39,"character":19},"member":"OnPush"},"animations":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"trigger","line":41,"character":4},"arguments":["remove",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":42,"character":6},"arguments":[":leave",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":42,"character":27},"arguments":["0ms 100ms"]}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":43,"character":6},"arguments":[":enter",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":44,"character":8},"arguments":[{"opacity":0}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":45,"character":8},"arguments":["400ms",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":45,"character":25},"arguments":[{"opacity":1}]}]}]]}]]}],"template":"<div\n *ngIf=\"showPrevArrow\"\n class=\"doe-viewer-arrow doe-viewer-arrow-prev\"\n (click)=\"selectByDelta(-1)\"\n>\n <doe-chevron-icon\n *ngIf=\"!arrowTemplate; else arrowTemplate\"\n ></doe-chevron-icon>\n</div>\n\n<ul #itemList [attr.aria-label]=\"aria?.viewerLabel\">\n <li *ngIf=\"!_displayedItems?.length\" class=\"doe-viewer-initial-item\"></li>\n <li\n #itemsRef\n *ngFor=\"let item of _displayedItems; let i = index\"\n [class.doe-viewer-item--selected]=\"i === selectedIndex\"\n tabindex=\"0\"\n [attr.aria-label]=\"item.alt\"\n [attr.aria-describedby]=\"'doe-viewer-aria-description-' + i\"\n (click)=\"onImageClick(item, $event)\"\n (doe-media-load)=\"onItemLoaded(item, $event.detail)\"\n (doe-media-error)=\"onItemErrored(item, $event.detail)\"\n (keydown.Tab)=\"onTab(i + 1)\"\n (keydown.shift.Tab)=\"onTab(i - 1)\"\n >\n <ng-container *ngIf=\"!lazyLoading || isInScrollportProximity(i)\">\n <ng-container *ngIf=\"!itemTemplate; else customTemplate\">\n <picture *ngIf=\"!isVideo(item)\" @remove>\n <source\n *ngFor=\"let source of item.pictureSources\"\n [srcset]=\"source.srcset\"\n [attr.media]=\"source.media\"\n [attr.sizes]=\"source.sizes\"\n [attr.type]=\"source.type\"\n />\n <img\n [src]=\"item.src\"\n [alt]=\"item.alt\"\n [class.doe-viewer-media-loading]=\"!item._loaded\"\n [style.objectFit]=\"objectFit\"\n (load)=\"onItemLoaded(item, $event)\"\n (error)=\"onItemErrored(item, $event)\"\n />\n </picture>\n <!-- Using loadedmetadata instead of loadeddata because iOS loads data lazily upon user's interaction -->\n <video\n @remove\n *ngIf=\"!isYoutube(item) && isVideo(item)\"\n [src]=\"item.src\"\n [poster]=\"item.thumbSrc || ''\"\n [class.doe-viewer-media-loading]=\"!item._loaded\"\n [style.objectFit]=\"objectFit\"\n controls\n playsinline\n (loadedmetadata)=\"onItemLoaded(item, $event)\"\n (error)=\"onItemErrored(item, $event)\"\n ></video>\n\n <iframe\n @remove\n *ngIf=\"isYoutube(item)\"\n [src]=\"item.src | safe\"\n frameborder=\"0\"\n allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\"\n allowfullscreen\n (load)=\"onItemLoaded(item, $event)\"\n ></iframe>\n </ng-container>\n\n <ng-container *ngIf=\"!item._loaded && !item._failed\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"item._failed\">\n <div\n *ngIf=\"!errorTemplate; else errorTemplate\"\n class=\"doe-viewer-error\"\n >\n <div class=\"doe-viewer-error-icon\">⚠</div>\n <p class=\"doe-viewer-error-text\">\n {{ errorText || 'Loading of this media failed' }}\n </p>\n </div>\n </ng-container>\n\n <span\n [id]=\"'doe-viewer-aria-description-' + i\"\n class=\"doe-viewer-aria-description\"\n [innerHTML]=\"item.description\"\n aria-hidden=\"true\"\n ></span>\n </ng-container>\n\n <ng-template #customTemplate>\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate;\n context: {\n index: items?.indexOf(item),\n selectedIndex: selectedIndex,\n item: item,\n video: isVideo(item)\n }\n \"\n ></ng-container>\n </ng-template>\n </li>\n</ul>\n\n<ng-container *ngIf=\"items?.length <= 0\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"></ng-container>\n</ng-container>\n\n<div\n *ngIf=\"showNextArrow\"\n class=\"doe-viewer-arrow doe-viewer-arrow-next\"\n (click)=\"selectByDelta(1)\"\n>\n <doe-chevron-icon\n *ngIf=\"!arrowTemplate; else arrowTemplate\"\n ></doe-chevron-icon>\n</div>\n\n<doe-counter\n *ngIf=\"counter && items?.length\"\n [itemQuantity]=\"items?.length\"\n [selectedIndex]=\"selectedIndex\"\n [orientation]=\"counterOrientation\"\n></doe-counter>\n\n<div\n *ngIf=\"descriptions && items\"\n class=\"doe-viewer-description\"\n [class.doe-viewer-description--above-counter]=\"\n counter && counterOrientation === 'bottom'\n \"\n aria-hidden=\"true\"\n>\n <div\n *ngIf=\"items[selectedIndex]?.description as description\"\n class=\"doe-viewer-description-inner\"\n [innerHTML]=\"description\"\n (click)=\"descriptionClick.emit($event)\"\n ></div>\n</div>\n","styles":[":host{display:block;position:relative;width:100%;height:100%;overflow:hidden;outline:0;background-color:#ececec;z-index:1}ul{--item-width:calc(100% - 0.01px);display:flex;width:100%;height:100%;transition:transform .4s;scrollbar-width:none;-ms-overflow-style:none}ul::-webkit-scrollbar{width:0;height:0}li{display:flex;align-items:center;flex:none;position:relative;width:var(--item-width);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;outline:0}picture{width:100%;height:100%}iframe,img,video{width:100%;height:100%;background-color:transparent;transition:opacity .3s ease-out;outline:0}iframe[src=\"\"],img[src=\"\"],video[src=\"\"]{opacity:0}iframe.doe-viewer-media-loading,img.doe-viewer-media-loading,video.doe-viewer-media-loading{opacity:.5}img{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.doe-viewer-description{position:absolute;bottom:5px;width:100%;display:flex;justify-content:center}.doe-viewer-description--above-counter{bottom:35px}.doe-viewer-description-inner{display:inline-block;background:#000;opacity:.8;color:#fff;padding:6px 15px;max-width:80%;font-size:.95em;text-align:center}.doe-viewer-aria-description{opacity:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:absolute;bottom:0;left:50%;transform:translateX(-50%)}.doe-viewer-error{position:absolute;left:0;top:0;width:100%;height:100%;display:flex;flex-flow:column nowrap;justify-content:center;align-items:center;background-color:#f5f5f5;color:#7d7d7d}.doe-viewer-error-icon{font-size:40px}.doe-viewer-error-text{margin-top:10px;letter-spacing:.01em}.doe-viewer-arrow{display:flex;position:absolute;top:50%;transform:translateY(-50%);z-index:100;cursor:pointer}.doe-viewer-arrow-prev{left:0;transform:rotate(180deg) translateY(50%)}.doe-viewer-arrow-next{right:0}.doe-viewer-arrow doe-chevron-icon{margin:15px 6px;opacity:.7}@media (hover:hover) and (pointer:fine){.doe-viewer-arrow doe-chevron-icon:hover{opacity:1}}.doe-viewer-arrow doe-chevron-icon::ng-deep svg{height:32px;width:32px}"]}]}],"members":{"items":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":51,"character":3}}]}],"arrows":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":52,"character":3}}]}],"selectedIndex":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":53,"character":3}}]}],"descriptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":54,"character":3}}]}],"errorText":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":55,"character":3}}]}],"mouseGestures":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":56,"character":3}}]}],"touchGestures":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":57,"character":3}}]}],"counter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":58,"character":3}}]}],"counterOrientation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":59,"character":3}}]}],"loading":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":60,"character":3}}]}],"objectFit":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":61,"character":3}}]}],"itemTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":62,"character":3}}]}],"loadingTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":63,"character":3}}]}],"errorTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":64,"character":3}}]}],"arrowTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":65,"character":3}}]}],"thumbsOrientation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":66,"character":3}}]}],"aria":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":67,"character":3}}]}],"loop":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":68,"character":3}}]}],"itemWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":76,"character":3}}]}],"touched":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":79,"character":3}}]}],"imageClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":81,"character":3}}]}],"descriptionClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":82,"character":3}}]}],"selection":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":83,"character":3}}]}],"itemListRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":85,"character":3},"arguments":["itemList",{"static":true}]}]}],"itemsRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChildren","line":86,"character":3},"arguments":["itemsRef"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":125,"character":33,"context":{"typeName":"HTMLElement"},"module":"./lib/components/viewer/viewer.component"}]},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":126,"character":17},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":127,"character":19}]}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"isInScrollportProximity":[{"__symbolic":"method"}],"isYoutube":[{"__symbolic":"method"}],"selectByDelta":[{"__symbolic":"method"}],"select":[{"__symbolic":"method"}],"onImageClick":[{"__symbolic":"method"}],"onTab":[{"__symbolic":"method"}],"onItemLoaded":[{"__symbolic":"method"}],"onItemErrored":[{"__symbolic":"method"}],"center":[{"__symbolic":"method"}],"getFringeCount":[{"__symbolic":"method"}],"readDimensions":[{"__symbolic":"method"}],"selectBySwipeStats":[{"__symbolic":"method"}],"shift":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":32,"character":1},"arguments":[{"selector":"doe-thumbs","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":36,"character":19},"member":"OnPush"},"template":"<div\n *ngIf=\"_showStartArrow\"\n class=\"doe-thumbs-arrow doe-thumbs-arrow-prev\"\n (click)=\"slide(-1)\"\n>\n <div *ngIf=\"!arrowTemplate; else arrowTemplate\">\n <doe-chevron-icon></doe-chevron-icon>\n </div>\n</div>\n\n<ul\n #thumbs\n [style.scrollBehavior]=\"scrollBehavior\"\n tabindex=\"0\"\n [attr.aria-label]=\"aria?.thumbnailsLabel\"\n>\n <li *ngIf=\"!items || !items.length\" class=\"doe-thumbs-initial-item\"></li>\n <li\n #thumb\n *ngFor=\"let item of items; let i = index\"\n [class.doe-thumbs-item--selected]=\"i === selectedIndex\"\n aria-hidden=\"true\"\n (click)=\"_emitEvent(i, item, $event, thumbClick)\"\n (mouseenter)=\"_emitEvent(i, item, $event, thumbHover)\"\n >\n <ng-container *ngIf=\"!thumbTemplate; else customThumbTemplate\">\n <img\n [src]=\"item.thumbSrc || ''\"\n [alt]=\"item.alt\"\n (load)=\"_onLoadChange(item, true)\"\n (error)=\"_onLoadChange(item, false)\"\n />\n\n <ng-container *ngIf=\"item._thumbFailed\">\n <div\n *ngIf=\"!errorTemplate; else errorTemplate\"\n class=\"doe-thumbs-error\"\n >\n <div\n class=\"doe-thumbs-error-icon\"\n [class.doe-thumbs-error-icon--video]=\"isVideo(item)\"\n ></div>\n </div>\n </ng-container>\n </ng-container>\n\n <ng-template #customThumbTemplate>\n <ng-container\n *ngTemplateOutlet=\"\n thumbTemplate;\n context: { index: i, selectedIndex: selectedIndex, item: item }\n \"\n ></ng-container>\n </ng-template>\n </li>\n</ul>\n\n<div\n *ngIf=\"_showEndArrow\"\n class=\"doe-thumbs-arrow doe-thumbs-arrow-next\"\n (click)=\"slide(1)\"\n>\n <div *ngIf=\"!arrowTemplate; else arrowTemplate\">\n <doe-chevron-icon></doe-chevron-icon>\n </div>\n</div>\n","styles":[":host{flex:1 0 auto;position:relative;background-color:#f3f3f3}:host.doe-thumbs--bottom,:host.doe-thumbs--top{width:100%}:host.doe-thumbs--bottom ul,:host.doe-thumbs--top ul{width:100%;display:flex;overflow-x:scroll;overflow-y:hidden}:host.doe-thumbs--bottom li,:host.doe-thumbs--top li{flex:none}:host.doe-thumbs--bottom li:not(:first-child),:host.doe-thumbs--top li:not(:first-child){border-left:0}:host.doe-thumbs--bottom li:first-child,:host.doe-thumbs--top li:first-child{margin-left:auto}:host.doe-thumbs--bottom li:last-child,:host.doe-thumbs--top li:last-child{margin-right:auto}:host.doe-thumbs--bottom .doe-thumbs-arrow,:host.doe-thumbs--top .doe-thumbs-arrow{top:0;height:100%}:host.doe-thumbs--bottom .doe-thumbs-arrow>div,:host.doe-thumbs--top .doe-thumbs-arrow>div{width:30px;height:100%}:host.doe-thumbs--bottom .doe-thumbs-arrow-prev,:host.doe-thumbs--top .doe-thumbs-arrow-prev{left:0}:host.doe-thumbs--bottom .doe-thumbs-arrow-next,:host.doe-thumbs--top .doe-thumbs-arrow-next{right:0}:host.doe-thumbs--bottom .doe-thumbs-error,:host.doe-thumbs--top .doe-thumbs-error{border-right:1px solid #cecece}:host.doe-thumbs--left,:host.doe-thumbs--right{height:100%}:host.doe-thumbs--left ul,:host.doe-thumbs--right ul{height:100%;overflow-y:scroll;overflow-x:hidden}:host.doe-thumbs--left li,:host.doe-thumbs--right li{border-top:0}:host.doe-thumbs--left .doe-thumbs-arrow,:host.doe-thumbs--right .doe-thumbs-arrow{width:100%}:host.doe-thumbs--left .doe-thumbs-arrow>div,:host.doe-thumbs--right .doe-thumbs-arrow>div{width:100%;height:30px}:host.doe-thumbs--left .doe-thumbs-arrow doe-chevron-icon,:host.doe-thumbs--right .doe-thumbs-arrow doe-chevron-icon{transform:rotate(90deg)}:host.doe-thumbs--left .doe-thumbs-arrow-prev,:host.doe-thumbs--right .doe-thumbs-arrow-prev{top:0}:host.doe-thumbs--left .doe-thumbs-arrow-next,:host.doe-thumbs--right .doe-thumbs-arrow-next{bottom:0}:host.doe-thumbs--left .doe-thumbs-error,:host.doe-thumbs--right .doe-thumbs-error{border-bottom:1px solid #cecece}:host.doe-thumbs--bottom,:host.doe-thumbs--right{order:1}ul{outline:0;scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;transform:translate3d(0,0,0)}ul::-webkit-scrollbar{width:0;height:0}li{box-sizing:border-box;width:120px;height:80px;position:relative;cursor:pointer}li.doe-thumbs-initial-item{visibility:hidden}li.doe-thumbs-item--selected::after{content:\"\";display:block;position:absolute;left:0;bottom:0;width:100%;height:100%;border:10px solid #ffffffcf;box-sizing:border-box}img{width:100%;height:100%;background-repeat:no-repeat;background-position:center;-o-object-fit:cover;object-fit:cover}.doe-thumbs-error{position:absolute;left:0;top:0;width:100%;height:100%;display:flex;flex-flow:column nowrap;justify-content:center;align-items:center;background:#e8e8e8;box-sizing:border-box}.doe-thumbs-error-icon:not(.doe-thumbs-error-icon--video){position:relative;border-left:16px solid transparent;border-right:16px solid transparent;border-bottom:28px solid #a5a5a5;margin-left:-8px}.doe-thumbs-error-icon:not(.doe-thumbs-error-icon--video)::after,.doe-thumbs-error-icon:not(.doe-thumbs-error-icon--video)::before{content:\"\";position:absolute}.doe-thumbs-error-icon:not(.doe-thumbs-error-icon--video)::before{height:10px;width:10px;background-color:#a5a5a5;border-radius:100%;left:14px}.doe-thumbs-error-icon:not(.doe-thumbs-error-icon--video)::after{border-left:14px solid transparent;border-right:14px solid transparent;border-bottom:17px solid #a5a5a5;top:11px}.doe-thumbs-error-icon--video{border-top:16px solid transparent;border-bottom:16px solid transparent;border-left:28px solid #a5a5a5;margin-left:9px}.doe-thumbs-arrow{position:absolute;cursor:pointer;z-index:10}.doe-thumbs-arrow-prev{transform:rotate(180deg)}.doe-thumbs-arrow>div{display:flex;justify-content:center;align-items:center;background:rgba(0,0,0,.5);padding:0;opacity:.7}@media (hover:hover) and (pointer:fine){.doe-thumbs-arrow>div:hover{opacity:1}}"]}]}],"members":{"items":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":3}}]}],"selectedIndex":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":3}}]}],"aria":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":41,"character":3}}]}],"orientation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":42,"character":3}}]}],"arrows":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":43,"character":3}}]}],"arrowSlideByLength":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":44,"character":3}}]}],"autoScroll":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":45,"character":3}}]}],"thumbTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":46,"character":3}}]}],"arrowTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":47,"character":3}}]}],"errorTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":48,"character":3}}]}],"scrollBehavior":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":49,"character":3}}]}],"thumbClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":57,"character":3}}]}],"thumbHover":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":58,"character":3}}]}],"thumbListRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":60,"character":3},"arguments":["thumbs",{"static":true}]}]}],"thumbsRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChildren","line":61,"character":3},"arguments":["thumb"]}]}],"cssClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":75,"character":3},"arguments":["class"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":91,"character":17},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":92,"character":31,"context":{"typeName":"HTMLElement"},"module":"./lib/components/thumbs/thumbs.component"}]}]}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"slide":[{"__symbolic":"method"}],"centerThumbIfNeeded":[{"__symbolic":"method"}],"select":[{"__symbolic":"method"}],"_emitEvent":[{"__symbolic":"method"}],"_onLoadChange":[{"__symbolic":"method"}],"scroll":[{"__symbolic":"method"}],"observeArrows":[{"__symbolic":"method"}],"unobserveArrows":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"doe-chevron-icon","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":6,"character":19},"member":"OnPush"},"template":"<!-- Icon made by Dave Gandy from www.flaticon.com -->\n<svg\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n x=\"0px\"\n y=\"0px\"\n viewBox=\"0 0 407.436 407.436\"\n xml:space=\"preserve\"\n>\n <polygon\n points=\"112.814,0 91.566,21.178 273.512,203.718 91.566,386.258 112.814,407.436 315.869,203.718 \"\n />\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n</svg>\n","styles":["svg{width:26px;height:26px;fill:#fff;-webkit-filter:drop-shadow(0 0 1px #000);filter:drop-shadow(0 0 1px #000);display:block}"]}]}],"members":{}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"doe-counter","template":"\n <span aria-hidden=\"true\">\n {{ selectedIndex + 1 }}<span class=\"doe-counter-delimiter\">/</span\n >{{ itemQuantity || 0 }}\n </span>\n ","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":18,"character":19},"member":"OnPush"},"styles":[":host{position:absolute;left:50%;transform:translateX(-50%);background:#000;padding:4px 7px 3px;color:#fff;opacity:.7;font-size:14px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}:host.top{top:0}:host.bottom{bottom:0}.doe-counter-delimiter{padding:0 2px}"]}]}],"members":{"itemQuantity":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3}}]}],"selectedIndex":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3}}]}],"orientation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":27,"character":3},"arguments":["class"]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3}}]}]}},"ɵe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":3,"character":1},"arguments":[{"name":"safe"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":7,"character":33}]}],"transform":[{"__symbolic":"method"}]}},"ɵf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":2,"character":1},"arguments":[{"selector":"[doeMedia]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":6,"character":42,"context":{"typeName":"HTMLElement"},"module":"./lib/directives/media.directive"}]}]}],"onLoad":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":8,"character":3},"arguments":["load",["$event"]]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":9,"character":3},"arguments":["loadedmetadata",["$event"]]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":10,"character":3},"arguments":["error",["$event"]]}]}]}}},"origins":{"GalleryComponent":"./lib/components/gallery/gallery.component","GalleryModule":"./lib/gallery.module","ɵa":"./lib/components/viewer/viewer.component","ɵb":"./lib/components/thumbs/thumbs.component","ɵc":"./lib/components/icons/chevron/chevron-icon.component","ɵd":"./lib/components/counter/counter.component","ɵe":"./lib/pipes/safe.pipe","ɵf":"./lib/directives/media.directive"},"importAs":"ngx-doe-gallery"} | ||
{"__symbolic":"module","version":4,"exports":[{"from":"./lib/support"},{"from":"./lib/object-fit"},{"from":"./lib/loading"},{"from":"./lib/orientation"},{"from":"./lib/template-contexts"},{"export":[{"name":"GalleryItem","as":"GalleryItem"},{"name":"GalleryImage","as":"GalleryImage"},{"name":"GalleryVideo","as":"GalleryVideo"},{"name":"GalleryItemEvent","as":"GalleryItemEvent"}],"from":"./lib/gallery-item"},{"export":[{"name":"Aria","as":"Aria"}],"from":"./lib/aria"}],"metadata":{"GalleryComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":30,"character":1},"arguments":[{"selector":"doe-gallery","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":34,"character":19},"member":"OnPush"},"template":"<doe-thumbs\n *ngIf=\"thumbs\"\n [items]=\"items\"\n [selectedIndex]=\"selectedIndex\"\n [orientation]=\"thumbsOrientation\"\n [arrows]=\"thumbsArrows\"\n [arrowSlideByLength]=\"thumbsArrowSlideByLength\"\n [autoScroll]=\"thumbsAutoScroll\"\n [scrollBehavior]=\"thumbsScrollBehavior\"\n [thumbTemplate]=\"thumbTemplate\"\n [arrowTemplate]=\"thumbsArrowTemplate\"\n [errorTemplate]=\"thumbErrorTemplate\"\n [aria]=\"aria\"\n (thumbClick)=\"_onThumbClick($event)\"\n (thumbHover)=\"thumbHover.emit($event)\"\n></doe-thumbs>\n\n<doe-viewer\n tabindex=\"0\"\n [items]=\"items\"\n [selectedIndex]=\"selectedIndex\"\n [arrows]=\"arrows\"\n [descriptions]=\"descriptions\"\n [errorText]=\"errorText\"\n [mouseGestures]=\"mouseGestures\"\n [touchGestures]=\"touchGestures\"\n [counter]=\"counter\"\n [counterOrientation]=\"counterOrientation\"\n [itemWidth]=\"itemWidth\"\n [objectFit]=\"objectFit\"\n [loading]=\"loading\"\n [itemTemplate]=\"itemTemplate\"\n [loadingTemplate]=\"loadingTemplate || defaultLoadingTemplate\"\n [errorTemplate]=\"errorTemplate\"\n [loop]=\"loop\"\n [thumbsOrientation]=\"_thumbsOrientationFlag\"\n [arrowTemplate]=\"arrowTemplate\"\n [aria]=\"aria\"\n [touched]=\"_touched\"\n (imageClick)=\"imageClick.emit($event)\"\n (descriptionClick)=\"descriptionClick.emit($event)\"\n (selection)=\"_selectInternal($event); _thumbsRef?.select($event)\"\n></doe-viewer>\n\n<ng-template #defaultLoadingTemplate>\n <div class=\"doe-loading\">\n <div></div>\n <div></div>\n <div></div>\n </div>\n</ng-template>\n","styles":[":host{display:flex;height:600px;width:500px;outline:0;position:relative}:host.doe-gallery--column{flex-direction:column}:host::ng-deep{font-family:Helvetica Neue,Helvetica,Arial,sans-serif}:host::ng-deep button{border:none}:host::ng-deep ul{list-style-type:none;margin:0;padding:0}.doe-loading{display:flex;justify-content:center;align-items:center;position:absolute;width:100%;height:100%;left:0;top:0;background-color:transparent;z-index:10}.doe-loading>div{height:13px;width:13px;background-color:#4a4a4a;-webkit-animation:2s infinite bounce;animation:2s infinite bounce;border-radius:50%;box-shadow:0 0 0 1px #f5f5f5,0 0 1px 1px #f5f5f5}.doe-loading>div+div{margin-left:10px;-webkit-animation-delay:125ms;animation-delay:125ms}.doe-loading>div+div+div{-webkit-animation-delay:.3s;animation-delay:.3s}@-webkit-keyframes bounce{20%{transform:translateY(-20px)}50%{transform:translateY(0)}}@keyframes bounce{20%{transform:translateY(-20px)}50%{transform:translateY(0)}}"]}]}],"members":{"items":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":37,"character":3}}]}],"selectedIndex":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":38,"character":3}}]}],"aria":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":3}}]}],"arrows":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":3}}]}],"descriptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":41,"character":3}}]}],"errorText":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":42,"character":3}}]}],"mouseGestures":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":43,"character":3}}]}],"touchGestures":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":44,"character":3}}]}],"counter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":45,"character":3}}]}],"counterOrientation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":46,"character":3}}]}],"itemWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":47,"character":3}}]}],"loading":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":48,"character":3}}]}],"loop":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":49,"character":3}}]}],"objectFit":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":50,"character":3}}]}],"itemTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":51,"character":3}}]}],"loadingTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":52,"character":3}}]}],"errorTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":53,"character":3}}]}],"arrowTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":54,"character":3}}]}],"thumbs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":55,"character":3}}]}],"thumbsAutoScroll":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":56,"character":3}}]}],"thumbsOrientation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":57,"character":3}}]}],"thumbsArrows":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":58,"character":3}}]}],"thumbsArrowSlideByLength":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":59,"character":3}}]}],"thumbsScrollBehavior":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":60,"character":3}}]}],"thumbTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":61,"character":3}}]}],"thumbsArrowTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":62,"character":3}}]}],"thumbErrorTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":63,"character":3}}]}],"imageClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":65,"character":3}}]}],"thumbClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":66,"character":3}}]}],"thumbHover":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":67,"character":3}}]}],"descriptionClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":68,"character":3}}]}],"selection":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":69,"character":3}}]}],"_viewerRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":71,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵa"},{"static":false}]}]}],"_thumbsRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":72,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵb"},{"static":false}]}]}],"_viewerElRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":73,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵa"},{"static":false,"read":{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":73,"character":53}}]}]}],"_tabindex":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":76,"character":3},"arguments":["tabindex"]}]}],"ariaLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":81,"character":3},"arguments":["attr.aria-label"]}]}],"_galleryColumn":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":86,"character":3},"arguments":["class.doe-gallery--column"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":104,"character":16},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":105,"character":32,"context":{"typeName":"HTMLElement"},"module":"./lib/components/gallery/gallery.component"}]}]}],"focus":[{"__symbolic":"method"}],"next":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":127,"character":3},"arguments":["keydown.arrowright"]}]}],"prev":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":132,"character":3},"arguments":["keydown.arrowleft"]}]}],"select":[{"__symbolic":"method"}],"slideThumbs":[{"__symbolic":"method"}],"_onThumbClick":[{"__symbolic":"method"}],"_selectInternal":[{"__symbolic":"method"}]}},"GalleryModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":11,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"GalleryComponent"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","name":"ɵf"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":21,"character":12}],"exports":[{"__symbolic":"reference","name":"GalleryComponent"},{"__symbolic":"reference","name":"ɵf"}]}]}],"members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":34,"character":1},"arguments":[{"selector":"doe-viewer","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":38,"character":19},"member":"OnPush"},"template":"<div\n *ngIf=\"showPrevArrow\"\n class=\"doe-viewer-arrow doe-viewer-arrow-prev\"\n (click)=\"selectByDelta(-1)\"\n>\n <doe-chevron-icon\n *ngIf=\"!arrowTemplate; else arrowTemplate\"\n ></doe-chevron-icon>\n</div>\n\n<ul #itemList [attr.aria-label]=\"aria?.viewerLabel\">\n <li *ngIf=\"!_displayedItems?.length\" class=\"doe-viewer-initial-item\"></li>\n <li\n #itemsRef\n *ngFor=\"let item of _displayedItems; let i = index\"\n [class.doe-viewer-item--selected]=\"i === selectedIndex\"\n tabindex=\"0\"\n [attr.aria-label]=\"item.alt\"\n [attr.aria-describedby]=\"'doe-viewer-aria-description-' + i\"\n (click)=\"onImageClick(item, $event)\"\n (doe-media-load)=\"onItemLoaded(item, $event.detail)\"\n (doe-media-error)=\"onItemErrored(item, $event.detail)\"\n (keydown.Tab)=\"onTab(i + 1)\"\n (keydown.shift.Tab)=\"onTab(i - 1)\"\n >\n <ng-container *ngIf=\"!lazyLoading || isInScrollportProximity(i)\">\n <ng-container *ngIf=\"!itemTemplate; else customTemplate\">\n <picture *ngIf=\"!isVideo(item)\">\n <source\n *ngFor=\"let source of item.pictureSources\"\n [srcset]=\"source.srcset\"\n [attr.media]=\"source.media\"\n [attr.sizes]=\"source.sizes\"\n [attr.type]=\"source.type\"\n />\n <img\n [src]=\"item.src\"\n [alt]=\"item.alt\"\n [class.doe-viewer-media-loading]=\"!item._loaded\"\n [style.objectFit]=\"objectFit\"\n (load)=\"onItemLoaded(item, $event)\"\n (error)=\"onItemErrored(item, $event)\"\n />\n </picture>\n <!-- Using loadedmetadata instead of loadeddata because iOS loads data lazily upon user's interaction -->\n <video\n *ngIf=\"!isYoutube(item) && isVideo(item)\"\n [src]=\"item.src\"\n [poster]=\"item.thumbSrc || ''\"\n [class.doe-viewer-media-loading]=\"!item._loaded\"\n [style.objectFit]=\"objectFit\"\n controls\n playsinline\n (loadedmetadata)=\"onItemLoaded(item, $event)\"\n (error)=\"onItemErrored(item, $event)\"\n ></video>\n\n <iframe\n *ngIf=\"isYoutube(item)\"\n [src]=\"item.src | safe\"\n frameborder=\"0\"\n allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\"\n allowfullscreen\n (load)=\"onItemLoaded(item, $event)\"\n ></iframe>\n </ng-container>\n\n <ng-container *ngIf=\"!item._loaded && !item._failed\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"item._failed\">\n <div\n *ngIf=\"!errorTemplate; else errorTemplate\"\n class=\"doe-viewer-error\"\n >\n <div class=\"doe-viewer-error-icon\">⚠</div>\n <p class=\"doe-viewer-error-text\">\n {{ errorText || 'Loading of this media failed' }}\n </p>\n </div>\n </ng-container>\n\n <span\n [id]=\"'doe-viewer-aria-description-' + i\"\n class=\"doe-viewer-aria-description\"\n [innerHTML]=\"item.description\"\n aria-hidden=\"true\"\n ></span>\n </ng-container>\n\n <ng-template #customTemplate>\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate;\n context: {\n index: items?.indexOf(item),\n selectedIndex: selectedIndex,\n item: item,\n video: isVideo(item)\n }\n \"\n ></ng-container>\n </ng-template>\n </li>\n</ul>\n\n<ng-container *ngIf=\"items?.length <= 0\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"></ng-container>\n</ng-container>\n\n<div\n *ngIf=\"showNextArrow\"\n class=\"doe-viewer-arrow doe-viewer-arrow-next\"\n (click)=\"selectByDelta(1)\"\n>\n <doe-chevron-icon\n *ngIf=\"!arrowTemplate; else arrowTemplate\"\n ></doe-chevron-icon>\n</div>\n\n<doe-counter\n *ngIf=\"counter && items?.length\"\n [itemQuantity]=\"items?.length\"\n [selectedIndex]=\"selectedIndex\"\n [orientation]=\"counterOrientation\"\n></doe-counter>\n\n<div\n *ngIf=\"descriptions && items\"\n class=\"doe-viewer-description\"\n [class.doe-viewer-description--above-counter]=\"\n counter && counterOrientation === 'bottom'\n \"\n aria-hidden=\"true\"\n>\n <div\n *ngIf=\"items[selectedIndex]?.description as description\"\n class=\"doe-viewer-description-inner\"\n [innerHTML]=\"description\"\n (click)=\"descriptionClick.emit($event)\"\n ></div>\n</div>\n","styles":[":host{display:block;position:relative;width:100%;height:100%;overflow:hidden;outline:0;background-color:#ececec;z-index:1}ul{--item-width:calc(100% - 0.01px);display:flex;width:100%;height:100%;transition:transform .4s;scrollbar-width:none;-ms-overflow-style:none}ul::-webkit-scrollbar{width:0;height:0}li{display:flex;align-items:center;flex:none;position:relative;width:var(--item-width);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;outline:0}picture{width:100%;height:100%}iframe,img,video{width:100%;height:100%;background-color:transparent;transition:opacity .3s ease-out;outline:0;-webkit-animation:.4s linear appear;animation:.4s linear appear}iframe[src=\"\"],img[src=\"\"],video[src=\"\"]{opacity:0}iframe.doe-viewer-media-loading,img.doe-viewer-media-loading,video.doe-viewer-media-loading{opacity:.5}@-webkit-keyframes appear{0%{opacity:0}100%{opacity:1}}@keyframes appear{0%{opacity:0}100%{opacity:1}}img{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.doe-viewer-description{position:absolute;bottom:5px;width:100%;display:flex;justify-content:center}.doe-viewer-description--above-counter{bottom:35px}.doe-viewer-description-inner{display:inline-block;background:#000;opacity:.8;color:#fff;padding:6px 15px;max-width:80%;font-size:.95em;text-align:center}.doe-viewer-aria-description{opacity:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:absolute;bottom:0;left:50%;transform:translateX(-50%)}.doe-viewer-error{position:absolute;left:0;top:0;width:100%;height:100%;display:flex;flex-flow:column nowrap;justify-content:center;align-items:center;background-color:#f5f5f5;color:#7d7d7d}.doe-viewer-error-icon{font-size:40px}.doe-viewer-error-text{margin-top:10px;letter-spacing:.01em}.doe-viewer-arrow{display:flex;position:absolute;top:50%;transform:translateY(-50%);z-index:100;cursor:pointer}.doe-viewer-arrow-prev{left:0;transform:rotate(180deg) translateY(50%)}.doe-viewer-arrow-next{right:0}.doe-viewer-arrow doe-chevron-icon{margin:15px 6px;opacity:.7}@media (hover:hover) and (pointer:fine){.doe-viewer-arrow doe-chevron-icon:hover{opacity:1}}.doe-viewer-arrow doe-chevron-icon::ng-deep svg{height:32px;width:32px}"]}]}],"members":{"items":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":41,"character":3}}]}],"arrows":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":42,"character":3}}]}],"selectedIndex":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":43,"character":3}}]}],"descriptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":44,"character":3}}]}],"errorText":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":45,"character":3}}]}],"mouseGestures":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":46,"character":3}}]}],"touchGestures":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":47,"character":3}}]}],"counter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":48,"character":3}}]}],"counterOrientation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":49,"character":3}}]}],"loading":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":50,"character":3}}]}],"objectFit":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":51,"character":3}}]}],"itemTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":52,"character":3}}]}],"loadingTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":53,"character":3}}]}],"errorTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":54,"character":3}}]}],"arrowTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":55,"character":3}}]}],"thumbsOrientation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":56,"character":3}}]}],"aria":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":57,"character":3}}]}],"loop":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":58,"character":3}}]}],"itemWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":66,"character":3}}]}],"touched":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":69,"character":3}}]}],"imageClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":71,"character":3}}]}],"descriptionClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":72,"character":3}}]}],"selection":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":73,"character":3}}]}],"itemListRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":75,"character":3},"arguments":["itemList",{"static":true}]}]}],"itemsRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChildren","line":76,"character":3},"arguments":["itemsRef"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":115,"character":33,"context":{"typeName":"HTMLElement"},"module":"./lib/components/viewer/viewer.component"}]},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":116,"character":17},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":117,"character":19}]}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"isInScrollportProximity":[{"__symbolic":"method"}],"isYoutube":[{"__symbolic":"method"}],"selectByDelta":[{"__symbolic":"method"}],"select":[{"__symbolic":"method"}],"onImageClick":[{"__symbolic":"method"}],"onTab":[{"__symbolic":"method"}],"onItemLoaded":[{"__symbolic":"method"}],"onItemErrored":[{"__symbolic":"method"}],"center":[{"__symbolic":"method"}],"getFringeCount":[{"__symbolic":"method"}],"readDimensions":[{"__symbolic":"method"}],"selectBySwipeStats":[{"__symbolic":"method"}],"shift":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":32,"character":1},"arguments":[{"selector":"doe-thumbs","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":36,"character":19},"member":"OnPush"},"template":"<div\n *ngIf=\"_showStartArrow\"\n class=\"doe-thumbs-arrow doe-thumbs-arrow-prev\"\n (click)=\"slide(-1)\"\n>\n <div *ngIf=\"!arrowTemplate; else arrowTemplate\">\n <doe-chevron-icon></doe-chevron-icon>\n </div>\n</div>\n\n<ul\n #thumbs\n [style.scrollBehavior]=\"scrollBehavior\"\n tabindex=\"0\"\n [attr.aria-label]=\"aria?.thumbnailsLabel\"\n>\n <li *ngIf=\"!items || !items.length\" class=\"doe-thumbs-initial-item\"></li>\n <li\n #thumb\n *ngFor=\"let item of items; let i = index\"\n [class.doe-thumbs-item--selected]=\"i === selectedIndex\"\n aria-hidden=\"true\"\n (click)=\"_emitEvent(i, item, $event, thumbClick)\"\n (mouseenter)=\"_emitEvent(i, item, $event, thumbHover)\"\n >\n <ng-container *ngIf=\"!thumbTemplate; else customThumbTemplate\">\n <img\n [src]=\"item.thumbSrc || ''\"\n [alt]=\"item.alt\"\n (load)=\"_onLoadChange(item, true)\"\n (error)=\"_onLoadChange(item, false)\"\n />\n\n <ng-container *ngIf=\"item._thumbFailed\">\n <div\n *ngIf=\"!errorTemplate; else errorTemplate\"\n class=\"doe-thumbs-error\"\n >\n <div\n class=\"doe-thumbs-error-icon\"\n [class.doe-thumbs-error-icon--video]=\"isVideo(item)\"\n ></div>\n </div>\n </ng-container>\n </ng-container>\n\n <ng-template #customThumbTemplate>\n <ng-container\n *ngTemplateOutlet=\"\n thumbTemplate;\n context: { index: i, selectedIndex: selectedIndex, item: item }\n \"\n ></ng-container>\n </ng-template>\n </li>\n</ul>\n\n<div\n *ngIf=\"_showEndArrow\"\n class=\"doe-thumbs-arrow doe-thumbs-arrow-next\"\n (click)=\"slide(1)\"\n>\n <div *ngIf=\"!arrowTemplate; else arrowTemplate\">\n <doe-chevron-icon></doe-chevron-icon>\n </div>\n</div>\n","styles":[":host{flex:1 0 auto;position:relative;background-color:#f3f3f3}:host.doe-thumbs--bottom,:host.doe-thumbs--top{width:100%}:host.doe-thumbs--bottom ul,:host.doe-thumbs--top ul{width:100%;display:flex;overflow-x:scroll;overflow-y:hidden}:host.doe-thumbs--bottom li,:host.doe-thumbs--top li{flex:none}:host.doe-thumbs--bottom li:not(:first-child),:host.doe-thumbs--top li:not(:first-child){border-left:0}:host.doe-thumbs--bottom li:first-child,:host.doe-thumbs--top li:first-child{margin-left:auto}:host.doe-thumbs--bottom li:last-child,:host.doe-thumbs--top li:last-child{margin-right:auto}:host.doe-thumbs--bottom .doe-thumbs-arrow,:host.doe-thumbs--top .doe-thumbs-arrow{top:0;height:100%}:host.doe-thumbs--bottom .doe-thumbs-arrow>div,:host.doe-thumbs--top .doe-thumbs-arrow>div{width:30px;height:100%}:host.doe-thumbs--bottom .doe-thumbs-arrow-prev,:host.doe-thumbs--top .doe-thumbs-arrow-prev{left:0}:host.doe-thumbs--bottom .doe-thumbs-arrow-next,:host.doe-thumbs--top .doe-thumbs-arrow-next{right:0}:host.doe-thumbs--bottom .doe-thumbs-error,:host.doe-thumbs--top .doe-thumbs-error{border-right:1px solid #cecece}:host.doe-thumbs--left,:host.doe-thumbs--right{height:100%}:host.doe-thumbs--left ul,:host.doe-thumbs--right ul{height:100%;overflow-y:scroll;overflow-x:hidden}:host.doe-thumbs--left li,:host.doe-thumbs--right li{border-top:0}:host.doe-thumbs--left .doe-thumbs-arrow,:host.doe-thumbs--right .doe-thumbs-arrow{width:100%}:host.doe-thumbs--left .doe-thumbs-arrow>div,:host.doe-thumbs--right .doe-thumbs-arrow>div{width:100%;height:30px}:host.doe-thumbs--left .doe-thumbs-arrow doe-chevron-icon,:host.doe-thumbs--right .doe-thumbs-arrow doe-chevron-icon{transform:rotate(90deg)}:host.doe-thumbs--left .doe-thumbs-arrow-prev,:host.doe-thumbs--right .doe-thumbs-arrow-prev{top:0}:host.doe-thumbs--left .doe-thumbs-arrow-next,:host.doe-thumbs--right .doe-thumbs-arrow-next{bottom:0}:host.doe-thumbs--left .doe-thumbs-error,:host.doe-thumbs--right .doe-thumbs-error{border-bottom:1px solid #cecece}:host.doe-thumbs--bottom,:host.doe-thumbs--right{order:1}ul{outline:0;scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;transform:translate3d(0,0,0)}ul::-webkit-scrollbar{width:0;height:0}li{box-sizing:border-box;width:120px;height:80px;position:relative;cursor:pointer}li.doe-thumbs-initial-item{visibility:hidden}li.doe-thumbs-item--selected::after{content:\"\";display:block;position:absolute;left:0;bottom:0;width:100%;height:100%;border:10px solid #ffffffcf;box-sizing:border-box}img{width:100%;height:100%;background-repeat:no-repeat;background-position:center;-o-object-fit:cover;object-fit:cover}.doe-thumbs-error{position:absolute;left:0;top:0;width:100%;height:100%;display:flex;flex-flow:column nowrap;justify-content:center;align-items:center;background:#e8e8e8;box-sizing:border-box}.doe-thumbs-error-icon:not(.doe-thumbs-error-icon--video){position:relative;border-left:16px solid transparent;border-right:16px solid transparent;border-bottom:28px solid #a5a5a5;margin-left:-8px}.doe-thumbs-error-icon:not(.doe-thumbs-error-icon--video)::after,.doe-thumbs-error-icon:not(.doe-thumbs-error-icon--video)::before{content:\"\";position:absolute}.doe-thumbs-error-icon:not(.doe-thumbs-error-icon--video)::before{height:10px;width:10px;background-color:#a5a5a5;border-radius:100%;left:14px}.doe-thumbs-error-icon:not(.doe-thumbs-error-icon--video)::after{border-left:14px solid transparent;border-right:14px solid transparent;border-bottom:17px solid #a5a5a5;top:11px}.doe-thumbs-error-icon--video{border-top:16px solid transparent;border-bottom:16px solid transparent;border-left:28px solid #a5a5a5;margin-left:9px}.doe-thumbs-arrow{position:absolute;cursor:pointer;z-index:10}.doe-thumbs-arrow-prev{transform:rotate(180deg)}.doe-thumbs-arrow>div{display:flex;justify-content:center;align-items:center;background:rgba(0,0,0,.5);padding:0;opacity:.7}@media (hover:hover) and (pointer:fine){.doe-thumbs-arrow>div:hover{opacity:1}}"]}]}],"members":{"items":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":3}}]}],"selectedIndex":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":3}}]}],"aria":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":41,"character":3}}]}],"orientation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":42,"character":3}}]}],"arrows":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":43,"character":3}}]}],"arrowSlideByLength":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":44,"character":3}}]}],"autoScroll":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":45,"character":3}}]}],"thumbTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":46,"character":3}}]}],"arrowTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":47,"character":3}}]}],"errorTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":48,"character":3}}]}],"scrollBehavior":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":49,"character":3}}]}],"thumbClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":57,"character":3}}]}],"thumbHover":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":58,"character":3}}]}],"thumbListRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":60,"character":3},"arguments":["thumbs",{"static":true}]}]}],"thumbsRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChildren","line":61,"character":3},"arguments":["thumb"]}]}],"cssClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":75,"character":3},"arguments":["class"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":91,"character":17},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":92,"character":31,"context":{"typeName":"HTMLElement"},"module":"./lib/components/thumbs/thumbs.component"}]}]}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"slide":[{"__symbolic":"method"}],"centerThumbIfNeeded":[{"__symbolic":"method"}],"select":[{"__symbolic":"method"}],"_emitEvent":[{"__symbolic":"method"}],"_onLoadChange":[{"__symbolic":"method"}],"scroll":[{"__symbolic":"method"}],"observeArrows":[{"__symbolic":"method"}],"unobserveArrows":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"doe-chevron-icon","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":6,"character":19},"member":"OnPush"},"template":"<!-- Icon made by Dave Gandy from www.flaticon.com -->\n<svg\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n x=\"0px\"\n y=\"0px\"\n viewBox=\"0 0 407.436 407.436\"\n xml:space=\"preserve\"\n>\n <polygon\n points=\"112.814,0 91.566,21.178 273.512,203.718 91.566,386.258 112.814,407.436 315.869,203.718 \"\n />\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n</svg>\n","styles":["svg{width:26px;height:26px;fill:#fff;-webkit-filter:drop-shadow(0 0 1px #000);filter:drop-shadow(0 0 1px #000);display:block}"]}]}],"members":{}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"doe-counter","template":"\n <span aria-hidden=\"true\">\n {{ selectedIndex + 1 }}<span class=\"doe-counter-delimiter\">/</span\n >{{ itemQuantity || 0 }}\n </span>\n ","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":18,"character":19},"member":"OnPush"},"styles":[":host{position:absolute;left:50%;transform:translateX(-50%);background:#000;padding:4px 7px 3px;color:#fff;opacity:.7;font-size:14px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}:host.top{top:0}:host.bottom{bottom:0}.doe-counter-delimiter{padding:0 2px}"]}]}],"members":{"itemQuantity":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3}}]}],"selectedIndex":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3}}]}],"orientation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":27,"character":3},"arguments":["class"]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3}}]}]}},"ɵe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":3,"character":1},"arguments":[{"name":"safe"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":7,"character":33}]}],"transform":[{"__symbolic":"method"}]}},"ɵf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":2,"character":1},"arguments":[{"selector":"[doeMedia]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":6,"character":42,"context":{"typeName":"HTMLElement"},"module":"./lib/directives/media.directive"}]}]}],"onLoad":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":8,"character":3},"arguments":["load",["$event"]]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":9,"character":3},"arguments":["loadedmetadata",["$event"]]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":10,"character":3},"arguments":["error",["$event"]]}]}]}}},"origins":{"GalleryComponent":"./lib/components/gallery/gallery.component","GalleryModule":"./lib/gallery.module","ɵa":"./lib/components/viewer/viewer.component","ɵb":"./lib/components/thumbs/thumbs.component","ɵc":"./lib/components/icons/chevron/chevron-icon.component","ɵd":"./lib/components/counter/counter.component","ɵe":"./lib/pipes/safe.pipe","ɵf":"./lib/directives/media.directive"},"importAs":"ngx-doe-gallery"} |
{ | ||
"name": "ngx-doe-gallery", | ||
"version": "1.0.0-beta.0", | ||
"version": "1.0.0-beta.2", | ||
"license": "Apache-2.0", | ||
@@ -5,0 +5,0 @@ "author": { |
@@ -8,4 +8,3 @@ # Doe Gallery | ||
[**Demo**](https://daelmaak.github.io/ngx-doe-gallery/) | | ||
[**Stackblitz**](https://stackblitz.com/edit/ngx-doe-gallery) | | ||
[**Demos**](https://daelmaak.github.io/ngx-doe-gallery/) | | ||
[**Docs**](https://github.com/daelmaak/ngx-doe-gallery/wiki/Gallery-API) | | ||
@@ -12,0 +11,0 @@ [**Changelog**](https://github.com/daelmaak/ngx-doe-gallery/blob/master/CHANGELOG.md) |
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 too big to display
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 too big to display
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
947355
10604
76