@ks89/angular-modal-gallery 8.0.0-beta.5 → 9.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +153 -0
- package/CONTRIBUTING.md +20 -38
- package/LICENSE +1 -1
- package/README.md +36 -42
- package/esm2020/ks89-angular-modal-gallery.mjs +5 -0
- package/esm2020/lib/components/accessibility-default.mjs +41 -0
- package/esm2020/lib/components/accessible.component.mjs +130 -0
- package/esm2020/lib/components/carousel/carousel-previews/carousel-previews.component.mjs +462 -0
- package/esm2020/lib/components/carousel/carousel.component.mjs +747 -0
- package/esm2020/lib/components/components.mjs +50 -0
- package/esm2020/lib/components/current-image/current-image.component.mjs +616 -0
- package/esm2020/lib/components/current-image/loading-spinner/loading-spinner.component.mjs +80 -0
- package/esm2020/lib/components/dots/dots.component.mjs +127 -0
- package/esm2020/lib/components/modal-gallery/modal-gallery-ref.mjs +103 -0
- package/esm2020/lib/components/modal-gallery/modal-gallery.component.mjs +523 -0
- package/esm2020/lib/components/modal-gallery/modal-gallery.service.mjs +187 -0
- package/esm2020/lib/components/modal-gallery/modal-gallery.tokens.mjs +26 -0
- package/esm2020/lib/components/plain-gallery/plain-gallery.component.mjs +249 -0
- package/esm2020/lib/components/previews/previews.component.mjs +332 -0
- package/esm2020/lib/components/upper-buttons/upper-buttons-default.mjs +76 -0
- package/esm2020/lib/components/upper-buttons/upper-buttons.component.mjs +249 -0
- package/esm2020/lib/directives/a-tag-bg-image.directive.mjs +78 -0
- package/esm2020/lib/directives/click-outside.directive.mjs +91 -0
- package/esm2020/lib/directives/description.directive.mjs +98 -0
- package/esm2020/lib/directives/direction.directive.mjs +73 -0
- package/esm2020/lib/directives/directives.mjs +49 -0
- package/esm2020/lib/directives/fallback-image.directive.mjs +59 -0
- package/esm2020/lib/directives/keyboard-navigation.directive.mjs +58 -0
- package/esm2020/lib/directives/margin.directive.mjs +84 -0
- package/esm2020/lib/directives/max-size.directive.mjs +75 -0
- package/esm2020/lib/directives/size.directive.mjs +76 -0
- package/{esm2015/lib/directives/size.directive.js → esm2020/lib/directives/wrap.directive.mjs} +23 -22
- package/esm2020/lib/modal-gallery.module.mjs +94 -0
- package/esm2020/lib/model/accessibility.interface.mjs +25 -0
- package/esm2020/lib/model/action.enum.mjs +36 -0
- package/esm2020/lib/model/buttons-config.interface.mjs +62 -0
- package/esm2020/lib/model/carousel-config.interface.mjs +25 -0
- package/esm2020/lib/model/carousel-image-config.interface.mjs +25 -0
- package/esm2020/lib/model/carousel-preview-config.interface.mjs +25 -0
- package/{esm2015/lib/model/keyboard-service-config.interface.js → esm2020/lib/model/current-image-config.interface.mjs} +2 -2
- package/esm2020/lib/model/description.interface.mjs +33 -0
- package/{esm2015/lib/model/preview-config.interface.js → esm2020/lib/model/dots-config.interface.mjs} +2 -2
- package/esm2020/lib/model/image-internal.class.mjs +35 -0
- package/esm2020/lib/model/image.class.mjs +54 -0
- package/esm2020/lib/model/interaction-event.interface.mjs +2 -0
- package/esm2020/lib/model/keyboard-config.interface.mjs +25 -0
- package/esm2020/lib/model/keyboard-service-config.interface.mjs +25 -0
- package/esm2020/lib/model/keyboard.enum.mjs +35 -0
- package/esm2020/lib/model/lib-config.interface.mjs +25 -0
- package/esm2020/lib/model/loading-config.interface.mjs +37 -0
- package/{esm2015/lib/model/dots-config.interface.js → esm2020/lib/model/max-size.interface.mjs} +2 -2
- package/{esm2015/lib/model/carousel-preview-config.interface.js → esm2020/lib/model/modal-gallery-config.interface.mjs} +2 -2
- package/esm2020/lib/model/plain-gallery-config.interface.mjs +55 -0
- package/{esm2015/lib/model/image-internal.class.js → esm2020/lib/model/play-config.interface.mjs} +3 -13
- package/esm2020/lib/model/preview-config.interface.mjs +25 -0
- package/esm2020/lib/model/size.interface.mjs +25 -0
- package/{esm2015/lib/model/carousel-config.interface.js → esm2020/lib/model/slide-config.interface.mjs} +2 -2
- package/esm2020/lib/services/config.service.mjs +396 -0
- package/esm2020/lib/services/id-validator.service.mjs +71 -0
- package/esm2020/lib/services/keyboard.service.mjs +111 -0
- package/esm2020/lib/utils/image.util.mjs +48 -0
- package/esm2020/lib/utils/user-input.util.mjs +104 -0
- package/esm2020/public-api.mjs +42 -0
- package/fesm2015/ks89-angular-modal-gallery.mjs +5782 -0
- package/fesm2015/ks89-angular-modal-gallery.mjs.map +1 -0
- package/{fesm2015/ks89-angular-modal-gallery.js → fesm2020/ks89-angular-modal-gallery.mjs} +3046 -2947
- package/fesm2020/ks89-angular-modal-gallery.mjs.map +1 -0
- package/ks89-angular-modal-gallery.d.ts +1 -24
- package/lib/components/accessible.component.d.ts +5 -2
- package/lib/components/carousel/carousel-previews/carousel-previews.component.d.ts +7 -11
- package/lib/components/carousel/carousel.component.d.ts +28 -67
- package/lib/components/current-image/current-image.component.d.ts +10 -4
- package/lib/components/current-image/loading-spinner/loading-spinner.component.d.ts +3 -0
- package/lib/components/dots/dots.component.d.ts +7 -0
- package/lib/components/modal-gallery/modal-gallery-ref.d.ts +35 -0
- package/lib/components/modal-gallery/modal-gallery.component.d.ts +58 -50
- package/lib/components/modal-gallery/modal-gallery.service.d.ts +60 -1
- package/lib/components/plain-gallery/plain-gallery.component.d.ts +18 -9
- package/lib/components/previews/previews.component.d.ts +9 -0
- package/lib/components/upper-buttons/upper-buttons.component.d.ts +8 -1
- package/lib/directives/a-tag-bg-image.directive.d.ts +3 -0
- package/lib/directives/click-outside.directive.d.ts +3 -0
- package/lib/directives/description.directive.d.ts +3 -0
- package/lib/directives/direction.directive.d.ts +3 -0
- package/lib/directives/fallback-image.directive.d.ts +6 -0
- package/lib/directives/keyboard-navigation.directive.d.ts +4 -1
- package/lib/directives/margin.directive.d.ts +3 -0
- package/lib/directives/max-size.directive.d.ts +3 -0
- package/lib/directives/size.directive.d.ts +5 -2
- package/lib/directives/wrap.directive.d.ts +4 -1
- package/lib/modal-gallery.module.d.ts +28 -0
- package/lib/model/carousel-config.interface.d.ts +0 -1
- package/lib/model/keyboard-config.interface.d.ts +4 -4
- package/lib/model/keyboard.enum.d.ts +11 -8
- package/lib/model/lib-config.interface.d.ts +20 -7
- package/lib/model/modal-gallery-config.interface.d.ts +2 -2
- package/lib/model/plain-gallery-config.interface.d.ts +1 -9
- package/lib/services/config.service.d.ts +3 -0
- package/lib/services/id-validator.service.d.ts +5 -1
- package/lib/services/keyboard.service.d.ts +5 -2
- package/lib/utils/user-input.util.d.ts +35 -26
- package/package.json +28 -16
- package/public-api.d.ts +2 -2
- package/bundles/ks89-angular-modal-gallery.umd.js +0 -5906
- package/bundles/ks89-angular-modal-gallery.umd.js.map +0 -1
- package/bundles/ks89-angular-modal-gallery.umd.min.js +0 -16
- package/bundles/ks89-angular-modal-gallery.umd.min.js.map +0 -1
- package/esm2015/ks89-angular-modal-gallery.js +0 -29
- package/esm2015/lib/components/accessibility-default.js +0 -41
- package/esm2015/lib/components/accessible.component.js +0 -127
- package/esm2015/lib/components/carousel/carousel-previews/carousel-previews.component.js +0 -466
- package/esm2015/lib/components/carousel/carousel.component.js +0 -772
- package/esm2015/lib/components/components.js +0 -50
- package/esm2015/lib/components/current-image/current-image.component.js +0 -590
- package/esm2015/lib/components/current-image/loading-spinner/loading-spinner.component.js +0 -80
- package/esm2015/lib/components/dots/dots.component.js +0 -127
- package/esm2015/lib/components/modal-gallery/modal-gallery-ref.js +0 -45
- package/esm2015/lib/components/modal-gallery/modal-gallery.component.js +0 -534
- package/esm2015/lib/components/modal-gallery/modal-gallery.service.js +0 -135
- package/esm2015/lib/components/modal-gallery/modal-gallery.tokens.js +0 -3
- package/esm2015/lib/components/plain-gallery/plain-gallery.component.js +0 -243
- package/esm2015/lib/components/previews/previews.component.js +0 -331
- package/esm2015/lib/components/upper-buttons/upper-buttons-default.js +0 -76
- package/esm2015/lib/components/upper-buttons/upper-buttons.component.js +0 -256
- package/esm2015/lib/directives/a-tag-bg-image.directive.js +0 -78
- package/esm2015/lib/directives/click-outside.directive.js +0 -85
- package/esm2015/lib/directives/description.directive.js +0 -99
- package/esm2015/lib/directives/direction.directive.js +0 -73
- package/esm2015/lib/directives/directives.js +0 -49
- package/esm2015/lib/directives/fallback-image.directive.js +0 -54
- package/esm2015/lib/directives/keyboard-navigation.directive.js +0 -52
- package/esm2015/lib/directives/margin.directive.js +0 -82
- package/esm2015/lib/directives/max-size.directive.js +0 -76
- package/esm2015/lib/directives/wrap.directive.js +0 -74
- package/esm2015/lib/modal-gallery.module.js +0 -64
- package/esm2015/lib/model/accessibility.interface.js +0 -25
- package/esm2015/lib/model/action.enum.js +0 -36
- package/esm2015/lib/model/buttons-config.interface.js +0 -66
- package/esm2015/lib/model/carousel-image-config.interface.js +0 -25
- package/esm2015/lib/model/current-image-config.interface.js +0 -25
- package/esm2015/lib/model/description.interface.js +0 -33
- package/esm2015/lib/model/image.class.js +0 -54
- package/esm2015/lib/model/interaction-event.interface.js +0 -2
- package/esm2015/lib/model/keyboard-config.interface.js +0 -25
- package/esm2015/lib/model/keyboard.enum.js +0 -35
- package/esm2015/lib/model/lib-config.interface.js +0 -25
- package/esm2015/lib/model/loading-config.interface.js +0 -37
- package/esm2015/lib/model/max-size.interface.js +0 -25
- package/esm2015/lib/model/modal-gallery-config.interface.js +0 -25
- package/esm2015/lib/model/plain-gallery-config.interface.js +0 -64
- package/esm2015/lib/model/play-config.interface.js +0 -25
- package/esm2015/lib/model/size.interface.js +0 -25
- package/esm2015/lib/model/slide-config.interface.js +0 -25
- package/esm2015/lib/services/config.service.js +0 -392
- package/esm2015/lib/services/id-validator.service.js +0 -71
- package/esm2015/lib/services/keyboard.service.js +0 -108
- package/esm2015/lib/utils/image.util.js +0 -48
- package/esm2015/lib/utils/user-input.util.js +0 -95
- package/esm2015/public-api.js +0 -46
- package/fesm2015/ks89-angular-modal-gallery.js.map +0 -1
- package/ks89-angular-modal-gallery.metadata.json +0 -1
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
!function(e,i){"object"==typeof exports&&"undefined"!=typeof module?i(exports,require("@angular/core"),require("@angular/common"),require("@angular/platform-browser"),require("@angular/cdk/overlay"),require("rxjs"),require("rxjs/operators"),require("@angular/cdk/portal"),require("@angular/cdk/layout")):"function"==typeof define&&define.amd?define("@ks89/angular-modal-gallery",["exports","@angular/core","@angular/common","@angular/platform-browser","@angular/cdk/overlay","rxjs","rxjs/operators","@angular/cdk/portal","@angular/cdk/layout"],i):i(((e="undefined"!=typeof globalThis?globalThis:e||self).ks89=e.ks89||{},e.ks89["angular-modal-gallery"]={}),e.ng.core,e.ng.common,e.ng.platformBrowser,e.ng.cdk.overlay,e.rxjs,e.rxjs.operators,e.ng.cdk.portal,e.ng.cdk.layout)}(this,(function(e,i,t,n,r,a,o,s,l){"use strict";
|
|
2
|
-
/*! *****************************************************************************
|
|
3
|
-
Copyright (c) Microsoft Corporation.
|
|
4
|
-
|
|
5
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
6
|
-
purpose with or without fee is hereby granted.
|
|
7
|
-
|
|
8
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
9
|
-
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
10
|
-
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
11
|
-
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
12
|
-
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
13
|
-
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
14
|
-
PERFORMANCE OF THIS SOFTWARE.
|
|
15
|
-
***************************************************************************** */var c=function(e,i){return(c=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,i){e.__proto__=i}||function(e,i){for(var t in i)Object.prototype.hasOwnProperty.call(i,t)&&(e[t]=i[t])})(e,i)};function g(e,i){function t(){this.constructor=e}c(e,i),e.prototype=null===i?Object.create(i):(t.prototype=i.prototype,new t)}Object.create;function u(e,i){var t="function"==typeof Symbol&&e[Symbol.iterator];if(!t)return e;var n,r,a=t.call(e),o=[];try{for(;(void 0===i||i-- >0)&&!(n=a.next()).done;)o.push(n.value)}catch(e){r={error:e}}finally{try{n&&!n.done&&(t=a.return)&&t.call(a)}finally{if(r)throw r.error}}return o}function d(){for(var e=[],i=0;i<arguments.length;i++)e=e.concat(u(arguments[i]));return e}Object.create;var m="Enter",p="Space",h=-1,f="right",y=function(){function e(){}return e.prototype.handleNavigationEvent=function(e,i){return i?i instanceof KeyboardEvent?this.handleKeyboardNavigationEvent(e,i):i instanceof MouseEvent?this.handleMouseNavigationEvent(e,i):0:0},e.prototype.handleImageEvent=function(e){return e?e instanceof KeyboardEvent?this.handleImageKeyboardEvent(e):e instanceof MouseEvent?this.handleImageMouseEvent(e):0:0},e.prototype.handleImageKeyboardEvent=function(e){var i=e.code;return i===p||i===m?1:0},e.prototype.handleImageMouseEvent=function(e){return 0===e.button?1:0},e.prototype.handleKeyboardNavigationEvent=function(e,i){var t=i.code;return t===p||t===m?e===f?1:h:0},e.prototype.handleMouseNavigationEvent=function(e,i){return 0===i.button?e===f?1:h:0},e}();y.decorators=[{type:i.Component,args:[{selector:"ks-accessible",template:"",changeDetection:i.ChangeDetectionStrategy.OnPush}]}],y.ctorParameters=function(){return[]};var w,v,I=function(e,i,t){this.id=e,this.modal=i,this.plain=t},M=function(e,i,t){this.galleryId=e,this.action=i,this.result=t},b=function(e){function i(i,t,n){return e.call(this,i,t,n)||this}return g(i,e),i}(M);function C(e,i){if(!e)throw new Error("image must be a valid Image object");if(!i)throw new Error("arrayOfImages must be a valid Image[]");if(!e.id&&0!==e.id)throw new Error("A numeric Image 'id' is mandatory");if(e.id<0)throw new Error("Image 'id' must be >= 0");return i.findIndex((function(i){return i.id===e.id}))}(w=e.Action||(e.Action={}))[w.NORMAL=0]="NORMAL",w[w.CLICK=1]="CLICK",w[w.KEYBOARD=2]="KEYBOARD",w[w.SWIPE=3]="SWIPE",w[w.LOAD=4]="LOAD",w[w.AUTOPLAY=5]="AUTOPLAY",(v=e.DescriptionStrategy||(e.DescriptionStrategy={}))[v.ALWAYS_HIDDEN=1]="ALWAYS_HIDDEN",v[v.ALWAYS_VISIBLE=2]="ALWAYS_VISIBLE",v[v.HIDE_IF_EMPTY=3]="HIDE_IF_EMPTY";var L,x,j={backgroundAriaLabel:"Modal gallery full screen background",backgroundTitle:"",plainGalleryContentAriaLabel:"Plain gallery content",plainGalleryContentTitle:"",modalGalleryContentAriaLabel:"Modal gallery content",modalGalleryContentTitle:"",loadingSpinnerAriaLabel:"The current image is loading. Please be patient.",loadingSpinnerTitle:"The current image is loading. Please be patient.",mainContainerAriaLabel:"Current image and navigation",mainContainerTitle:"",mainPrevImageAriaLabel:"Previous image",mainPrevImageTitle:"Previous image",mainNextImageAriaLabel:"Next image",mainNextImageTitle:"Next image",dotsContainerAriaLabel:"Image navigation dots",dotsContainerTitle:"",dotAriaLabel:"Navigate to image number",previewsContainerAriaLabel:"Image previews",previewsContainerTitle:"",previewScrollPrevAriaLabel:"Scroll previous previews",previewScrollPrevTitle:"Scroll previous previews",previewScrollNextAriaLabel:"Scroll next previews",previewScrollNextTitle:"Scroll next previews",carouselContainerAriaLabel:"Current image and navigation",carouselContainerTitle:"",carouselPrevImageAriaLabel:"Previous image",carouselPrevImageTitle:"Previous image",carouselNextImageAriaLabel:"Next image",carouselNextImageTitle:"Next image",carouselPreviewsContainerAriaLabel:"Image previews",carouselPreviewsContainerTitle:"",carouselPreviewScrollPrevAriaLabel:"Scroll previous previews",carouselPreviewScrollPrevTitle:"Scroll previous previews",carouselPreviewScrollNextAriaLabel:"Scroll next previews",carouselPreviewScrollNextTitle:"Scroll next previews"};(L=e.ButtonsStrategy||(e.ButtonsStrategy={}))[L.DEFAULT=1]="DEFAULT",L[L.SIMPLE=2]="SIMPLE",L[L.ADVANCED=3]="ADVANCED",L[L.FULL=4]="FULL",L[L.CUSTOM=5]="CUSTOM",(x=e.ButtonType||(e.ButtonType={}))[x.DELETE=1]="DELETE",x[x.EXTURL=2]="EXTURL",x[x.DOWNLOAD=3]="DOWNLOAD",x[x.CLOSE=4]="CLOSE",x[x.CUSTOM=5]="CUSTOM",x[x.FULLSCREEN=6]="FULLSCREEN";var S,N,D=[e.ButtonType.FULLSCREEN,e.ButtonType.DELETE,e.ButtonType.EXTURL,e.ButtonType.DOWNLOAD,e.ButtonType.CLOSE,e.ButtonType.CUSTOM],z=function(e,i,t){this.size=e,this.breakConfig=i,this.justify=t},k=function(e,i){this.size=e,this.breakConfig=i},P=function(e,i){this.modalOpenerByIndex=e,this.hideDefaultPlainGallery=i};(S=e.PlainGalleryStrategy||(e.PlainGalleryStrategy={}))[S.ROW=1]="ROW",S[S.COLUMN=2]="COLUMN",S[S.GRID=3]="GRID",S[S.CUSTOM=4]="CUSTOM",(N=e.LoadingType||(e.LoadingType={}))[N.STANDARD=1]="STANDARD",N[N.CIRCULAR=2]="CIRCULAR",N[N.BARS=3]="BARS",N[N.DOTS=4]="DOTS",N[N.CUBE_FLIPPING=5]="CUBE_FLIPPING",N[N.CIRCLES=6]="CIRCLES",N[N.EXPLOSING_SQUARES=7]="EXPLOSING_SQUARES";var E={height:"50px",width:"auto"},T=new z(E,{length:-1,wrap:!1},"flex-start"),A={strategy:e.PlainGalleryStrategy.ROW,layout:T,advanced:{aTags:!1,additionalBackground:"50% 50%/cover"}},O={bgColor:"rgba(0, 0, 0, .5)",textColor:"white",marginTop:"0px",marginBottom:"0px",marginLeft:"0px",marginRight:"0px"},G={navigateOnClick:!0,loadingConfig:{enable:!0,type:e.LoadingType.STANDARD},description:{strategy:e.DescriptionStrategy.ALWAYS_VISIBLE,imageText:"Image ",numberSeparator:"/",beforeTextDescription:" - ",style:O},downloadable:!1,invertSwipe:!1},Z={description:{strategy:e.DescriptionStrategy.ALWAYS_HIDDEN,imageText:"Image ",numberSeparator:"/",beforeTextDescription:" - ",style:O},invertSwipe:!1},B={visible:!0,number:4,arrows:!0,clickable:!0,width:"25%",maxHeight:"200px",breakpoints:{xSmall:100,small:100,medium:150,large:200,xLarge:200}},U={shortcuts:["ctrl+s","meta+s"],disableSsrWorkaround:!1},R={visible:!0,number:3,arrows:!0,clickable:!0,size:E},Y=Object.freeze({slideConfig:{infinite:!1,playConfig:{autoPlay:!1,interval:5e3,pauseOnHover:!0},sidePreviews:{show:!0,size:{width:"100px",height:"auto"}}},accessibilityConfig:j,previewConfig:R,buttonsConfig:{visible:!0,strategy:e.ButtonsStrategy.DEFAULT},dotsConfig:{visible:!0},plainGalleryConfig:A,currentImageConfig:G,keyboardConfig:void 0,carouselConfig:{maxWidth:"100%",maxHeight:"400px",showArrows:!0,objectFit:"cover",keyboardEnable:!0,modalGalleryEnable:!1,legacyIE11Mode:!1},carouselImageConfig:Z,carouselPreviewsConfig:B,carouselPlayConfig:{autoPlay:!0,interval:5e3,pauseOnHover:!0},carouselDotsConfig:{visible:!0},enableCloseOutside:!0,keyboardServiceConfig:U}),H=function(){function i(){this.configMap=new Map}return i.prototype.getConfig=function(e){return this.initIfNotExists(e),this.configMap.get(e)},i.prototype.setConfig=function(i,t){if(this.initIfNotExists(i),t){if(!(Y&&Y.slideConfig&&Y.slideConfig.sidePreviews&&Y.previewConfig&&Y.previewConfig.size&&Y.previewConfig.number&&Y.plainGalleryConfig&&Y.currentImageConfig&&Y.currentImageConfig&&Y.currentImageConfig.description&&Y.carouselImageConfig&&Y.carouselImageConfig.description&&Y.carouselPreviewsConfig&&Y.carouselPreviewsConfig.breakpoints&&B.number))throw new Error("Internal library error - DEFAULT_CONFIG must be fully initialized!!!");var n=Object.assign({},this.configMap.get(i));if(t.slideConfig){var r=void 0,a=void 0,o=void 0;r=t.slideConfig.playConfig?Object.assign({},Y.slideConfig.playConfig,t.slideConfig.playConfig):Y.slideConfig.playConfig,t.slideConfig.sidePreviews?(o=t.slideConfig.sidePreviews.size?Object.assign({},Y.slideConfig.sidePreviews.size,t.slideConfig.sidePreviews.size):Y.slideConfig.sidePreviews.size,a=Object.assign({},Y.slideConfig.sidePreviews,t.slideConfig.sidePreviews)):(a=Y.slideConfig.sidePreviews,o=Y.slideConfig.sidePreviews.size);var s=Object.assign({},Y.slideConfig,t.slideConfig);s.playConfig=r,s.sidePreviews=a,s.sidePreviews.size=o,n.slideConfig=s}if(t.accessibilityConfig&&(n.accessibilityConfig=Object.assign({},Y.accessibilityConfig,t.accessibilityConfig)),t.previewConfig){o=void 0;var l=void 0;o=t.previewConfig.size?Object.assign({},Y.previewConfig.size,t.previewConfig.size):Y.previewConfig.size,l=t.previewConfig.number?t.previewConfig.number<=0?Y.previewConfig.number:t.previewConfig.number:Y.previewConfig.number;var c=Object.assign({},Y.previewConfig,t.previewConfig);c.size=o,c.number=l,n.previewConfig=c}if(t.buttonsConfig&&(n.buttonsConfig=Object.assign({},Y.buttonsConfig,t.buttonsConfig)),t.dotsConfig&&(n.dotsConfig=Object.assign({},Y.dotsConfig,t.dotsConfig)),t.plainGalleryConfig){var g=void 0,u=void 0;g=t.plainGalleryConfig.advanced?Object.assign({},Y.plainGalleryConfig.advanced,t.plainGalleryConfig.advanced):Y.plainGalleryConfig.advanced,u=t.plainGalleryConfig.layout?t.plainGalleryConfig.layout:Y.plainGalleryConfig.layout;var d=Object.assign({},Y.plainGalleryConfig,t.plainGalleryConfig);d.layout=u,d.advanced=g,n.plainGalleryConfig=function(i){var t=Object.assign({},Y.plainGalleryConfig,i);if(t.layout instanceof z){if(t.strategy!==e.PlainGalleryStrategy.ROW&&t.strategy!==e.PlainGalleryStrategy.COLUMN)throw new Error("LineLayout requires either ROW or COLUMN strategy");if(!t.layout||!t.layout.breakConfig)throw new Error("Both layout and breakConfig must be valid")}if(t.layout instanceof k){if(t.strategy!==e.PlainGalleryStrategy.GRID)throw new Error("GridLayout requires GRID strategy");if(!t.layout||!t.layout.breakConfig)throw new Error("Both layout and breakConfig must be valid");t.layout.breakConfig.wrap=!0}if(t.layout instanceof P&&t.strategy!==e.PlainGalleryStrategy.CUSTOM)throw new Error("AdvancedLayout requires CUSTOM strategy");return t}(d)}if(t.currentImageConfig){var m=void 0,p=void 0,h=void 0;m=t.currentImageConfig.loadingConfig?Object.assign({},Y.currentImageConfig.loadingConfig,t.currentImageConfig.loadingConfig):Y.currentImageConfig.loadingConfig,t.currentImageConfig.description?(p=Object.assign({},Y.currentImageConfig.description,t.currentImageConfig.description),h=t.currentImageConfig.description.style?Object.assign({},Y.currentImageConfig.description.style,t.currentImageConfig.description.style):Y.currentImageConfig.description.style):(p=Y.currentImageConfig.description,h=Y.currentImageConfig.description.style);var f=Object.assign({},Y.currentImageConfig,t.currentImageConfig);f.loadingConfig=m,f.description=p,f.description.style=h,n.currentImageConfig=f}if(t.keyboardConfig&&(n.keyboardConfig=Object.assign({},Y.keyboardConfig,t.keyboardConfig)),t.carouselConfig&&(n.carouselConfig=Object.assign({},Y.carouselConfig,t.carouselConfig)),t.carouselImageConfig){p=void 0,h=void 0;t.carouselImageConfig.description?(p=Object.assign({},Y.carouselImageConfig.description,t.carouselImageConfig.description),h=t.carouselImageConfig.description.style?Object.assign({},Y.carouselImageConfig.description.style,t.carouselImageConfig.description.style):Y.carouselImageConfig.description.style):(p=Y.carouselImageConfig.description,h=Y.carouselImageConfig.description.style);var y=Object.assign({},Y.carouselImageConfig,t.carouselImageConfig);y.description=p,y.description.style=h,n.carouselImageConfig=y}if(t.carouselPlayConfig){if(t.carouselPlayConfig.interval<=0)throw new Error("Carousel's interval must be a number >= 0");n.carouselPlayConfig=Object.assign({},Y.carouselPlayConfig,t.carouselPlayConfig)}if(t.carouselPreviewsConfig){l=void 0;var w=void 0;l=!t.carouselPreviewsConfig.number||t.carouselPreviewsConfig.number<=0?B.number:t.carouselPreviewsConfig.number,w=t.carouselPreviewsConfig.breakpoints?Object.assign({},Y.carouselPreviewsConfig.breakpoints,t.carouselPreviewsConfig.breakpoints):Y.carouselPreviewsConfig.breakpoints,n.carouselPreviewsConfig=Object.assign({},Y.carouselPreviewsConfig,t.carouselPreviewsConfig),n.carouselPreviewsConfig.number=l,n.carouselPreviewsConfig.breakpoints=w,n.carouselPreviewsConfig.width=100/n.carouselPreviewsConfig.number+"%"}t.carouselDotsConfig&&(n.carouselDotsConfig=Object.assign({},Y.carouselDotsConfig,t.carouselDotsConfig)),void 0===t.enableCloseOutside?n.enableCloseOutside=Y.enableCloseOutside:n.enableCloseOutside=t.enableCloseOutside,t.keyboardServiceConfig&&(n.keyboardServiceConfig=Object.assign({},U,t.keyboardServiceConfig)),this.configMap.set(i,n)}},i.prototype.initIfNotExists=function(e){this.configMap.has(e)||this.configMap.set(e,Y)},i}();H.decorators=[{type:i.Injectable}];var W,F=new i.InjectionToken("DIALOG_DATA");!function(e){e[e.ESC=27]="ESC",e[e.LEFT_ARROW=37]="LEFT_ARROW",e[e.RIGHT_ARROW=39]="RIGHT_ARROW",e[e.UP_ARROW=38]="UP_ARROW",e[e.DOWN_ARROW=40]="DOWN_ARROW"}(W||(W={}));var Q=function(n){function r(t,r,o,s){var l=n.call(this)||this;return l.platformId=t,l.ngZone=r,l.ref=o,l.configService=s,l.loadImage=new i.EventEmitter,l.changeImage=new i.EventEmitter,l.closeGallery=new i.EventEmitter,l.start$=new a.Subject,l.stop$=new a.Subject,l.normalAction=e.Action.NORMAL,l.clickAction=e.Action.CLICK,l.keyboardAction=e.Action.KEYBOARD,l.isFirstImage=!1,l.isLastImage=!1,l.loading=!0,l.SWIPE_ACTION={LEFT:"swipeleft",RIGHT:"swiperight",UP:"swipeup",DOWN:"swipedown"},l}return g(r,n),r.prototype.onMouseEnter=function(){this.slideConfig&&this.slideConfig.playConfig&&this.slideConfig.playConfig.pauseOnHover&&this.stopCarousel()},r.prototype.onMouseLeave=function(){this.slideConfig&&this.slideConfig.playConfig&&this.slideConfig.playConfig.pauseOnHover&&this.slideConfig.playConfig.autoPlay&&this.playCarousel()},r.prototype.ngOnInit=function(){var e=this.configService.getConfig(this.id);if(!e||!e.buttonsConfig)throw new Error("Internal library error - libConfig and buttonsConfig must be defined");this.slideConfig=e.slideConfig,this.accessibilityConfig=e.accessibilityConfig,this.currentImageConfig=e.currentImageConfig,this.keyboardConfig=e.keyboardConfig},r.prototype.ngOnChanges=function(e){var i=this.configService.getConfig(this.id);if(!i)throw new Error("Internal library error - libConfig must be defined");var t=e.images,n=e.currentImage;(n&&n.previousValue!==n.currentValue||t&&t.previousValue!==t.currentValue)&&this.updateIndexes();var r=e.slideConfig;r&&r.previousValue!==r.currentValue&&(this.slideConfig=i.slideConfig)},r.prototype.ngAfterContentInit=function(){var i=this;t.isPlatformBrowser(this.platformId)&&this.ngZone.runOutsideAngular((function(){i.start$.pipe(o.map((function(){return i.slideConfig&&i.slideConfig.playConfig&&i.slideConfig.playConfig.autoPlay&&i.slideConfig.playConfig.interval})),o.filter((function(e){return e>0})),o.switchMap((function(e){return a.timer(e).pipe(o.takeUntil(i.stop$))}))).subscribe((function(){return i.ngZone.run((function(){i.isLastImage||i.nextImage(e.Action.AUTOPLAY),i.ref.markForCheck()}))})),i.start$.next()}))},r.prototype.onKeyPress=function(i){var t=this.keyboardConfig&&this.keyboardConfig.esc?this.keyboardConfig.esc:W.ESC,n=this.keyboardConfig&&this.keyboardConfig.right?this.keyboardConfig.right:W.RIGHT_ARROW,r=this.keyboardConfig&&this.keyboardConfig.left?this.keyboardConfig.left:W.LEFT_ARROW;switch(i){case t:this.closeGallery.emit(new b(this.id,e.Action.KEYBOARD,!0));break;case n:this.nextImage(e.Action.KEYBOARD);break;case r:this.prevImage(e.Action.KEYBOARD)}},r.prototype.getDescriptionToDisplay=function(i){if(void 0===i&&(i=this.currentImage),!this.currentImageConfig||!this.currentImageConfig.description)throw new Error("Description input must be a valid object implementing the Description interface");var t=!i.modal||!i.modal.description||""===i.modal.description;switch(this.currentImageConfig.description.strategy){case e.DescriptionStrategy.HIDE_IF_EMPTY:return t?"":i.modal.description+"";case e.DescriptionStrategy.ALWAYS_HIDDEN:return"";default:return this.buildTextDescription(i,t)}},r.prototype.getAltDescriptionByImage=function(e){return void 0===e&&(e=this.currentImage),e?e.modal&&e.modal.description?e.modal.description:"Image "+(C(e,this.images)+1):""},r.prototype.getTitleToDisplay=function(e){if(void 0===e&&(e=this.currentImage),!this.currentImageConfig||!this.currentImageConfig.description)throw new Error("Description input must be a valid object implementing the Description interface");var i=!e.modal||!e.modal.description||""===e.modal.description;return this.buildTextDescription(e,i)},r.prototype.getLeftPreviewImage=function(){if(!this.slideConfig)throw new Error("Internal library error - slideConfig must be defined");var e=C(this.currentImage,this.images);return 0===e&&this.slideConfig.infinite?this.images[this.images.length-1]:(this.handleBoundaries(e),this.images[Math.max(e-1,0)])},r.prototype.getRightPreviewImage=function(){if(!this.slideConfig)throw new Error("Internal library error - slideConfig must be defined");var e=C(this.currentImage,this.images);return e===this.images.length-1&&this.slideConfig.infinite?this.images[0]:(this.handleBoundaries(e),this.images[Math.min(e+1,this.images.length-1)])},r.prototype.onImageEvent=function(i,t){if(void 0===t&&(t=e.Action.NORMAL),!this.currentImageConfig)throw new Error("Internal library error - currentImageConfig must be defined");(t!==e.Action.CLICK||this.currentImageConfig.navigateOnClick)&&(1===n.prototype.handleImageEvent.call(this,i)&&this.nextImage(t))},r.prototype.onNavigationEvent=function(i,t,r,a){if(void 0===r&&(r=e.Action.NORMAL),void 0===a&&(a=!1),!a){var o=n.prototype.handleNavigationEvent.call(this,i,t);1===o?this.nextImage(r):o===h&&this.prevImage(r)}},r.prototype.prevImage=function(i){if(void 0===i&&(i=e.Action.NORMAL),!this.isPreventSliding(0)){var t=this.getPrevImage();this.loading=!t.previouslyLoaded,this.changeImage.emit(new b(this.id,i,C(t,this.images))),this.start$.next()}},r.prototype.nextImage=function(i){if(void 0===i&&(i=e.Action.NORMAL),!this.isPreventSliding(this.images.length-1)){var t=this.getNextImage();this.loading=!t.previouslyLoaded,this.changeImage.emit(new b(this.id,i,C(t,this.images))),this.start$.next()}},r.prototype.onImageLoad=function(e){var i={status:!0,index:C(this.currentImage,this.images),id:this.currentImage.id};this.loadImage.emit(i),this.loading=!1},r.prototype.swipe=function(i){if(void 0===i&&(i=this.SWIPE_ACTION.RIGHT),!this.currentImageConfig)throw new Error("Internal library error - currentImageConfig must be defined");switch(i){case this.SWIPE_ACTION.RIGHT:this.currentImageConfig.invertSwipe?this.prevImage(e.Action.SWIPE):this.nextImage(e.Action.SWIPE);break;case this.SWIPE_ACTION.LEFT:this.currentImageConfig.invertSwipe?this.nextImage(e.Action.SWIPE):this.prevImage(e.Action.SWIPE)}},r.prototype.getIndexToDelete=function(e){return void 0===e&&(e=this.currentImage),C(e,this.images)},r.prototype.playCarousel=function(){this.start$.next()},r.prototype.stopCarousel=function(){this.stop$.next()},r.prototype.ngOnDestroy=function(){this.stopCarousel()},r.prototype.handleBoundaries=function(e){if(1===this.images.length)return this.isFirstImage=!0,void(this.isLastImage=!0);if(this.slideConfig&&!0!==this.slideConfig.infinite)switch(e){case 0:this.isFirstImage=!0,this.isLastImage=!1;break;case this.images.length-1:this.isFirstImage=!1,this.isLastImage=!0;break;default:this.isFirstImage=!1,this.isLastImage=!1}else this.isFirstImage=!1,this.isLastImage=!1},r.prototype.isPreventSliding=function(e){return!!this.slideConfig&&!1===this.slideConfig.infinite&&C(this.currentImage,this.images)===e},r.prototype.getNextImage=function(){var e=C(this.currentImage,this.images),i=0;return i=e>=0&&e<this.images.length-1?e+1:0,this.images[i]},r.prototype.getPrevImage=function(){var e=C(this.currentImage,this.images),i=0;return i=e>0&&e<=this.images.length-1?e-1:this.images.length-1,this.images[i]},r.prototype.buildTextDescription=function(e,i){if(!this.currentImageConfig||!this.currentImageConfig.description)throw new Error("Description input must be a valid object implementing the Description interface");if(this.currentImageConfig.description.customFullDescription&&""!==this.currentImageConfig.description.customFullDescription)return this.currentImageConfig.description.customFullDescription;var t=C(e,this.images),n=this.currentImageConfig.description.imageText?this.currentImageConfig.description.imageText:"",r=t+1+(this.currentImageConfig.description.numberSeparator?this.currentImageConfig.description.numberSeparator:"")+this.images.length;if(i)return n+r;var a=e.modal&&e.modal.description?e.modal.description:"";return n+r+(this.currentImageConfig.description.beforeTextDescription+a)},r.prototype.updateIndexes=function(){var e;try{e=C(this.currentImage,this.images)}catch(e){throw console.error("Cannot get the current image index in current-image"),e}this.isOpen&&this.handleBoundaries(e)},r}(y);Q.decorators=[{type:i.Component,args:[{selector:"ks-current-image",template:'<main class="main-image-container"\n ksKeyboardNavigation [isOpen]="isOpen" (keyboardNavigation)="onKeyPress($event)"\n [attr.aria-label]="accessibilityConfig.mainContainerAriaLabel"\n [title]="accessibilityConfig.mainContainerTitle">\n\n <div class="left-sub-container">\n <a class="nav-left {{isFirstImage ? \'no-pointer\' : \'\'}}"\n [attr.aria-label]="accessibilityConfig.mainPrevImageAriaLabel"\n [tabIndex]="isFirstImage ? -1 : 0" role="button"\n (click)="onNavigationEvent(\'left\', $event)" (keyup)="onNavigationEvent(\'left\', $event)">\n <div class="inside {{isFirstImage ? \'empty-arrow-image\' : \'left-arrow-image\'}}"\n aria-hidden="true"\n [title]="isFirstImage ? \'\' : accessibilityConfig.mainPrevImageTitle"></div>\n </a>\n\n <ng-container *ngIf="slideConfig?.sidePreviews?.show">\n <ng-container *ngIf="getLeftPreviewImage() as leftPreview">\n <img *ngIf="!isFirstImage; else firstImage"\n class="inside current-image-previous"\n [src]="leftPreview.plain?.img ? leftPreview.plain.img : leftPreview.modal.img"\n ksFallbackImage [fallbackImg]="leftPreview.plain?.fallbackImg ? leftPreview.plain.fallbackImg : leftPreview.modal.fallbackImg"\n [hidden]="loading"\n ksSize [sizeConfig]="{width: slideConfig.sidePreviews?.size.width, height: slideConfig.sidePreviews?.size.height}"\n [attr.aria-label]="leftPreview.modal.ariaLabel"\n [title]="(leftPreview.modal.title || leftPreview.modal.title === \'\') ? leftPreview.modal.title : getDescriptionToDisplay(leftPreview)"\n alt="{{leftPreview.modal.alt ? leftPreview.modal.alt : getAltDescriptionByImage(leftPreview)}}"\n [tabIndex]="0" role="img"\n (click)="onNavigationEvent(\'left\', $event, clickAction)" (keyup)="onNavigationEvent(\'left\', $event, keyboardAction)"/>\n <ng-template #firstImage>\n <div class="current-image-previous hidden"\n ksSize [sizeConfig]="{width: slideConfig.sidePreviews?.size.width, height: slideConfig.sidePreviews?.size.height}"></div>\n </ng-template>\n </ng-container>\n </ng-container>\n </div>\n\n\n <figure id="current-figure" [style.display]="loading ? \'none\' : \'\'">\n <img id="current-image"\n class="inside"\n [ngClass]="currentImageConfig.navigateOnClick ? \'\' : \'unclickable\'"\n [src]="currentImage.modal.img"\n ksFallbackImage [fallbackImg]="currentImage.modal.fallbackImg"\n [attr.aria-label]="currentImage.modal.ariaLabel"\n [title]="(currentImage.modal.title || currentImage.modal.title === \'\') ? currentImage.modal.title : getTitleToDisplay()"\n alt="{{currentImage.modal.alt ? currentImage.modal.alt : getAltDescriptionByImage()}}"\n [tabIndex]="0" role="img"\n (load)="onImageLoad($event)"\n (click)="onImageEvent($event, clickAction)" (keyup)="onImageEvent($event, keyboardAction)"\n (swipeleft)="swipe($event.type)"\n (swiperight)="swipe($event.type)"/>\n <figcaption *ngIf="getDescriptionToDisplay() !== \'\'"\n class="inside description"\n ksDescription [description]="currentImageConfig?.description"\n [innerHTML]="getDescriptionToDisplay()">\n </figcaption>\n </figure>\n\n <div class="right-sub-container">\n <ng-container *ngIf="slideConfig?.sidePreviews?.show">\n <ng-container *ngIf="getRightPreviewImage() as rightPreview">\n <img *ngIf="!isLastImage; else lastImage"\n class="inside current-image-next"\n [src]="rightPreview.plain?.img ? rightPreview.plain.img : rightPreview.modal.img"\n ksFallbackImage [fallbackImg]="rightPreview.plain?.fallbackImg ? rightPreview.plain.fallbackImg : rightPreview.modal.fallbackImg"\n [hidden]="loading"\n ksSize [sizeConfig]="{width: slideConfig.sidePreviews?.size.width, height: slideConfig.sidePreviews?.size.height}"\n [attr.aria-label]="rightPreview.modal.ariaLabel"\n [title]="(rightPreview.modal.title || rightPreview.modal.title === \'\') ? rightPreview.modal.title : getDescriptionToDisplay(rightPreview)"\n alt="{{rightPreview.modal.alt ? rightPreview.modal.alt : getAltDescriptionByImage(rightPreview)}}"\n [tabIndex]="0" role="img"\n (click)="onNavigationEvent(\'right\', $event, clickAction)" (keyup)="onNavigationEvent(\'right\', $event, keyboardAction)"/>\n <ng-template #lastImage>\n <div class="current-image-next hidden"\n ksSize [sizeConfig]="{width: slideConfig.sidePreviews?.size.width, height: slideConfig.sidePreviews?.size.height}">\n </div>\n </ng-template>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf="loading && currentImageConfig?.loadingConfig?.enable">\n <ks-loading-spinner [loadingConfig]="currentImageConfig?.loadingConfig"\n [accessibilityConfig]="accessibilityConfig"></ks-loading-spinner>\n </ng-container>\n\n <a class="nav-right {{isFirstImage ? \'no-pointer\' : \'\'}}"\n [attr.aria-label]="accessibilityConfig.mainNextImageAriaLabel"\n [tabIndex]="isLastImage ? -1 : 0" role="button"\n (click)="onNavigationEvent(\'right\', $event)" (keyup)="onNavigationEvent(\'right\', $event)">\n <div class="inside {{isLastImage ? \'empty-arrow-image\' : \'right-arrow-image\'}}"\n aria-hidden="true"\n [title]="isLastImage ? \'\' : accessibilityConfig.mainNextImageTitle"></div>\n </a>\n </div>\n</main>\n',changeDetection:i.ChangeDetectionStrategy.OnPush,styles:[":host{display:flex;flex-direction:column;justify-content:center}.main-image-container{align-items:center;display:flex;flex-direction:row;justify-content:space-between}.main-image-container .nav,.main-image-container>.left-sub-container>.nav-left,.main-image-container>.right-sub-container>.nav-right{animation:animatezoom 1s;cursor:pointer;transition:all .5s}.main-image-container .nav:hover,.main-image-container>.left-sub-container>.nav-left:hover,.main-image-container>.right-sub-container>.nav-right:hover{transform:scale(1.1)}.main-image-container>.left-sub-container{align-items:center;display:flex;flex-direction:row;justify-content:space-around}.main-image-container>.left-sub-container>.nav-left{margin-left:15px;margin-right:5px}.main-image-container>.left-sub-container>.nav-left.no-pointer{cursor:default!important}.main-image-container>.right-sub-container{align-items:center;display:flex;flex-direction:row;justify-content:space-around}.main-image-container>.right-sub-container>.nav-right{margin-left:5px;margin-right:15px}.main-image-container>.right-sub-container>.nav-right.no-pointer{cursor:default!important}.main-image-container #current-figure{animation:fadein-visible .8s;margin:0;position:relative;text-align:center}.main-image-container #current-figure>#current-image{display:block;height:auto;max-width:100%}.main-image-container #current-figure>#current-image.unclickable{cursor:not-allowed}.main-image-container #current-figure figcaption{bottom:0;left:0;padding:10px;position:absolute;right:0}.main-image-container #current-figure figcaption .description{font-weight:700;text-align:center}#current-image{cursor:pointer;height:auto;max-height:60vh;max-width:80vw}@media screen and (min-width:70vw){#current-image{max-width:70vw}}@keyframes fadein-visible{0%{opacity:0}to{opacity:1}}@keyframes fadein-semi-visible05{0%{opacity:0}to{opacity:.5}}@keyframes fadein-semi-visible08{0%{opacity:0}to{opacity:.8}}@keyframes fadein-semi-visible09{0%{opacity:0}to{opacity:.9}}",'.arrow-image,.empty-arrow-image,.left-arrow-image,.right-arrow-image{background-size:30px;height:30px;width:30px}.empty-arrow-image{background:#000;opacity:0}.left-arrow-image{background-image:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ3Ny4xNzUgNDc3LjE3NSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDc3LjE3NSA0NzcuMTc1OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgd2lkdGg9IjUxMnB4IiBoZWlnaHQ9IjUxMnB4Ij48Zz48cGF0aCBkPSJNMTQ1LjE4OCwyMzguNTc1bDIxNS41LTIxNS41YzUuMy01LjMsNS4zLTEzLjgsMC0xOS4xcy0xMy44LTUuMy0xOS4xLDBsLTIyNS4xLDIyNS4xYy01LjMsNS4zLTUuMywxMy44LDAsMTkuMWwyMjUuMSwyMjUgICBjMi42LDIuNiw2LjEsNCw5LjUsNHM2LjktMS4zLDkuNS00YzUuMy01LjMsNS4zLTEzLjgsMC0xOS4xTDE0NS4xODgsMjM4LjU3NXoiIGZpbGw9IiNGRkZGRkYiLz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PC9zdmc+");opacity:.8;transition:all .5s}.left-arrow-image:hover{transform:scale(1.2)}.right-arrow-image{background-image:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ3Ny4xNzUgNDc3LjE3NSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDc3LjE3NSA0NzcuMTc1OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgd2lkdGg9IjUxMnB4IiBoZWlnaHQ9IjUxMnB4Ij48Zz48cGF0aCBkPSJNMzYwLjczMSwyMjkuMDc1bC0yMjUuMS0yMjUuMWMtNS4zLTUuMy0xMy44LTUuMy0xOS4xLDBzLTUuMywxMy44LDAsMTkuMWwyMTUuNSwyMTUuNWwtMjE1LjUsMjE1LjUgICBjLTUuMyw1LjMtNS4zLDEzLjgsMCwxOS4xYzIuNiwyLjYsNi4xLDQsOS41LDRjMy40LDAsNi45LTEuMyw5LjUtNGwyMjUuMS0yMjUuMUMzNjUuOTMxLDI0Mi44NzUsMzY1LjkzMSwyMzQuMjc1LDM2MC43MzEsMjI5LjA3NXogICAiIGZpbGw9IiNGRkZGRkYiLz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PC9zdmc+");opacity:.8;transition:all .5s}.right-arrow-image:hover{transform:scale(1.2)}',"@media only screen and (max-device-width:1024px),only screen and (max-width:1024px){.current-image-next,.current-image-previous{display:none}}@media only screen and (min-device-width:1025px){.current-image-next,.current-image-preview,.current-image-previous{animation:fadein-semi-visible05 .8s;cursor:pointer;filter:alpha(opacity=50);height:auto;opacity:.5}.current-image-next:hover,.current-image-preview:hover,.current-image-previous:hover{opacity:1;transition:all .5s ease;transition-property:opacity}.current-image-previous{margin-left:10px;margin-right:5px}.current-image-next{margin-left:5px;margin-right:10px}}@keyframes fadein-semi-visible05{0%{opacity:0}to{opacity:.5}}"]}]}],Q.ctorParameters=function(){return[{type:void 0,decorators:[{type:i.Inject,args:[i.PLATFORM_ID]}]},{type:i.NgZone},{type:i.ChangeDetectorRef},{type:H}]},Q.propDecorators={id:[{type:i.Input}],currentImage:[{type:i.Input}],images:[{type:i.Input}],isOpen:[{type:i.Input}],loadImage:[{type:i.Output}],changeImage:[{type:i.Output}],closeGallery:[{type:i.Output}],onMouseEnter:[{type:i.HostListener,args:["mouseenter"]}],onMouseLeave:[{type:i.HostListener,args:["mouseleave"]}]};var V=function(){function e(e){this.platformId=e}return e.prototype.init=function(e){var i=this;return new Promise((function(n,r){e.keyboardServiceConfig&&!e.keyboardServiceConfig.disableSsrWorkaround&&t.isPlatformBrowser(i.platformId)?import("mousetrap").then((function(e){i.mousetrap=e,n()})).catch((function(e){r(e)})):n()}))},e.prototype.add=function(e,i){i.keyboardServiceConfig&&!i.keyboardServiceConfig.disableSsrWorkaround&&t.isPlatformBrowser(this.platformId)&&this.mousetrap.bind(i.keyboardServiceConfig.shortcuts,(function(i,t){i.preventDefault?i.preventDefault():i.returnValue=!1,e(i,t)}))},e.prototype.reset=function(e){e.keyboardServiceConfig&&!e.keyboardServiceConfig.disableSsrWorkaround&&t.isPlatformBrowser(this.platformId)&&this.mousetrap.reset()},e}();V.ɵprov=i.ɵɵdefineInjectable({factory:function(){return new V(i.ɵɵinject(i.PLATFORM_ID))},token:V,providedIn:"root"}),V.decorators=[{type:i.Injectable,args:[{providedIn:"root"}]}],V.ctorParameters=function(){return[{type:void 0,decorators:[{type:i.Inject,args:[i.PLATFORM_ID]}]}]};var J=function(){function e(){this.ids=new Map}return e.prototype.checkAndAdd=function(e){if(void 0===e||!Number.isInteger(e)||e<0)throw new Error('You must provide a valid [id]="unique integer > 0 here" to the gallery/carousel in your template');if(this.ids.get(e))throw new Error("Cannot create gallery with id="+e+" because already used in your application. This must be a unique integer >= 0");return this.ids.set(e,e),!0},e.prototype.remove=function(e){if(void 0===e||!Number.isInteger(e)||e<0)throw new Error('You must provide a valid [id]="unique integer > 0 here" to the gallery/carousel in your template');return this.ids.delete(e),!0},e}();J.ɵprov=i.ɵɵdefineInjectable({factory:function(){return new J},token:J,providedIn:"root"}),J.decorators=[{type:i.Injectable,args:[{providedIn:"root"}]}];var $=function(){function n(e,i,t,n,r,a,o,s){var l=this;this.dialogContent=e,this.modalGalleryService=i,this.keyboardService=t,this.platformId=n,this.changeDetectorRef=r,this.idValidatorService=a,this.configService=o,this.sanitizer=s,this.enableCloseOutside=!0,this.accessibilityConfig=j,this.showGallery=!1,this.id=this.dialogContent.id,this.images=this.dialogContent.images,this.currentImage=this.dialogContent.currentImage,this.libConfig=this.dialogContent.libConfig,this.configService.setConfig(this.id,this.libConfig),this.updateImagesSubscription=this.modalGalleryService.updateImages$.subscribe((function(e){l.images=e.map((function(e){return Object.assign({},e,{previouslyLoaded:!1})})),l.initImages(),l.images.forEach((function(e){e.id===l.currentImage.id&&(l.currentImage=e)})),l.changeDetectorRef.markForCheck()}))}return n.prototype.onPopState=function(e){this.closeGallery()},n.prototype.ngOnInit=function(){if(this.idValidatorService.checkAndAdd(this.id),!this.id&&0!==this.id||this.id<0)throw new Error("'[id]=\"a number >= 0\"' is a mandatory input in angular-modal-gallery.If you are using multiple instances of this library, please be sure to use different ids");var e=this.configService.getConfig(this.id);if(!e||!e.dotsConfig)throw new Error("Internal library error - libConfig and dotsConfig must be defined");this.dotsConfig=e.dotsConfig,this.initImages(),this.showModalGallery()},n.prototype.onCustomEmit=function(e){var i=this.getButtonEventToEmit(e);this.modalGalleryService.emitButtonBeforeHook(i),this.modalGalleryService.emitButtonAfterHook(i)},n.prototype.onFullScreen=function(e){var i=this.getButtonEventToEmit(e);this.modalGalleryService.emitButtonBeforeHook(i);var t=document,n=document.documentElement;!(t.fullscreenElement||t.webkitFullscreenElement||t.mozFullScreenElement||t.msFullscreenElement)?n.requestFullscreen?n.requestFullscreen():n.webkitRequestFullscreen?n.webkitRequestFullscreen():n.mozRequestFullScreen?n.mozRequestFullScreen():n.msRequestFullscreen&&n.msRequestFullscreen():t.exitFullscreen?t.exitFullscreen():t.msExitFullscreen?t.msExitFullscreen():t.mozCancelFullScreen?t.mozCancelFullScreen():t.webkitExitFullscreen&&t.webkitExitFullscreen(),this.modalGalleryService.emitButtonAfterHook(i)},n.prototype.onDelete=function(e){var i=this.getButtonEventToEmit(e);if(this.modalGalleryService.emitButtonBeforeHook(i),1===this.images.length&&this.closeGallery(),!this.currentImageComponent)throw new Error("currentImageComponent must be defined");this.currentImageComponent.getIndexToDelete(e.image)===this.images.length-1?this.currentImageComponent.prevImage():this.currentImageComponent.nextImage(),this.modalGalleryService.emitButtonAfterHook(i)},n.prototype.onNavigate=function(e){var i=this.getButtonEventToEmit(e);if(this.modalGalleryService.emitButtonBeforeHook(i),t.isPlatformBrowser(this.platformId)&&i.image&&i.image.modal.extUrl)if(i.button&&i.button.extUrlInNewTab){var n=window.open(i.image.modal.extUrl,"noopener,noreferrer,");n&&(n.opener=null,this.modalGalleryService.emitButtonAfterHook(i))}else window.location.href=i.image.modal.extUrl,this.modalGalleryService.emitButtonAfterHook(i)},n.prototype.onDownload=function(e){var i=this.getButtonEventToEmit(e);this.modalGalleryService.emitButtonBeforeHook(i),this.downloadImage(),this.modalGalleryService.emitButtonAfterHook(i)},n.prototype.onCloseGallery=function(i,t){void 0===t&&(t=e.Action.NORMAL);var n=this.getButtonEventToEmit(i);this.modalGalleryService.emitButtonBeforeHook(n),this.closeGallery(t,!1),this.modalGalleryService.emitButtonAfterHook(n)},n.prototype.closeGallery=function(i,t,n){void 0===i&&(i=e.Action.NORMAL),void 0===t&&(t=!1),void 0===n&&(n=!1);var r=this.configService.getConfig(this.id);if(!r)throw new Error("Internal library error - libConfig must be defined");this.modalGalleryService.emitClose(new b(this.id,i,!0)),this.keyboardService.reset(r),this.modalGalleryService.close(this.id,t),document.body.style.overflow="visible",n&&this.changeDetectorRef.markForCheck()},n.prototype.showModalGallery=function(){var i=this;if(document.body.style.overflow="hidden",!this.id)throw new Error("Internal library error - id must be defined");var t=this.configService.getConfig(this.id);if(!t)throw new Error("Internal library error - libConfig must be defined");this.keyboardService.init(t).then((function(){i.keyboardService.add((function(e,t){e.preventDefault?e.preventDefault():e.returnValue=!1,i.downloadImage()}),t);var n=i.images.indexOf(i.currentImage);i.modalGalleryService.emitShow(new b(i.id,e.Action.LOAD,n+1)),i.changeDetectorRef.markForCheck()}))},n.prototype.onChangeCurrentImage=function(e){var i=e.result;i<0||i>=this.images.length||(this.currentImage=this.images[i],this.emitBoundaryEvent(e.action,i),this.modalGalleryService.emitShow(new b(this.id,e.action,i+1)))},n.prototype.onClickOutside=function(i){i&&this.enableCloseOutside&&this.closeGallery(e.Action.CLICK,!0)},n.prototype.onImageLoad=function(e){this.images=this.images.map((function(i){return i&&i.id===e.id?Object.assign({},i,{previouslyLoaded:e.status}):i}))},n.prototype.onClickDot=function(e){this.currentImage=this.images[e]},n.prototype.onClickPreview=function(e){this.onChangeCurrentImage(e)},n.prototype.downloadImage=function(){if(!this.id)throw new Error("Internal library error - id must be defined");var e=this.configService.getConfig(this.id);if(!e)throw new Error("Internal library error - libConfig must be defined");var i=e.currentImageConfig;i&&!i.downloadable||(this.isIEorEdge()?this.downloadImageOnlyIEorEdge():this.downloadImageAllBrowsers())},n.prototype.ngOnDestroy=function(){if(this.keyboardService){var e=this.configService.getConfig(this.id);this.id&&e&&this.keyboardService.reset(e)}this.updateImagesSubscription&&this.updateImagesSubscription.unsubscribe(),this.idValidatorService.remove(this.id)},n.prototype.base64toBlob=function(e,i){void 0===i&&(i="");for(var t=1024,n=atob(e),r=n.length,a=Math.ceil(r/t),o=new Array(a),s=0;s<a;++s){for(var l=s*t,c=Math.min(l+t,r),g=new Array(c-l),u=l,d=0;u<c;++d,++u)g[d]=n[u].charCodeAt(0);o[s]=new Uint8Array(g)}return new Blob(o,{type:i})},n.prototype.downloadImageAllBrowsers=function(){var e,t=document.createElement("a"),n=!1;if((e="string"==typeof this.currentImage.modal.img?this.currentImage.modal.img:this.sanitizer.sanitize(i.SecurityContext.RESOURCE_URL,this.currentImage.modal.img)).includes("data:image/")||e.includes(";base64,")){var r=e.replace("data:image/","").split(";base64,")[0],a=e.split(";base64,")[1],o=this.base64toBlob(a,"image/"+r);t.href=URL.createObjectURL(o),n=!0,t.setAttribute("download",this.getFileName(this.currentImage,n,r))}else t.href=e,t.setAttribute("download",this.getFileName(this.currentImage,n));document.body.appendChild(t),t.click(),document.body.removeChild(t)},n.prototype.downloadImageOnlyIEorEdge=function(){var e=this;if(t.isPlatformBrowser(this.platformId)){var i=new XMLHttpRequest;i.open("GET",this.currentImage.modal.img,!0),i.responseType="arraybuffer",i.onload=function(t){var n=new Blob([i.response],{type:"image/png"});window.navigator.msSaveBlob(n,e.getFileName(e.currentImage))},i.send()}},n.prototype.getButtonEventToEmit=function(e){return Object.assign(e,{image:this.currentImage})},n.prototype.getFileName=function(e,i,t){return void 0===i&&(i=!1),void 0===t&&(t=""),e.modal.downloadFileName&&0!==e.modal.downloadFileName.length?e.modal.downloadFileName:i?"Image-"+e.id+"."+(""!==t?t:"png"):e.modal.img.replace(/^.*[\\\/]/,"")},n.prototype.initImages=function(){this.modalGalleryService.emitHasData(new b(this.id,e.Action.LOAD,!0)),this.showGallery=this.images.length>0},n.prototype.emitBoundaryEvent=function(e,i){switch(i){case 0:this.modalGalleryService.emitFirstImage(new b(this.id,e,!0));break;case this.images.length-1:this.modalGalleryService.emitLastImage(new b(this.id,e,!0))}},n.prototype.isIEorEdge=function(){return t.isPlatformBrowser(this.platformId)?!!window.Blob&&!!window.navigator.msSaveOrOpenBlob:!!t.isPlatformServer(this.platformId)},n}();$.decorators=[{type:i.Component,args:[{selector:"ks-modal-gallery",template:'<div id="modal-gallery-wrapper"\n [attr.aria-label]="accessibilityConfig.modalGalleryContentAriaLabel"\n [title]="accessibilityConfig.modalGalleryContentTitle"\n ksClickOutside [clickOutsideEnable]="enableCloseOutside"\n (clickOutside)="onClickOutside($event)">\n\n <div id="flex-min-height-ie-fix">\n <div id="modal-gallery-container">\n\n <ks-upper-buttons [id]="id"\n [currentImage]="currentImage"\n (delete)="onDelete($event)"\n (navigate)="onNavigate($event)"\n (download)="onDownload($event)"\n (closeButton)="onCloseGallery($event)"\n (fullscreen)="onFullScreen($event)"\n (customEmit)="onCustomEmit($event)"></ks-upper-buttons>\n\n <ks-current-image [id]="id"\n [images]="images"\n [currentImage]="currentImage"\n [isOpen]="true"\n (loadImage)="onImageLoad($event)"\n (changeImage)="onChangeCurrentImage($event)"\n (closeGallery)="onCloseGallery($event)"></ks-current-image>\n\n <div>\n <ks-dots [id]="id"\n [images]="images"\n [currentImage]="currentImage"\n [dotsConfig]="dotsConfig"\n (clickDot)="onClickDot($event)"></ks-dots>\n\n <ks-previews [id]="id"\n [images]="images"\n [currentImage]="currentImage"\n (clickPreview)="onClickPreview($event)"></ks-previews>\n </div>\n </div>\n </div>\n</div>\n',styles:["#flex-min-height-ie-fix{display:flex;flex-direction:column;justify-content:center}#modal-gallery-container{display:flex;flex-direction:column;justify-content:space-between;min-height:100vh;min-width:100vw}"]}]}],$.ctorParameters=function(){return[{type:void 0,decorators:[{type:i.Inject,args:[F]}]},{type:ee},{type:V},{type:Object,decorators:[{type:i.Inject,args:[i.PLATFORM_ID]}]},{type:i.ChangeDetectorRef},{type:J},{type:H},{type:n.DomSanitizer}]},$.propDecorators={currentImageComponent:[{type:i.ViewChild,args:[Q,{static:!0}]}],onPopState:[{type:i.HostListener,args:["window:popstate",["$event"]]}]};var X=function(){function e(e){this.overlayRef=e,this.close=new a.Subject,this.close$=this.close.asObservable(),this.show=new a.Subject,this.show$=this.show.asObservable(),this.firstImage=new a.Subject,this.firstImage$=this.firstImage.asObservable(),this.lastImage=new a.Subject,this.lastImage$=this.lastImage.asObservable(),this.hasData=new a.Subject,this.hasData$=this.hasData.asObservable(),this.buttonBeforeHook=new a.Subject,this.buttonBeforeHook$=this.buttonBeforeHook.asObservable(),this.buttonAfterHook=new a.Subject,this.buttonAfterHook$=this.buttonAfterHook.asObservable()}return e.prototype.closeModal=function(){this.overlayRef.dispose()},e.prototype.emitClose=function(e){this.close.next(e)},e.prototype.emitShow=function(e){this.show.next(e)},e.prototype.emitFirstImage=function(e){this.firstImage.next(e)},e.prototype.emitLastImage=function(e){this.lastImage.next(e)},e.prototype.emitHasData=function(e){this.hasData.next(e)},e.prototype.emitButtonBeforeHook=function(e){this.buttonBeforeHook.next(e)},e.prototype.emitButtonAfterHook=function(e){this.buttonAfterHook.next(e)},e}(),_=!0,K="ks-modal-gallery-backdrop",q="ks-modal-gallery-panel",ee=function(){function e(e,i,t){this.injector=e,this.overlay=i,this.configService=t,this.updateImages=new a.Subject,this.updateImages$=this.updateImages.asObservable()}return e.prototype.open=function(e){var i=this,t=this.createOverlay();this.dialogRef=new X(t);this.attachDialogContainer(t,e,this.dialogRef);return t.backdropClick().subscribe((function(){i.dialogRef&&i.dialogRef.closeModal()})),this.dialogRef},e.prototype.close=function(e,i){var t=this.configService.getConfig(e);i?this.dialogRef&&t&&t.enableCloseOutside&&this.dialogRef.closeModal():this.dialogRef&&this.dialogRef.closeModal()},e.prototype.updateModalImages=function(e){this.updateImages.next(e)},e.prototype.emitClose=function(e){this.dialogRef&&this.dialogRef.emitClose(e)},e.prototype.emitShow=function(e){this.dialogRef&&this.dialogRef.emitShow(e)},e.prototype.emitFirstImage=function(e){this.dialogRef&&this.dialogRef.emitFirstImage(e)},e.prototype.emitLastImage=function(e){this.dialogRef&&this.dialogRef.emitLastImage(e)},e.prototype.emitHasData=function(e){this.dialogRef&&this.dialogRef.emitHasData(e)},e.prototype.emitButtonBeforeHook=function(e){this.dialogRef&&this.dialogRef.emitButtonBeforeHook(e)},e.prototype.emitButtonAfterHook=function(e){this.dialogRef&&this.dialogRef.emitButtonAfterHook(e)},e.prototype.createOverlay=function(){var e=this.getOverlayConfig();return this.overlay.create(e)},e.prototype.attachDialogContainer=function(e,i,t){var n=this.createInjector(i,t),r=new s.ComponentPortal($,null,n);return e.attach(r).instance},e.prototype.createInjector=function(e,i){var t=new WeakMap;return t.set(X,i),t.set(F,e),new s.PortalInjector(this.injector,t)},e.prototype.getOverlayConfig=function(){var e=this.overlay.position().global().centerHorizontally().centerVertically();return new r.OverlayConfig({hasBackdrop:_,backdropClass:K,panelClass:q,scrollStrategy:this.overlay.scrollStrategies.block(),positionStrategy:e})},e}();ee.ɵprov=i.ɵɵdefineInjectable({factory:function(){return new ee(i.ɵɵinject(i.INJECTOR),i.ɵɵinject(r.Overlay),i.ɵɵinject(H))},token:ee,providedIn:"root"}),ee.decorators=[{type:i.Injectable,args:[{providedIn:"root"}]}],ee.ctorParameters=function(){return[{type:i.Injector},{type:r.Overlay},{type:H}]};var ie=function(n){function r(t,r,o,s,l,c){var g=n.call(this)||this;return g.platformId=t,g.ngZone=r,g.modalGalleryService=o,g.configService=s,g.ref=l,g.sanitizer=c,g.ariaLabel="Carousel",g.images=[],g.infinite=!0,g.disableSsrWorkaround=!1,g.showImage=new i.EventEmitter,g.firstImage=new i.EventEmitter,g.lastImage=new i.EventEmitter,g.configAccessibility=j,g.clickAction=e.Action.CLICK,g.keyboardAction=e.Action.KEYBOARD,g.isFirstImage=!1,g.isLastImage=!1,g.start$=new a.Subject,g.stop$=new a.Subject,g.SWIPE_ACTION={LEFT:"swipeleft",RIGHT:"swiperight",UP:"swipeup",DOWN:"swipedown"},g}return g(r,n),r.prototype.onMouseEnter=function(){if(!this.id)throw new Error("Internal library error - id must be defined");var e=this.configService.getConfig(this.id);if(!e)throw new Error("Internal library error - libConfig must be defined");e.carouselPlayConfig&&e.carouselPlayConfig.pauseOnHover&&this.stopCarousel()},r.prototype.onMouseLeave=function(){if(!this.id)throw new Error("Internal library error - id must be defined");var e=this.configService.getConfig(this.id);if(!e)throw new Error("Internal library error - libConfig must be defined");e.carouselPlayConfig&&e.carouselPlayConfig.pauseOnHover&&e.carouselPlayConfig.autoPlay&&this.playCarousel()},r.prototype.onKeyDownLeft=function(){if(!this.id)throw new Error("Internal library error - id must be defined");var e=this.configService.getConfig(this.id);if(!e)throw new Error("Internal library error - libConfig must be defined");e.carouselConfig&&e.carouselConfig.keyboardEnable&&this.prevImage()},r.prototype.onKeyDownLRight=function(){if(!this.id)throw new Error("Internal library error - id must be defined");var e=this.configService.getConfig(this.id);if(!e)throw new Error("Internal library error - libConfig must be defined");e.carouselConfig&&e.carouselConfig.keyboardEnable&&this.nextImage()},r.prototype.ngOnChanges=function(e){if(!this.id)throw new Error("Internal library error - id must be defined");var i=this.configService.getConfig(this.id);if(!i)throw new Error("Internal library error - libConfig must be defined");var t=e.dotsConfig;t&&t.currentValue!==t.previousValue&&(this.configService.setConfig(this.id,{carouselDotsConfig:t.currentValue}),this.configDots=i.carouselDotsConfig);var n=e.carouselConfig;n&&n.currentValue!==n.previousValue&&(this.configService.setConfig(this.id,{carouselConfig:n.currentValue}),this.configCarousel=n.currentValue);var r=e.playConfig;if(r){var a=r.previousValue,o=r.currentValue;a!==o&&(this.configService.setConfig(this.id,{carouselPlayConfig:r.currentValue}),o.autoPlay&&!r.isFirstChange()?this.start$.next():this.stopCarousel())}},r.prototype.ngOnInit=function(){if(!this.id)throw new Error("Internal library error - id must be defined");if(!this.images)throw new Error("Internal library error - images must be defined");var e=this.configService.getConfig(this.id);if(!e)throw new Error("Internal library error - libConfig must be defined");this.currentImage=this.images[0],this.configService.setConfig(this.id,{carouselConfig:this.carouselConfig,carouselImageConfig:this.carouselImageConfig,carouselPlayConfig:this.playConfig,carouselPreviewsConfig:this.previewConfig,carouselDotsConfig:this.dotsConfig,accessibilityConfig:this.accessibilityConfig,keyboardServiceConfig:{shortcuts:["ctrl+s","meta+s"],disableSsrWorkaround:this.disableSsrWorkaround}}),this.configCarousel=e.carouselConfig,this.configCarouselImage=e.carouselImageConfig,this.configPlay=e.carouselPlayConfig,this.configPreview=e.carouselPreviewsConfig,this.configDots=e.carouselDotsConfig,this.configAccessibility=e.accessibilityConfig,this.manageSlideConfig()},r.prototype.ngAfterContentInit=function(){var e=this;if(t.isPlatformBrowser(this.platformId)){if(!this.id)throw new Error("Internal library error - id must be defined");var i=this.configService.getConfig(this.id);if(!i||!i.carouselPlayConfig)throw new Error("Internal library error - libConfig and carouselPlayConfig must be defined");this.ngZone.runOutsideAngular((function(){e.start$.pipe(o.map((function(){return i&&i.carouselPlayConfig&&i.carouselPlayConfig.interval})),o.filter((function(e){return e>0})),o.switchMap((function(i){return a.timer(i).pipe(o.takeUntil(e.stop$))}))).subscribe((function(){return e.ngZone.run((function(){e.configPlay&&e.configPlay.autoPlay&&e.nextImage(),e.ref.markForCheck()}))})),e.start$.next()}))}},r.prototype.sanitizeUrlBgStyle=function(e,i){var t="url("+e+")";return i&&(t+=", url("+i+")"),this.sanitizer.bypassSecurityTrustStyle(t)},r.prototype.onClickDot=function(i){this.changeCurrentImage(this.images[i],e.Action.NORMAL)},r.prototype.onNavigationEvent=function(i,t,r){void 0===r&&(r=e.Action.NORMAL);var a=n.prototype.handleNavigationEvent.call(this,i,t);1===a?this.nextImage(r):a===h&&this.prevImage(r)},r.prototype.onClickCurrentImage=function(){if(!this.id)throw new Error("Internal library error - id must be defined");var e=this.configService.getConfig(this.id);if(!e||!e.carouselConfig||!this.currentImage)throw new Error("Internal library error - libConfig, carouselConfig and currentImage must be defined");if(e.carouselConfig.modalGalleryEnable){var i=C(this.currentImage,this.images);this.modalGalleryService.open({id:this.id,images:this.images,currentImage:this.images[i],libConfig:{keyboardServiceConfig:{shortcuts:["ctrl+s","meta+s"],disableSsrWorkaround:this.disableSsrWorkaround}}})}},r.prototype.getDescriptionToDisplay=function(i){if(void 0===i&&(i=this.currentImage),!this.id)throw new Error("Internal library error - id must be defined");var t=this.configService.getConfig(this.id);if(!t)throw new Error("Internal library error - libConfig must be defined");var n=t.carouselImageConfig;if(!n||!n.description)throw new Error("Description input must be a valid object implementing the Description interface");if(!i)throw new Error("Internal library error - image must be defined");var r=!i||!i.modal||!i.modal.description||""===i.modal.description;switch(n.description.strategy){case e.DescriptionStrategy.HIDE_IF_EMPTY:return r?"":i.modal.description+"";case e.DescriptionStrategy.ALWAYS_HIDDEN:return"";default:return this.buildTextDescription(i,r)}},r.prototype.swipe=function(i){if(void 0===i&&(i=this.SWIPE_ACTION.RIGHT),!this.id)throw new Error("Internal library error - id must be defined");var t=this.configService.getConfig(this.id);if(!t||!t.carouselImageConfig)throw new Error("Internal library error - libConfig and carouselImageConfig must be defined");var n=t.carouselImageConfig;switch(i){case this.SWIPE_ACTION.RIGHT:n.invertSwipe?this.prevImage(e.Action.SWIPE):this.nextImage(e.Action.SWIPE);break;case this.SWIPE_ACTION.LEFT:n.invertSwipe?this.nextImage(e.Action.SWIPE):this.prevImage(e.Action.SWIPE)}},r.prototype.prevImage=function(i){void 0===i&&(i=e.Action.NORMAL),this.isPreventSliding(0)||(this.changeCurrentImage(this.getPrevImage(),i),this.manageSlideConfig(),this.start$.next())},r.prototype.nextImage=function(i){void 0===i&&(i=e.Action.NORMAL),this.isPreventSliding(this.images.length-1)||(this.changeCurrentImage(this.getNextImage(),i),this.manageSlideConfig(),this.start$.next())},r.prototype.trackById=function(e,i){return i.id},r.prototype.onClickPreview=function(e){var i=this.images[e.result];i&&(this.manageSlideConfig(),this.changeCurrentImage(i,e.action))},r.prototype.playCarousel=function(){this.start$.next()},r.prototype.stopCarousel=function(){this.stop$.next()},r.prototype.getAltDescriptionByImage=function(e){return void 0===e&&(e=this.currentImage),e?e.modal&&e.modal.description?e.modal.description:"Image "+(C(e,this.images)+1):""},r.prototype.getTitleToDisplay=function(e){if(void 0===e&&(e=this.currentImage),!this.id)throw new Error("Internal library error - id must be defined");var i=this.configService.getConfig(this.id);if(!i||!i.carouselImageConfig)throw new Error("Internal library error - libConfig and carouselImageConfig must be defined");var t=i.carouselImageConfig;if(!t||!t.description)throw new Error("Description input must be a valid object implementing the Description interface");var n=!e||!e.modal||!e.modal.description||""===e.modal.description;return this.buildTextDescription(e,n)},r.prototype.ngOnDestroy=function(){this.stopCarousel()},r.prototype.changeCurrentImage=function(e,i){if(!this.id)throw new Error("Internal library error - id must be defined");this.currentImage=e;var t=C(e,this.images);this.emitBoundaryEvent(i,t),this.showImage.emit(new M(this.id,i,t+1))},r.prototype.getNextImage=function(){if(!this.currentImage)throw new Error("Internal library error - currentImage must be defined");var e=C(this.currentImage,this.images),i=0;return i=e>=0&&e<this.images.length-1?e+1:0,this.images[i]},r.prototype.getPrevImage=function(){if(!this.currentImage)throw new Error("Internal library error - currentImage must be defined");var e=C(this.currentImage,this.images),i=0;return i=e>0&&e<=this.images.length-1?e-1:this.images.length-1,this.images[i]},r.prototype.buildTextDescription=function(e,i){if(!this.id)throw new Error("Internal library error - id must be defined");var t=this.configService.getConfig(this.id);if(!t||!t.carouselImageConfig)throw new Error("Internal library error - libConfig and carouselImageConfig must be defined");var n=t.carouselImageConfig;if(!n||!n.description)throw new Error("Description input must be a valid object implementing the Description interface");if(!e)throw new Error("Internal library error - image must be defined");if(n.description.customFullDescription&&""!==n.description.customFullDescription)return n.description.customFullDescription;var r=C(e,this.images),a=n.description.imageText?n.description.imageText:"",o=r+1+(n.description.numberSeparator?n.description.numberSeparator:"")+this.images.length;if(i)return a+o;var s=e.modal&&e.modal.description?e.modal.description:"";return a+o+(n.description.beforeTextDescription+s)},r.prototype.handleBoundaries=function(e){if(1===this.images.length)return this.isFirstImage=!0,void(this.isLastImage=!0);switch(e){case 0:this.isFirstImage=!0,this.isLastImage=!1;break;case this.images.length-1:this.isFirstImage=!1,this.isLastImage=!0;break;default:this.isFirstImage=!1,this.isLastImage=!1}},r.prototype.manageSlideConfig=function(){if(!this.currentImage)throw new Error("Internal library error - currentImage must be defined");var e;try{e=C(this.currentImage,this.images)}catch(e){throw console.error("Cannot get the current image index in current-image"),e}!0===this.infinite?(this.isFirstImage=!1,this.isLastImage=!1):this.handleBoundaries(e)},r.prototype.emitBoundaryEvent=function(e,i){if(this.id)switch(i){case 0:this.firstImage.emit(new M(this.id,e,!0));break;case this.images.length-1:this.lastImage.emit(new M(this.id,e,!0))}},r.prototype.isPreventSliding=function(e){if(!this.currentImage)throw new Error("Internal library error - currentImage must be defined");return!this.infinite&&C(this.currentImage,this.images)===e},r}(y);ie.decorators=[{type:i.Component,args:[{selector:"ks-carousel",template:'<main id="carousel-container"\n [attr.aria-label]="configAccessibility.carouselContainerAriaLabel"\n [title]="configAccessibility.carouselContainerTitle"\n ksMaxSize [maxSizeConfig]="{maxWidth: configCarousel?.maxWidth,\n maxHeight: \'\'}">\n\n\n \x3c!-- Workaround to support 2 ng-content in the same template in 2 ngIf (https://github.com/angular/angular/issues/22972) --\x3e\n <ng-template #content><ng-content></ng-content></ng-template>\n\n \x3c!-- Normal figure used by all browsers except for IE11, because\n it doesn\'t support object-fit cover.--\x3e\n <figure class="current-figure" *ngIf="configCarousel?.legacyIE11Mode === false; else legacyMode"\n ksSize [sizeConfig]="{width: configCarousel?.maxWidth,\n height: \'\'}">\n\n <a class="nav-left" *ngIf="configCarousel?.showArrows"\n [attr.aria-label]="configAccessibility.carouselPrevImageAriaLabel"\n [tabIndex]="isLastImage && !infinite ? -1 : 0" role="button"\n (click)="onNavigationEvent(\'left\', $event, clickAction)" (keyup)="onNavigationEvent(\'left\', $event, keyboardAction)">\n <div class="inside {{(isFirstImage && !infinite) || !configCarousel.showArrows ? \'empty-arrow-image\' : \'left-arrow-image\'}}"\n aria-hidden="true"\n [title]="configAccessibility.carouselPrevImageTitle"></div>\n </a>\n\n <ng-container *ngTemplateOutlet="content"></ng-container>\n\n <img id="current-image"\n [style.object-fit]="configCarousel?.objectFit"\n ksMaxSize [maxSizeConfig]="{maxWidth: configCarousel?.maxWidth,\n maxHeight: configCarousel?.maxHeight}"\n [src]="currentImage.modal.img"\n ksFallbackImage [fallbackImg]="currentImage.modal.fallbackImg"\n [attr.aria-label]="currentImage.modal.ariaLabel"\n [title]="(currentImage.modal.title || currentImage.modal.title === \'\') ? currentImage.modal.title : getTitleToDisplay()"\n alt="{{currentImage.modal.alt ? currentImage.modal.alt : getAltDescriptionByImage()}}"\n [tabIndex]="0" role="img"\n (click)="onClickCurrentImage()"\n (swipeleft)="swipe($event.type)"\n (swiperight)="swipe($event.type)"/>\n\n <figcaption *ngIf="getDescriptionToDisplay() !== \'\'"\n class="description"\n ksDescription [description]="configCarouselImage?.description"\n [innerHTML]="getDescriptionToDisplay()"></figcaption>\n\n <a class="nav-right" *ngIf="configCarousel?.showArrows"\n [attr.aria-label]="configAccessibility.carouselNextImageAriaLabel"\n [tabIndex]="isLastImage && !infinite ? -1 : 0" role="button"\n (click)="onNavigationEvent(\'right\', $event, clickAction)" (keyup)="onNavigationEvent(\'right\', $event, keyboardAction)">\n <div class="inside {{(isLastImage && !infinite) || !configCarousel.showArrows ? \'empty-arrow-image\' : \'right-arrow-image\'}}"\n aria-hidden="true"\n [title]="configAccessibility.carouselNextImageTitle"></div>\n </a>\n\n <div id="dots">\n <ks-dots [id]="id"\n [currentImage]="currentImage"\n [images]="images"\n [dotsConfig]="dotsConfig"\n (clickDot)="onClickDot($event)"></ks-dots>\n </div>\n\n </figure>\n\n \x3c!-- Legacy mode to support img cover also on IE11,\n because it doesn\'t support natively object-fit cover. --\x3e\n <ng-template #legacyMode>\n <div class="current-figure"\n ksSize [sizeConfig]="{width: configCarousel?.maxWidth,\n height: \'\'}">\n\n <a class="nav-left" *ngIf="configCarousel?.showArrows"\n [attr.aria-label]="configAccessibility.carouselPrevImageAriaLabel"\n [tabindex]="isLastImage && !infinite ? -1 : 0" role="button"\n (click)="onNavigationEvent(\'left\', $event, clickAction)" (keyup)="onNavigationEvent(\'left\', $event, keyboardAction)">\n <div class="inside {{(isFirstImage && !infinite) || !configCarousel.showArrows ? \'empty-arrow-image\' : \'left-arrow-image\'}}"\n aria-hidden="true"\n [title]="configAccessibility.carouselPrevImageTitle"></div>\n </a>\n\n <ng-container *ngTemplateOutlet="content"></ng-container>\n\n <div id="current-image-legacy"\n [style.background-color]="\'transparent\'"\n [style.background-image]="sanitizeUrlBgStyle(currentImage.modal.img + \'\', currentImage.modal.fallbackImg + \'\')"\n [style.background-position]="\'center center\'"\n [style.background-size]="\'cover\'"\n [style.background-repeat]="\'no-repeat\'"\n [style.background-attachment]="\'scroll\'"\n ksSize [sizeConfig]="{width: \'100%\',\n height: configCarousel?.maxHeight}"\n ksMaxSize [maxSizeConfig]="{maxWidth: configCarousel?.maxWidth}"\n [attr.aria-label]="currentImage.modal.ariaLabel"\n [title]="(currentImage.modal.title || currentImage.modal.title === \'\') ? currentImage.modal.title : getTitleToDisplay()"\n [tabIndex]="0" role="img"\n (click)="onClickCurrentImage()"\n (swipeleft)="swipe($event.type)"\n (swiperight)="swipe($event.type)">\n\n <div *ngIf="getDescriptionToDisplay() !== \'\'"\n class="description-ie11"\n ksDescription [description]="configCarouselImage?.description"\n [innerHTML]="getDescriptionToDisplay()"></div>\n </div>\n\n <a class="nav-right" *ngIf="configCarousel?.showArrows"\n [attr.aria-label]="configAccessibility.carouselNextImageAriaLabel"\n [tabIndex]="isLastImage && !infinite ? -1 : 0" role="button"\n (click)="onNavigationEvent(\'right\', $event, clickAction)" (keyup)="onNavigationEvent(\'right\', $event, keyboardAction)">\n <div class="inside {{(isLastImage && !infinite) || !configCarousel.showArrows ? \'empty-arrow-image\' : \'right-arrow-image\'}}"\n aria-hidden="true"\n [title]="configAccessibility.carouselNextImageTitle"></div>\n </a>\n\n <div id="dots-ie11">\n <ks-dots [id]="id"\n [currentImage]="currentImage"\n [images]="images"\n (clickDot)="onClickDot($event)"></ks-dots>\n </div>\n\n </div>\n </ng-template>\n\n</main>\n\n<ks-carousel-previews [id]="id"\n [images]="images"\n [currentImage]="currentImage"\n (clickPreview)="onClickPreview($event)"></ks-carousel-previews>\n',changeDetection:i.ChangeDetectionStrategy.OnPush,providers:[H],styles:[":host{flex-direction:column;justify-content:flex-start}#carousel-container,:host{align-items:center;display:flex}#carousel-container{flex-direction:row;justify-content:space-between;width:100%}#carousel-container>.current-figure{animation:fadein-visible .8s;margin:0;position:relative;text-align:center}#carousel-container>.current-figure .nav,#carousel-container>.current-figure>.nav-left,#carousel-container>.current-figure>.nav-right{animation:animatezoom 1s;cursor:pointer;position:absolute;top:50%;transition:all .5s}#carousel-container>.current-figure .nav:hover,#carousel-container>.current-figure>.nav-left:hover,#carousel-container>.current-figure>.nav-right:hover{transform:scale(1.1)}#carousel-container>.current-figure>.nav-left{left:5px}#carousel-container>.current-figure>.nav-right{right:5px}#carousel-container>.current-figure>#current-image,#carousel-container>.current-figure>#current-image-legacy{display:block;height:auto;width:100%}#carousel-container>.current-figure>#current-image-legacy>.description-ie11{bottom:0;padding-bottom:10px;padding-top:10px;position:absolute;width:100%}#carousel-container>.current-figure>figcaption{bottom:0;left:0;padding:10px;position:absolute;right:0}#carousel-container>.current-figure>figcaption .description{font-weight:700;text-align:center}#carousel-container>.current-figure>#dots,#carousel-container>.current-figure>#dots-ie11{bottom:20px;position:absolute;width:100%}",'.arrow-image,.empty-arrow-image,.left-arrow-image,.right-arrow-image{background-size:30px;height:30px;width:30px}.empty-arrow-image{background:#000;opacity:0}.left-arrow-image{background-image:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ3Ny4xNzUgNDc3LjE3NSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDc3LjE3NSA0NzcuMTc1OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgd2lkdGg9IjUxMnB4IiBoZWlnaHQ9IjUxMnB4Ij48Zz48cGF0aCBkPSJNMTQ1LjE4OCwyMzguNTc1bDIxNS41LTIxNS41YzUuMy01LjMsNS4zLTEzLjgsMC0xOS4xcy0xMy44LTUuMy0xOS4xLDBsLTIyNS4xLDIyNS4xYy01LjMsNS4zLTUuMywxMy44LDAsMTkuMWwyMjUuMSwyMjUgICBjMi42LDIuNiw2LjEsNCw5LjUsNHM2LjktMS4zLDkuNS00YzUuMy01LjMsNS4zLTEzLjgsMC0xOS4xTDE0NS4xODgsMjM4LjU3NXoiIGZpbGw9IiNGRkZGRkYiLz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PC9zdmc+");opacity:.8;transition:all .5s}.left-arrow-image:hover{transform:scale(1.2)}.right-arrow-image{background-image:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ3Ny4xNzUgNDc3LjE3NSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDc3LjE3NSA0NzcuMTc1OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgd2lkdGg9IjUxMnB4IiBoZWlnaHQ9IjUxMnB4Ij48Zz48cGF0aCBkPSJNMzYwLjczMSwyMjkuMDc1bC0yMjUuMS0yMjUuMWMtNS4zLTUuMy0xMy44LTUuMy0xOS4xLDBzLTUuMywxMy44LDAsMTkuMWwyMTUuNSwyMTUuNWwtMjE1LjUsMjE1LjUgICBjLTUuMyw1LjMtNS4zLDEzLjgsMCwxOS4xYzIuNiwyLjYsNi4xLDQsOS41LDRjMy40LDAsNi45LTEuMyw5LjUtNGwyMjUuMS0yMjUuMUMzNjUuOTMxLDI0Mi44NzUsMzY1LjkzMSwyMzQuMjc1LDM2MC43MzEsMjI5LjA3NXogICAiIGZpbGw9IiNGRkZGRkYiLz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PC9zdmc+");opacity:.8;transition:all .5s}.right-arrow-image:hover{transform:scale(1.2)}']}]}],ie.ctorParameters=function(){return[{type:void 0,decorators:[{type:i.Inject,args:[i.PLATFORM_ID]}]},{type:i.NgZone},{type:ee},{type:H},{type:i.ChangeDetectorRef},{type:n.DomSanitizer}]},ie.propDecorators={ariaLabel:[{type:i.HostBinding,args:["attr.aria-label"]}],id:[{type:i.Input}],images:[{type:i.Input}],carouselConfig:[{type:i.Input}],playConfig:[{type:i.Input}],carouselImageConfig:[{type:i.Input}],previewConfig:[{type:i.Input}],dotsConfig:[{type:i.Input}],infinite:[{type:i.Input}],disableSsrWorkaround:[{type:i.Input}],accessibilityConfig:[{type:i.Input}],showImage:[{type:i.Output}],firstImage:[{type:i.Output}],lastImage:[{type:i.Output}],onMouseEnter:[{type:i.HostListener,args:["mouseenter"]}],onMouseLeave:[{type:i.HostListener,args:["mouseleave"]}],onKeyDownLeft:[{type:i.HostListener,args:["keydown.arrowLeft"]}],onKeyDownLRight:[{type:i.HostListener,args:["keydown.arrowRight"]}]};var te="200px",ne=function(t){function n(n,r,a,o){var s=t.call(this)||this;return s.ref=n,s.breakpointObserver=r,s.sanitizer=a,s.configService=o,s.hostMaxWidth="100%",s.ariaLabel="Carousel previews",s.clickPreview=new i.EventEmitter,s.clickAction=e.Action.CLICK,s.keyboardAction=e.Action.KEYBOARD,s.previews=[],s.previewMaxHeight=te,s.breakpointSubscription=r.observe([l.Breakpoints.XSmall,l.Breakpoints.Small,l.Breakpoints.Medium,l.Breakpoints.Large,l.Breakpoints.XLarge]).subscribe((function(e){s.previewConfig&&s.previewConfig.breakpoints&&(e.breakpoints[l.Breakpoints.XSmall]?s.updateHeight(s.previewConfig.breakpoints.xSmall):e.breakpoints[l.Breakpoints.Small]?s.updateHeight(s.previewConfig.breakpoints.small):e.breakpoints[l.Breakpoints.Medium]?s.updateHeight(s.previewConfig.breakpoints.medium):e.breakpoints[l.Breakpoints.Large]?s.updateHeight(s.previewConfig.breakpoints.large):e.breakpoints[l.Breakpoints.XLarge]&&s.updateHeight(s.previewConfig.breakpoints.xLarge))})),s}return g(n,t),n.prototype.updateHeight=function(e){if(this.previewConfig&&this.previewConfig.maxHeight){var i=+this.previewConfig.maxHeight.replace("px","").replace("%","");this.previewMaxHeight=Math.min(e,i)+"px"}else{i=+te.replace("px","").replace("%","");this.previewMaxHeight=Math.min(e,i)+"px"}this.ref.markForCheck()},n.prototype.ngOnInit=function(){var e=this.configService.getConfig(this.id);if(!e)throw new Error("Internal library error - libConfig must be defined");if(this.carouselConfig=e.carouselConfig,this.previewConfig=e.carouselPreviewsConfig,this.accessibilityConfig=e.accessibilityConfig,!this.previewConfig||!this.previewConfig.maxHeight||!this.previewConfig.breakpoints)throw new Error("Internal library error - previewConfig must be defined");this.carouselConfig&&"100%"!==this.carouselConfig.maxWidth&&(this.hostMaxWidth=this.carouselConfig.maxWidth),this.previewMaxHeight=this.previewConfig.maxHeight,this.initPreviews(this.currentImage,this.images);var i=this.breakpointObserver.isMatched(l.Breakpoints.XSmall),t=this.breakpointObserver.isMatched(l.Breakpoints.Small),n=this.breakpointObserver.isMatched(l.Breakpoints.Medium),r=this.breakpointObserver.isMatched(l.Breakpoints.Large),a=this.breakpointObserver.isMatched(l.Breakpoints.XLarge);i?this.updateHeight(this.previewConfig.breakpoints.xSmall):t?this.updateHeight(this.previewConfig.breakpoints.small):n?this.updateHeight(this.previewConfig.breakpoints.medium):r?this.updateHeight(this.previewConfig.breakpoints.large):a&&this.updateHeight(this.previewConfig.breakpoints.xLarge)},n.prototype.isActive=function(e){return!(!e||!this.currentImage)&&e.id===this.currentImage.id},n.prototype.ngOnChanges=function(e){var i=this,t=e.currentImage;if(t){var n=t.previousValue,r=t.currentValue;if(r&&e.images&&e.images.previousValue&&e.images.currentValue&&this.initPreviews(r,e.images.currentValue),n&&r&&n.id!==r.id){var a=void 0,o=void 0;try{a=C(n,this.images),o=C(r,this.images)}catch(e){throw console.error("Cannot get previous and current image indexes in previews"),e}var s=Math.floor((this.end-this.start)/2)+this.start;if(a===this.images.length-1&&0===o)return this.setBeginningIndexesPreviews(),void(this.previews=this.images.filter((function(e,t){return t>=i.start&&t<i.end})));if(0===a&&o===this.images.length-1)return this.setEndIndexesPreviews(),void(this.previews=this.images.filter((function(e,t){return t>=i.start&&t<i.end})));this.previewConfig&&this.previewConfig.number%2==0?s>o?this.previous():this.next():(s>o&&this.previous(),s<o&&this.next())}}},n.prototype.onImageEvent=function(i,n,r){if(void 0===r&&(r=e.Action.NORMAL),this.previewConfig&&this.previewConfig.clickable){var a=this.images.indexOf(i),o=t.prototype.handleImageEvent.call(this,n);(1===o||o===h)&&this.clickPreview.emit({action:r,result:a})}},n.prototype.onNavigationEvent=function(e,i){var n=t.prototype.handleNavigationEvent.call(this,e,i);1===n?this.next():n===h&&this.previous()},n.prototype.getAriaLabel=function(e){return e.plain?e.plain.ariaLabel||e.modal.ariaLabel||"":e.modal.ariaLabel||""},n.prototype.getTitle=function(e){return e.plain?e.plain.title||e.modal.title||"":e.modal.title||""},n.prototype.getAlt=function(e){return e.plain?e.plain.alt||e.modal.alt||"":e.modal.alt||""},n.prototype.trackById=function(e,i){return i.id},n.prototype.sanitizeUrlBgStyle=function(e,i){var t="url("+e+")";return i&&(t+=", url("+i+")"),this.sanitizer.bypassSecurityTrustStyle(t)},n.prototype.getIE11LegacyBgSize=function(){return this.previewConfig&&this.previewConfig.maxHeight?"100% "+2*+this.previewConfig.maxHeight.replace("px","")+"px":"cover"},n.prototype.ngOnDestroy=function(){this.breakpointSubscription&&this.breakpointSubscription.unsubscribe()},n.prototype.initPreviews=function(e,i){var t,n=this;try{t=C(e,i)}catch(e){throw e}switch(t){case 0:this.setBeginningIndexesPreviews();break;case i.length-1:this.setEndIndexesPreviews()}this.previews=i.filter((function(e,i){return i>=n.start&&i<n.end}))},n.prototype.setBeginningIndexesPreviews=function(){if(!this.previewConfig||void 0===this.previewConfig.number)throw new Error("Internal library error - previewConfig and number must be defined");this.start=0,this.end=Math.min(this.previewConfig.number,this.images.length)},n.prototype.setEndIndexesPreviews=function(){if(!this.previewConfig||void 0===this.previewConfig.number)throw new Error("Internal library error - previewConfig and number must be defined");this.start=this.images.length-1-(this.previewConfig.number-1),this.end=this.images.length},n.prototype.next=function(){var e=this;this.isPreventSliding(this.images.length-1)||this.end!==this.images.length&&(this.start++,this.end=Math.min(this.end+1,this.images.length),this.previews=this.images.filter((function(i,t){return t>=e.start&&t<e.end})))},n.prototype.previous=function(){var e=this;this.isPreventSliding(0)||0!==this.start&&(this.start=Math.max(this.start-1,0),this.end=Math.min(this.end-1,this.images.length),this.previews=this.images.filter((function(i,t){return t>=e.start&&t<e.end})))},n.prototype.isPreventSliding=function(e){return C(this.currentImage,this.images)===e},n}(y);ne.decorators=[{type:i.Component,args:[{selector:"ks-carousel-previews",template:'<nav *ngIf="previewConfig?.visible"\n class="previews-container"\n [attr.aria-label]="accessibilityConfig?.carouselPreviewsContainerAriaLabel"\n [title]="accessibilityConfig?.carouselPreviewsContainerTitle">\n\n <a class="nav-left"\n [attr.aria-label]="accessibilityConfig?.carouselPreviewScrollPrevAriaLabel"\n [tabIndex]="previewConfig.arrows && start > 0 ? 0 : -1" role="button"\n (click)="onNavigationEvent(\'left\', $event)" (keyup)="onNavigationEvent(\'left\', $event)">\n <div class="inside {{previewConfig.arrows && start > 0 ? \'left-arrow-preview-image\' : \'empty-arrow-preview-image\'}}"\n aria-hidden="true"\n [title]="accessibilityConfig?.carouselPreviewScrollPrevTitle"></div>\n </a>\n\n <div class="preview-inner-container">\n <ng-container *ngFor="let preview of previews; trackBy: trackById; let index = index">\n <ng-container *ngIf="!carouselConfig?.legacyIE11Mode; else legacyMode">\n <img *ngIf="preview?.modal?.img"\n class="inside preview-image{{isActive(preview) ? \' active\' : \'\'}}{{!previewConfig.clickable ? \' unclickable\' : \'\'}}"\n [src]="preview.plain?.img ? preview.plain.img : preview.modal.img"\n ksFallbackImage [fallbackImg]="preview.plain?.fallbackImg ? preview.plain.fallbackImg : preview.modal.fallbackImg"\n ksSize [sizeConfig]="{width: previewConfig?.width,\n height: previewMaxHeight}"\n [attr.aria-label]="getAriaLabel(preview)"\n [title]="getTitle(preview)"\n alt="{{getAlt(preview)}}"\n [tabIndex]="0" role="img"\n (click)="onImageEvent(preview, $event, clickAction)" (keyup)="onImageEvent(preview, $event, keyboardAction)"/>\n </ng-container>\n <ng-template #legacyMode>\n <div *ngIf="preview?.modal?.img"\n class="inside preview-ie11-image{{isActive(preview) ? \' active\' : \'\'}}{{!previewConfig.clickable ? \' unclickable\' : \'\'}}"\n [style.background-color]="\'transparent\'"\n [style.background-image]="sanitizeUrlBgStyle(preview.plain?.img ? preview.plain.img : preview.modal.img, preview.plain?.fallbackImg ? preview.plain.fallbackImg : preview.modal.fallbackImg)"\n [style.background-position]="\'center center\'"\n [style.background-size]="getIE11LegacyBgSize()"\n [style.background-repeat]="\'no-repeat\'"\n [style.background-attachment]="\'scroll\'"\n ksSize [sizeConfig]="{width: previewConfig?.width,\n height: previewMaxHeight}"\n [attr.aria-label]="getAriaLabel(preview)"\n [title]="getTitle(preview)"\n [tabIndex]="0" role="img"\n (click)="onImageEvent(preview, $event, clickAction)" (keyup)="onImageEvent(preview, $event, keyboardAction)"></div>\n </ng-template>\n </ng-container>\n </div>\n\n <a class="nav-right"\n [attr.aria-label]="accessibilityConfig?.carouselPreviewScrollNextAriaLabel"\n [tabIndex]="previewConfig.arrows && end < images.length ? 0 : -1" role="button"\n (click)="onNavigationEvent(\'right\', $event)" (keyup)="onNavigationEvent(\'right\', $event)">\n <div class="inside {{previewConfig.arrows && end < images.length ? \'right-arrow-preview-image\' : \'empty-arrow-preview-image\'}}"\n aria-hidden="true"\n [title]="accessibilityConfig?.carouselPreviewScrollNextTitle"></div>\n </a>\n\n</nav>\n',changeDetection:i.ChangeDetectionStrategy.OnPush,styles:[":host{margin-bottom:3px;margin-top:3px;position:relative;width:100%}.previews-container{animation:fadein-semi-visible08 .8s;margin-bottom:0}.previews-container,.previews-container>.preview-inner-container{align-items:center;display:flex;flex-direction:row;justify-content:center}.previews-container>.preview-inner-container{flex-wrap:nowrap;width:100%}.previews-container>.preview-inner-container>.preview-image{cursor:pointer;object-fit:cover}.previews-container>.preview-inner-container>.preview-image.unclickable{cursor:not-allowed}.previews-container>.preview-inner-container>.preview-ie11-image{cursor:pointer}.previews-container>.preview-inner-container>.preview-ie11-image.unclickable{cursor:not-allowed}.previews-container .nav,.previews-container>.nav-left,.previews-container>.nav-right{color:#919191;cursor:pointer;position:absolute;top:calc(50% - 7px);transition:all .5s;z-index:1000}.previews-container .nav:hover,.previews-container>.nav-left:hover,.previews-container>.nav-right:hover{transform:scale(1.1)}.previews-container>.nav-left{left:10px;margin-right:10px}.previews-container>.nav-left>.left-arrow-preview-image{opacity:1}.previews-container>.nav-right{margin-left:10px;right:10px}.previews-container>.nav-right>.right-arrow-preview-image{opacity:1}",'.arrow-preview-image,.empty-arrow-preview-image,.left-arrow-preview-image,.right-arrow-preview-image{height:15px;opacity:.5;width:15px}.empty-arrow-preview-image{background:#000;opacity:0}.left-arrow-preview-image{background-image:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ3Ny4xNzUgNDc3LjE3NSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDc3LjE3NSA0NzcuMTc1OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgd2lkdGg9IjUxMnB4IiBoZWlnaHQ9IjUxMnB4Ij48Zz48cGF0aCBkPSJNMTQ1LjE4OCwyMzguNTc1bDIxNS41LTIxNS41YzUuMy01LjMsNS4zLTEzLjgsMC0xOS4xcy0xMy44LTUuMy0xOS4xLDBsLTIyNS4xLDIyNS4xYy01LjMsNS4zLTUuMywxMy44LDAsMTkuMWwyMjUuMSwyMjUgICBjMi42LDIuNiw2LjEsNCw5LjUsNHM2LjktMS4zLDkuNS00YzUuMy01LjMsNS4zLTEzLjgsMC0xOS4xTDE0NS4xODgsMjM4LjU3NXoiIGZpbGw9IiNGRkZGRkYiLz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PC9zdmc+");background-size:15px;transition:all .5s}.left-arrow-preview-image:hover{transform:scale(1.2)}.right-arrow-preview-image{background-image:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ3Ny4xNzUgNDc3LjE3NSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDc3LjE3NSA0NzcuMTc1OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgd2lkdGg9IjUxMnB4IiBoZWlnaHQ9IjUxMnB4Ij48Zz48cGF0aCBkPSJNMzYwLjczMSwyMjkuMDc1bC0yMjUuMS0yMjUuMWMtNS4zLTUuMy0xMy44LTUuMy0xOS4xLDBzLTUuMywxMy44LDAsMTkuMWwyMTUuNSwyMTUuNWwtMjE1LjUsMjE1LjUgICBjLTUuMyw1LjMtNS4zLDEzLjgsMCwxOS4xYzIuNiwyLjYsNi4xLDQsOS41LDRjMy40LDAsNi45LTEuMyw5LjUtNGwyMjUuMS0yMjUuMUMzNjUuOTMxLDI0Mi44NzUsMzY1LjkzMSwyMzQuMjc1LDM2MC43MzEsMjI5LjA3NXogICAiIGZpbGw9IiNGRkZGRkYiLz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PC9zdmc+");background-size:15px;transition:all .5s}.right-arrow-preview-image:hover{transform:scale(1.2)}']}]}],ne.ctorParameters=function(){return[{type:i.ChangeDetectorRef},{type:l.BreakpointObserver},{type:n.DomSanitizer},{type:H}]},ne.propDecorators={hostMaxWidth:[{type:i.HostBinding,args:["style.max-width"]}],ariaLabel:[{type:i.HostBinding,args:["attr.aria-label"]}],id:[{type:i.Input}],currentImage:[{type:i.Input}],images:[{type:i.Input}],clickPreview:[{type:i.Output}]};var re={height:"auto",width:"30px"},ae={className:"close-image",size:re,type:e.ButtonType.CLOSE,title:"Close this modal image gallery",ariaLabel:"Close this modal image gallery"},oe={className:"download-image",size:re,type:e.ButtonType.DOWNLOAD,title:"Download the current image",ariaLabel:"Download the current image"},se={className:"ext-url-image",size:re,type:e.ButtonType.EXTURL,title:"Navigate the current image",ariaLabel:"Navigate the current image"},le={className:"delete-image",size:re,type:e.ButtonType.DELETE,title:"Delete the current image",ariaLabel:"Delete the current image"},ce={className:"fullscreen-image",size:re,type:e.ButtonType.FULLSCREEN,title:"Switch to full-screen",ariaLabel:"Switch to full-screen"},ge=function(t){function n(e){var n=t.call(this)||this;return n.configService=e,n.refresh=new i.EventEmitter,n.delete=new i.EventEmitter,n.navigate=new i.EventEmitter,n.download=new i.EventEmitter,n.closeButton=new i.EventEmitter,n.fullscreen=new i.EventEmitter,n.customEmit=new i.EventEmitter,n.defaultButtonsDefault=[ae],n.simpleButtonsDefault=d([oe],n.defaultButtonsDefault),n.advancedButtonsDefault=d([se],n.simpleButtonsDefault),n.fullButtonsDefault=d([ce,le],n.advancedButtonsDefault),n}return g(n,t),n.prototype.ngOnInit=function(){if(!this.id)throw new Error("Internal library error - id must be defined");var i=this.configService.getConfig(this.id);if(!i||!i.buttonsConfig)throw new Error("Internal library error - libConfig and buttonsConfig must be defined");switch(this.buttonsConfig=i.buttonsConfig,this.buttonsConfig.strategy){case e.ButtonsStrategy.SIMPLE:this.buttons=this.addButtonIds(this.simpleButtonsDefault);break;case e.ButtonsStrategy.ADVANCED:this.buttons=this.addButtonIds(this.advancedButtonsDefault);break;case e.ButtonsStrategy.FULL:this.buttons=this.addButtonIds(this.fullButtonsDefault);break;case e.ButtonsStrategy.CUSTOM:this.buttons=this.addButtonIds(this.validateCustomButtons(this.buttonsConfig.buttons));break;case e.ButtonsStrategy.DEFAULT:default:this.buttons=this.addButtonIds(this.defaultButtonsDefault)}},n.prototype.onEvent=function(i,t,n){if(void 0===n&&(n=e.Action.CLICK),!this.id)throw new Error("Internal library error - id must be defined");if(t){var r={button:i,image:null,action:n,galleryId:this.id};switch(i.type){case e.ButtonType.DELETE:this.triggerOnMouseAndKeyboard(this.delete,t,r);break;case e.ButtonType.EXTURL:if(!this.currentImage||!this.currentImage.modal||!this.currentImage.modal.extUrl)return;this.triggerOnMouseAndKeyboard(this.navigate,t,r);break;case e.ButtonType.DOWNLOAD:this.triggerOnMouseAndKeyboard(this.download,t,r);break;case e.ButtonType.CLOSE:this.triggerOnMouseAndKeyboard(this.closeButton,t,r);break;case e.ButtonType.CUSTOM:this.triggerOnMouseAndKeyboard(this.customEmit,t,r);break;case e.ButtonType.FULLSCREEN:this.triggerOnMouseAndKeyboard(this.fullscreen,t,r);break;default:throw new Error("Unknown button's type into ButtonConfig")}}},n.prototype.trackById=function(e,i){return i?i.id:void 0},n.prototype.triggerOnMouseAndKeyboard=function(e,i,n){if(!e)throw new Error("UpperButtonsComponent unknown emitter in triggerOnMouseAndKeyboard");1===t.prototype.handleImageEvent.call(this,i)&&e.emit(n)},n.prototype.addButtonIds=function(e){return e.map((function(i,t){return Object.assign(i,{id:e.length-1-t})}))},n.prototype.validateCustomButtons=function(e){return void 0===e&&(e=[]),e.forEach((function(e){if(-1===D.findIndex((function(i){return i===e.type})))throw new Error("Unknown ButtonType. For custom types use ButtonType.CUSTOM")})),e},n}(y);ge.decorators=[{type:i.Component,args:[{selector:"ks-upper-buttons",template:'<header class="buttons-container">\n\n <ng-container *ngIf="!buttonsConfig || buttonsConfig?.visible">\n <a *ngFor="let btn of buttons; trackBy: trackById; let index = index"\n class="upper-button"\n ksSize [sizeConfig]="{width: btn.size?.width, height: btn.size?.height}"\n [ngStyle]="{\'font-size\': btn.fontSize}"\n [attr.aria-label]="btn.ariaLabel"\n [tabIndex]="0" role="button"\n (click)="onEvent(btn, $event)" (keyup)="onEvent(btn, $event)">\n <div class="inside {{btn.className}}" aria-hidden="true" title="{{btn.title}}"></div>\n </a>\n </ng-container>\n</header>\n',changeDetection:i.ChangeDetectionStrategy.OnPush,styles:['.buttons-container{display:flex;flex-direction:row;justify-content:flex-end}.buttons-container>.upper-button{align-self:center;animation:animatezoom .6s;color:#fff;cursor:pointer;font-size:50px;margin-right:30px;margin-top:28px;text-decoration:none}@keyframes animatezoom{0%{transform:scale(0)}to{transform:scale(1)}}.base-btn,.close-image,.copy,.delete-image,.download-image,.ext-url-image,.fullscreen-image,.refresh-image,.rotate-image{background-size:30px;height:30px;opacity:.8;transition:all .5s;width:30px}.base-btn:hover,.close-image:hover,.copy:hover,.delete-image:hover,.download-image:hover,.ext-url-image:hover,.fullscreen-image:hover,.refresh-image:hover,.rotate-image:hover{transform:scale(1.2)}.rotate-image{background-image:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDY0IDY0IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA2NCA2NDsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHdpZHRoPSI1MTJweCIgaGVpZ2h0PSI1MTJweCI+PGc+PGc+PHBhdGggZD0iTTMzLDJjNy43NDYsMCwxNS4wMjgsMy4wMTcsMjAuNTA1LDguNDk0YzEwLjEzOCwxMC4xMzcsMTEuMzEsMjYuMzk2LDIuNzQsMzcuODQ5TDUyLDUyLjU4OVY0NGgtMnYxMWwxLDFoMTF2LTJoLTguNTgyICAgIGw0LjI5Mi00LjI5M2wwLjA5Mi0wLjEwNmM5LjIxMS0xMi4yNDcsNy45NzItMjkuNjY3LTIuODgzLTQwLjUyMUM0OS4wNjQsMy4yMjUsNDEuMjgsMCwzMywwVjJ6IiBmaWxsPSIjRkZGRkZGIi8+PHBhdGggZD0iTTcuNzU1LDE1LjY1N0wxMiwxMS40MTFWMjBoMlY5bC0xLTFIMnYyaDguNTgyTDYuMjksMTQuMjkzbC0wLjA5MiwwLjEwNkMtMy4wMTMsMjYuNjQ2LTEuNzczLDQ0LjA2Niw5LjA4MSw1NC45MiAgICBDMTQuOTM2LDYwLjc3NSwyMi43Miw2NCwzMSw2NHYtMmMtNy43NDYsMC0xNS4wMjgtMy4wMTctMjAuNTA1LTguNDk0QzAuMzU3LDQzLjM2OS0wLjgxNCwyNy4xMSw3Ljc1NSwxNS42NTd6IiBmaWxsPSIjRkZGRkZGIi8+PC9nPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48L3N2Zz4=")}.fullscreen-image{background-image:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIGlkPSJDYXBhXzEiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgNTMgNTMiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUzIDUzOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgd2lkdGg9IjUxMnB4IiBoZWlnaHQ9IjUxMnB4Ij48Zz48cGF0aCBkPSJNNTIuOTIzLDAuNjE4Yy0wLjEwMS0wLjI0NC0wLjI5Ni0wLjQzOS0wLjU0MS0wLjU0MUM1Mi4yNiwwLjAyNyw1Mi4xMywwLDUyLDBINDBjLTAuNTUyLDAtMSwwLjQ0OC0xLDFzMC40NDgsMSwxLDFoOS41ODYgICBMMzMuMjkzLDE4LjI5M2MtMC4zOTEsMC4zOTEtMC4zOTEsMS4wMjMsMCwxLjQxNEMzMy40ODgsMTkuOTAyLDMzLjc0NCwyMCwzNCwyMHMwLjUxMi0wLjA5OCwwLjcwNy0wLjI5M0w1MSwzLjQxNFYxMyAgIGMwLDAuNTUyLDAuNDQ4LDEsMSwxczEtMC40NDgsMS0xVjFDNTMsMC44Nyw1Mi45NzMsMC43NCw1Mi45MjMsMC42MTh6IiBmaWxsPSIjRkZGRkZGIi8+PHBhdGggZD0iTTE4LjI5MywzMy4yOTNMMiw0OS41ODZWNDBjMC0wLjU1Mi0wLjQ0OC0xLTEtMXMtMSwwLjQ0OC0xLDF2MTJjMCwwLjEzLDAuMDI3LDAuMjYsMC4wNzcsMC4zODIgICBjMC4xMDEsMC4yNDQsMC4yOTYsMC40MzksMC41NDEsMC41NDFDMC43NCw1Mi45NzMsMC44Nyw1MywxLDUzaDEyYzAuNTUyLDAsMS0wLjQ0OCwxLTFzLTAuNDQ4LTEtMS0xSDMuNDE0bDE2LjI5My0xNi4yOTMgICBjMC4zOTEtMC4zOTEsMC4zOTEtMS4wMjMsMC0xLjQxNFMxOC42ODQsMzIuOTAyLDE4LjI5MywzMy4yOTN6IiBmaWxsPSIjRkZGRkZGIi8+PHBhdGggZD0iTTEsMTRjMC41NTIsMCwxLTAuNDQ4LDEtMVYzLjQxNGwxNi4yOTIsMTYuMjkyYzAuMTk1LDAuMTk1LDAuNDUxLDAuMjkzLDAuNzA3LDAuMjkzczAuNTEyLTAuMDk4LDAuNzA3LTAuMjkzICAgYzAuMzkxLTAuMzkxLDAuMzkxLTEuMDIzLDAtMS40MTRMMy40MTQsMkgxM2MwLjU1MiwwLDEtMC40NDgsMS0xcy0wLjQ0OC0xLTEtMUgxQzAuODcsMCwwLjc0LDAuMDI3LDAuNjE4LDAuMDc3ICAgQzAuMzczLDAuMTc5LDAuMTc5LDAuMzczLDAuMDc3LDAuNjE4QzAuMDI3LDAuNzQsMCwwLjg3LDAsMXYxMkMwLDEzLjU1MiwwLjQ0OCwxNCwxLDE0eiIgZmlsbD0iI0ZGRkZGRiIvPjxwYXRoIGQ9Ik01MiwzOWMtMC41NTIsMC0xLDAuNDQ4LTEsMXY5LjU4NkwzNC43MDcsMzMuMjkyYy0wLjM5MS0wLjM5MS0xLjAyMy0wLjM5MS0xLjQxNCwwcy0wLjM5MSwxLjAyMywwLDEuNDE0TDQ5LjU4Niw1MUg0MCAgIGMtMC41NTIsMC0xLDAuNDQ4LTEsMXMwLjQ0OCwxLDEsMWgxMmMwLjEzLDAsMC4yNi0wLjAyNywwLjM4Mi0wLjA3N2MwLjI0NC0wLjEwMSwwLjQzOS0wLjI5NiwwLjU0MS0wLjU0MSAgIEM1Mi45NzMsNTIuMjYsNTMsNTIuMTMsNTMsNTJWNDBDNTMsMzkuNDQ4LDUyLjU1MiwzOSw1MiwzOXoiIGZpbGw9IiNGRkZGRkYiLz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PC9zdmc+")}.delete-image{background-image:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ4Ni40IDQ4Ni40IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA0ODYuNCA0ODYuNDsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHdpZHRoPSI1MTJweCIgaGVpZ2h0PSI1MTJweCI+PGc+PGc+PHBhdGggZD0iTTQ0Niw3MEgzNDQuOFY1My41YzAtMjkuNS0yNC01My41LTUzLjUtNTMuNWgtOTYuMmMtMjkuNSwwLTUzLjUsMjQtNTMuNSw1My41VjcwSDQwLjRjLTcuNSwwLTEzLjUsNi0xMy41LDEzLjUgICAgUzMyLjksOTcsNDAuNCw5N2gyNC40djMxNy4yYzAsMzkuOCwzMi40LDcyLjIsNzIuMiw3Mi4yaDIxMi40YzM5LjgsMCw3Mi4yLTMyLjQsNzIuMi03Mi4yVjk3SDQ0NmM3LjUsMCwxMy41LTYsMTMuNS0xMy41ICAgIFM0NTMuNSw3MCw0NDYsNzB6IE0xNjguNiw1My41YzAtMTQuNiwxMS45LTI2LjUsMjYuNS0yNi41aDk2LjJjMTQuNiwwLDI2LjUsMTEuOSwyNi41LDI2LjVWNzBIMTY4LjZWNTMuNXogTTM5NC42LDQxNC4yICAgIGMwLDI0LjktMjAuMyw0NS4yLTQ1LjIsNDUuMkgxMzdjLTI0LjksMC00NS4yLTIwLjMtNDUuMi00NS4yVjk3aDMwMi45djMxNy4ySDM5NC42eiIgZmlsbD0iI0ZGRkZGRiIvPjxwYXRoIGQ9Ik0yNDMuMiw0MTFjNy41LDAsMTMuNS02LDEzLjUtMTMuNVYxNTguOWMwLTcuNS02LTEzLjUtMTMuNS0xMy41cy0xMy41LDYtMTMuNSwxMy41djIzOC41ICAgIEMyMjkuNyw0MDQuOSwyMzUuNyw0MTEsMjQzLjIsNDExeiIgZmlsbD0iI0ZGRkZGRiIvPjxwYXRoIGQ9Ik0xNTUuMSwzOTYuMWM3LjUsMCwxMy41LTYsMTMuNS0xMy41VjE3My43YzAtNy41LTYtMTMuNS0xMy41LTEzLjVzLTEzLjUsNi0xMy41LDEzLjV2MjA4LjkgICAgQzE0MS42LDM5MC4xLDE0Ny43LDM5Ni4xLDE1NS4xLDM5Ni4xeiIgZmlsbD0iI0ZGRkZGRiIvPjxwYXRoIGQ9Ik0zMzEuMywzOTYuMWM3LjUsMCwxMy41LTYsMTMuNS0xMy41VjE3My43YzAtNy41LTYtMTMuNS0xMy41LTEzLjVzLTEzLjUsNi0xMy41LDEzLjV2MjA4LjkgICAgQzMxNy44LDM5MC4xLDMyMy44LDM5Ni4xLDMzMS4zLDM5Ni4xeiIgZmlsbD0iI0ZGRkZGRiIvPjwvZz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PC9zdmc+")}.ext-url-image{background-image:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUxMiA1MTI7IiB4bWw6c3BhY2U9InByZXNlcnZlIiB3aWR0aD0iNTEycHgiIGhlaWdodD0iNTEycHgiPjxnPjxnPjxnPjxwYXRoIGQ9Ik00ODAsMjg4djExMmMwLDQ0LjE4My0zNS44MTcsODAtODAsODBIMTEyYy00NC4xODMsMC04MC0zNS44MTctODAtODBWMTEyYzAtNDQuMTgzLDM1LjgxNy04MCw4MC04MGg5NlYwaC05NiAgICAgQzUwLjE0NCwwLDAsNTAuMTQ0LDAsMTEydjI4OGMwLDYxLjg1Niw1MC4xNDQsMTEyLDExMiwxMTJoMjg4YzYxLjg1NiwwLDExMi01MC4xNDQsMTEyLTExMlYyODhINDgweiIgZmlsbD0iI0ZGRkZGRiIvPjxwYXRoIGQ9Ik0xNzYsNDE2aDMyVjI4OGMwLTEyNS43NiwxMDcuNTItMTI4LDExMi0xMjhoMTA1LjQ0bC04NC42NCw4NC42NGwyMi41NiwyMi41NmwxMTItMTEyYzYuMjA0LTYuMjQxLDYuMjA0LTE2LjMxOSwwLTIyLjU2ICAgICBsLTExMi0xMTJsLTIyLjcyLDIyLjcybDg0LjgsODQuNjRIMzIwYy0xLjQ0LDAtMTQ0LDEuNzYtMTQ0LDE2MFY0MTZ6IiBmaWxsPSIjRkZGRkZGIi8+PC9nPjwvZz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PC9zdmc+")}.download-image{background-image:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ3MS4yIDQ3MS4yIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA0NzEuMiA0NzEuMjsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHdpZHRoPSI1MTJweCIgaGVpZ2h0PSI1MTJweCI+PGc+PGc+PHBhdGggZD0iTTQ1Ny43LDIzMC4xNWMtNy41LDAtMTMuNSw2LTEzLjUsMTMuNXYxMjIuOGMwLDMzLjQtMjcuMiw2MC41LTYwLjUsNjAuNUg4Ny41Yy0zMy40LDAtNjAuNS0yNy4yLTYwLjUtNjAuNXYtMTI0LjggICAgYzAtNy41LTYtMTMuNS0xMy41LTEzLjVzLTEzLjUsNi0xMy41LDEzLjV2MTI0LjhjMCw0OC4zLDM5LjMsODcuNSw4Ny41LDg3LjVoMjk2LjJjNDguMywwLDg3LjUtMzkuMyw4Ny41LTg3LjV2LTEyMi44ICAgIEM0NzEuMiwyMzYuMjUsNDY1LjIsMjMwLjE1LDQ1Ny43LDIzMC4xNXoiIGZpbGw9IiNGRkZGRkYiLz48cGF0aCBkPSJNMjI2LjEsMzQ2Ljc1YzIuNiwyLjYsNi4xLDQsOS41LDRzNi45LTEuMyw5LjUtNGw4NS44LTg1LjhjNS4zLTUuMyw1LjMtMTMuOCwwLTE5LjFjLTUuMy01LjMtMTMuOC01LjMtMTkuMSwwbC02Mi43LDYyLjggICAgVjMwLjc1YzAtNy41LTYtMTMuNS0xMy41LTEzLjVzLTEzLjUsNi0xMy41LDEzLjV2MjczLjlsLTYyLjgtNjIuOGMtNS4zLTUuMy0xMy44LTUuMy0xOS4xLDBjLTUuMyw1LjMtNS4zLDEzLjgsMCwxOS4xICAgIEwyMjYuMSwzNDYuNzV6IiBmaWxsPSIjRkZGRkZGIi8+PC9nPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48L3N2Zz4=")}.close-image{background-image:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ3NS4yIDQ3NS4yIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA0NzUuMiA0NzUuMjsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHdpZHRoPSI1MTJweCIgaGVpZ2h0PSI1MTJweCI+PGc+PGc+PHBhdGggZD0iTTQwNS42LDY5LjZDMzYwLjcsMjQuNywzMDEuMSwwLDIzNy42LDBzLTEyMy4xLDI0LjctMTY4LDY5LjZTMCwxNzQuMSwwLDIzNy42czI0LjcsMTIzLjEsNjkuNiwxNjhzMTA0LjUsNjkuNiwxNjgsNjkuNiAgICBzMTIzLjEtMjQuNywxNjgtNjkuNnM2OS42LTEwNC41LDY5LjYtMTY4UzQ1MC41LDExNC41LDQwNS42LDY5LjZ6IE0zODYuNSwzODYuNWMtMzkuOCwzOS44LTkyLjcsNjEuNy0xNDguOSw2MS43ICAgIHMtMTA5LjEtMjEuOS0xNDguOS02MS43Yy04Mi4xLTgyLjEtODIuMS0yMTUuNywwLTI5Ny44QzEyOC41LDQ4LjksMTgxLjQsMjcsMjM3LjYsMjdzMTA5LjEsMjEuOSwxNDguOSw2MS43ICAgIEM0NjguNiwxNzAuOCw0NjguNiwzMDQuNCwzODYuNSwzODYuNXoiIGZpbGw9IiNGRkZGRkYiLz48cGF0aCBkPSJNMzQyLjMsMTMyLjljLTUuMy01LjMtMTMuOC01LjMtMTkuMSwwbC04NS42LDg1LjZMMTUyLDEzMi45Yy01LjMtNS4zLTEzLjgtNS4zLTE5LjEsMGMtNS4zLDUuMy01LjMsMTMuOCwwLDE5LjEgICAgbDg1LjYsODUuNmwtODUuNiw4NS42Yy01LjMsNS4zLTUuMywxMy44LDAsMTkuMWMyLjYsMi42LDYuMSw0LDkuNSw0czYuOS0xLjMsOS41LTRsODUuNi04NS42bDg1LjYsODUuNmMyLjYsMi42LDYuMSw0LDkuNSw0ICAgIGMzLjUsMCw2LjktMS4zLDkuNS00YzUuMy01LjMsNS4zLTEzLjgsMC0xOS4xbC04NS40LTg1LjZsODUuNi04NS42QzM0Ny42LDE0Ni43LDM0Ny42LDEzOC4yLDM0Mi4zLDEzMi45eiIgZmlsbD0iI0ZGRkZGRiIvPjwvZz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PC9zdmc+")}.refresh-image{background-image:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ4OS43MTEgNDg5LjcxMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDg5LjcxMSA0ODkuNzExOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgd2lkdGg9IjUxMnB4IiBoZWlnaHQ9IjUxMnB4Ij48Zz48Zz48cGF0aCBkPSJNMTEyLjE1Niw5Ny4xMTFjNzIuMy02NS40LDE4MC41LTY2LjQsMjUzLjgtNi43bC01OC4xLDIuMmMtNy41LDAuMy0xMy4zLDYuNS0xMywxNGMwLjMsNy4zLDYuMywxMywxMy41LDEzICAgIGMwLjIsMCwwLjMsMCwwLjUsMGw4OS4yLTMuM2M3LjMtMC4zLDEzLTYuMiwxMy0xMy41di0xYzAtMC4yLDAtMC4zLDAtMC41di0wLjFsMCwwbC0zLjMtODguMmMtMC4zLTcuNS02LjYtMTMuMy0xNC0xMyAgICBjLTcuNSwwLjMtMTMuMyw2LjUtMTMsMTRsMi4xLDU1LjNjLTM2LjMtMjkuNy04MS00Ni45LTEyOC44LTQ5LjNjLTU5LjItMy0xMTYuMSwxNy4zLTE2MCw1Ny4xYy02MC40LDU0LjctODYsMTM3LjktNjYuOCwyMTcuMSAgICBjMS41LDYuMiw3LDEwLjMsMTMuMSwxMC4zYzEuMSwwLDIuMS0wLjEsMy4yLTAuNGM3LjItMS44LDExLjctOS4xLDkuOS0xNi4zQzM2LjY1NiwyMTguMjExLDU5LjA1NiwxNDUuMTExLDExMi4xNTYsOTcuMTExeiIgZmlsbD0iI0ZGRkZGRiIvPjxwYXRoIGQ9Ik00NjIuNDU2LDE5NS41MTFjLTEuOC03LjItOS4xLTExLjctMTYuMy05LjljLTcuMiwxLjgtMTEuNyw5LjEtOS45LDE2LjNjMTYuOSw2OS42LTUuNiwxNDIuNy01OC43LDE5MC43ICAgIGMtMzcuMywzMy43LTg0LjEsNTAuMy0xMzAuNyw1MC4zYy00NC41LDAtODguOS0xNS4xLTEyNC43LTQ0LjlsNTguOC01LjNjNy40LTAuNywxMi45LTcuMiwxMi4yLTE0LjdzLTcuMi0xMi45LTE0LjctMTIuMmwtODguOSw4ICAgIGMtNy40LDAuNy0xMi45LDcuMi0xMi4yLDE0LjdsOCw4OC45YzAuNiw3LDYuNSwxMi4zLDEzLjQsMTIuM2MwLjQsMCwwLjgsMCwxLjItMC4xYzcuNC0wLjcsMTIuOS03LjIsMTIuMi0xNC43bC00LjgtNTQuMSAgICBjMzYuMywyOS40LDgwLjgsNDYuNSwxMjguMyw0OC45YzMuOCwwLjIsNy42LDAuMywxMS4zLDAuM2M1NS4xLDAsMTA3LjUtMjAuMiwxNDguNy01Ny40ICAgIEM0NTYuMDU2LDM1Ny45MTEsNDgxLjY1NiwyNzQuODExLDQ2Mi40NTYsMTk1LjUxMXoiIGZpbGw9IiNGRkZGRkYiLz48L2c+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjwvc3ZnPg==")}.copy{background-image:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ4OC4zIDQ4OC4zIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA0ODguMyA0ODguMzsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHdpZHRoPSI1MTJweCIgaGVpZ2h0PSI1MTJweCI+PGc+PGc+PHBhdGggZD0iTTMxNC4yNSw4NS40aC0yMjdjLTIxLjMsMC0zOC42LDE3LjMtMzguNiwzOC42djMyNS43YzAsMjEuMywxNy4zLDM4LjYsMzguNiwzOC42aDIyN2MyMS4zLDAsMzguNi0xNy4zLDM4LjYtMzguNlYxMjQgICAgQzM1Mi43NSwxMDIuNywzMzUuNDUsODUuNCwzMTQuMjUsODUuNHogTTMyNS43NSw0NDkuNmMwLDYuNC01LjIsMTEuNi0xMS42LDExLjZoLTIyN2MtNi40LDAtMTEuNi01LjItMTEuNi0xMS42VjEyNCAgICBjMC02LjQsNS4yLTExLjYsMTEuNi0xMS42aDIyN2M2LjQsMCwxMS42LDUuMiwxMS42LDExLjZWNDQ5LjZ6IiBmaWxsPSIjRkZGRkZGIi8+PHBhdGggZD0iTTQwMS4wNSwwaC0yMjdjLTIxLjMsMC0zOC42LDE3LjMtMzguNiwzOC42YzAsNy41LDYsMTMuNSwxMy41LDEzLjVzMTMuNS02LDEzLjUtMTMuNWMwLTYuNCw1LjItMTEuNiwxMS42LTExLjZoMjI3ICAgIGM2LjQsMCwxMS42LDUuMiwxMS42LDExLjZ2MzI1LjdjMCw2LjQtNS4yLDExLjYtMTEuNiwxMS42Yy03LjUsMC0xMy41LDYtMTMuNSwxMy41czYsMTMuNSwxMy41LDEzLjVjMjEuMywwLDM4LjYtMTcuMywzOC42LTM4LjYgICAgVjM4LjZDNDM5LjY1LDE3LjMsNDIyLjM1LDAsNDAxLjA1LDB6IiBmaWxsPSIjRkZGRkZGIi8+PC9nPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48L3N2Zz4=")}']}]}],ge.ctorParameters=function(){return[{type:H}]},ge.propDecorators={id:[{type:i.Input}],currentImage:[{type:i.Input}],refresh:[{type:i.Output}],delete:[{type:i.Output}],navigate:[{type:i.Output}],download:[{type:i.Output}],closeButton:[{type:i.Output}],fullscreen:[{type:i.Output}],customEmit:[{type:i.Output}]};var ue=function(e){function t(t){var n=e.call(this)||this;return n.configService=t,n.clickDot=new i.EventEmitter,n}return g(t,e),t.prototype.ngOnInit=function(){if(!this.id)throw new Error("Internal library error - id must be defined");var e=this.configService.getConfig(this.id);if(!e)throw new Error("Internal library error - libConfig must be defined");this.accessibilityConfig=e.accessibilityConfig,this.configDots=Object.assign({},this.dotsConfig)},t.prototype.ngOnChanges=function(e){var i=e.dotsConfig;i&&i.currentValue!==i.previousValue&&(this.configDots=i.currentValue)},t.prototype.isActive=function(e){if(!this.currentImage||!this.images||0===this.images.length)return!1;var i;try{i=C(this.currentImage,this.images)}catch(e){return console.error("Internal error while trying to show the active 'dot'",e),!1}return e===i},t.prototype.onDotEvent=function(i,t){1===e.prototype.handleImageEvent.call(this,t)&&this.clickDot.emit(i)},t.prototype.trackById=function(e,i){return i.id},t}(y);ue.decorators=[{type:i.Component,args:[{selector:"ks-dots",template:'<nav class="dots-container" [attr.aria-label]="accessibilityConfig?.dotsContainerAriaLabel"\n [title]="accessibilityConfig?.dotsContainerTitle">\n <ng-container *ngIf="!dotsConfig || dotsConfig?.visible">\n <div class="inside dot"\n *ngFor="let img of images; trackBy: trackById; let index = index"\n [ngClass]="{\'active\': isActive(index)}"\n [attr.aria-label]="accessibilityConfig?.dotAriaLabel + \' \' + (index + 1)"\n [tabIndex]="0" role="navigation"\n (click)="onDotEvent(index, $event)" (keyup)="onDotEvent(index, $event)"></div>\n </ng-container>\n</nav>\n',changeDetection:i.ChangeDetectionStrategy.OnPush,styles:[".dots-container{display:flex;flex-direction:row;justify-content:center;margin-bottom:30px}.dots-container>.dot{background:#fff;border-radius:5px;cursor:pointer;height:10px;margin-left:4px;margin-right:4px;opacity:.5;width:10px}.dots-container>.dot:hover{opacity:.9;transition:all .5s ease;transition-property:opacity}.dots-container>.dot.active{cursor:pointer;opacity:.9}@keyframes fadein-semi-visible05{0%{opacity:0}to{opacity:.5}}@keyframes fadein-semi-visible09{0%{opacity:0}to{opacity:.9}}"]}]}],ue.ctorParameters=function(){return[{type:H}]},ue.propDecorators={id:[{type:i.Input}],currentImage:[{type:i.Input}],images:[{type:i.Input}],dotsConfig:[{type:i.Input}],clickDot:[{type:i.Output}]};var de=function(t){function n(n){var r=t.call(this)||this;return r.configService=n,r.clickPreview=new i.EventEmitter,r.clickAction=e.Action.CLICK,r.keyboardAction=e.Action.KEYBOARD,r.previews=[],r.defaultPreviewSize=E,r}return g(n,t),n.prototype.ngOnInit=function(){if(!this.id)throw new Error("Internal library error - id must be defined");var e=this.configService.getConfig(this.id);if(!e)throw new Error("Internal library error - libConfig must be defined");if(this.accessibilityConfig=e.accessibilityConfig,this.slideConfig=e.slideConfig,this.previewConfig=e.previewConfig,!this.currentImage||!this.images)throw new Error("Internal library error - currentImage and images must be defined");this.initPreviews(this.currentImage,this.images)},n.prototype.isActive=function(e){return!(!e||!this.currentImage)&&e.id===this.currentImage.id},n.prototype.ngOnChanges=function(e){var i,t,n=e.images,r=e.currentImage;r?(i=r.previousValue,t=r.currentValue):t=this.currentImage,t&&n&&n.previousValue&&n.currentValue&&this.initPreviews(t,n.currentValue),i&&t&&i.id!==t.id&&this.updatePreviews(i,t)},n.prototype.onImageEvent=function(i,n,r){if(void 0===r&&(r=e.Action.NORMAL),!this.id||!this.images)throw new Error("Internal library error - id and images must be defined");if(this.previewConfig&&this.previewConfig.clickable){var a=t.prototype.handleImageEvent.call(this,n);1!==a&&a!==h||this.clickPreview.emit(new b(this.id,r,C(i,this.images)))}},n.prototype.onNavigationEvent=function(i,n,r){void 0===r&&(r=e.Action.NORMAL);var a=t.prototype.handleNavigationEvent.call(this,i,n);1===a?this.next():a===h&&this.previous()},n.prototype.trackById=function(e,i){return i.id},n.prototype.initPreviews=function(e,i){var t,n=this;try{t=C(e,i)}catch(e){throw e}switch(t){case 0:this.setBeginningIndexesPreviews();break;case i.length-1:this.setEndIndexesPreviews();break;default:this.setIndexesPreviews()}this.previews=i.filter((function(e,i){return i>=n.start&&i<n.end}))},n.prototype.setBeginningIndexesPreviews=function(){if(!this.previewConfig||!this.images)throw new Error("Internal library error - previewConfig and images must be defined");this.start=0,this.end=Math.min(this.previewConfig.number,this.images.length)},n.prototype.setEndIndexesPreviews=function(){if(!this.previewConfig||!this.images)throw new Error("Internal library error - previewConfig and images must be defined");this.start=this.images.length-1-(this.previewConfig.number-1),this.end=this.images.length},n.prototype.setIndexesPreviews=function(){if(!this.previewConfig||!this.images||!this.currentImage)throw new Error("Internal library error - previewConfig, currentImage and images must be defined");this.start=C(this.currentImage,this.images)-Math.floor(this.previewConfig.number/2),this.end=C(this.currentImage,this.images)+Math.floor(this.previewConfig.number/2)+1},n.prototype.next=function(){var e=this;if(!this.images)throw new Error("Internal library error - images must be defined");this.isPreventSliding(this.images.length-1)||this.end!==this.images.length&&(this.start++,this.end=Math.min(this.end+1,this.images.length),this.previews=this.images.filter((function(i,t){return t>=e.start&&t<e.end})))},n.prototype.previous=function(){var e=this;if(!this.images)throw new Error("Internal library error - images must be defined");this.isPreventSliding(0)||0!==this.start&&(this.start=Math.max(this.start-1,0),this.end=Math.min(this.end-1,this.images.length),this.previews=this.images.filter((function(i,t){return t>=e.start&&t<e.end})))},n.prototype.isPreventSliding=function(e){if(!this.images||!this.currentImage)throw new Error("Internal library error - images and currentImage must be defined");return!!this.slideConfig&&!1===this.slideConfig.infinite&&C(this.currentImage,this.images)===e},n.prototype.updatePreviews=function(e,i){var t,n,r=this;if(!this.images)throw new Error("Internal library error - images must be defined");try{t=C(e,this.images),n=C(i,this.images)}catch(e){throw console.error("Cannot get previous and current image indexes in previews"),e}return t===this.images.length-1&&0===n?(this.setBeginningIndexesPreviews(),void(this.previews=this.images.filter((function(e,i){return i>=r.start&&i<r.end})))):0===t&&n===this.images.length-1?(this.setEndIndexesPreviews(),void(this.previews=this.images.filter((function(e,i){return i>=r.start&&i<r.end})))):void(t>n?this.previous():t<n&&this.next())},n}(y);de.decorators=[{type:i.Component,args:[{selector:"ks-previews",template:'<nav class="previews-container"\n [class.mobile-visible]="previewConfig.mobileVisible"\n [attr.aria-label]="accessibilityConfig?.previewsContainerAriaLabel"\n [title]="accessibilityConfig?.previewsContainerTitle">\n\n <ng-container *ngIf="previewConfig?.visible">\n <a class="nav-left"\n [attr.aria-label]="accessibilityConfig?.previewScrollPrevAriaLabel"\n [tabIndex]="previewConfig.arrows && start > 0 ? 0 : -1" role="button"\n (click)="onNavigationEvent(\'left\', $event)" (keyup)="onNavigationEvent(\'left\', $event)">\n <div class="inside {{previewConfig.arrows && start > 0 ? \'left-arrow-preview-image\' : \'empty-arrow-preview-image\'}}"\n aria-hidden="true"\n [title]="accessibilityConfig?.previewScrollPrevTitle"></div>\n </a>\n\n <ng-container *ngFor="let preview of previews; trackBy: trackById; let index = index">\n <img *ngIf="preview?.modal?.img"\n class="inside preview-image {{isActive(preview) ? \'active\' : \'\'}}{{!previewConfig.clickable ? \' unclickable\' : \'\'}}"\n [src]="preview.plain?.img ? preview.plain.img : preview.modal.img"\n ksFallbackImage [fallbackImg]="preview.plain?.fallbackImg ? preview.plain.fallbackImg : preview.modal.fallbackImg"\n ksSize [sizeConfig]="{width: previewConfig.size ? previewConfig.size.width : defaultPreviewSize.width,\n height: previewConfig.size ? previewConfig.size.height : defaultPreviewSize.height}"\n [attr.aria-label]="preview.modal.ariaLabel ? preview.modal.ariaLabel : \'\'"\n [title]="(preview.modal.title || preview.modal.title === \'\') ? preview.modal.title : \'\'"\n alt="{{preview.modal.alt ? preview.modal.alt : \'\'}}"\n [tabIndex]="0" role="img"\n (click)="onImageEvent(preview, $event, clickAction)" (keyup)="onImageEvent(preview, $event, keyboardAction)"/>\n </ng-container>\n\n\n <a class="nav-right"\n [attr.aria-label]="accessibilityConfig?.previewScrollNextAriaLabel"\n [tabIndex]="previewConfig.arrows && end < images.length ? 0 : -1" role="button"\n (click)="onNavigationEvent(\'right\', $event)" (keyup)="onNavigationEvent(\'right\', $event)">\n <div class="inside {{previewConfig.arrows && end < images.length ? \'right-arrow-preview-image\' : \'empty-arrow-preview-image\'}}"\n aria-hidden="true"\n [title]="accessibilityConfig?.previewScrollNextTitle"></div>\n </a>\n </ng-container>\n\n</nav>\n',changeDetection:i.ChangeDetectionStrategy.OnPush,styles:["@media only screen and (max-device-width:767px),only screen and (max-width:767px){.previews-container,.previews-container>.nav-left,.previews-container>.nav-right,.previews-container>.preview-image{display:none}.previews-container.mobile-visible{align-items:center;animation:fadein-semi-visible08 .8s;display:flex;flex-direction:row;justify-content:center;margin-bottom:15px}.previews-container.mobile-visible>.nav-left,.previews-container.mobile-visible>.nav-right{display:flex}.previews-container.mobile-visible>.preview-image{cursor:pointer;display:flex;height:50px;margin-left:2px;margin-right:2px;opacity:.7}.previews-container.mobile-visible>.preview-image.active{opacity:1}.previews-container.mobile-visible>.preview-image.unclickable{cursor:not-allowed}.previews-container.mobile-visible>.preview-image:hover{opacity:1;transition:all .5s ease;transition-property:opacity}}@media only screen and (min-device-width:768px){.previews-container{align-items:center;animation:fadein-semi-visible08 .8s;display:flex;flex-direction:row;justify-content:center;margin-bottom:15px}.previews-container>.preview-image{cursor:pointer;height:50px;margin-left:2px;margin-right:2px;opacity:.7}.previews-container>.preview-image.active{opacity:1}.previews-container>.preview-image.unclickable{cursor:not-allowed}.previews-container>.preview-image:hover{opacity:1;transition:all .5s ease;transition-property:opacity}.previews-container .nav,.previews-container>.nav-left,.previews-container>.nav-right{color:#919191;cursor:pointer;transition:all .5s}.previews-container .nav:hover,.previews-container>.nav-left:hover,.previews-container>.nav-right:hover{transform:scale(1.1)}.previews-container>.nav-left{margin-right:10px}.previews-container>.nav-right{margin-left:10px}}@keyframes fadein-visible{0%{opacity:0}to{opacity:1}}@keyframes fadein-semi-visible05{0%{opacity:0}to{opacity:.5}}@keyframes fadein-semi-visible08{0%{opacity:0}to{opacity:.8}}@keyframes fadein-semi-visible09{0%{opacity:0}to{opacity:.9}}",'.arrow-preview-image,.empty-arrow-preview-image,.left-arrow-preview-image,.right-arrow-preview-image{height:15px;opacity:.5;width:15px}.empty-arrow-preview-image{background:#000;opacity:0}.left-arrow-preview-image{background-image:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ3Ny4xNzUgNDc3LjE3NSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDc3LjE3NSA0NzcuMTc1OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgd2lkdGg9IjUxMnB4IiBoZWlnaHQ9IjUxMnB4Ij48Zz48cGF0aCBkPSJNMTQ1LjE4OCwyMzguNTc1bDIxNS41LTIxNS41YzUuMy01LjMsNS4zLTEzLjgsMC0xOS4xcy0xMy44LTUuMy0xOS4xLDBsLTIyNS4xLDIyNS4xYy01LjMsNS4zLTUuMywxMy44LDAsMTkuMWwyMjUuMSwyMjUgICBjMi42LDIuNiw2LjEsNCw5LjUsNHM2LjktMS4zLDkuNS00YzUuMy01LjMsNS4zLTEzLjgsMC0xOS4xTDE0NS4xODgsMjM4LjU3NXoiIGZpbGw9IiNGRkZGRkYiLz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PC9zdmc+");background-size:15px;transition:all .5s}.left-arrow-preview-image:hover{transform:scale(1.2)}.right-arrow-preview-image{background-image:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ3Ny4xNzUgNDc3LjE3NSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDc3LjE3NSA0NzcuMTc1OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgd2lkdGg9IjUxMnB4IiBoZWlnaHQ9IjUxMnB4Ij48Zz48cGF0aCBkPSJNMzYwLjczMSwyMjkuMDc1bC0yMjUuMS0yMjUuMWMtNS4zLTUuMy0xMy44LTUuMy0xOS4xLDBzLTUuMywxMy44LDAsMTkuMWwyMTUuNSwyMTUuNWwtMjE1LjUsMjE1LjUgICBjLTUuMyw1LjMtNS4zLDEzLjgsMCwxOS4xYzIuNiwyLjYsNi4xLDQsOS41LDRjMy40LDAsNi45LTEuMyw5LjUtNGwyMjUuMS0yMjUuMUMzNjUuOTMxLDI0Mi44NzUsMzY1LjkzMSwyMzQuMjc1LDM2MC43MzEsMjI5LjA3NXogICAiIGZpbGw9IiNGRkZGRkYiLz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PC9zdmc+");background-size:15px;transition:all .5s}.right-arrow-preview-image:hover{transform:scale(1.2)}']}]}],de.ctorParameters=function(){return[{type:H}]},de.propDecorators={id:[{type:i.Input}],currentImage:[{type:i.Input}],images:[{type:i.Input}],clickPreview:[{type:i.Output}]};var me=function(){this.loadingStandard=e.LoadingType.STANDARD,this.loadingBars=e.LoadingType.BARS,this.loadingCircular=e.LoadingType.CIRCULAR,this.loadingDots=e.LoadingType.DOTS,this.loadingCubeFlipping=e.LoadingType.CUBE_FLIPPING,this.loadingCircles=e.LoadingType.CIRCLES,this.loadingExplosingSquares=e.LoadingType.EXPLOSING_SQUARES};me.decorators=[{type:i.Component,args:[{selector:"ks-loading-spinner",template:'<div [attr.aria-label]="accessibilityConfig?.loadingSpinnerAriaLabel"\n [title]="accessibilityConfig?.loadingSpinnerTitle">\n\n <ng-container [ngSwitch]="loadingConfig.type">\n <ng-container *ngSwitchCase="loadingStandard">\n <div class="cssload-loader">\n <div class="cssload-inner cssload-one"></div>\n <div class="cssload-inner cssload-two"></div>\n <div class="cssload-inner cssload-three"></div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase="loadingBars">\n <div class="loader-bars">\n </div>\n </ng-container>\n <ng-container *ngSwitchCase="loadingCircular">\n <div class="loader-circular">\n </div>\n </ng-container>\n <ng-container *ngSwitchCase="loadingDots">\n <div class="loader-dots">\n </div>\n </ng-container>\n <ng-container *ngSwitchCase="loadingCubeFlipping">\n <div class="cube-wrapper">\n <div class="cube-folding">\n <span class="leaf1"></span>\n <span class="leaf2"></span>\n <span class="leaf3"></span>\n <span class="leaf4"></span>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase="loadingCircles">\n <div id="preloader">\n <div id="loader"></div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase="loadingExplosingSquares">\n <div class="loader">\n <span></span>\n <span></span>\n <span></span>\n <span></span>\n </div>\n </ng-container>\n \x3c!--<ng-container *ngSwitchDefault>--\x3e\n \x3c!----\x3e\n \x3c!--</ng-container>--\x3e\n </ng-container>\n</div>\n',changeDetection:i.ChangeDetectionStrategy.OnPush,styles:[".cssload-loader{bottom:0;height:64px;left:0;margin:auto;perspective:800px;right:0;top:0;width:64px}.cssload-inner,.cssload-loader{-moz-border-radius:50%;-ms-border-radius:50%;-o-border-radius:50%;-webkit-border-radius:50%;border-radius:50%;position:absolute}.cssload-inner{-moz-box-sizing:border-box;-ms-box-sizing:border-box;-o-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;height:100%;width:100%}.cssload-inner.cssload-one{-moz-animation:cssload-rotate-one .6s linear infinite;-ms-animation:cssload-rotate-one .6s linear infinite;-o-animation:cssload-rotate-one .6s linear infinite;-webkit-animation:cssload-rotate-one .6s linear infinite;animation:cssload-rotate-one .6s linear infinite;border-bottom:3px solid hsla(0,0%,100%,.99);left:0;top:0}.cssload-inner.cssload-two{-moz-animation:cssload-rotate-two .6s linear infinite;-ms-animation:cssload-rotate-two .6s linear infinite;-o-animation:cssload-rotate-two .6s linear infinite;-webkit-animation:cssload-rotate-two .6s linear infinite;animation:cssload-rotate-two .6s linear infinite;border-right:3px solid #fff;right:0;top:0}.cssload-inner.cssload-three{-moz-animation:cssload-rotate-three .6s linear infinite;-ms-animation:cssload-rotate-three .6s linear infinite;-o-animation:cssload-rotate-three .6s linear infinite;-webkit-animation:cssload-rotate-three .6s linear infinite;animation:cssload-rotate-three .6s linear infinite;border-top:3px solid #fff;bottom:0;right:0}@keyframes cssload-rotate-one{0%{transform:rotateX(35deg) rotateY(-45deg) rotate(0deg)}to{transform:rotateX(35deg) rotateY(-45deg) rotate(1turn)}}@keyframes cssload-rotate-two{0%{transform:rotateX(50deg) rotateY(10deg) rotate(0deg)}to{transform:rotateX(50deg) rotateY(10deg) rotate(1turn)}}@keyframes cssload-rotate-three{0%{transform:rotateX(35deg) rotateY(55deg) rotate(0deg)}to{transform:rotateX(35deg) rotateY(55deg) rotate(1turn)}}",".loader-dots{animation:load4 1.3s linear infinite;border-radius:50%;bottom:0;color:#fefcff;font-size:10px;height:1em;left:0;margin:auto;position:absolute;right:0;text-indent:-9999em;top:0;transform:translateZ(0);width:1em}@keyframes load4{0%,to{box-shadow:0 -3em 0 .2em,2em -2em 0 0,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 0}12.5%{box-shadow:0 -3em 0 0,2em -2em 0 .2em,3em 0 0 0,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 -1em}25%{box-shadow:0 -3em 0 -.5em,2em -2em 0 0,3em 0 0 .2em,2em 2em 0 0,0 3em 0 -1em,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 -1em}37.5%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 0,2em 2em 0 .2em,0 3em 0 0,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 -1em}50%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 0,0 3em 0 .2em,-2em 2em 0 0,-3em 0 0 -1em,-2em -2em 0 -1em}62.5%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 0,-2em 2em 0 .2em,-3em 0 0 0,-2em -2em 0 -1em}75%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 0,-3em 0 0 .2em,-2em -2em 0 0}87.5%{box-shadow:0 -3em 0 0,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 0,-3em 0 0 0,-2em -2em 0 .2em}}",'.loader-bars,.loader-bars:after,.loader-bars:before{animation:load1 1s ease-in-out infinite;background:#fefcff;height:4em;width:1em}.loader-bars{animation-delay:-.16s;bottom:0;color:#fefcff;font-size:11px;left:0;margin:auto;position:absolute;right:0;text-indent:-9999em;top:0;transform:translateZ(0)}.loader-bars:after,.loader-bars:before{content:"";position:absolute;top:0}.loader-bars:before{animation-delay:-.32s;left:-1.5em}.loader-bars:after{left:1.5em}@keyframes load1{0%,80%,to{box-shadow:0 0;height:4em}40%{box-shadow:0 -2em;height:5em}}',".loader-circular,.loader-circular:after{border-radius:50%;height:10em;width:10em}.loader-circular{animation:load8 1.1s linear infinite;border:1.1em solid hsla(0,0%,100%,.2);border-left-color:#fff;bottom:0;font-size:10px;left:0;margin:auto;position:absolute;right:0;text-indent:-9999em;top:0;transform:translateZ(0)}@keyframes load8{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}",'.cube-folding{display:inline-block;font-size:0;height:50px;transform:rotate(45deg);width:50px}.cube-folding span{display:inline-block;height:25px;position:relative;transform:scale(1.1);width:25px}.cube-folding span:before{animation:folding 2.5s linear infinite both;background-color:#fff;content:"";display:block;height:25px;left:0;position:absolute;top:0;transform-origin:100% 100%;width:25px}.cube-folding .leaf2{transform:rotate(90deg) scale(1.1)}.cube-folding .leaf2:before{animation-delay:.3s;background-color:#f2f2f2}.cube-folding .leaf3{transform:rotate(270deg) scale(1.1)}.cube-folding .leaf3:before{animation-delay:.9s;background-color:#f2f2f2}.cube-folding .leaf4{transform:rotate(180deg) scale(1.1)}.cube-folding .leaf4:before{animation-delay:.6s;background-color:#e6e6e6}@keyframes folding{0%,10%{opacity:0;transform:perspective(140px) rotateX(-180deg)}25%,75%{opacity:1;transform:perspective(140px) rotateX(0deg)}90%,to{opacity:0;transform:perspective(140px) rotateY(180deg)}}.cube-wrapper{height:100px;left:50%;margin-left:-50px;margin-top:-50px;position:fixed;text-align:center;top:50%;width:100px}@keyframes text{to{top:35px}}@keyframes shadow{to{bottom:-18px;width:100px}}','#preloader{height:100%;left:0;position:fixed;top:0;width:100%}#loader{animation:spin 2s linear infinite;border:3px solid transparent;border-radius:50%;border-top-color:#b4b4b4;display:block;height:100px;left:50%;margin:-75px 0 0 -75px;position:relative;top:50%;width:100px}#loader:before{animation:spin 3s linear infinite;border:3px solid transparent;border-radius:50%;border-top-color:#d9d9d9;bottom:5px;content:"";left:5px;position:absolute;right:5px;top:5px}#loader:after{animation:spin 1.5s linear infinite;border:3px solid transparent;border-radius:50%;border-top-color:#fff;bottom:15px;content:"";left:15px;position:absolute;right:15px;top:15px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}',"@keyframes loader{0%,10%,to{height:60px;width:60px}65%{height:150px;width:150px}}@keyframes loaderBlock{0%,30%{transform:rotate(0)}55%{background-color:#b4b4b4}to{transform:rotate(90deg)}}@keyframes loaderBlockInverse{0%,20%{transform:rotate(0)}55%{background-color:#d9d9d9}to{transform:rotate(-90deg)}}.loader{animation:loader 1.2s ease-in-out infinite;height:60px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%) rotate(45deg) translateZ(0);width:60px}.loader span{animation:loaderBlock 1.2s ease-in-out infinite both;background-color:#fff;display:block;height:40px;position:absolute;width:40px}.loader span:first-child{left:0;top:0}.loader span:nth-child(2){right:0;top:0}.loader span:nth-child(2),.loader span:nth-child(3){animation:loaderBlockInverse 1.2s ease-in-out infinite both}.loader span:nth-child(3){bottom:0;left:0}.loader span:nth-child(4){bottom:0;right:0}"]}]}],me.propDecorators={loadingConfig:[{type:i.Input}],accessibilityConfig:[{type:i.Input}]};var pe=function(t){function n(e){var n=t.call(this)||this;return n.configService=e,n.images=[],n.showImage=new i.EventEmitter,n.imageGrid=[],n.wrapStyle=!1,n.widthStyle="",n}return g(n,t),n.prototype.ngOnInit=function(){if(!this.id)throw new Error("Internal library error - id must be defined");this.configService.setConfig(this.id,this.config);var e=this.configService.getConfig(this.id);if(!e)throw new Error("Internal library error - libConfig must be defined");this.accessibilityConfig=e.accessibilityConfig,this.plainGalleryConfig=e.plainGalleryConfig,this.initImageGrid()},n.prototype.ngOnChanges=function(e){if(!this.id)throw new Error("Internal library error - id must be defined");var i=this.configService.getConfig(this.id);if(!i)throw new Error("Internal library error - libConfig must be defined");var t=e.images,n=e.plainGalleryConfig;!n||n.firstChange||n.previousValue===n.currentValue&&(n.previousValue||n.currentValue)||(this.plainGalleryConfig=i.plainGalleryConfig),t&&!t.firstChange&&t.previousValue!==t.currentValue&&this.initImageGrid()},n.prototype.showModalGalleryByImage=function(e){var i=this.images.findIndex((function(i){return i&&e&&i.id===e.id}));this.showModalGallery(i)},n.prototype.onNavigationEvent=function(e,i){1===t.prototype.handleImageEvent.call(this,e)&&this.showModalGalleryByImage(i)},n.prototype.getAltPlainDescriptionByImage=function(e){return e?e.plain&&e.plain.description?e.plain.description:"Image "+(C(e,this.images)+1):""},n.prototype.getTitleDisplay=function(e){var i="";e.plain&&e.plain.description?i=e.plain.description:e.modal&&e.modal.description&&(i=e.modal.description);var t=i||"";return""!==t&&(t=" - "+t),"Image "+(C(e,this.images)+1)+"/"+this.images.length+t},n.prototype.trackById=function(e,i){return i.id},n.prototype.showModalGallery=function(e){this.showImage.emit(e)},n.prototype.initImageGrid=function(){if(!this.plainGalleryConfig)throw new Error("Internal library error - plainGalleryConfig must be defined");if(this.imageGrid=[],this.plainGalleryConfig.layout instanceof z){var i=this.plainGalleryConfig.layout,t=this.images.filter((function(e,t){return t<i.breakConfig.length||-1===i.breakConfig.length}));switch(this.imageGrid=[t],this.size=this.plainGalleryConfig.layout.size,this.plainGalleryConfig.strategy){case e.PlainGalleryStrategy.ROW:this.directionStyle="row";break;case e.PlainGalleryStrategy.COLUMN:this.directionStyle="column",this.wrapStyle=i.breakConfig.wrap}this.justifyStyle=i.justify}if(this.plainGalleryConfig.layout instanceof k){for(var n=this.plainGalleryConfig.layout,r=Math.ceil(this.images.length/n.breakConfig.length),a=0,o=n.breakConfig.length-1,s=0;s<r;s++){t=this.images.filter((function(e,i){return i>=a&&i<=o}));this.imageGrid.push(t),o=(a=o+1)+n.breakConfig.length-1}this.size=this.plainGalleryConfig.layout.size;var l=+n.size.width.replace("px","");this.widthStyle=l*n.breakConfig.length+l/2+"px",this.wrapStyle=n.breakConfig.wrap,this.directionStyle="row"}this.plainGalleryConfig.layout instanceof P&&(this.imageGrid=[this.images])},n}(y);pe.decorators=[{type:i.Component,args:[{selector:"ks-plain-gallery",template:'<div *ngIf="showGallery"\n class="plain-container"\n ksWrap [wrap]="wrapStyle" [width]="widthStyle"\n ksDirection [direction]="directionStyle" [justify]="justifyStyle"\n [attr.aria-label]="accessibilityConfig?.plainGalleryContentAriaLabel"\n [title]="accessibilityConfig?.plainGalleryContentTitle">\n\n <ng-container *ngFor="let imgRow of imageGrid; let i = index">\n <ng-container *ngFor="let imgCol of imgRow; let j = index">\n\n <ng-container *ngIf="!plainGalleryConfig.advanced?.aTags; else aTags">\n <img *ngIf="imgCol?.modal?.img"\n [src]="imgCol.plain?.img ? imgCol.plain.img : imgCol.modal.img"\n ksFallbackImage [fallbackImg]="imgCol.plain?.fallbackImg ? imgCol.plain?.fallbackImg : imgCol.modal.fallbackImg"\n class="image"\n ksSize [sizeConfig]="{width: size?.width, height: size?.height}"\n [attr.aria-label]="imgCol.plain?.ariaLabel"\n [title]="(imgCol.plain?.title || imgCol.plain?.title === \'\') ? imgCol.plain.title : getTitleDisplay(imgCol)"\n alt="{{imgCol.plain?.alt ? imgCol.plain.alt : getAltPlainDescriptionByImage(imgCol)}}"\n [tabIndex]="0" role="img"\n (click)="showModalGalleryByImage(imgCol)" (keyup)="onNavigationEvent($event, imgCol)"/>\n </ng-container>\n\n \x3c!-- Add directive to set background with the image url as param to pass thumb or img--\x3e\n \x3c!-- to do something like this <a style="background: url(\'path to image\') 50% 50%/cover">.--\x3e\n <ng-template #aTags>\n <a *ngIf="imgCol?.modal?.img"\n class="a-tag-image"\n ksATagBgImage [image]="imgCol" [style]="plainGalleryConfig.advanced?.additionalBackground"\n ksSize [sizeConfig]="{width: size?.width, height: size?.height}"\n [attr.aria-label]="imgCol.plain?.ariaLabel"\n [title]="(imgCol.plain?.title || imgCol.plain?.title === \'\') ? imgCol.plain.title : getTitleDisplay(imgCol)"\n [tabIndex]="0"\n (click)="showModalGalleryByImage(imgCol)" (keyup)="onNavigationEvent($event, imgCol)"></a>\n </ng-template>\n\n </ng-container>\n </ng-container>\n\n</div>\n\n',changeDetection:i.ChangeDetectionStrategy.OnPush,styles:[".plain-container{align-items:center;display:flex}.plain-container .image{height:auto;width:50px}.plain-container .a-tag-image,.plain-container .image{cursor:pointer;margin:2px}"]}]}],pe.ctorParameters=function(){return[{type:H}]},pe.propDecorators={id:[{type:i.Input}],images:[{type:i.Input}],showGallery:[{type:i.Input}],config:[{type:i.Input}],showImage:[{type:i.Output}]};var he=[pe,ie,ne,ge,ue,de,Q,me,y,$],fe=function(){function e(){this.clickOutside=new i.EventEmitter}return e.prototype.onClick=function(e){e.stopPropagation();var i=e.target;if(this.clickOutsideEnable&&i){var t=!1,n=!1;"string"!=typeof i.className?t=!0:(t=i.className&&i.className.includes("inside"),n=i.className.includes("hidden")),t&&!n||this.clickOutside.emit(!0)}},e}();fe.decorators=[{type:i.Directive,args:[{selector:"[ksClickOutside]"}]}],fe.propDecorators={clickOutsideEnable:[{type:i.Input}],clickOutside:[{type:i.Output}],onClick:[{type:i.HostListener,args:["click",["$event"]]}]};var ye=function(){function e(e,i){this.renderer=e,this.el=i}return e.prototype.ngOnInit=function(){this.applyStyle()},e.prototype.ngOnChanges=function(){this.applyStyle()},e.prototype.applyStyle=function(){this.sizeConfig&&(this.renderer.setStyle(this.el.nativeElement,"width",this.sizeConfig.width),this.renderer.setStyle(this.el.nativeElement,"height",this.sizeConfig.height))},e}();ye.decorators=[{type:i.Directive,args:[{selector:"[ksSize]"}]}],ye.ctorParameters=function(){return[{type:i.Renderer2},{type:i.ElementRef}]},ye.propDecorators={sizeConfig:[{type:i.Input}]};var we=function(){function e(){this.keyboardNavigation=new i.EventEmitter}return e.prototype.onKeyDown=function(e){this.isOpen&&this.keyboardNavigation.emit(e.keyCode)},e}();we.decorators=[{type:i.Directive,args:[{selector:"[ksKeyboardNavigation]"}]}],we.propDecorators={isOpen:[{type:i.Input}],keyboardNavigation:[{type:i.Output}],onKeyDown:[{type:i.HostListener,args:["window:keydown",["$event"]]}]};var ve=function(){function e(e,i){this.renderer=e,this.el=i}return e.prototype.ngOnInit=function(){this.applyStyle()},e.prototype.ngOnChanges=function(){this.applyStyle()},e.prototype.applyStyle=function(){this.wrap&&(this.renderer.setStyle(this.el.nativeElement,"width",this.width),this.renderer.setStyle(this.el.nativeElement,"flex-wrap",this.wrap?"wrap":"nowrap"))},e}();ve.decorators=[{type:i.Directive,args:[{selector:"[ksWrap]"}]}],ve.ctorParameters=function(){return[{type:i.Renderer2},{type:i.ElementRef}]},ve.propDecorators={wrap:[{type:i.Input}],width:[{type:i.Input}]};var Ie=function(){function e(e,i){this.renderer=e,this.el=i}return e.prototype.ngOnInit=function(){this.applyStyle()},e.prototype.ngOnChanges=function(){this.applyStyle()},e.prototype.applyStyle=function(){this.direction&&this.justify&&(this.renderer.setStyle(this.el.nativeElement,"flex-direction",this.direction),this.renderer.setStyle(this.el.nativeElement,"justify-content",this.justify))},e}();Ie.decorators=[{type:i.Directive,args:[{selector:"[ksDirection]"}]}],Ie.ctorParameters=function(){return[{type:i.Renderer2},{type:i.ElementRef}]},Ie.propDecorators={direction:[{type:i.Input}],justify:[{type:i.Input}]};var Me=function(){function e(e,i){this.renderer=e,this.el=i}return e.prototype.ngOnInit=function(){this.applyStyle()},e.prototype.ngOnChanges=function(){this.applyStyle()},e.prototype.applyStyle=function(){if(this.image&&(this.image.plain||this.image.modal)){var e='url("'+(this.image.plain&&this.image.plain.img?this.image.plain.img:this.image.modal.img)+'") '+this.style,i=this.image.plain&&this.image.plain.fallbackImg?this.image.plain.fallbackImg:this.image.modal.fallbackImg;i&&(e+=', url("'+i+'") '+this.style),this.renderer.setStyle(this.el.nativeElement,"background",e)}},e}();Me.decorators=[{type:i.Directive,args:[{selector:"[ksATagBgImage]"}]}],Me.ctorParameters=function(){return[{type:i.Renderer2},{type:i.ElementRef}]},Me.propDecorators={image:[{type:i.Input}],style:[{type:i.Input}]};var be=function(){function e(e,i){this.renderer=e,this.el=i}return e.prototype.ngOnInit=function(){this.applyStyle()},e.prototype.ngOnChanges=function(){this.applyStyle()},e.prototype.applyStyle=function(){this.description&&this.description.style&&(this.renderer.setStyle(this.el.nativeElement,"background",this.description.style.bgColor),this.renderer.setStyle(this.el.nativeElement,"color",this.description.style.textColor),this.description.style.width&&this.renderer.setStyle(this.el.nativeElement,"width",this.description.style.width),this.description.style.height&&this.renderer.setStyle(this.el.nativeElement,"height",this.description.style.height),this.description.style.position&&this.renderer.setStyle(this.el.nativeElement,"position",this.description.style.position),this.description.style.top&&this.renderer.setStyle(this.el.nativeElement,"top",this.description.style.top),this.description.style.bottom&&this.renderer.setStyle(this.el.nativeElement,"bottom",this.description.style.bottom),this.description.style.left&&this.renderer.setStyle(this.el.nativeElement,"left",this.description.style.left),this.description.style.right&&this.renderer.setStyle(this.el.nativeElement,"right",this.description.style.right),this.renderer.setStyle(this.el.nativeElement,"margin-top",this.description.style.marginTop?this.description.style.marginTop:"0px"),this.renderer.setStyle(this.el.nativeElement,"margin-bottom",this.description.style.marginBottom?this.description.style.marginBottom:"0px"),this.renderer.setStyle(this.el.nativeElement,"margin-left",this.description.style.marginLeft?this.description.style.marginLeft:"0px"),this.renderer.setStyle(this.el.nativeElement,"margin-right",this.description.style.marginRight?this.description.style.marginRight:"0px"))},e}();be.decorators=[{type:i.Directive,args:[{selector:"[ksDescription]"}]}],be.ctorParameters=function(){return[{type:i.Renderer2},{type:i.ElementRef}]},be.propDecorators={description:[{type:i.Input}]};var Ce=function(){function e(e,i){this.renderer=e,this.el=i}return e.prototype.ngOnInit=function(){this.applyStyle()},e.prototype.ngOnChanges=function(){this.applyStyle()},e.prototype.applyStyle=function(){this.marginLeft&&this.renderer.setStyle(this.el.nativeElement,"margin-left",this.marginLeft),this.marginRight&&this.renderer.setStyle(this.el.nativeElement,"margin-right",this.marginRight),this.marginTop&&this.renderer.setStyle(this.el.nativeElement,"margin-top",this.marginTop),this.marginBottom&&this.renderer.setStyle(this.el.nativeElement,"margin-bottom",this.marginBottom)},e}();Ce.decorators=[{type:i.Directive,args:[{selector:"[ksMargin]"}]}],Ce.ctorParameters=function(){return[{type:i.Renderer2},{type:i.ElementRef}]},Ce.propDecorators={marginLeft:[{type:i.Input}],marginRight:[{type:i.Input}],marginTop:[{type:i.Input}],marginBottom:[{type:i.Input}]};var Le=function(){function e(e,i){this.renderer=e,this.el=i}return e.prototype.ngOnInit=function(){this.applyStyle()},e.prototype.ngOnChanges=function(){this.applyStyle()},e.prototype.applyStyle=function(){this.maxSizeConfig&&(this.maxSizeConfig.maxWidth&&this.renderer.setStyle(this.el.nativeElement,"max-width",this.maxSizeConfig.maxWidth),this.maxSizeConfig.maxHeight&&this.renderer.setStyle(this.el.nativeElement,"max-height",this.maxSizeConfig.maxHeight))},e}();Le.decorators=[{type:i.Directive,args:[{selector:"[ksMaxSize]"}]}],Le.ctorParameters=function(){return[{type:i.Renderer2},{type:i.ElementRef}]},Le.propDecorators={maxSizeConfig:[{type:i.Input}]};var xe=function(){function e(e,t){this.renderer=e,this.el=t,this.fallbackApplied=new i.EventEmitter}return e.prototype.onError=function(){this.fallbackImg?(this.renderer.setAttribute(this.el.nativeElement,"src",this.fallbackImg.toString()),this.fallbackApplied.emit(!0)):this.fallbackApplied.emit(!1)},e}();xe.decorators=[{type:i.Directive,args:[{selector:"[ksFallbackImage]"}]}],xe.ctorParameters=function(){return[{type:i.Renderer2},{type:i.ElementRef}]},xe.propDecorators={fallbackImg:[{type:i.Input}],fallbackApplied:[{type:i.Output}],onError:[{type:i.HostListener,args:["error"]}]};var je=[fe,ye,we,ve,Ie,Me,be,Ce,Le,xe],Se=function(e){function i(){return null!==e&&e.apply(this,arguments)||this}return g(i,e),i.prototype.buildHammer=function(e){return new Hammer(e,{touchAction:"pan-y"})},i}(n.HammerGestureConfig);Se.decorators=[{type:i.Injectable}];var Ne=function(){};Ne.decorators=[{type:i.NgModule,args:[{imports:[t.CommonModule,r.OverlayModule],declarations:[he,je],exports:[pe,ie],providers:[{provide:n.HAMMER_GESTURE_CONFIG,useClass:Se},H]}]}],e.AdvancedLayout=P,e.CarouselComponent=ie,e.GalleryModule=Ne,e.GridLayout=k,e.Image=I,e.ImageEvent=M,e.ImageModalEvent=b,e.KS_DEFAULT_ACCESSIBILITY_CONFIG=j,e.KS_DEFAULT_BTN_CLOSE=ae,e.KS_DEFAULT_BTN_DELETE=le,e.KS_DEFAULT_BTN_DOWNLOAD=oe,e.KS_DEFAULT_BTN_EXTURL=se,e.KS_DEFAULT_BTN_FULL_SCREEN=ce,e.KS_DEFAULT_SIZE=re,e.LineLayout=z,e.ModalGalleryComponent=$,e.ModalGalleryRef=X,e.ModalGalleryService=ee,e.PlainGalleryComponent=pe,e.ɵa=Se,e.ɵb=he,e.ɵc=y,e.ɵd=H,e.ɵe=ne,e.ɵf=ge,e.ɵg=ue,e.ɵh=de,e.ɵi=Q,e.ɵj=me,e.ɵk=F,e.ɵl=V,e.ɵm=J,e.ɵn=je,e.ɵo=fe,e.ɵp=ye,e.ɵq=we,e.ɵr=ve,e.ɵs=Ie,e.ɵt=Me,e.ɵu=be,e.ɵv=Ce,e.ɵw=Le,e.ɵx=xe,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
16
|
-
//# sourceMappingURL=ks89-angular-modal-gallery.umd.min.js.map
|