diff --git a/404.html b/404.html index 96a45f8a..98eec75e 100644 --- a/404.html +++ b/404.html @@ -5,7 +5,7 @@ - + @@ -178,7 +178,7 @@

Demos

-Thumbnails → +Thumbnails Gallery →
@@ -375,6 +375,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/captions/index.html b/demos/captions/index.html index de78439f..6ef1266b 100644 --- a/demos/captions/index.html +++ b/demos/captions/index.html @@ -5,7 +5,7 @@ - + @@ -81,7 +81,7 @@
-

Captions

+

+Captions +

You can directly pass image caption html via data-sub-html attribute or just pass id or class name of any html object (div) which contains your cation html.

Demo

-

Comment box

+

+Comment box +

LightGallery supports facebook and Disqus comments out of the box with the help of lg-comments plugin.

Facebook comments demo

-

Custom Easing

+

+Custom Easing +

You can pass easing property via lightGallery easing setting. Bellow you can find some of the possible values of cssEasing. Demo values are taken from @matthewlein`s ceaser

Demo

-

Dynamic Mode

+

+Dynamic Mode +

LightGallery can be instantiated and launched programmatically by setting dynamic option to true and populating dynamicEl option by passing array of objects representing the gallery elements. See available dynamic options Docs.

-

Events

+

+Events +

lightGallery emits several custom events throughout the gallery lifecycle. This can be used to customize the gallery or to add your own features. Docs

Let’s see how we can change the background color of the gallery on every slide change.

@@ -289,6 +291,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/hash/index.html b/demos/hash/index.html index fa3ebdeb..0de67d25 100644 --- a/demos/hash/index.html +++ b/demos/hash/index.html @@ -5,7 +5,7 @@ - + @@ -81,7 +81,7 @@
-

Hash

+

+Hash +

lightGallery hash plugin allows you create unique url for each gallery images. You can provide custom names for each slides too. If you have multiple galleries on a page, you have to provide unique id for each gallery via galleryId setting.

Demo

-

HTML Markup

+

+HTML Markup +

LightGallery does not force you to use any specific HTML markup. You can use almost any kind of markup with the help of `selector` setting.

HTML Structure
<div id="anchor-tag">
@@ -291,6 +293,6 @@ 
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/iframe/index.html b/demos/iframe/index.html index 8475f2fc..02ff3aaa 100644 --- a/demos/iframe/index.html +++ b/demos/iframe/index.html @@ -5,7 +5,7 @@ - + @@ -81,7 +81,7 @@
-

Iframe

+

+Iframe +

If you want to display a webpage within the gallery, you just need to set data-iframe attribute true for the slide item. lightGallery will automatically display the source in an iframe. This can be used to view PDF files, google maps and more.

@@ -285,6 +287,6 @@

WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/index.html b/demos/index.html index f2eebc6e..5b42f7bc 100644 --- a/demos/index.html +++ b/demos/index.html @@ -5,7 +5,7 @@ - + @@ -26,7 +26,7 @@ - + @@ -164,7 +164,7 @@

Demos

@@ -306,6 +306,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/index.xml b/demos/index.xml index 89d76b03..601a1400 100644 --- a/demos/index.xml +++ b/demos/index.xml @@ -1,4 +1,4 @@ -Demos onhttps://www.lightgalleryjs.com/demos/Recent content in Demos onHugo -- gohugo.ioen-USTue, 06 Oct 2020 08:48:57 +0000Thumbnailshttps://www.lightgalleryjs.com/demos/thumbnails/Tue, 06 Oct 2020 08:48:57 +0000https://www.lightgalleryjs.com/demos/thumbnails/You need to include thumbnails plugin in the document. Animated thumbnails Photo by - Tobias Rademacher Location - Puezgruppe, Wolkenstein in Gröden, Südtirol, Italienlayers of blue. +Demos onhttps://www.lightgalleryjs.com/demos/Recent content in Demos onHugo -- gohugo.ioen-USTue, 06 Oct 2020 08:48:57 +0000Thumbnails galleryhttps://www.lightgalleryjs.com/demos/thumbnails/Tue, 06 Oct 2020 08:48:57 +0000https://www.lightgalleryjs.com/demos/thumbnails/You need to include thumbnails plugin in the document. Animated thumbnails Photo by - Tobias Rademacher Location - Puezgruppe, Wolkenstein in Gröden, Südtirol, Italienlayers of blue. " Photo by - Massimiliano Morosinotto Location - Tre Cime di Lavaredo, ItaliaThis is the Way " Photo by - Sascha Bosshard Location - Pizol, Mels, Schweiz " Photo by - Yusuf Evli Foggy RoadVideo galleryhttps://www.lightgalleryjs.com/demos/video-gallery/Tue, 06 Oct 2020 08:48:57 +0000https://www.lightgalleryjs.com/demos/video-gallery/External videos To display YouTube, Vimeo and Wistia, videos, you just need to paste the video URL, or share URL of the video in the data-src attribute. The same way you display images in the gallery. lightGallery will check the data-src attribute and if it is a video URL, it will create the respective video slide. diff --git a/demos/infinite-scrolling/index.html b/demos/infinite-scrolling/index.html index 0b5b43a5..d8d1cad1 100644 --- a/demos/infinite-scrolling/index.html +++ b/demos/infinite-scrolling/index.html @@ -5,7 +5,7 @@ - + @@ -81,7 +81,7 @@
-

Infinite scrolling

+

+Infinite scrolling +

Infinite scrolling is a web-design technique that loads content continuously as the user scrolls down the page, eliminating the need for pagination. Let`s see how we can implement infinite scrolling with lightGallery

HTML Structure

<div id="infinite-scroll-gallery">
@@ -326,6 +328,6 @@ 
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/inline/index.html b/demos/inline/index.html index 190bf6bf..460f2930 100644 --- a/demos/inline/index.html +++ b/demos/inline/index.html @@ -5,7 +5,7 @@ - + @@ -81,7 +81,7 @@
-

Inline Gallery

+

+Inline Gallery +

With lightGallery you can create both inline and lightBox galleries. You can create inline gallery by passing the container element via container option. All the lightBox features are available in inline gallery as well. inline gallery can be converted to the lightBox gallery by clicking on the maximize icon on the toolbar

Demo

@@ -301,6 +303,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/medium-zoom/index.html b/demos/medium-zoom/index.html index 20bcec53..47f42e78 100644 --- a/demos/medium-zoom/index.html +++ b/demos/medium-zoom/index.html @@ -5,7 +5,7 @@ - + @@ -81,7 +81,7 @@
-

Medium like zoom

+

+Medium like zoom +

Easily create image zooming experience as seen on medium. You can just use lightGallery mediumZoom plugin to achieve the same experience out of the box.

If you want to target all images in a blog post, you can add lightGallery to the outer element and select all images using the selector option.

@@ -359,6 +361,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/methods/index.html b/demos/methods/index.html index bac21499..4c96d558 100644 --- a/demos/methods/index.html +++ b/demos/methods/index.html @@ -5,7 +5,7 @@ - + @@ -81,7 +81,7 @@
-

Methods

+

+Methods +

You can use lightGallery plugin instance public methods to trigger specific lightGallery actions. lightGallery provides several useful methods which can be used to customize the gallery or to build your own features. You can find the list of methods in the docs.

Let’s see how we integrate custom next and previous buttons instead of built-in buttons using lightGallery methods.

@@ -307,6 +309,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/mixed-contents/index.html b/demos/mixed-contents/index.html index 29543975..b1cfb68d 100644 --- a/demos/mixed-contents/index.html +++ b/demos/mixed-contents/index.html @@ -5,7 +5,7 @@ - + @@ -81,7 +81,7 @@
-

Mixed contents

+

+Mixed contents +

lightGallery supports, images, HTML5 videos, external videos such as YouTube, Vimeo videos and iframes. You can mix all types of supported contents in a same gallery. lightGallery will automatically find the content type from source and create appropriate slides

Demo

-

Responsive images

+

+Responsive images +

You can provide different images for different screen sizes, resolution or devices. Other than it's own mechanism, lightGallery supports HTML5 picture tag, srcset and sizes for responsive images.

Demo

For cress browser responsive image support, lightGallery accepts a comma @@ -405,6 +407,6 @@

WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/share/index.html b/demos/share/index.html index bbdbccb7..3b1833e3 100644 --- a/demos/share/index.html +++ b/demos/share/index.html @@ -5,7 +5,7 @@ - + @@ -81,7 +81,7 @@
-

Social sharing

+

+Social sharing +

Share your images and videos across social media platforms using the unique url created by lightGallery.

Demo

-

SwiperJs demo

+

+SwiperJs demo +

SwiperJs is one of the most popular JavaScript carousel/slider. Swiper can be used for creating beautiful image galleries with thumbnails. Here is the demo of adding lightbox gallery support for the Swiper carousel.

Demo

@@ -326,6 +328,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/thumbnails/index.html b/demos/thumbnails/index.html index 2bbe111b..01b1d88d 100644 --- a/demos/thumbnails/index.html +++ b/demos/thumbnails/index.html @@ -5,29 +5,29 @@ - + -Thumbnails - lightGallery - +Thumbnails gallery - lightGallery + - - + + - - + + - + @@ -81,7 +81,7 @@
-

Thumbnails

-

lightGallery allows you to create animated thumbnails for your gallery with the help of thumbnail plugin. Thumbnails plugin supports touch swipe navigation on touchscreen devices as well as mouse drag for desktops. it allows users to navigate between slides by clicking on the thumbnails. Thumbnails plugin also allows you to load thumbnails automatically for YouTube, Vimeo, and other video sources. Find out more options in the docs

+

+JavaScript gallery with thumbnails. +

+

Create JavaScript image and video galleries with animated thumbnails. lightGallery thumbnails plugin supports touch swipe navigation on touchscreen devices as well as mouse drag for desktops. it allows users to navigate between slides by clicking on the thumbnails. Thumbnails plugin also allows you to load thumbnails automatically for YouTube, Vimeo, and other video sources. Find out more options in the docs

@@ -596,6 +598,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/transitions/index.html b/demos/transitions/index.html index 1d812479..cf556be6 100644 --- a/demos/transitions/index.html +++ b/demos/transitions/index.html @@ -5,7 +5,7 @@ - + @@ -81,7 +81,7 @@
-

Transitions

+

+Transitions +

lightGallery comes with a numerous number of beautiful built in transitions. You can change the type of transitions by passing the transition name via mode option. lightGallery uses Hardware-Accelerated CSS3 transitions for faster animation performance. You can easily create your own beautiful custom transitions by updating the CSS transform values.

Demo

-

Update Slides

+

+Update Slides +

lightGallery supports, adding, editing, deleting slides even if the gallery is opened. You just need to modify the current gallery items and pass it via updateSlides method.

Let’s see how we can add and delete slides dynamically.

In this demo, we’ll be using some of the lightGallery jQuery like utilities for @@ -351,6 +353,6 @@

WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/video-gallery/index.html b/demos/video-gallery/index.html index fe543d4c..12b77089 100644 --- a/demos/video-gallery/index.html +++ b/demos/video-gallery/index.html @@ -5,7 +5,7 @@ - + @@ -82,7 +82,7 @@
-

Video gallery

+

+Video gallery +

lightGallery supports YouTube, Vimeo, Wistia and all other types of HTML5 video formats. Such as MP4, WebM, Ogg, etc.

External videos

To display YouTube, Vimeo and Wistia, videos, you just need to paste the video URL, or share URL of the video in the data-src attribute. The same way you display images in the gallery. lightGallery will check the data-src attribute and if it is a video URL, it will create the respective video slide.

@@ -324,7 +326,7 @@
HTML structure
-← Thumbnails +← Thumbnails gallery
@@ -456,6 +458,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/zoom-from-origin/index.html b/demos/zoom-from-origin/index.html index 52ef6ee8..4a9e79f2 100644 --- a/demos/zoom-from-origin/index.html +++ b/demos/zoom-from-origin/index.html @@ -5,7 +5,7 @@ - + @@ -81,7 +81,7 @@
-

Zoom from origin

+

+Zoom from origin +

Zoom images from its origin while opening the image gallery.

You need to know the original image size upfront and provide it via data-lg-size attribute as data-lg-size=“1920-1280”

If you don’t know, the size of a few images in the list, you can skip the data-lg-size attribute for the particular slides, @@ -314,6 +316,6 @@

WebWhiz.ai
- + \ No newline at end of file diff --git a/docs/angular/index.html b/docs/angular/index.html index 997b00b9..47e2b65a 100644 --- a/docs/angular/index.html +++ b/docs/angular/index.html @@ -5,7 +5,7 @@ - + @@ -835,6 +835,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/docs/attributes/index.html b/docs/attributes/index.html index 9849f05b..1925b24f 100644 --- a/docs/attributes/index.html +++ b/docs/attributes/index.html @@ -5,7 +5,7 @@ - + @@ -634,6 +634,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/docs/creating-plugins/index.html b/docs/creating-plugins/index.html index dabcf689..28be38e0 100644 --- a/docs/creating-plugins/index.html +++ b/docs/creating-plugins/index.html @@ -5,7 +5,7 @@ - + @@ -310,6 +310,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/docs/custom-work/index.html b/docs/custom-work/index.html index d9197c97..4a94f42b 100644 --- a/docs/custom-work/index.html +++ b/docs/custom-work/index.html @@ -5,7 +5,7 @@ - + @@ -241,6 +241,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/docs/dynamic-variables/index.html b/docs/dynamic-variables/index.html index d44d6d70..90f13cee 100644 --- a/docs/dynamic-variables/index.html +++ b/docs/dynamic-variables/index.html @@ -5,7 +5,7 @@ - + @@ -531,6 +531,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/docs/events/index.html b/docs/events/index.html index 41ac8c6c..f856727f 100644 --- a/docs/events/index.html +++ b/docs/events/index.html @@ -5,7 +5,7 @@ - + @@ -704,6 +704,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/docs/getting-started/index.html b/docs/getting-started/index.html index b077813e..b24f40cf 100644 --- a/docs/getting-started/index.html +++ b/docs/getting-started/index.html @@ -5,7 +5,7 @@ - + @@ -401,6 +401,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index de35ce51..08287bcf 100644 --- a/docs/index.html +++ b/docs/index.html @@ -5,7 +5,7 @@ - + @@ -266,6 +266,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/docs/lg-query/index.html b/docs/lg-query/index.html index a41e97b6..685af918 100644 --- a/docs/lg-query/index.html +++ b/docs/lg-query/index.html @@ -5,7 +5,7 @@ - + @@ -234,6 +234,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/docs/license/index.html b/docs/license/index.html index 9b068be3..db17f564 100644 --- a/docs/license/index.html +++ b/docs/license/index.html @@ -5,7 +5,7 @@ - + @@ -259,6 +259,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/docs/methods/index.html b/docs/methods/index.html index 6c4051b1..0aeed385 100644 --- a/docs/methods/index.html +++ b/docs/methods/index.html @@ -5,7 +5,7 @@ - + @@ -444,6 +444,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/docs/react/index.html b/docs/react/index.html index 4e50c664..c184a3a2 100644 --- a/docs/react/index.html +++ b/docs/react/index.html @@ -5,7 +5,7 @@ - + @@ -861,6 +861,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/docs/settings/index.html b/docs/settings/index.html index d186bdfc..a5fcae0b 100644 --- a/docs/settings/index.html +++ b/docs/settings/index.html @@ -5,7 +5,7 @@ - + @@ -2395,6 +2395,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/docs/vue/index.html b/docs/vue/index.html index 484227f8..22733fda 100644 --- a/docs/vue/index.html +++ b/docs/vue/index.html @@ -5,7 +5,7 @@ - + @@ -879,6 +879,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/images/customer-logos/Al-Jazeera-logo.svg b/images/customer-logos/Al-Jazeera-logo.svg new file mode 100644 index 00000000..e9f906c7 --- /dev/null +++ b/images/customer-logos/Al-Jazeera-logo.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/images/customer-logos/Apple-logo.svg b/images/customer-logos/Apple-logo.svg new file mode 100644 index 00000000..21a81174 --- /dev/null +++ b/images/customer-logos/Apple-logo.svg @@ -0,0 +1,2062 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/customer-logos/Hyundai-Logo.svg b/images/customer-logos/Hyundai-Logo.svg new file mode 100644 index 00000000..0f420d8a --- /dev/null +++ b/images/customer-logos/Hyundai-Logo.svg @@ -0,0 +1,224 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/customer-logos/Lexus-Logo.svg b/images/customer-logos/Lexus-Logo.svg new file mode 100644 index 00000000..83b7a753 --- /dev/null +++ b/images/customer-logos/Lexus-Logo.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/images/customer-logos/Lufthansa-Logo.svg b/images/customer-logos/Lufthansa-Logo.svg new file mode 100644 index 00000000..753e8830 --- /dev/null +++ b/images/customer-logos/Lufthansa-Logo.svg @@ -0,0 +1,507 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/customer-logos/Sony-logo.svg b/images/customer-logos/Sony-logo.svg new file mode 100644 index 00000000..90abc5fd --- /dev/null +++ b/images/customer-logos/Sony-logo.svg @@ -0,0 +1,5674 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/customer-logos/Vogue-logo.svg b/images/customer-logos/Vogue-logo.svg new file mode 100644 index 00000000..3887dffc --- /dev/null +++ b/images/customer-logos/Vogue-logo.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/images/customer-logos/accenture-logo.svg b/images/customer-logos/accenture-logo.svg new file mode 100644 index 00000000..72907c87 --- /dev/null +++ b/images/customer-logos/accenture-logo.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/images/customer-logos/airtel-logo.svg b/images/customer-logos/airtel-logo.svg new file mode 100644 index 00000000..7bb14e7e --- /dev/null +++ b/images/customer-logos/airtel-logo.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/customer-logos/pwc.svg b/images/customer-logos/pwc.svg new file mode 100644 index 00000000..ca2c46b6 --- /dev/null +++ b/images/customer-logos/pwc.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/images/customer-logos/sap.svg b/images/customer-logos/sap.svg new file mode 100644 index 00000000..5751c251 --- /dev/null +++ b/images/customer-logos/sap.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/images/customer-logos/volvo.svg b/images/customer-logos/volvo.svg new file mode 100644 index 00000000..d94ca420 --- /dev/null +++ b/images/customer-logos/volvo.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/index.html b/index.html index 29b302be..b24ec10b 100644 --- a/index.html +++ b/index.html @@ -5,7 +5,7 @@ - + @@ -26,7 +26,7 @@ - + @@ -166,6 +166,49 @@

A lightweight, modular, JavaScript image and video lightbox +
+
+
+

Used by thousands.

+
+
+
+
+
+
+ +
+
+ +
+
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+
+ +
+
+
+
+
@@ -580,6 +623,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/license/index.html b/license/index.html index 4d847bcd..50a89881 100644 --- a/license/index.html +++ b/license/index.html @@ -5,7 +5,7 @@ - + @@ -343,6 +343,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/main.770a446e9bd7e44659a7e9d61c86ca2a241adf05b73a94b4e640ca42beff0c829eeecb4b730fc54293455697ddba7aa89689fe23c856f56908eb9d3b329d9b42.css b/main.770a446e9bd7e44659a7e9d61c86ca2a241adf05b73a94b4e640ca42beff0c829eeecb4b730fc54293455697ddba7aa89689fe23c856f56908eb9d3b329d9b42.css new file mode 100644 index 00000000..2d06614e --- /dev/null +++ b/main.770a446e9bd7e44659a7e9d61c86ca2a241adf05b73a94b4e640ca42beff0c829eeecb4b730fc54293455697ddba7aa89689fe23c856f56908eb9d3b329d9b42.css @@ -0,0 +1,11 @@ +/*! + * Bootstrap v5.0.0-beta1 (https://getbootstrap.com/) + * Copyright 2011-2020 The Bootstrap Authors + * Copyright 2011-2020 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */:root{--bs-blue: #0e3481;--bs-indigo: #6610f2;--bs-purple: #6f42c1;--bs-pink: #d63384;--bs-red: #dc3545;--bs-orange: #fd7e14;--bs-yellow: #ffc107;--bs-green: #198754;--bs-teal: #20c997;--bs-cyan: #0dcaf0;--bs-white: #fff;--bs-gray: #6c757d;--bs-gray-dark: #343a40;--bs-primary: #0e3481;--bs-secondary: #6c757d;--bs-success: #198754;--bs-info: #0dcaf0;--bs-warning: #ffc107;--bs-danger: #dc3545;--bs-light: #f8f9fa;--bs-dark: #212529;--bs-font-sans-serif: "Helvetica Now Display", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--bs-gradient: linear-gradient(180deg, rgba(255,255,255,0.15), rgba(255,255,255,0))}*,*::before,*::after{box-sizing:border-box}@media (prefers-reduced-motion: no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:"Helvetica Now Display",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#333;background-color:#fff;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(51,51,51,0)}h5,.h5,h4,.h4,h3,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:.5rem;font-family:"Helvetica Now Display","Helvetica Now Display",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-weight:500;line-height:1.3}h1,.h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width: 1200px){h1,.h1{font-size:2.5rem}}h2,.h2{font-size:calc(1.325rem + .9vw)}@media (min-width: 1200px){h2,.h2{font-size:2rem}}h3,.h3{font-size:calc(1.265rem + .18vw)}@media (min-width: 1200px){h3,.h3{font-size:1.4rem}}h4,.h4{font-size:calc(1.275rem + .3vw)}@media (min-width: 1200px){h4,.h4{font-size:1.5rem}}h5,.h5{font-size:1.25rem}p{margin-top:0;margin-bottom:1rem}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ul{padding-left:2rem}ul,dl{margin-top:0;margin-bottom:1rem}ul ul{margin-bottom:0}b{font-weight:bolder}small,.small{font-size:.875em}a{color:#115df6;text-decoration:none}a:hover{color:#1250cc;text-decoration:underline}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:var(--bs-font-monospace);font-size:1em;direction:ltr /* rtl:ignore */;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:500}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus{outline:dotted 1px;outline:-webkit-focus-ring-color auto 5px}input,button,select,optgroup{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role="button"]{cursor:pointer}select{word-wrap:normal}[list]::-webkit-calendar-picker-indicator{display:none}button,[type="button"],[type="submit"]{-webkit-appearance:button}button:not(:disabled),[type="button"]:not(:disabled),[type="submit"]:not(:disabled){cursor:pointer}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none !important}.lead{font-size:1.25rem;font-weight:300}.list-unstyled{padding-left:0;list-style:none}.img-fluid{max-width:100%;height:auto}.figure{display:inline-block}.figure-caption{font-size:.875em;color:#6c757d}.container,.container-fluid,.container-xxl,.container-xl{width:100%;padding-right:var(--bs-gutter-x, 24px);padding-left:var(--bs-gutter-x, 24px);margin-right:auto;margin-left:auto}@media (min-width: 576px){.container{max-width:540px}}@media (min-width: 768px){.container{max-width:720px}}@media (min-width: 992px){.container{max-width:960px}}@media (min-width: 1200px){.container-xl,.container{max-width:1140px}}@media (min-width: 1400px){.container-xxl,.container-xl,.container{max-width:1320px}}.row{--bs-gutter-x: 48px;--bs-gutter-y: 0;display:flex;flex-wrap:wrap;margin-top:calc(var(--bs-gutter-y) * -1);margin-right:calc(var(--bs-gutter-x) / -2);margin-left:calc(var(--bs-gutter-x) / -2)}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) / 2);padding-left:calc(var(--bs-gutter-x) / 2);margin-top:var(--bs-gutter-y)}.col-4{flex:0 0 auto;width:33.33333333%}.gx-4{--bs-gutter-x: 8rem}@media (min-width: 576px){.col-sm-3{flex:0 0 auto;width:25%}.col-sm-6{flex:0 0 auto;width:50%}}@media (min-width: 768px){.col-md-6{flex:0 0 auto;width:50%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-12{flex:0 0 auto;width:100%}}@media (min-width: 992px){.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-12{flex:0 0 auto;width:100%}}@media (min-width: 1200px){.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-8{flex:0 0 auto;width:66.66666667%}}@media (min-width: 1400px){.col-xxl-5{flex:0 0 auto;width:41.66666667%}.offset-xxl-1{margin-left:8.33333333%}}.table,table{--bs-table-bg: rgba(0,0,0,0);--bs-table-striped-color: #333;--bs-table-striped-bg: rgba(51,51,51,0.05);--bs-table-active-color: #333;--bs-table-active-bg: rgba(51,51,51,0.1);--bs-table-hover-color: #333;--bs-table-hover-bg: rgba(51,51,51,0.075);width:100%;margin-bottom:1rem;color:#333;vertical-align:top;border-color:#dee2e6}.table>:not(caption)>*>*,table>:not(caption)>*>*{padding:.5rem .5rem;background-color:var(--bs-table-bg);background-image:linear-gradient(var(--bs-table-accent-bg), var(--bs-table-accent-bg));border-bottom-width:1px}.table>:not(:last-child)>:last-child>*,table>:not(:last-child)>:last-child>*{border-bottom-color:currentColor}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#333;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.25rem;transition:border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control[type="file"]{overflow:hidden}.form-control[type="file"]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:#333;background-color:#fff;border-color:#879ac0;outline:0;box-shadow:0 0 0 .25rem rgba(14,52,129,0.25)}.form-control::-webkit-date-and-time-value{height:1.5em}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled{background-color:#f6f8fa;opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#333;background-color:#f6f8fa;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#eaecee}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#333;background-color:#f6f8fa;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;-webkit-transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out;transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#eaecee}.btn{display:inline-block;font-weight:400;line-height:1.5;color:#333;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;border-radius:.25rem;transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:#333;text-decoration:none}.btn:focus{outline:0;box-shadow:0 0 0 .25rem rgba(14,52,129,0.25)}.btn:disabled{pointer-events:none;opacity:.65}.btn-primary{color:#fff;background-color:#0e3481;border-color:#0e3481}.btn-primary:hover{color:#fff;background-color:#0c2c6e;border-color:#0b2a67}.btn-primary:focus{color:#fff;background-color:#0c2c6e;border-color:#0b2a67;box-shadow:0 0 0 .25rem rgba(50,82,148,0.5)}.btn-primary:active,.btn-primary.active{color:#fff;background-color:#0b2a67;border-color:#0b2761}.btn-primary:active:focus,.btn-primary.active:focus{box-shadow:0 0 0 .25rem rgba(50,82,148,0.5)}.btn-primary:disabled{color:#fff;background-color:#0e3481;border-color:#0e3481}.btn-success{color:#fff;background-color:#198754;border-color:#198754}.btn-success:hover{color:#fff;background-color:#157347;border-color:#146c43}.btn-success:focus{color:#fff;background-color:#157347;border-color:#146c43;box-shadow:0 0 0 .25rem rgba(60,153,110,0.5)}.btn-success:active,.btn-success.active{color:#fff;background-color:#146c43;border-color:#13653f}.btn-success:active:focus,.btn-success.active:focus{box-shadow:0 0 0 .25rem rgba(60,153,110,0.5)}.btn-success:disabled{color:#fff;background-color:#198754;border-color:#198754}.btn-outline-primary{color:#0e3481;border-color:#0e3481}.btn-outline-primary:hover{color:#fff;background-color:#0e3481;border-color:#0e3481}.btn-outline-primary:focus{box-shadow:0 0 0 .25rem rgba(14,52,129,0.5)}.btn-outline-primary:active,.btn-outline-primary.active{color:#fff;background-color:#0e3481;border-color:#0e3481}.btn-outline-primary:active:focus,.btn-outline-primary.active:focus{box-shadow:0 0 0 .25rem rgba(14,52,129,0.5)}.btn-outline-primary:disabled{color:#0e3481;background-color:transparent}.btn-lg{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.collapse:not(.show){display:none}.dropdown{position:relative}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link,.banner .nav a{display:block;padding:.5rem 1rem;transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.nav-link,.banner .nav a{transition:none}}.nav-link:hover,.banner .nav a:hover,.nav-link:focus,.banner .nav a:focus{text-decoration:none}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding-top:1.5rem;padding-right:1rem;padding-bottom:1.5rem;padding-left:1rem}.navbar>.container,.navbar>.container-fluid,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:.5rem;padding-bottom:.5rem;margin-right:1rem;font-size:1rem;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link,.navbar-nav .banner .nav a,.banner .nav .navbar-nav a{padding-right:0;padding-left:0}.navbar-collapse{align-items:center;width:100%}.navbar-toggler{padding:.25rem .75rem;font-size:1rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem;transition:box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 0}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-repeat:no-repeat;background-position:center;background-size:100%}@media (min-width: 992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .nav-link,.navbar-expand-lg .navbar-nav .banner .nav a,.banner .nav .navbar-expand-lg .navbar-nav a{padding-right:1rem;padding-left:1rem}.navbar-expand-lg .navbar-collapse{display:flex !important}.navbar-expand-lg .navbar-toggler{display:none}}.navbar-light .navbar-brand{color:#0e3481}.navbar-light .navbar-brand:hover,.navbar-light .navbar-brand:focus{color:#115df6}.navbar-light .navbar-nav .nav-link,.navbar-light .navbar-nav .banner .nav a,.banner .nav .navbar-light .navbar-nav a{color:#0e3481}.navbar-light .navbar-nav .nav-link:hover,.navbar-light .navbar-nav .banner .nav a:hover,.banner .nav .navbar-light .navbar-nav a:hover,.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .banner .nav a:focus,.banner .nav .navbar-light .navbar-nav a:focus{color:#3e7eff}.navbar-light .navbar-nav .show>.nav-link,.navbar-light .navbar-nav .banner .nav .show>a,.banner .nav .navbar-light .navbar-nav .show>a,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .banner .nav a.active,.banner .nav .navbar-light .navbar-nav a.active{color:#115df6}.navbar-light .navbar-toggler{color:#0e3481;border-color:#0e3481}.navbar-light .navbar-toggler-icon{background-image:none}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(51,51,51,0.125);border-radius:.25rem}.card-body{flex:1 1 auto;padding:1rem 1rem}.breadcrumb{display:flex;flex-wrap:wrap;padding:0 0;margin-bottom:1rem;list-style:none}.pagination{display:flex;padding-left:0;list-style:none}.badge{display:inline-block;padding:.35em .65em;font-size:.75em;font-weight:500;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{position:relative;padding:1.5rem 1rem;margin-bottom:0;border:0 solid transparent;border-radius:2px}.alert-primary{color:#081f4d;background-color:#cfd6e6;border-color:#b7c2d9}.alert-success{color:#0f5132;background-color:#d1e7dd;border-color:#badbcc}.alert-info{color:#246f7f;background-color:#cff4fc;border-color:#b6effb}.alert-warning{color:#856c21;background-color:#fff3cd;border-color:#ffecb5}.alert-danger{color:#842029;background-color:#f8d7da;border-color:#f5c2c7}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress{display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#f6f8fa;border-radius:.25rem}.carousel{position:relative}@-webkit-keyframes spinner-border{to{transform:rotate(360deg) /* rtl:ignore */}}@keyframes spinner-border{to{transform:rotate(360deg) /* rtl:ignore */}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.d-grid{display:grid !important}.d-flex{display:flex !important}.d-none{display:none !important}.border{border:1px solid #dee2e6 !important}.flex-column{flex-direction:column !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.align-self-center{align-self:center !important}.my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-3{margin-top:1rem !important;margin-bottom:1rem !important}.mb-2{margin-bottom:.5rem !important}.ms-auto{margin-left:auto !important}.p-1{padding:.25rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.text-center{text-align:center !important}.text-muted{color:#6c757d !important}.bg-danger{background-color:#dc3545 !important}.rounded{border-radius:.25rem !important}.rounded-pill{border-radius:50rem !important}@media (min-width: 992px){.justify-content-lg-center{justify-content:center !important}.order-lg-0{order:0 !important}.order-lg-1{order:1 !important}.order-lg-2{order:2 !important}.mb-lg-0{margin-bottom:0 !important}}@media (min-width: 1200px){.d-xl-block{display:block !important}.flex-xl-nowrap{flex-wrap:nowrap !important}}/*! + * justifiedGallery - v3.8.1 + * http://miromannino.github.io/Justified-Gallery/ + * Copyright (c) 2020 Miro Mannino + * Licensed under the MIT license. + */.justified-gallery{width:100%;position:relative;overflow:hidden}.justified-gallery>a,.justified-gallery>div,.justified-gallery>figure{position:absolute;display:inline-block;overflow:hidden;filter:'alpha(opacity=10)';opacity:0.1;margin:0;padding:0}.justified-gallery>a>img,.justified-gallery>div>img,.justified-gallery>figure>img,.justified-gallery>a>a>img,.justified-gallery>div>a>img,.justified-gallery>figure>a>img,.justified-gallery>a>svg,.justified-gallery>div>svg,.justified-gallery>figure>svg,.justified-gallery>a>a>svg,.justified-gallery>div>a>svg,.justified-gallery>figure>a>svg{position:absolute;top:50%;left:50%;margin:0;padding:0;border:none;filter:'alpha(opacity=0)';opacity:0}.justified-gallery>a>.jg-caption,.justified-gallery>div>.jg-caption,.justified-gallery>figure>.jg-caption{display:none;position:absolute;bottom:0;padding:5px;background-color:#000000;left:0;right:0;margin:0;color:white;font-size:12px;font-weight:300;font-family:sans-serif}.justified-gallery>a>.jg-caption.jg-caption-visible,.justified-gallery>div>.jg-caption.jg-caption-visible,.justified-gallery>figure>.jg-caption.jg-caption-visible{display:initial;filter:'alpha(opacity=70)';opacity:0.7;transition:opacity 500ms ease-in}.justified-gallery>.jg-entry-visible{filter:'alpha(opacity=100)';opacity:1;background:none}.justified-gallery>.jg-entry-visible>img,.justified-gallery>.jg-entry-visible>a>img,.justified-gallery>.jg-entry-visible>svg,.justified-gallery>.jg-entry-visible>a>svg{filter:'alpha(opacity=100)';opacity:1;transition:opacity 500ms ease-in}.justified-gallery>.jg-filtered{display:none}.justified-gallery>.jg-spinner{position:absolute;bottom:0;margin-left:-24px;padding:10px 0 10px 0;left:50%;filter:'alpha(opacity=100)';opacity:1;overflow:initial}.justified-gallery>.jg-spinner>span{display:inline-block;filter:'alpha(opacity=0)';opacity:0;width:8px;height:8px;margin:0 4px 0 4px;background-color:#000;border-radius:6px}@font-face{font-family:'Helvetica Now Display';src:url("fonts/HelveticaNowDisplay-ExtLt.woff2") format("woff2"),url("fonts/HelveticaNowDisplay-ExtLt.woff") format("woff"),url("fonts/HelveticaNowDisplay-ExtLt.ttf") format("truetype");font-weight:200;font-style:normal;font-display:swap}@font-face{font-family:'Helvetica Now Display';src:url("fonts/HelveticaNowDisplay-ThinIta.woff2") format("woff2"),url("fonts/HelveticaNowDisplay-ThinIta.woff") format("woff"),url("fonts/HelveticaNowDisplay-ThinIta.ttf") format("truetype");font-weight:100;font-style:italic;font-display:swap}@font-face{font-family:'Helvetica Now Display';src:url("fonts/HelveticaNowDisplay-Thin.woff2") format("woff2"),url("fonts/HelveticaNowDisplay-Thin.woff") format("woff"),url("fonts/HelveticaNowDisplay-Thin.ttf") format("truetype");font-weight:100;font-style:normal;font-display:swap}@font-face{font-family:'Helvetica Now Display';src:url("fonts/HelveticaNowDisplay-HairlineIt.woff2") format("woff2"),url("fonts/HelveticaNowDisplay-HairlineIt.woff") format("woff"),url("fonts/HelveticaNowDisplay-HairlineIt.ttf") format("truetype");font-weight:100;font-style:italic;font-display:swap}@font-face{font-family:'Helvetica Now Display';src:url("fonts/HelveticaNowDisplay-ExtLtIta.woff2") format("woff2"),url("fonts/HelveticaNowDisplay-ExtLtIta.woff") format("woff"),url("fonts/HelveticaNowDisplay-ExtLtIta.ttf") format("truetype");font-weight:200;font-style:italic;font-display:swap}@font-face{font-family:'Helvetica Now Display';src:url("fonts/HelveticaNowDisplay-Hairline.woff2") format("woff2"),url("fonts/HelveticaNowDisplay-Hairline.woff") format("woff"),url("fonts/HelveticaNowDisplay-Hairline.ttf") format("truetype");font-weight:100;font-style:normal;font-display:swap}@font-face{font-family:'Helvetica Now Display';src:url("fonts/HelveticaNowDisplay-LightIta.woff2") format("woff2"),url("fonts/HelveticaNowDisplay-LightIta.woff") format("woff"),url("fonts/HelveticaNowDisplay-LightIta.ttf") format("truetype");font-weight:300;font-style:italic;font-display:swap}@font-face{font-family:'Helvetica Now Display';src:url("fonts/HelveticaNowDisplay-Medium.woff2") format("woff2"),url("fonts/HelveticaNowDisplay-Medium.woff") format("woff"),url("fonts/HelveticaNowDisplay-Medium.ttf") format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:'Helvetica Now Display';src:url("fonts/HelveticaNowDisplay-ExtBlk.woff2") format("woff2"),url("fonts/HelveticaNowDisplay-ExtBlk.woff") format("woff"),url("fonts/HelveticaNowDisplay-ExtBlk.ttf") format("truetype");font-weight:normal;font-style:normal;font-display:swap}@font-face{font-family:'Helvetica Now Display';src:url("fonts/HelveticaNowDisplay-ExtraBold.woff2") format("woff2"),url("fonts/HelveticaNowDisplay-ExtraBold.woff") format("woff"),url("fonts/HelveticaNowDisplay-ExtraBold.ttf") format("truetype");font-weight:800;font-style:normal;font-display:swap}@font-face{font-family:'Helvetica Now Display';src:url("fonts/HelveticaNowDisplay-ExtBdIta.woff2") format("woff2"),url("fonts/HelveticaNowDisplay-ExtBdIta.woff") format("woff"),url("fonts/HelveticaNowDisplay-ExtBdIta.ttf") format("truetype");font-weight:800;font-style:italic;font-display:swap}@font-face{font-family:'Helvetica Now Display';src:url("fonts/HelveticaNowDisplay-Italic.woff2") format("woff2"),url("fonts/HelveticaNowDisplay-Italic.woff") format("woff"),url("fonts/HelveticaNowDisplay-Italic.ttf") format("truetype");font-weight:normal;font-style:italic;font-display:swap}@font-face{font-family:'Helvetica Now Display';src:url("fonts/HelveticaNowDisplay-Light.woff2") format("woff2"),url("fonts/HelveticaNowDisplay-Light.woff") format("woff"),url("fonts/HelveticaNowDisplay-Light.ttf") format("truetype");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:'Helvetica Now Display';src:url("fonts/HelveticaNowDisplay-ExtBlkIta.woff2") format("woff2"),url("fonts/HelveticaNowDisplay-ExtBlkIta.woff") format("woff"),url("fonts/HelveticaNowDisplay-ExtBlkIta.ttf") format("truetype");font-weight:normal;font-style:italic;font-display:swap}@font-face{font-family:'Helvetica Now Display';src:url("fonts/HelveticaNowDisplay-MedIta.woff2") format("woff2"),url("fonts/HelveticaNowDisplay-MedIta.woff") format("woff"),url("fonts/HelveticaNowDisplay-MedIta.ttf") format("truetype");font-weight:500;font-style:italic;font-display:swap}@font-face{font-family:'Helvetica Now Display';src:url("fonts/HelveticaNowDisplay-BoldIta.woff2") format("woff2"),url("fonts/HelveticaNowDisplay-BoldIta.woff") format("woff"),url("fonts/HelveticaNowDisplay-BoldIta.ttf") format("truetype");font-weight:bold;font-style:italic;font-display:swap}@font-face{font-family:'Helvetica Now Display';src:url("fonts/HelveticaNowDisplay-Regular.woff2") format("woff2"),url("fonts/HelveticaNowDisplay-Regular.woff") format("woff"),url("fonts/HelveticaNowDisplay-Regular.ttf") format("truetype");font-weight:normal;font-style:normal;font-display:swap}@font-face{font-family:'Helvetica Now Display';src:url("fonts/HelveticaNowDisplay-Bold.woff2") format("woff2"),url("fonts/HelveticaNowDisplay-Bold.woff") format("woff"),url("fonts/HelveticaNowDisplay-Bold.ttf") format("truetype");font-weight:bold;font-style:normal;font-display:swap}@font-face{font-family:'Helvetica Now Display';src:url("fonts/HelveticaNowDisplay-BlackIta.woff2") format("woff2"),url("fonts/HelveticaNowDisplay-BlackIta.woff") format("woff"),url("fonts/HelveticaNowDisplay-BlackIta.ttf") format("truetype");font-weight:900;font-style:italic;font-display:swap}@font-face{font-family:'Helvetica Now Display';src:url("fonts/HelveticaNowDisplay-Black.woff2") format("woff2"),url("fonts/HelveticaNowDisplay-Black.woff") format("woff"),url("fonts/HelveticaNowDisplay-Black.ttf") format("truetype");font-weight:900;font-style:normal;font-display:swap}@font-face{font-family:'Helvetica Now Text';src:url("fonts/HelveticaNowText-Regular.ttf") format("ttf"),url("fonts/HelveticaNowText-Regular.woff") format("woff");font-weight:400;font-style:normal}@font-face{font-family:'Helvetica Now Text';src:url("fonts/HelveticaNowText-Medium.ttf") format("ttf"),url("fonts/HelveticaNowText-Medium.woff") format("woff");font-weight:500;font-style:normal}@font-face{font-family:'Helvetica Now Text';src:url("fonts/HelveticaNowTextBd.ttf") format("ttf"),url("fonts/HelveticaNowTextBd.woff") format("woff"),url("fonts/HelveticaNowTextBd.woff2") format("woff2");font-weight:bold;font-style:normal}:root{--main-bg: transparent}hr{background-color:#dae8ff;margin:4rem 0;opacity:1}.contributors .content,.blog .content,.page .content,.error404 .content,.docs.list .content,.showcase.list .content,.themes.list .content{padding-top:1rem;padding-bottom:3rem}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{margin:2rem 0 1rem}img{max-width:100%;height:auto}body{letter-spacing:0.2px;line-height:1.45}@media (min-width: 768px){body{font-size:1.125rem}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{margin-bottom:1.125rem}}a:hover,a:focus{text-decoration:underline}.section{padding-top:5rem;padding-bottom:5rem}.section-md{padding-top:3rem;padding-bottom:3rem}.section-sm{padding-top:1rem;padding-bottom:1rem}.page-wrap{padding-top:91px}.docs-sidebar{order:2}@media (min-width: 992px){.docs-sidebar{order:0;border-right:1px solid #f6f8fa}@supports ((position: -webkit-sticky) or (position: sticky)){.docs-sidebar{position:-webkit-sticky;position:sticky;top:4rem;z-index:1000;height:calc(100vh - 4rem)}}}@media (min-width: 1200px){.docs-sidebar{flex:0 1 320px}}.docs-links{padding-bottom:5rem}@media (min-width: 992px){@supports ((position: -webkit-sticky) or (position: sticky)){.docs-links{max-height:calc(100vh - 4rem);overflow-y:auto}}}@media (min-width: 992px){.docs-links{display:block !important;margin-right:-1.5rem;padding-bottom:4rem}}.docs-toc{order:2}@supports ((position: -webkit-sticky) or (position: sticky)){.docs-toc{position:-webkit-sticky;position:sticky;top:4rem;height:calc(100vh - 4rem);overflow-y:auto}}.docs-content{padding-bottom:3rem;order:1}.docs-navigation{border-top:1px solid #f6f8fa;margin-top:2rem;margin-bottom:0;padding-top:2rem}.docs-navigation a{font-size:.9rem}@media (min-width: 992px){.docs-navigation{margin-bottom:-1rem}.docs-navigation a{font-size:1rem}}.navbar a:hover,.navbar a:focus,a.btn:hover,.search-form a.search-submit:hover,a.btn:focus,.search-form a.search-submit:focus,.footer a:hover,.footer a:focus{text-decoration:none}#TableOfContents ul{padding-left:0;list-style:none}.bg-dots{background-image:radial-gradient(#dee2e6 15%, transparent 15%);background-position:0 0;background-size:1rem 1rem;-webkit-mask:linear-gradient(to top, #fff, transparent);mask:linear-gradient(to top, #fff, transparent);width:100%;height:9rem;margin-top:-10rem;z-index:-1}.bg-dots-md{margin-top:-11rem}.bg-dots-lg{margin-top:-12rem}h2.monospace,.monospace.h2,p.monospace{font-family:var(--bs-font-monospace)}table{font-size:1rem}.navbar{width:100%}button:focus{outline:none}.btn-white{color:#006eb7;background-color:#fff;border-color:#fff}.btn-white:focus,.btn-white:hover{color:#006eb7;background-color:#fff;border-color:#fff}.docs-content h2[id]::before,.docs-content [id].h2::before,.docs-content h3[id]::before,.docs-content [id].h3::before,.docs-content h4[id]::before,.docs-content [id].h4::before,.docs-content .anchor-id::before{display:block;height:6rem;margin-top:-6rem;content:''}.docs-content .anchor-id{white-space:nowrap}.docs-content .anchor-id:hover a{visibility:visible;text-decoration:none}.docs-content .alert{margin-bottom:1rem}.docs-content li{line-height:2rem}.docs-content h2+h3,.docs-content .h2+h3,.docs-content h2+.h3,.docs-content .h2+.h3{margin-top:0}.docs-content p:empty{display:none}.docs-content h2,.docs-content .h2{font-size:1.5rem;border-bottom:1px solid #dae8ff;padding-bottom:1rem;margin:4rem 0 1rem}.docs-content h4,.docs-content .h4{font-size:1.3rem;font-weight:500;margin:3rem 0 1rem}.docs-content .options-table{margin-top:2rem}.codepen-demo{text-align:center;margin:1rem 0 2rem 0;font-size:14px}.font-12{font-size:12px !important}.doc-union>span:before{content:'|';margin:0 5px}.doc-union>span:first-child:before,.doc-union>span:empty{display:none}.alert{font-size:.875rem;text-align:left}@media (min-width: 768px){.alert{font-size:1rem}}.alert .alert-link{text-decoration:underline}.alert-dark{color:#f8f9fa;background-color:#212529}.alert-dark .alert-link{color:#f8f9fa}.alert-primary{color:#f8f9fa;background-color:#0e3481}.alert-primary .alert-link{color:#f8f9fa}.alert .alert-link:hover,.alert .alert-link:focus{text-decoration:none}pre,code,kbd,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:.875rem}pre{background:#f6f8fa;color:#212529;line-height:2;margin:1.5rem 0;overflow:auto;padding:1.1rem 1.5rem;-moz-tab-size:4;-o-tab-size:4;tab-size:4}code{background:#f6f8fa;color:#212529;padding:0.25rem 0.5rem}pre code{background:none;font-size:inherit;padding:0}code a{border-bottom-color:#f6f8fa}.options tr p{color:#565656;font-size:14px;margin-top:12px}:root{--select-border: #777;--select-focus: blue;--select-arrow: var(--select-border)}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;padding:0 10px;margin:0;width:100%;font-family:inherit;color:#000;font-size:14px;letter-spacing:-0.21px;box-sizing:border-box;line-height:17px;height:40px;z-index:1;outline:none}select::-ms-expand{display:none}.select{display:grid;grid-template-areas:'select';align-items:center;position:relative;min-width:15ch;max-width:30ch;border:2px solid #d8dbe0;border-radius:6px;padding:0 10px;cursor:pointer;background-color:#fff}.select select,.select::after{grid-area:select}.select:not(.select--multiple)::after{content:'';justify-self:end;width:0.8em;height:0.5em;background-color:var(--select-arrow);-webkit-clip-path:polygon(100% 0%, 0 0%, 50% 100%);clip-path:polygon(100% 0%, 0 0%, 50% 100%)}select:focus+.focus{position:absolute;top:-1px;left:-1px;right:-1px;bottom:-1px;border:2px solid var(--select-focus);border-radius:inherit}select[multiple]{padding-right:0;height:6rem}select[multiple] option{white-space:normal;outline-color:var(--select-focus)}table.table-blue{border:1px solid #dae8ff;--bs-table-bg: #fafbff;font-size:15px}.chroma{background-color:#fafafa;font-size:14px;white-space:pre-wrap;border-width:1px;border-style:solid;border-color:#f1f1f1;-o-border-image:initial;border-image:initial;padding:8px}.chroma{background-color:#fafbff;border-color:#dae8ff}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0;width:auto;overflow:auto;display:block}.chroma .hl{display:block;width:100%;background-color:#ffffcc}.chroma .lnt{margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f}.chroma .ln{margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f}.chroma .k{color:#0000ff}.chroma .kc{color:#0000ff}.chroma .kd{color:#0000ff}.chroma .kn{color:#0000ff}.chroma .kp{color:#0000ff}.chroma .kr{color:#0000ff}.chroma .kt{color:#2b91af}.chroma .nc{color:#2b91af}.chroma .s{color:#a31515}.chroma .sa{color:#a31515}.chroma .sb{color:#a31515}.chroma .sc{color:#a31515}.chroma .dl{color:#a31515}.chroma .sd{color:#a31515}.chroma .s2{color:#a31515}.chroma .se{color:#a31515}.chroma .sh{color:#a31515}.chroma .si{color:#a31515}.chroma .sx{color:#a31515}.chroma .sr{color:#a31515}.chroma .s1{color:#a31515}.chroma .ss{color:#a31515}.chroma .ow{color:#0000ff}.chroma .c{color:#008000}.chroma .ch{color:#008000}.chroma .cm{color:#008000}.chroma .c1{color:#008000}.chroma .cs{color:#008000}.chroma .cp{color:#0000ff}.chroma .cpf{color:#0000ff}.chroma .ge{font-style:italic}.chroma .gh{font-weight:bold}.chroma .gp{font-weight:bold}.chroma .gs{font-weight:bold}.chroma .gu{font-weight:bold}.comment-list ol{list-style:none}.search-form label{font-weight:normal}figure{margin:2rem 0}.figure-caption{margin:0.25rem 0 0.75rem}figure.wide{margin:2rem -1.5rem}figure.wide .figure-caption{margin:0.25rem 1.5rem 0.75rem}@media (min-width: 768px){figure.wide{margin:2rem -2.5rem}figure.wide .figure-caption{margin:0.25rem 2.5rem 0.75rem}}@media (min-width: 992px){figure.wide{margin:2rem -5rem}figure.wide .figure-caption{margin:0.25rem 5rem 0.75rem}}.blur-up{filter:blur(5px)}.blur-up.lazyloaded{filter:unset}.footer{padding-top:4rem;padding-bottom:4rem;background-color:#0e3481;margin-top:3rem}.footer ul.footer-menu{padding-left:0;list-style-type:none;font-size:1rem;line-height:1.9rem;margin-bottom:3rem}@media (min-width: 576px){.footer ul.footer-menu{margin-bottom:0}}.footer h4,.footer .h4{font-size:1rem;text-transform:uppercase;font-weight:400;color:#74a0ff;margin:0 0 15px}.footer .footer-menu-item a{color:#9abaff;transition:color 0.2s}.footer .footer-menu-item a:hover{color:#c9daff}.license.list .footer,.wordpress.list .footer{padding-bottom:6.4rem}.other-products-item img{width:32px;height:32px;border-radius:100%;float:left;margin-right:16px}.other-products-item h5,.other-products-item .h5{margin:0;font-weight:400;font-size:14px;margin-bottom:3px;color:#c1d5ff;transition:color 0.3s ease-in-out}.other-products-item p{font-size:12px;margin-bottom:0;line-height:1.3;color:#9abaff;transition:color 0.3s ease-in-out}.other-products-item{display:flex;flex-direction:row;align-items:center;text-decoration:none !important;margin-bottom:20px}@media (min-width: 992px){.other-products-item{margin-bottom:0}}.other-products-item:hover h5,.other-products-item:hover .h5,.other-products-item:hover p{color:#c9daff}.other-products-item-content{display:flex;flex-direction:column;height:100%}.row.other-products{border-top:1px solid #4b6599;padding:40px 0 0 0;margin-top:80px;position:relative}.other-products-label{position:absolute;left:50%;top:1px;font-size:11px;margin-top:-10px;background-color:#0e3480;width:auto;padding:0 10px;text-transform:uppercase;transform:translate3d(-50%, 0px, 0px);color:#74a0ff}.navbar-text{margin-left:1rem}.navbar-nav{font-size:1rem}.navbar{background-color:var(--main-bg);box-shadow:rgba(0,0,0,0) 0px 6px 24px;transition:all 0.3s ease-in-out 0s;will-change:transform;padding-top:2rem;padding-bottom:2rem}.docs .navbar,.demos .navbar{padding-top:1rem;padding-bottom:1rem;border-bottom:1px solid rgba(0,0,0,0.08);box-shadow:rgba(0,0,0,0.06) 0px 6px 24px}.navbar.fixed-header{box-shadow:rgba(0,0,0,0.06) 0px 6px 24px;background-color:#fff;padding-top:1rem;padding-bottom:1rem}.navbar .nav-link,.navbar .banner .nav a,.banner .nav .navbar a{font-weight:500}@media (max-width: 575.98px){.navbar .container{padding-left:0.5rem;padding-right:0.5rem}}@media (min-width: 768px){.navbar-brand{font-size:1.375rem}.navbar-text{margin-left:1.25rem}}.nav-item svg,.banner .nav li svg{width:16px;height:16px;fill:currentColor}.nav-item-social>a{display:flex;align-items:center;justify-content:center;height:100%}.anchor{visibility:hidden;padding-left:0.5rem}.showcase-meta{margin-top:2rem;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;color:#586069}.showcase-meta a{color:#586069}h1:hover a,.h1:hover a,h2:hover a,.h2:hover a,h3:hover a,.h3:hover a,h4:hover a,.h4:hover a{visibility:visible;text-decoration:none}.card-list{margin-top:2.25rem}.edit-page{margin-top:3rem;font-size:1rem}.edit-page svg{margin-right:0.5rem;margin-bottom:0.25rem}p.meta{margin-top:0.5rem;font-size:1rem;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;color:#6a737d}p.meta a{color:#6a737d}.showcase-meta a:hover,.showcase-meta a:focus{color:#0e3481}p.meta a:hover,p.meta a:focus{color:#0e3481}.error404 h1,.error404 .h1{margin-top:10rem}.error404 .lead{margin-bottom:5rem}.error404 h3,.error404 .h3{margin-top:5rem}.docs-links,.docs-toc{scrollbar-width:thin;scrollbar-color:#fff #fff}.docs-links::-webkit-scrollbar,.docs-toc::-webkit-scrollbar{width:5px}.docs-links::-webkit-scrollbar-track,.docs-toc::-webkit-scrollbar-track{background:#fff}.docs-links::-webkit-scrollbar-thumb,.docs-toc::-webkit-scrollbar-thumb{background:#fff}.docs-links:hover,.docs-toc:hover{scrollbar-width:thin;scrollbar-color:#f6f8fa #fff}.docs-links:hover::-webkit-scrollbar-thumb,.docs-toc:hover::-webkit-scrollbar-thumb{background:#f6f8fa}.docs-links::-webkit-scrollbar-thumb:hover,.docs-toc::-webkit-scrollbar-thumb:hover{background:#f6f8fa}.docs-links h3,.docs-links .h3,.page-links h3,.page-links .h3{font-size:1.125rem;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;color:#0e3481;margin:1.25rem 0 0.5rem 0;padding:1.5rem 0 0 0}@media (min-width: 992px){.docs-links h3,.docs-links .h3,.page-links h3,.page-links .h3{margin:1.125rem 1.5rem 0.75rem 0;padding:1.375rem 0 0 0}}.docs-links h3:not(:first-child),.docs-links .h3:not(:first-child){border-top:1px solid #f6f8fa}a.docs-link{color:#5971a7;display:block;padding:8px 0;font-size:1rem;font-size:15px;font-weight:500}.page-links li{margin-top:0.375rem;padding-top:0.375rem}.page-links li ul li{border-top:none;padding-left:1rem;margin-top:0.125rem;padding-top:0.125rem}.page-links li:not(:first-child){border-top:1px dashed #f6f8fa}.page-links ul ul li:not(:first-child){border-top:0}.page-links a{color:#5971a7;display:block;padding:0.125rem 0;font-size:.9375rem}.docs-link:hover,.docs-link.active,.page-links a:hover{text-decoration:none;color:#3e7eff}.docs-link.active{color:#115df6}.docs-links h3.sidebar-link,.docs-links .sidebar-link.h3,.page-links h3.sidebar-link,.page-links .sidebar-link.h3{text-transform:none;font-family:"Helvetica Now Display",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:normal}.docs-links h3.sidebar-link a,.docs-links .sidebar-link.h3 a,.page-links h3.sidebar-link a,.page-links .sidebar-link.h3 a{color:#333}.docs-links h3.sidebar-link a:hover,.docs-links .sidebar-link.h3 a:hover,.page-links h3.sidebar-link a:hover,.page-links .sidebar-link.h3 a:hover{text-decoration:underline}.main-page h1,.main-page .h1{font-size:calc(3.5rem + 1.5vw)}@media (min-width: 992px){.main-page h1,.main-page .h1{font-size:calc(4.875rem + 1.5vw)}}.main-page h2,.main-page .h2{font-size:2.1rem}@media (min-width: 576px){.main-page h2,.main-page .h2{font-size:3.1rem}}@media (min-width: 992px){.main-page h2,.main-page .h2{font-size:3.2rem}}.open-gallery-text{font-size:11px;font-style:italic;font-weight:300;margin-top:15px;opacity:0.5;text-align:center}.hero-section{padding-top:15rem;padding-bottom:11.75rem;background-color:var(--main-bg);background-image:linear-gradient(#e8f0ff 0%, #fff 52.08%);color:#0e3481}.hero-section .main-title{margin:0}.hero-section .sub-title{font-weight:400;margin-top:1.25rem;line-height:1.6}.hero-section .btn,.hero-section .comment-form input[type="submit"],.comment-form .hero-section input[type="submit"],.hero-section .search-form .search-submit,.search-form .hero-section .search-submit{margin-top:2rem}.clip-path-bg{position:relative}.clip-path-bg .clip-path-bg-inner{position:relative;z-index:2}.clip-path-bg:after{-webkit-clip-path:polygon(100% 0, 0 0, 0 77.5%, 1% 77.4%, 2% 77.1%, 3% 76.6%, 4% 75.9%, 5% 75.05%, 6% 74.05%, 7% 72.95%, 8% 71.75%, 9% 70.55%, 10% 69.3%, 11% 68.05%, 12% 66.9%, 13% 65.8%, 14% 64.8%, 15% 64%, 16% 63.35%, 17% 62.85%, 18% 62.6%, 19% 62.5%, 20% 62.65%, 21% 63%, 22% 63.5%, 23% 64.2%, 24% 65.1%, 25% 66.1%, 26% 67.2%, 27% 68.4%, 28% 69.65%, 29% 70.9%, 30% 72.15%, 31% 73.3%, 32% 74.35%, 33% 75.3%, 34% 76.1%, 35% 76.75%, 36% 77.2%, 37% 77.45%, 38% 77.5%, 39% 77.3%, 40% 76.95%, 41% 76.4%, 42% 75.65%, 43% 74.75%, 44% 73.75%, 45% 72.6%, 46% 71.4%, 47% 70.15%, 48% 68.9%, 49% 67.7%, 50% 66.55%, 51% 65.5%, 52% 64.55%, 53% 63.75%, 54% 63.15%, 55% 62.75%, 56% 62.55%, 57% 62.5%, 58% 62.7%, 59% 63.1%, 60% 63.7%, 61% 64.45%, 62% 65.4%, 63% 66.45%, 64% 67.6%, 65% 68.8%, 66% 70.05%, 67% 71.3%, 68% 72.5%, 69% 73.6%, 70% 74.65%, 71% 75.55%, 72% 76.35%, 73% 76.9%, 74% 77.3%, 75% 77.5%, 76% 77.45%, 77% 77.25%, 78% 76.8%, 79% 76.2%, 80% 75.4%, 81% 74.45%, 82% 73.4%, 83% 72.25%, 84% 71.05%, 85% 69.8%, 86% 68.55%, 87% 67.35%, 88% 66.2%, 89% 65.2%, 90% 64.3%, 91% 63.55%, 92% 63%, 93% 62.65%, 94% 62.5%, 95% 62.55%, 96% 62.8%, 97% 63.3%, 98% 63.9%, 99% 64.75%, 100% 65.7%);clip-path:polygon(100% 0, 0 0, 0 77.5%, 1% 77.4%, 2% 77.1%, 3% 76.6%, 4% 75.9%, 5% 75.05%, 6% 74.05%, 7% 72.95%, 8% 71.75%, 9% 70.55%, 10% 69.3%, 11% 68.05%, 12% 66.9%, 13% 65.8%, 14% 64.8%, 15% 64%, 16% 63.35%, 17% 62.85%, 18% 62.6%, 19% 62.5%, 20% 62.65%, 21% 63%, 22% 63.5%, 23% 64.2%, 24% 65.1%, 25% 66.1%, 26% 67.2%, 27% 68.4%, 28% 69.65%, 29% 70.9%, 30% 72.15%, 31% 73.3%, 32% 74.35%, 33% 75.3%, 34% 76.1%, 35% 76.75%, 36% 77.2%, 37% 77.45%, 38% 77.5%, 39% 77.3%, 40% 76.95%, 41% 76.4%, 42% 75.65%, 43% 74.75%, 44% 73.75%, 45% 72.6%, 46% 71.4%, 47% 70.15%, 48% 68.9%, 49% 67.7%, 50% 66.55%, 51% 65.5%, 52% 64.55%, 53% 63.75%, 54% 63.15%, 55% 62.75%, 56% 62.55%, 57% 62.5%, 58% 62.7%, 59% 63.1%, 60% 63.7%, 61% 64.45%, 62% 65.4%, 63% 66.45%, 64% 67.6%, 65% 68.8%, 66% 70.05%, 67% 71.3%, 68% 72.5%, 69% 73.6%, 70% 74.65%, 71% 75.55%, 72% 76.35%, 73% 76.9%, 74% 77.3%, 75% 77.5%, 76% 77.45%, 77% 77.25%, 78% 76.8%, 79% 76.2%, 80% 75.4%, 81% 74.45%, 82% 73.4%, 83% 72.25%, 84% 71.05%, 85% 69.8%, 86% 68.55%, 87% 67.35%, 88% 66.2%, 89% 65.2%, 90% 64.3%, 91% 63.55%, 92% 63%, 93% 62.65%, 94% 62.5%, 95% 62.55%, 96% 62.8%, 97% 63.3%, 98% 63.9%, 99% 64.75%, 100% 65.7%);content:'';position:absolute;top:0;right:0;left:0;bottom:30%;background-color:var(--main-bg);background-image:linear-gradient(180deg, white, rgba(132,187,255,0.239216));z-index:1}.vertical-bg{position:relative;padding-top:7.5rem;padding-bottom:7.5rem}.vertical-bg::before{background-image:linear-gradient(180deg, #fff, #f7f9fc 100%);content:'';height:100%;left:0;position:absolute;top:0;z-index:-1;transform:skewY(-2deg);width:100%}.vertical-bg .vertical-bg-inner{position:relative}.gradient-bg-light-blue{background-image:linear-gradient(#f6f9fb 0%, #fdfdfe 50%)}.features-list-header{text-align:center}.features-list{margin-top:7.5rem;position:relative}.features-list .features-list-header h2,.features-list .features-list-header .h2{margin:0;margin-bottom:5rem}.features-list-item{margin-bottom:2.5rem}.features-list-item h3,.features-list-item .h3{margin-bottom:0.625rem;display:flex;align-items:center;margin-top:0}.features-list-item svg{fill:#0959fe;color:#0959fe;width:32px;margin-right:14px;height:28px}.features-list-grid{padding-top:5rem;padding-bottom:8rem}@media (min-width: 992px){.features-list-grid{padding-top:10rem;padding-bottom:13rem}}.features-list-grid .features-list-grid-img{height:16.5rem}.features-list-grid .features-list-grid-item{margin-bottom:5rem;display:flex;flex-direction:column;align-items:center;text-align:center}@media (min-width: 992px){.features-list-grid .features-list-grid-item{margin-bottom:0}}.features-list-grid p.features-list-grid-desc{margin-bottom:0;text-align:center;max-width:410px}.feature-list-lg{padding-top:7.5rem;padding-bottom:7.5rem}@-webkit-keyframes br-zoom-in-right{from{transform-origin:100% 50%;transform:scale(1, 1)}to{transform-origin:100% 50%;transform:scale(1.12, 1.12)}}@keyframes br-zoom-in-right{from{transform-origin:100% 50%;transform:scale(1, 1)}to{transform-origin:100% 50%;transform:scale(1.12, 1.12)}}.home-inline-gallery .home-inline-gallery-header{margin-bottom:2.5rem}.home-inline-gallery .home-inline-gallery-header p{font-size:1.4rem}.home-customize-gallery{position:relative;overflow:hidden}.home-customize-gallery .svg-bg{position:absolute;top:0;z-index:-1;transform:translate3d(10%, 4%, 0px) rotate3d(1, 1, 1, 15deg)}@media (min-width: 1200px){.home-mixed-gallery>.row{--bs-gutter-x: 100px}}.features-list-md{margin-top:2rem;margin-bottom:2rem}@media (min-width: 992px){.features-list-md{margin-bottom:0}}.features-list-md .features-list-md-item{display:flex}.features-list-md .features-list-md-icon{width:3rem;height:3rem;flex-shrink:0;background-color:rgba(204,221,255,0.5);border-radius:4px;display:flex;align-items:center;justify-content:center}.features-list-md .features-list-md-icon svg{width:1.5rem;fill:#0858fe}.features-list-md .features-list-md-item{position:relative;display:flex;margin-top:1rem}.features-list-md .features-list-md-content{margin-left:1rem}.features-list-md h4,.features-list-md .h4{margin-top:0}.features-list-md h4.features-list-md-title,.features-list-md .features-list-md-title.h4{font-size:1.25rem;margin:0;color:#3c4d6b}.features-list-md p.features-list-md-desc{font-size:1rem;margin-top:5px;color:#3b4e6b}.features-list-md .features-list-md{margin-top:2rem}.features-grid{margin-top:2rem;margin-bottom:2rem}@media (min-width: 1200px){.features-grid{--bs-gutter-x: 48px}}@media (min-width: 992px){.features-grid{margin-bottom:0}}.features-grid .features-grid-icon{width:2rem;height:2rem;flex-shrink:0;margin-right:1rem}.features-grid .features-grid-item{display:flex;margin-top:1rem}.features-grid .features-grid-title{margin-top:0;font-size:1.25rem;margin-bottom:0.25rem}.features-grid .features-grid-desc{font-size:1rem}.contents-list{display:flex;flex-wrap:wrap;justify-content:center}.contents-list .contents-list-item{background-color:#fff;display:flex;align-items:center;justify-content:center;width:26%;flex-grow:1;margin:1rem;padding:2rem;box-shadow:2px 2px 6px 0px rgba(0,0,0,0.1);border-radius:10px}.contents-list img.content-list-logo{max-width:100px;max-height:100px}.available-for{padding-top:5.5rem;padding-bottom:7.5rem}.available-for .available-for-header{margin-bottom:2.5rem;text-align:center}.available-for .available-for-header p{font-size:1.4rem}.available-for .contents-list-item{padding:0;box-shadow:none;flex:1}.available-for img.content-list-logo.content-list-lg{max-width:120px;max-height:120px}.subscribe{display:flex;align-items:center;justify-content:center;margin-top:30px}.subscribe .subscribe-inner{padding:30px 30px;border:1px solid #9fc8fb3d;border-radius:4px;background-color:#b5d6ff3d;color:#0e3481;max-width:500px}.subscribe .form-group,.subscribe .comment-form p,.comment-form .subscribe p,.subscribe .search-form label,.search-form .subscribe label{display:flex;margin-top:26px}.subscribe p{font-size:16px}.subscribe .form-control,.subscribe .comment-form input[type="text"],.comment-form .subscribe input[type="text"],.subscribe .comment-form input[type="email"],.comment-form .subscribe input[type="email"],.subscribe .comment-form input[type="url"],.comment-form .subscribe input[type="url"],.subscribe .comment-form textarea,.comment-form .subscribe textarea,.subscribe .search-form .search-field,.search-form .subscribe .search-field{margin-right:10px}.subscribe h3,.subscribe .h3{margin:0;margin-bottom:10px}.subscribe .alert{display:none;padding:0.5rem 0.5rem;margin-top:10px}.subscribe.subscribed .alert-success{display:block}.subscribe.subscribed-error .alert-danger{display:block}.main-page.main-page-wordpress>.container-fluid,.main-page.main-page-wordpress>.container-sm,.main-page.main-page-wordpress>.container-md,.main-page.main-page-wordpress>.container-lg,.main-page.main-page-wordpress>.container-xl,.main-page.main-page-wordpress>.container-xxl{max-width:1980px}.main-page.main-page-wordpress h1,.main-page.main-page-wordpress .h1{font-size:calc(2.5rem + 1.5vw);line-height:1.2}@media (min-width: 1200px){.main-page.main-page-wordpress h1,.main-page.main-page-wordpress .h1{font-size:calc(1.575rem + 1.5vw)}}.main-page.main-page-wordpress .btn,.main-page.main-page-wordpress .comment-form input[type="submit"],.comment-form .main-page.main-page-wordpress input[type="submit"],.main-page.main-page-wordpress .search-form .search-submit,.search-form .main-page.main-page-wordpress .search-submit{margin-top:1rem}@media (min-width: 1200px){.main-page.main-page-wordpress .btn,.main-page.main-page-wordpress .comment-form input[type="submit"],.comment-form .main-page.main-page-wordpress input[type="submit"],.main-page.main-page-wordpress .search-form .search-submit,.search-form .main-page.main-page-wordpress .search-submit{margin-top:2rem}}.main-page.main-page-wordpress h2,.main-page.main-page-wordpress .h2{font-size:2.1rem}@media (min-width: 576px){.main-page.main-page-wordpress h2,.main-page.main-page-wordpress .h2{font-size:3.1rem}}@media (min-width: 992px){.main-page.main-page-wordpress h2,.main-page.main-page-wordpress .h2{font-size:3.2rem}}.main-page.main-page-wordpress .hero-header{margin-bottom:120px}@media (min-width: 1200px){.main-page.main-page-wordpress .hero-header{margin-bottom:0}}@media (min-width: 1200px){.main-page.main-page-wordpress .hero-header-inner{padding-right:70px}}@media (min-width: 1200px){.main-page.main-page-wordpress .gallery-demo{padding-left:70px}}.main-page.main-page-wordpress.hero-section{text-align:center;padding-top:12rem;padding-bottom:2.75rem}@media (min-width: 1200px){.main-page.main-page-wordpress.hero-section{text-align:left}}.main-page.main-page-wordpress.hero-section .sub-title{font-size:1.4rem}.main-page.main-page-wordpress .wordpress-download-btn{margin-right:10px}#wordpress-pricing:before{display:block;height:12rem;margin-top:-6rem;content:''}.wp-features-wrap{margin-top:4rem}@media (min-width: 992px){.wp-features-wrap{margin-top:8rem}}.wp-features-wrap>.row+.row{margin-top:5rem}.wp-pricing{margin-top:2rem}.wp-features-img-inner{border-radius:0 5px 5px 5px}.wp-features-img-inner img{position:relative;opacity:0.97}.wp-features-img-inner-right-bottom{background-image:linear-gradient(to right top, #d16ba5, #c777b9, #ba83ca, #aa8fd8, #9a9ae1, #8aa7ec, #79b3f4, #69bff8, #52cffe, #41dfff, #46eefa, #5ffbf1)}.wp-features-img-inner-right-bottom img{left:-20px;top:-20px}.wp-features-img-inner-top-left{background-image:linear-gradient(to left top, #d16ba5, #c777b9, #ba83ca, #aa8fd8, #9a9ae1, #8aa7ec, #79b3f4, #69bff8, #52cffe, #41dfff, #46eefa, #5ffbf1)}.wp-features-img-inner-top-left img{left:20px;top:20px}.wp-features-img-inner-top-right{background-image:linear-gradient(to left top, #d16ba5, #c777b9, #ba83ca, #aa8fd8, #9a9ae1, #8aa7ec, #79b3f4, #69bff8, #52cffe, #41dfff, #46eefa, #5ffbf1)}.wp-features-img-inner-top-right img{left:-20px;top:20px}.wp-features-img-inner-left-bottom{background-image:linear-gradient(to right bottom, #d16ba5, #c777b9, #ba83ca, #aa8fd8, #9a9ae1, #8aa7ec, #79b3f4, #69bff8, #52cffe, #41dfff, #46eefa, #5ffbf1)}.wp-features-img-inner-left-bottom img{left:20px;top:-20px}.license .parity-banner,.wordpress .parity-banner{position:fixed;padding:16px;width:100%;bottom:0;font-size:14px;z-index:9}.license .parity-banner b,.wordpress .parity-banner b{color:#cefdff}.license .parity-banner-poweredby,.wordpress .parity-banner-poweredby{position:absolute;left:5px;color:#51dfe5;font-size:12px;margin-top:2px}.license .parity-banner-inner,.wordpress .parity-banner-inner{padding-left:80px}.trusted-by{padding-top:4rem;padding-bottom:0rem;text-align:center}@media (min-width: 992px){.trusted-by{padding-top:7rem;padding-bottom:0}}.trusted-by .contents-list-item{box-shadow:none;width:20%;margin:0;padding:1rem}@media (min-width: 768px){.trusted-by .contents-list-item{padding:1.5rem}}.trusted-by h2,.trusted-by .h2{font-size:18px;margin:0 0px 24px 0;color:#666}@media (min-width: 768px){.trusted-by h2,.trusted-by .h2{font-size:24px}}.pricing-list-item{width:260px;padding:20px;margin:20px;color:#0e3481;border-radius:5px}.pricing-list-item.pricing-list-item-colored{border:2px solid;color:white;border-radius:8px;width:290px;padding:50px 40px;background-image:linear-gradient(to right top, #0e3481, #0066b5, #0095c8, #00c2ba, #00ea95)}.pricing-list{display:flex}.pricing-type{font-size:12px;margin-bottom:5px}.pricing-cost{font-size:2rem;font-weight:600}.pricing-cost-label{font-weight:normal;font-size:1rem}ul.pricing-terms{list-style-type:none;padding-left:0;margin-top:30px}ul.pricing-terms li{margin-bottom:5px;font-size:14px}.pricing-desc{color:#5971a7;margin:5px 0;font-size:14px}.pricing-btn-wrap{margin:20px 0}.license .hero-section{padding-bottom:3rem}.pricing-section{color:#0e3481;margin-top:5rem}.pricing-points-item{text-align:left}.pricing-points-item h4,.pricing-points-item .h4{font-size:1.3rem;margin:3rem 0 0.5rem}.lightGallery-captions h4,.lightGallery-captions .h4{transform:translate3d(60px, 0, 0px)}.lightGallery-captions p{transform:translate3d(-60px, 0, 0px)}.lightGallery-captions h4,.lightGallery-captions .h4,.lightGallery-captions p{opacity:0}.lg-current .lightGallery-captions h4,.lg-current .lightGallery-captions .h4,.lg-current .lightGallery-captions p{transform:translate3d(0, 0, 0px)}.lg-current .lightGallery-captions h4,.lg-current .lightGallery-captions .h4,.lg-current .lightGallery-captions p{opacity:1}.lg-slide-progress .lightGallery-captions h4,.lg-slide-progress .lightGallery-captions .h4{transform:translate3d(-60px, 0, 0px)}.lg-slide-progress .lightGallery-captions p{transform:translate3d(60px, 0, 0px)}.lg-slide-progress .lightGallery-captions h4,.lg-slide-progress .lightGallery-captions .h4,.lg-slide-progress .lightGallery-captions p{opacity:0}.lightGallery-captions h4,.lightGallery-captions .h4,.lightGallery-captions p{transition:transform 0.4s ease-in-out, opacity 0.4s ease-in}.lg-current .lightGallery-captions h4,.lg-current .lightGallery-captions .h4,.lg-current .lightGallery-captions p{transition-delay:500ms}.lg-current.lg-slide-progress .lightGallery-captions h4,.lg-current.lg-slide-progress .lightGallery-captions .h4,.lg-current.lg-slide-progress .lightGallery-captions p{transition-delay:0ms}.inline-gallery-container{padding-bottom:100%;height:0}@media (min-width: 576px){.inline-gallery-container{padding-bottom:65%}}.gallery-demo-sm{margin-bottom:1rem}.vertical-gallery{--bs-gutter-x: 20px}.vertical-gallery .first-row{padding-top:80px}.vertical-gallery .third-row{padding-top:45px}.vertical-gallery .gallery-item{margin-bottom:20px;display:block}.gallery-demo-videos .lg-video-play-button{width:25%}.gallery-demo-videos .lg-video-play-icon,.gallery-demo-videos .lg-video-play-icon-bg{opacity:0.65}.gallery-demo-videos .lg-video-play-icon-bg{stroke:rgba(255,255,255,0.65)}.lg-sub-html{color:#e0e0e0 !important}.lg-sub-html h4,.lg-sub-html .h4{font-weight:400 !important}.lg-sub-html a{color:#fff !important;font-weight:500 !important;margin-right:10px !important}.lightGallery-white-theme .lg-outer .lg-thumb-outer{box-shadow:0px 0px 6px -3.5px rgba(0,0,0,0.25) inset}.lightGallery-white-theme .lg-sub-html{color:#333 !important}.lightGallery-white-theme .lg-sub-html a{color:#2f2f2f !important}.lightGallery-white-theme .lg-backdrop{background-color:#fff}.lightGallery-white-theme .lg-backdrop{background-color:#fff}.lightGallery-white-theme .lg-thumb-item.active,.lightGallery-white-theme .lg-thumb-item:hover{border-color:#333}.lightGallery-white-theme .lg-progress-bar{background-color:#999}.lightGallery-white-theme .lg-progress-bar .lg-progress{background-color:#333}.lightGallery-white-theme .lg-outer .lg-thumb-outer{background-color:#fcfcfc}.lightGallery-white-theme .lg-next,.lightGallery-white-theme .lg-prev{background-color:rgba(0,0,0,0.03);color:#444}.lightGallery-white-theme .lg-next:hover,.lightGallery-white-theme .lg-prev:hover{color:#000}.lightGallery-white-theme .lg-next:focus,.lightGallery-white-theme .lg-prev:focus{outline:none;box-shadow:none}.lightGallery-white-theme .lg-toolbar .lg-icon{color:#555}.lightGallery-white-theme .lg-toolbar .lg-icon:hover{color:#000}.lightGallery-white-theme .lg-counter{color:#555}.lightGallery-white-theme .lg-outer .lg-thumb-item.active,.lightGallery-white-theme .lg-outer .lg-thumb-item:hover{border-color:#333}.lg-custom-thumbnails .lg-outer{width:auto;right:225px;left:10px}.lg-custom-thumbnails .lg-outer .lg-thumb-outer{left:auto;top:0;width:225px;max-height:none;bottom:0;background-color:#999;padding-left:5px;padding-right:5px;margin:0 -10px;overflow-y:auto;position:fixed;right:0;transform:translate3d(30%, 0, 0);opacity:0;will-change:transform opacity;transition:transform 0.15s cubic-bezier(0, 0, 0.25, 1) 0s,cubic-bezier(0, 0, 0.25, 1) 0.15s}.lg-custom-thumbnails .lg-outer.lg-components-open .lg-thumb-outer{transform:translate3d(0, 0, 0);opacity:1}.lg-custom-thumbnails .lg-outer .lg-thumb-item{float:left;filter:grayscale(100%);will-change:filter;transition:filter 0.12s ease-in, border-color 0.12s ease}.lg-custom-thumbnails .lg-outer .lg-thumb-item:hover,.lg-custom-thumbnails .lg-outer .lg-thumb-item.active{filter:grayscale(0);border-color:#545454}.lg-custom-thumbnails .lg-outer .lg-thumb{padding:5px 0}.lg-update-slide-demo .lg-toolbar .lg-icon{display:flex;align-items:center;justify-content:center}.lg-update-slide-demo .lg-toolbar svg{fill:#999;width:22px;height:22px}.choose-select-option-wrap{margin-top:20px}.choose-select-option-wrap .choose-select-option{margin-right:10px;font-size:14px;color:#333}.choose-select-option-wrap .choose-select-option,.choose-select-option-wrap .select{display:inline-block;vertical-align:middle}.lg-custom-share-demo .lg-reddit{width:20px;height:20px;display:inline-block;vertical-align:middle;margin-right:8px}.lg-custom-share-demo .lg-dropdown-text{margin-top:3px !important}.lg-inline .lg-thumb-outer{padding-left:5px}.infinite-scroll-gallery{width:240px}.infinite-scroll-gallery .gallery-item{margin-bottom:20px;display:block;width:100%}.medium-zoom-demo p{margin-left:6rem;margin-right:6rem}.lg-events-demo-outer .lg-backdrop{transition:opacity 333ms ease-in 0s, background-color 0s ease 0s, all 333ms ease-in 0s}.event-docs-list{margin-top:2rem}.lg-methods-demo .lg-next:after,.lg-methods-demo .lg-next:before,.lg-methods-demo .lg-prev:after,.lg-methods-demo .lg-prev:before{content:''}.docs-methods-list{margin-top:2rem}.options-table{width:100%;table-layout:fixed;border-color:#dae8ff}.options-table .options-table-tr-head{background-color:#fafbff}.options-table .options-table-description td{padding-bottom:3.5rem;padding-top:1rem}.options-table .options-table-description p{white-space:pre-line}.options-table .options-table-description p:last-child{margin-bottom:0}.options-table .options-table-description section{margin-bottom:1rem;margin-top:1rem}.options-table .options-table-description:last-child td{padding-bottom:0;border-bottom-color:transparent}.options-table .options-table-description .docs-minimum-version{color:#666;font-size:14px}.options-table .options-table-description .docs-minimum-version b{margin-left:3px;color:#333}.options-section{margin:5rem 0}.options-stripe-table{border:1px solid #dae8ff;font-size:15px;background-color:transparent}.options-stripe-table .options-table-tr-head:nth-child(odd){background-color:#fafbff}.options-stripe-table .options-table-tr-head:nth-child(even){background-color:transparent}.lg-masonry-gallery .gallery-item{width:30%;margin-bottom:10px}.swiper-lg-wrap{width:1200px;height:0;padding-bottom:65%;position:relative;max-width:100%}.swiper{width:100%;height:100%;position:absolute !important}.docs-common-section{border-bottom:2px solid #dae8ff;padding-bottom:40px;margin-bottom:40px}.docs-common-section p,.docs-common-section ul{margin-bottom:0.8rem;font-size:1rem}.docs-common-section p>b{margin-right:0.3rem}.docs-common-section li{line-height:1.5rem}.docs-common-section .chroma{margin:0 0 0.8rem 0}.docs-common-section .docs-common-highlight .chroma{margin-top:0}.docs-common-section .docs-common-notes{margin-top:1rem} diff --git a/main.c5d899af129a53c2ad39b883a63a067495d02346156d60325338cdeffd78417057c32f51c6d2c0659d7c76e9c3cc69df91c087292fbd9efc1f60a169b1f45069.js b/main.c5d899af129a53c2ad39b883a63a067495d02346156d60325338cdeffd78417057c32f51c6d2c0659d7c76e9c3cc69df91c087292fbd9efc1f60a169b1f45069.js new file mode 100644 index 00000000..01854c39 --- /dev/null +++ b/main.c5d899af129a53c2ad39b883a63a067495d02346156d60325338cdeffd78417057c32f51c6d2c0659d7c76e9c3cc69df91c087292fbd9efc1f60a169b1f45069.js @@ -0,0 +1,6778 @@ +/*! lazysizes - v5.3.0 */ + +!function(e){var t=function(u,D,f){"use strict";var k,H;if(function(){var e;var t={lazyClass:"lazyload",loadedClass:"lazyloaded",loadingClass:"lazyloading",preloadClass:"lazypreload",errorClass:"lazyerror",autosizesClass:"lazyautosizes",fastLoadedClass:"ls-is-cached",iframeLoadMode:0,srcAttr:"data-src",srcsetAttr:"data-srcset",sizesAttr:"data-sizes",minSize:40,customMedia:{},init:true,expFactor:1.5,hFac:.8,loadMode:2,loadHidden:true,ricTimeout:0,throttleDelay:125};H=u.lazySizesConfig||u.lazysizesConfig||{};for(e in t){if(!(e in H)){H[e]=t[e]}}}(),!D||!D.getElementsByClassName){return{init:function(){},cfg:H,noSupport:true}}var O=D.documentElement,i=u.HTMLPictureElement,P="addEventListener",$="getAttribute",q=u[P].bind(u),I=u.setTimeout,U=u.requestAnimationFrame||I,o=u.requestIdleCallback,j=/^picture$/i,r=["load","error","lazyincluded","_lazyloaded"],a={},G=Array.prototype.forEach,J=function(e,t){if(!a[t]){a[t]=new RegExp("(\\s|^)"+t+"(\\s|$)")}return a[t].test(e[$]("class")||"")&&a[t]},K=function(e,t){if(!J(e,t)){e.setAttribute("class",(e[$]("class")||"").trim()+" "+t)}},Q=function(e,t){var a;if(a=J(e,t)){e.setAttribute("class",(e[$]("class")||"").replace(a," "))}},V=function(t,a,e){var i=e?P:"removeEventListener";if(e){V(t,a)}r.forEach(function(e){t[i](e,a)})},X=function(e,t,a,i,r){var n=D.createEvent("Event");if(!a){a={}}a.instance=k;n.initEvent(t,!i,!r);n.detail=a;e.dispatchEvent(n);return n},Y=function(e,t){var a;if(!i&&(a=u.picturefill||H.pf)){if(t&&t.src&&!e[$]("srcset")){e.setAttribute("srcset",t.src)}a({reevaluate:true,elements:[e]})}else if(t&&t.src){e.src=t.src}},Z=function(e,t){return(getComputedStyle(e,null)||{})[t]},s=function(e,t,a){a=a||e.offsetWidth;while(a49?function(){o(t,{timeout:n});if(n!==H.ricTimeout){n=H.ricTimeout}}:te(function(){I(t)},true);return function(e){var t;if(e=e===true){n=33}if(a){return}a=true;t=r-(f.now()-i);if(t<0){t=0}if(e||t<9){s()}else{I(s,t)}}},ie=function(e){var t,a;var i=99;var r=function(){t=null;e()};var n=function(){var e=f.now()-a;if(e0;if(r&&Z(i,"overflow")!="visible"){a=i.getBoundingClientRect();r=C>a.left&&pa.top-1&&g500&&O.clientWidth>500?500:370:H.expand;k._defEx=u;f=u*H.expFactor;c=H.hFac;A=null;if(w2&&h>2&&!D.hidden){w=f;N=0}else if(h>1&&N>1&&M<6){w=u}else{w=_}}if(l!==n){y=innerWidth+n*c;z=innerHeight+n;s=n*-1;l=n}a=d[t].getBoundingClientRect();if((b=a.bottom)>=s&&(g=a.top)<=z&&(C=a.right)>=s*c&&(p=a.left)<=y&&(b||C||p||g)&&(H.loadHidden||x(d[t]))&&(m&&M<3&&!o&&(h<3||N<4)||W(d[t],n))){R(d[t]);r=true;if(M>9){break}}else if(!r&&m&&!i&&M<4&&N<4&&h>2&&(v[0]||H.preloadAfterLoad)&&(v[0]||!o&&(b||C||p||g||d[t][$](H.sizesAttr)!="auto"))){i=v[0]||d[t]}}if(i&&!r){R(i)}}};var a=ae(t);var S=function(e){var t=e.target;if(t._lazyCache){delete t._lazyCache;return}L(e);K(t,H.loadedClass);Q(t,H.loadingClass);V(t,B);X(t,"lazyloaded")};var i=te(S);var B=function(e){i({target:e.target})};var T=function(e,t){var a=e.getAttribute("data-load-mode")||H.iframeLoadMode;if(a==0){e.contentWindow.location.replace(t)}else if(a==1){e.src=t}};var F=function(e){var t;var a=e[$](H.srcsetAttr);if(t=H.customMedia[e[$]("data-media")||e[$]("media")]){e.setAttribute("media",t)}if(a){e.setAttribute("srcset",a)}};var s=te(function(t,e,a,i,r){var n,s,o,l,u,f;if(!(u=X(t,"lazybeforeunveil",e)).defaultPrevented){if(i){if(a){K(t,H.autosizesClass)}else{t.setAttribute("sizes",i)}}s=t[$](H.srcsetAttr);n=t[$](H.srcAttr);if(r){o=t.parentNode;l=o&&j.test(o.nodeName||"")}f=e.firesLoad||"src"in t&&(s||n||l);u={target:t};K(t,H.loadingClass);if(f){clearTimeout(c);c=I(L,2500);V(t,B,true)}if(l){G.call(o.getElementsByTagName("source"),F)}if(s){t.setAttribute("srcset",s)}else if(n&&!l){if(d.test(t.nodeName)){T(t,n)}else{t.src=n}}if(r&&(s||l)){Y(t,{src:n})}}if(t._lazyRace){delete t._lazyRace}Q(t,H.lazyClass);ee(function(){var e=t.complete&&t.naturalWidth>1;if(!f||e){if(e){K(t,H.fastLoadedClass)}S(u);t._lazyCache=true;I(function(){if("_lazyCache"in t){delete t._lazyCache}},9)}if(t.loading=="lazy"){M--}},true)});var R=function(e){if(e._lazyRace){return}var t;var a=n.test(e.nodeName);var i=a&&(e[$](H.sizesAttr)||e[$]("sizes"));var r=i=="auto";if((r||!m)&&a&&(e[$]("src")||e.srcset)&&!e.complete&&!J(e,H.errorClass)&&J(e,H.lazyClass)){return}t=X(e,"lazyunveilread").detail;if(r){re.updateElem(e,true,e.offsetWidth)}e._lazyRace=true;M++;s(e,t,r,i,a)};var r=ie(function(){H.loadMode=3;a()});var o=function(){if(H.loadMode==3){H.loadMode=2}r()};var l=function(){if(m){return}if(f.now()-e<999){I(l,999);return}m=true;H.loadMode=3;a();q("scroll",o,true)};return{_:function(){e=f.now();k.elements=D.getElementsByClassName(H.lazyClass);v=D.getElementsByClassName(H.lazyClass+" "+H.preloadClass);q("scroll",a,true);q("resize",a,true);q("pageshow",function(e){if(e.persisted){var t=D.querySelectorAll("."+H.loadingClass);if(t.length&&t.forEach){U(function(){t.forEach(function(e){if(e.complete){R(e)}})})}}});if(u.MutationObserver){new MutationObserver(a).observe(O,{childList:true,subtree:true,attributes:true})}else{O[P]("DOMNodeInserted",a,true);O[P]("DOMAttrModified",a,true);setInterval(a,999)}q("hashchange",a,true);["focus","mouseover","click","load","transitionend","animationend"].forEach(function(e){D[P](e,a,true)});if(/d$|^c/.test(D.readyState)){l()}else{q("load",l);D[P]("DOMContentLoaded",a);I(l,2e4)}if(k.elements.length){t();ee._lsFlush()}else{a()}},checkElems:a,unveil:R,_aLSL:o}}(),re=function(){var a;var n=te(function(e,t,a,i){var r,n,s;e._lazysizesWidth=i;i+="px";e.setAttribute("sizes",i);if(j.test(t.nodeName||"")){r=t.getElementsByTagName("source");for(n=0,s=r.length;n+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0
'),intervalId:null},this.scrollBarOn=!1,this.checkWidthIntervalId=null,this.galleryWidth=t.width(),this.$gallery=t};r.prototype.getSuffix=function(t,i){var e,s;for(e=i .jg-caption");return 0===i.length?null:i},r.prototype.displayEntry=function(t,i,e,s,n,r){t.width(s),t.height(r),t.css("top",e),t.css("left",i);var o=this.imgFromEntry(t);if(null!==o){o.css("width",s),o.css("height",n),o.css("margin-left",-s/2),o.css("margin-top",-n/2);var a=o.data("jg.src");if(a){a=this.newSrc(a,s,n,o[0]),o.one("error",function(){this.resetImgSrc(o)});var h=function(){o.attr("src",a)};"skipped"===t.data("jg.loaded")&&a?this.onImageEvent(a,function(){this.showImg(t,h),t.data("jg.loaded",!0)}.bind(this)):this.showImg(t,h)}}else this.showImg(t);this.displayEntryCaption(t)},r.prototype.displayEntryCaption=function(t){var i=this.imgFromEntry(t);if(null!==i&&this.settings.captions){var e=this.captionFromEntry(t);if(null===e){var s=i.attr("alt");this.isValidCaption(s)||(s=t.attr("title")),this.isValidCaption(s)&&(e=l('
'+s+"
"),t.append(e),t.data("jg.createdCaption",!0))}null!==e&&(this.settings.cssAnimation||e.stop().fadeTo(0,this.settings.captionSettings.nonVisibleOpacity),this.addCaptionEventsHandlers(t))}else this.removeCaptionEventsHandlers(t)},r.prototype.isValidCaption=function(t){return void 0!==t&&0this.settings.justifyThreshold;if(i||t&&"hide"===this.settings.lastRow&&!d){for(e=0;e img, > a > img").fadeTo(0,0));return-1}for(t&&!d&&"justify"!==this.settings.lastRow&&"hide"!==this.settings.lastRow&&(a=!1,0this.settings.justifyThreshold)),e=0;ethis.settings.refreshSensitivity&&(this.galleryWidth=t,this.rewind(),this.rememberGalleryHeight(),this.startImgAnalyzer(!0))}},this),this.settings.refreshTime)},r.prototype.isSpinnerActive=function(){return null!==this.spinner.intervalId},r.prototype.getSpinnerHeight=function(){return this.spinner.$el.innerHeight()},r.prototype.stopLoadingSpinnerAnimation=function(){clearInterval(this.spinner.intervalId),this.spinner.intervalId=null,this.setGalleryTempHeight(this.$gallery.height()-this.getSpinnerHeight()),this.spinner.$el.detach()},r.prototype.startLoadingSpinnerAnimation=function(){var t=this.spinner,i=t.$el.find("span");clearInterval(t.intervalId),this.$gallery.append(t.$el),this.setGalleryTempHeight(this.offY+this.buildingRow.height+this.getSpinnerHeight()),t.intervalId=setInterval(function(){t.phase=this.yield.every))return void this.startImgAnalyzer(t)}else if("error"!==e.data("jg.loaded"))return}0 img, > a > img, > svg, > a > svg",triggerEvent:function(t){this.$gallery.trigger(t)}},l.fn.justifiedGallery=function(n){return this.each(function(t,i){var e=l(i);e.addClass("justified-gallery");var s=e.data("jg.controller");if(void 0===s){if(null!=n&&"object"!==l.type(n)){if("destroy"===n)return;throw"The argument must be an object"}s=new r(e,l.extend({},r.prototype.defaults,n)),e.data("jg.controller",s)}else if("norewind"===n);else{if("destroy"===n)return void s.destroy();s.updateSettings(n),s.rewind()}s.updateEntries("norewind"===n)&&s.init()})}}); +; +/*! + * Bootstrap v5.0.0-beta1 (https://getbootstrap.com/) + * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("@popperjs/core")):"function"==typeof define&&define.amd?define(["@popperjs/core"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e(t.Popper)}(this,(function(t){"use strict";function e(t){if(t&&t.__esModule)return t;var e=Object.create(null);return t&&Object.keys(t).forEach((function(n){if("default"!==n){var i=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(e,n,i.get?i:{enumerable:!0,get:function(){return t[n]}})}})),e.default=t,Object.freeze(e)}var n=e(t);function i(t,e){for(var n=0;n0,i._pointerEvent=Boolean(window.PointerEvent),i._addEventListeners(),i}r(e,t);var n=e.prototype;return n.next=function(){this._isSliding||this._slide("next")},n.nextWhenVisible=function(){!document.hidden&&v(this._element)&&this.next()},n.prev=function(){this._isSliding||this._slide("prev")},n.pause=function(t){t||(this._isPaused=!0),V.findOne(".carousel-item-next, .carousel-item-prev",this._element)&&(p(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},n.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},n.to=function(t){var e=this;this._activeElement=V.findOne(".active.carousel-item",this._element);var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)Q.one(this._element,"slid.bs.carousel",(function(){return e.to(t)}));else{if(n===t)return this.pause(),void this.cycle();var i=t>n?"next":"prev";this._slide(i,this._items[t])}},n.dispose=function(){t.prototype.dispose.call(this),Q.off(this._element,G),this._items=null,this._config=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},n._getConfig=function(t){return t=s({},Z,t),_($,t,J),t},n._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;this.touchDeltaX=0,e>0&&this.prev(),e<0&&this.next()}},n._addEventListeners=function(){var t=this;this._config.keyboard&&Q.on(this._element,"keydown.bs.carousel",(function(e){return t._keydown(e)})),"hover"===this._config.pause&&(Q.on(this._element,"mouseenter.bs.carousel",(function(e){return t.pause(e)})),Q.on(this._element,"mouseleave.bs.carousel",(function(e){return t.cycle(e)}))),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()},n._addTouchEventListeners=function(){var t=this,e=function(e){t._pointerEvent&&tt[e.pointerType.toUpperCase()]?t.touchStartX=e.clientX:t._pointerEvent||(t.touchStartX=e.touches[0].clientX)},n=function(e){t._pointerEvent&&tt[e.pointerType.toUpperCase()]&&(t.touchDeltaX=e.clientX-t.touchStartX),t._handleSwipe(),"hover"===t._config.pause&&(t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout((function(e){return t.cycle(e)}),500+t._config.interval))};V.find(".carousel-item img",this._element).forEach((function(t){Q.on(t,"dragstart.bs.carousel",(function(t){return t.preventDefault()}))})),this._pointerEvent?(Q.on(this._element,"pointerdown.bs.carousel",(function(t){return e(t)})),Q.on(this._element,"pointerup.bs.carousel",(function(t){return n(t)})),this._element.classList.add("pointer-event")):(Q.on(this._element,"touchstart.bs.carousel",(function(t){return e(t)})),Q.on(this._element,"touchmove.bs.carousel",(function(e){return function(e){e.touches&&e.touches.length>1?t.touchDeltaX=0:t.touchDeltaX=e.touches[0].clientX-t.touchStartX}(e)})),Q.on(this._element,"touchend.bs.carousel",(function(t){return n(t)})))},n._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.key){case"ArrowLeft":t.preventDefault(),this.prev();break;case"ArrowRight":t.preventDefault(),this.next()}},n._getItemIndex=function(t){return this._items=t&&t.parentNode?V.find(".carousel-item",t.parentNode):[],this._items.indexOf(t)},n._getItemByDirection=function(t,e){var n="next"===t,i="prev"===t,o=this._getItemIndex(e),s=this._items.length-1;if((i&&0===o||n&&o===s)&&!this._config.wrap)return e;var r=(o+("prev"===t?-1:1))%this._items.length;return-1===r?this._items[this._items.length-1]:this._items[r]},n._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(V.findOne(".active.carousel-item",this._element));return Q.trigger(this._element,"slide.bs.carousel",{relatedTarget:t,direction:e,from:i,to:n})},n._setActiveIndicatorElement=function(t){if(this._indicatorsElement){for(var e=V.find(".active",this._indicatorsElement),n=0;n0)for(var i=0;i0&&s--,"ArrowDown"===t.key&&sdocument.documentElement.clientHeight;e||(this._element.style.overflowY="hidden"),this._element.classList.add("modal-static");var n=h(this._dialog);Q.off(this._element,"transitionend"),Q.one(this._element,"transitionend",(function(){t._element.classList.remove("modal-static"),e||(Q.one(t._element,"transitionend",(function(){t._element.style.overflowY=""})),m(t._element,n))})),m(this._element,n),this._element.focus()}},n._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;(!this._isBodyOverflowing&&t&&!T||this._isBodyOverflowing&&!t&&T)&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),(this._isBodyOverflowing&&!t&&!T||!this._isBodyOverflowing&&t&&T)&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},n._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},n._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=Math.round(t.left+t.right)
',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",container:!1,fallbackPlacements:null,boundary:"clippingParents",customClass:"",sanitize:!0,sanitizeFn:null,allowList:Tt,popperConfig:null},Ot={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},It=function(e){function i(t,i){var o;if(void 0===n)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");return(o=e.call(this,t)||this)._isEnabled=!0,o._timeout=0,o._hoverState="",o._activeTrigger={},o._popper=null,o.config=o._getConfig(i),o.tip=null,o._setListeners(),o}r(i,e);var a=i.prototype;return a.enable=function(){this._isEnabled=!0},a.disable=function(){this._isEnabled=!1},a.toggleEnabled=function(){this._isEnabled=!this._isEnabled},a.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=L(t.delegateTarget,e);n||(n=new this.constructor(t.delegateTarget,this._getDelegateConfig()),A(t.delegateTarget,e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(this.getTipElement().classList.contains("show"))return void this._leave(null,this);this._enter(null,this)}},a.dispose=function(){clearTimeout(this._timeout),Q.off(this._element,this.constructor.EVENT_KEY),Q.off(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this.tip&&this.tip.parentNode.removeChild(this.tip),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.config=null,this.tip=null,e.prototype.dispose.call(this)},a.show=function(){var e=this;if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(this.isWithContent()&&this._isEnabled){var n=Q.trigger(this._element,this.constructor.Event.SHOW),i=function t(e){if(!document.documentElement.attachShadow)return null;if("function"==typeof e.getRootNode){var n=e.getRootNode();return n instanceof ShadowRoot?n:null}return e instanceof ShadowRoot?e:e.parentNode?t(e.parentNode):null}(this._element),o=null===i?this._element.ownerDocument.documentElement.contains(this._element):i.contains(this._element);if(n.defaultPrevented||!o)return;var s=this.getTipElement(),r=c(this.constructor.NAME);s.setAttribute("id",r),this._element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&s.classList.add("fade");var a="function"==typeof this.config.placement?this.config.placement.call(this,s,this._element):this.config.placement,l=this._getAttachment(a);this._addAttachmentClass(l);var u=this._getContainer();A(s,this.constructor.DATA_KEY,this),this._element.ownerDocument.documentElement.contains(this.tip)||u.appendChild(s),Q.trigger(this._element,this.constructor.Event.INSERTED),this._popper=t.createPopper(this._element,s,this._getPopperConfig(l)),s.classList.add("show");var d,f,p="function"==typeof this.config.customClass?this.config.customClass():this.config.customClass;if(p)(d=s.classList).add.apply(d,p.split(" "));if("ontouchstart"in document.documentElement)(f=[]).concat.apply(f,document.body.children).forEach((function(t){Q.on(t,"mouseover",(function(){}))}));var g=function(){var t=e._hoverState;e._hoverState=null,Q.trigger(e._element,e.constructor.Event.SHOWN),"out"===t&&e._leave(null,e)};if(this.tip.classList.contains("fade")){var _=h(this.tip);Q.one(this.tip,"transitionend",g),m(this.tip,_)}else g()}},a.hide=function(){var t=this;if(this._popper){var e=this.getTipElement(),n=function(){"show"!==t._hoverState&&e.parentNode&&e.parentNode.removeChild(e),t._cleanTipClass(),t._element.removeAttribute("aria-describedby"),Q.trigger(t._element,t.constructor.Event.HIDDEN),t._popper&&(t._popper.destroy(),t._popper=null)};if(!Q.trigger(this._element,this.constructor.Event.HIDE).defaultPrevented){var i;if(e.classList.remove("show"),"ontouchstart"in document.documentElement)(i=[]).concat.apply(i,document.body.children).forEach((function(t){return Q.off(t,"mouseover",b)}));if(this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,this.tip.classList.contains("fade")){var o=h(e);Q.one(e,"transitionend",n),m(e,o)}else n();this._hoverState=""}}},a.update=function(){null!==this._popper&&this._popper.update()},a.isWithContent=function(){return Boolean(this.getTitle())},a.getTipElement=function(){if(this.tip)return this.tip;var t=document.createElement("div");return t.innerHTML=this.config.template,this.tip=t.children[0],this.tip},a.setContent=function(){var t=this.getTipElement();this.setElementContent(V.findOne(".tooltip-inner",t),this.getTitle()),t.classList.remove("fade","show")},a.setElementContent=function(t,e){if(null!==t)return"object"==typeof e&&g(e)?(e.jquery&&(e=e[0]),void(this.config.html?e.parentNode!==t&&(t.innerHTML="",t.appendChild(e)):t.textContent=e.textContent)):void(this.config.html?(this.config.sanitize&&(e=kt(e,this.config.allowList,this.config.sanitizeFn)),t.innerHTML=e):t.textContent=e)},a.getTitle=function(){var t=this._element.getAttribute("data-bs-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this._element):this.config.title),t},a.updateAttachment=function(t){return"right"===t?"end":"left"===t?"start":t},a._getPopperConfig=function(t){var e=this,n={name:"flip",options:{altBoundary:!0}};return this.config.fallbackPlacements&&(n.options.fallbackPlacements=this.config.fallbackPlacements),s({},{placement:t,modifiers:[n,{name:"preventOverflow",options:{rootBoundary:this.config.boundary}},{name:"arrow",options:{element:"."+this.constructor.NAME+"-arrow"}},{name:"onChange",enabled:!0,phase:"afterWrite",fn:function(t){return e._handlePopperPlacementChange(t)}}],onFirstUpdate:function(t){t.options.placement!==t.placement&&e._handlePopperPlacementChange(t)}},this.config.popperConfig)},a._addAttachmentClass=function(t){this.getTipElement().classList.add("bs-tooltip-"+this.updateAttachment(t))},a._getContainer=function(){return!1===this.config.container?document.body:g(this.config.container)?this.config.container:V.findOne(this.config.container)},a._getAttachment=function(t){return St[t.toUpperCase()]},a._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach((function(e){if("click"===e)Q.on(t._element,t.constructor.Event.CLICK,t.config.selector,(function(e){return t.toggle(e)}));else if("manual"!==e){var n="hover"===e?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,i="hover"===e?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;Q.on(t._element,n,t.config.selector,(function(e){return t._enter(e)})),Q.on(t._element,i,t.config.selector,(function(e){return t._leave(e)}))}})),this._hideModalHandler=function(){t._element&&t.hide()},Q.on(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=s({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},a._fixTitle=function(){var t=this._element.getAttribute("title"),e=typeof this._element.getAttribute("data-bs-original-title");(t||"string"!==e)&&(this._element.setAttribute("data-bs-original-title",t||""),!t||this._element.getAttribute("aria-label")||this._element.textContent||this._element.setAttribute("aria-label",t),this._element.setAttribute("title",""))},a._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||L(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),A(t.delegateTarget,n,e)),t&&(e._activeTrigger["focusin"===t.type?"focus":"hover"]=!0),e.getTipElement().classList.contains("show")||"show"===e._hoverState?e._hoverState="show":(clearTimeout(e._timeout),e._hoverState="show",e.config.delay&&e.config.delay.show?e._timeout=setTimeout((function(){"show"===e._hoverState&&e.show()}),e.config.delay.show):e.show())},a._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||L(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),A(t.delegateTarget,n,e)),t&&(e._activeTrigger["focusout"===t.type?"focus":"hover"]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState="out",e.config.delay&&e.config.delay.hide?e._timeout=setTimeout((function(){"out"===e._hoverState&&e.hide()}),e.config.delay.hide):e.hide())},a._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},a._getConfig=function(t){var e=q.getDataAttributes(this._element);return Object.keys(e).forEach((function(t){Ct.has(t)&&delete e[t]})),t&&"object"==typeof t.container&&t.container.jquery&&(t.container=t.container[0]),"number"==typeof(t=s({},this.constructor.Default,e,"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),_(At,t,this.constructor.DefaultType),t.sanitize&&(t.template=kt(t.template,t.allowList,t.sanitizeFn)),t},a._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},a._cleanTipClass=function(){var t=this.getTipElement(),e=t.getAttribute("class").match(Lt);null!==e&&e.length>0&&e.map((function(t){return t.trim()})).forEach((function(e){return t.classList.remove(e)}))},a._handlePopperPlacementChange=function(t){var e=t.state;e&&(this.tip=e.elements.popper,this._cleanTipClass(),this._addAttachmentClass(this._getAttachment(e.placement)))},i.jQueryInterface=function(t){return this.each((function(){var e=L(this,"bs.tooltip"),n="object"==typeof t&&t;if((e||!/dispose|hide/.test(t))&&(e||(e=new i(this,n)),"string"==typeof t)){if(void 0===e[t])throw new TypeError('No method named "'+t+'"');e[t]()}}))},o(i,null,[{key:"Default",get:function(){return Nt}},{key:"NAME",get:function(){return At}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return Ot}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return Dt}}]),i}(U);E((function(){var t=w();if(t){var e=t.fn[At];t.fn[At]=It.jQueryInterface,t.fn[At].Constructor=It,t.fn[At].noConflict=function(){return t.fn[At]=e,It.jQueryInterface}}}));var jt="popover",Pt=new RegExp("(^|\\s)bs-popover\\S+","g"),xt=s({},It.Default,{placement:"right",trigger:"click",content:"",template:''}),Ht=s({},It.DefaultType,{content:"(string|element|function)"}),Bt={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"},Mt=function(t){function e(){return t.apply(this,arguments)||this}r(e,t);var n=e.prototype;return n.isWithContent=function(){return this.getTitle()||this._getContent()},n.setContent=function(){var t=this.getTipElement();this.setElementContent(V.findOne(".popover-header",t),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this._element)),this.setElementContent(V.findOne(".popover-body",t),e),t.classList.remove("fade","show")},n._addAttachmentClass=function(t){this.getTipElement().classList.add("bs-popover-"+this.updateAttachment(t))},n._getContent=function(){return this._element.getAttribute("data-bs-content")||this.config.content},n._cleanTipClass=function(){var t=this.getTipElement(),e=t.getAttribute("class").match(Pt);null!==e&&e.length>0&&e.map((function(t){return t.trim()})).forEach((function(e){return t.classList.remove(e)}))},e.jQueryInterface=function(t){return this.each((function(){var n=L(this,"bs.popover"),i="object"==typeof t?t:null;if((n||!/dispose|hide/.test(t))&&(n||(n=new e(this,i),A(this,"bs.popover",n)),"string"==typeof t)){if(void 0===n[t])throw new TypeError('No method named "'+t+'"');n[t]()}}))},o(e,null,[{key:"Default",get:function(){return xt}},{key:"NAME",get:function(){return jt}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return Bt}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return Ht}}]),e}(It);E((function(){var t=w();if(t){var e=t.fn[jt];t.fn[jt]=Mt.jQueryInterface,t.fn[jt].Constructor=Mt,t.fn[jt].noConflict=function(){return t.fn[jt]=e,Mt.jQueryInterface}}}));var Rt="scrollspy",Kt={offset:10,method:"auto",target:""},Qt={offset:"number",method:"string",target:"(string|element)"},Ut=function(t){function e(e,n){var i;return(i=t.call(this,e)||this)._scrollElement="BODY"===e.tagName?window:e,i._config=i._getConfig(n),i._selector=i._config.target+" .nav-link, "+i._config.target+" .list-group-item, "+i._config.target+" .dropdown-item",i._offsets=[],i._targets=[],i._activeTarget=null,i._scrollHeight=0,Q.on(i._scrollElement,"scroll.bs.scrollspy",(function(t){return i._process(t)})),i.refresh(),i._process(),i}r(e,t);var n=e.prototype;return n.refresh=function(){var t=this,e=this._scrollElement===this._scrollElement.window?"offset":"position",n="auto"===this._config.method?e:this._config.method,i="position"===n?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),V.find(this._selector).map((function(t){var e=d(t),o=e?V.findOne(e):null;if(o){var s=o.getBoundingClientRect();if(s.width||s.height)return[q[n](o).top+i,e]}return null})).filter((function(t){return t})).sort((function(t,e){return t[0]-e[0]})).forEach((function(e){t._offsets.push(e[0]),t._targets.push(e[1])}))},n.dispose=function(){t.prototype.dispose.call(this),Q.off(this._scrollElement,".bs.scrollspy"),this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},n._getConfig=function(t){if("string"!=typeof(t=s({},Kt,"object"==typeof t&&t?t:{})).target&&g(t.target)){var e=t.target.id;e||(e=c(Rt),t.target.id=e),t.target="#"+e}return _(Rt,t,Qt),t},n._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},n._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},n._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},n._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t0)return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;){this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&(void 0===this._offsets[o+1]||t li > .active":".active";e=(e=V.find(o,i))[e.length-1]}var s=null;if(e&&(s=Q.trigger(e,"hide.bs.tab",{relatedTarget:this._element})),!(Q.trigger(this._element,"show.bs.tab",{relatedTarget:e}).defaultPrevented||null!==s&&s.defaultPrevented)){this._activate(this._element,i);var r=function(){Q.trigger(e,"hidden.bs.tab",{relatedTarget:t._element}),Q.trigger(t._element,"shown.bs.tab",{relatedTarget:e})};n?this._activate(n,n.parentNode,r):r()}}},n._activate=function(t,e,n){var i=this,o=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?V.children(e,".active"):V.find(":scope > li > .active",e))[0],s=n&&o&&o.classList.contains("fade"),r=function(){return i._transitionComplete(t,o,n)};if(o&&s){var a=h(o);o.classList.remove("show"),Q.one(o,"transitionend",r),m(o,a)}else r()},n._transitionComplete=function(t,e,n){if(e){e.classList.remove("active");var i=V.findOne(":scope > .dropdown-menu .active",e.parentNode);i&&i.classList.remove("active"),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}(t.classList.add("active"),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),y(t),t.classList.contains("fade")&&t.classList.add("show"),t.parentNode&&t.parentNode.classList.contains("dropdown-menu"))&&(t.closest(".dropdown")&&V.find(".dropdown-toggle").forEach((function(t){return t.classList.add("active")})),t.setAttribute("aria-expanded",!0));n&&n()},e.jQueryInterface=function(t){return this.each((function(){var n=L(this,"bs.tab")||new e(this);if("string"==typeof t){if(void 0===n[t])throw new TypeError('No method named "'+t+'"');n[t]()}}))},o(e,null,[{key:"DATA_KEY",get:function(){return"bs.tab"}}]),e}(U);Q.on(document,"click.bs.tab.data-api",'[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',(function(t){t.preventDefault(),(L(this,"bs.tab")||new Wt(this)).show()})),E((function(){var t=w();if(t){var e=t.fn.tab;t.fn.tab=Wt.jQueryInterface,t.fn.tab.Constructor=Wt,t.fn.tab.noConflict=function(){return t.fn.tab=e,Wt.jQueryInterface}}}));var Ft={animation:"boolean",autohide:"boolean",delay:"number"},Yt={animation:!0,autohide:!0,delay:5e3},zt=function(t){function e(e,n){var i;return(i=t.call(this,e)||this)._config=i._getConfig(n),i._timeout=null,i._setListeners(),i}r(e,t);var n=e.prototype;return n.show=function(){var t=this;if(!Q.trigger(this._element,"show.bs.toast").defaultPrevented){this._clearTimeout(),this._config.animation&&this._element.classList.add("fade");var e=function(){t._element.classList.remove("showing"),t._element.classList.add("show"),Q.trigger(t._element,"shown.bs.toast"),t._config.autohide&&(t._timeout=setTimeout((function(){t.hide()}),t._config.delay))};if(this._element.classList.remove("hide"),y(this._element),this._element.classList.add("showing"),this._config.animation){var n=h(this._element);Q.one(this._element,"transitionend",e),m(this._element,n)}else e()}},n.hide=function(){var t=this;if(this._element.classList.contains("show")&&!Q.trigger(this._element,"hide.bs.toast").defaultPrevented){var e=function(){t._element.classList.add("hide"),Q.trigger(t._element,"hidden.bs.toast")};if(this._element.classList.remove("show"),this._config.animation){var n=h(this._element);Q.one(this._element,"transitionend",e),m(this._element,n)}else e()}},n.dispose=function(){this._clearTimeout(),this._element.classList.contains("show")&&this._element.classList.remove("show"),Q.off(this._element,"click.dismiss.bs.toast"),t.prototype.dispose.call(this),this._config=null},n._getConfig=function(t){return t=s({},Yt,q.getDataAttributes(this._element),"object"==typeof t&&t?t:{}),_("toast",t,this.constructor.DefaultType),t},n._setListeners=function(){var t=this;Q.on(this._element,"click.dismiss.bs.toast",'[data-bs-dismiss="toast"]',(function(){return t.hide()}))},n._clearTimeout=function(){clearTimeout(this._timeout),this._timeout=null},e.jQueryInterface=function(t){return this.each((function(){var n=L(this,"bs.toast");if(n||(n=new e(this,"object"==typeof t&&t)),"string"==typeof t){if(void 0===n[t])throw new TypeError('No method named "'+t+'"');n[t](this)}}))},o(e,null,[{key:"DefaultType",get:function(){return Ft}},{key:"Default",get:function(){return Yt}},{key:"DATA_KEY",get:function(){return"bs.toast"}}]),e}(U);return E((function(){var t=w();if(t){var e=t.fn.toast;t.fn.toast=zt.jQueryInterface,t.fn.toast.Constructor=zt,t.fn.toast.noConflict=function(){return t.fn.toast=e,zt.jQueryInterface}}})),{Alert:F,Button:Y,Carousel:et,Collapse:st,Dropdown:mt,Modal:bt,Popover:Mt,ScrollSpy:Ut,Tab:Wt,Toast:zt,Tooltip:It}})); +//# sourceMappingURL=bootstrap.min.js.map +; +"use strict";var prefetches=new Set,prefetchElement=document.createElement('link'),isSupported=prefetchElement.relList&&prefetchElement.relList.supports&&prefetchElement.relList.supports('prefetch')&&window.IntersectionObserver&&'isIntersecting'in IntersectionObserverEntry.prototype,allowQueryString='instantAllowQueryString'in document.body.dataset,allowExternalLinks='instantAllowExternalLinks'in document.body.dataset,useWhitelist='instantWhitelist'in document.body.dataset,mousedownShortcut='instantMousedownShortcut'in document.body.dataset,DELAY_TO_NOT_BE_CONSIDERED_A_TOUCH_INITIATED_ACTION=1111,delayOnHover=65,useMousedown=!1,useMousedownOnly=!1,useViewport=!1,mouseoverTimer,lastTouchTimestamp,intensity,milliseconds,eventListenersOptions,triggeringFunction;'instantIntensity'in document.body.dataset&&(intensity=document.body.dataset.instantIntensity,intensity.substr(0,'mousedown'.length)=='mousedown'?(useMousedown=!0,intensity=='mousedown-only'&&(useMousedownOnly=!0)):intensity.substr(0,'viewport'.length)=='viewport'?navigator.connection&&(navigator.connection.saveData||navigator.connection.effectiveType&&navigator.connection.effectiveType.includes('2g'))||(intensity=="viewport"?document.documentElement.clientWidth*document.documentElement.clientHeight<45e4&&(useViewport=!0):intensity=="viewport-all"&&(useViewport=!0)):(milliseconds=parseInt(intensity),isNaN(milliseconds)||(delayOnHover=milliseconds))),isSupported&&(eventListenersOptions={capture:!0,passive:!0},useMousedownOnly||document.addEventListener('touchstart',touchstartListener,eventListenersOptions),useMousedown?mousedownShortcut||document.addEventListener('mousedown',mousedownListener,eventListenersOptions):document.addEventListener('mouseover',mouseoverListener,eventListenersOptions),mousedownShortcut&&document.addEventListener('mousedown',mousedownShortcutListener,eventListenersOptions),useViewport&&(window.requestIdleCallback?triggeringFunction=function(a){requestIdleCallback(a,{timeout:1500})}:triggeringFunction=function(a){a()},triggeringFunction(function(){var a=new IntersectionObserver(function(b){b.forEach(function(b){if(b.isIntersecting){var c=b.target;a.unobserve(c),preload(c.href)}})});document.querySelectorAll('a').forEach(function(b){isPreloadable(b)&&a.observe(b)})})));function touchstartListener(b){lastTouchTimestamp=performance.now();var a=b.target.closest('a');if(!isPreloadable(a))return;preload(a.href)}function mouseoverListener(b){if(performance.now()-lastTouchTimestamp1||a.metaKey||a.ctrlKey)return;if(!b)return;b.addEventListener('click',function(a){if(a.detail==1337)return;a.preventDefault()},{capture:!0,passive:!1,once:!0}),c=new MouseEvent('click',{view:window,bubbles:!0,cancelable:!1,detail:1337}),b.dispatchEvent(c)}function isPreloadable(a){if(!a||!a.href)return;if(useWhitelist&&!('instant'in a.dataset))return;if(!allowExternalLinks&&a.origin!=location.origin&&!('instant'in a.dataset))return;if(!['http:','https:'].includes(a.protocol))return;if(a.protocol=='http:'&&location.protocol=='https:')return;if(!allowQueryString&&a.search&&!('instant'in a.dataset))return;if(a.hash&&a.pathname+a.search==location.pathname+location.search)return;if('noInstant'in a.dataset)return;return!0}function preload(a){if(prefetches.has(a))return;var b=document.createElement('link');b.rel='prefetch',b.href=a,document.head.appendChild(b),prefetches.add(a)} +; +/*! + * lightgallery | 2.7.2-beta.1 | June 25th 2023 + * http://www.lightgalleryjs.com/ + * Copyright (c) 2020 Sachin Neravath; + * @license GPLv3 + */ + +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lightGallery = factory()); +}(this, (function () { 'use strict'; + + /*! ***************************************************************************** + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** */ + + var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + + function __spreadArrays() { + for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; + for (var r = Array(s), k = 0, i = 0; i < il; i++) + for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) + r[k] = a[j]; + return r; + } + + /** + * List of lightGallery events + * All events should be documented here + * Below interfaces are used to build the website documentations + * */ + var lGEvents = { + afterAppendSlide: 'lgAfterAppendSlide', + init: 'lgInit', + hasVideo: 'lgHasVideo', + containerResize: 'lgContainerResize', + updateSlides: 'lgUpdateSlides', + afterAppendSubHtml: 'lgAfterAppendSubHtml', + beforeOpen: 'lgBeforeOpen', + afterOpen: 'lgAfterOpen', + slideItemLoad: 'lgSlideItemLoad', + beforeSlide: 'lgBeforeSlide', + afterSlide: 'lgAfterSlide', + posterClick: 'lgPosterClick', + dragStart: 'lgDragStart', + dragMove: 'lgDragMove', + dragEnd: 'lgDragEnd', + beforeNextSlide: 'lgBeforeNextSlide', + beforePrevSlide: 'lgBeforePrevSlide', + beforeClose: 'lgBeforeClose', + afterClose: 'lgAfterClose', + rotateLeft: 'lgRotateLeft', + rotateRight: 'lgRotateRight', + flipHorizontal: 'lgFlipHorizontal', + flipVertical: 'lgFlipVertical', + autoplay: 'lgAutoplay', + autoplayStart: 'lgAutoplayStart', + autoplayStop: 'lgAutoplayStop', + }; + + var lightGalleryCoreSettings = { + mode: 'lg-slide', + easing: 'ease', + speed: 400, + licenseKey: '0000-0000-000-0000', + height: '100%', + width: '100%', + addClass: '', + startClass: 'lg-start-zoom', + backdropDuration: 300, + container: '', + startAnimationDuration: 400, + zoomFromOrigin: true, + hideBarsDelay: 0, + showBarsAfter: 10000, + slideDelay: 0, + supportLegacyBrowser: true, + allowMediaOverlap: false, + videoMaxSize: '1280-720', + loadYouTubePoster: true, + defaultCaptionHeight: 0, + ariaLabelledby: '', + ariaDescribedby: '', + resetScrollPosition: true, + hideScrollbar: false, + closable: true, + swipeToClose: true, + closeOnTap: true, + showCloseIcon: true, + showMaximizeIcon: false, + loop: true, + escKey: true, + keyPress: true, + trapFocus: true, + controls: true, + slideEndAnimation: true, + hideControlOnEnd: false, + mousewheel: false, + getCaptionFromTitleOrAlt: true, + appendSubHtmlTo: '.lg-sub-html', + subHtmlSelectorRelative: false, + preload: 2, + numberOfSlideItemsInDom: 10, + selector: '', + selectWithin: '', + nextHtml: '', + prevHtml: '', + index: 0, + iframeWidth: '100%', + iframeHeight: '100%', + iframeMaxWidth: '100%', + iframeMaxHeight: '100%', + download: true, + counter: true, + appendCounterTo: '.lg-toolbar', + swipeThreshold: 50, + enableSwipe: true, + enableDrag: true, + dynamic: false, + dynamicEl: [], + extraProps: [], + exThumbImage: '', + isMobile: undefined, + mobileSettings: { + controls: false, + showCloseIcon: false, + download: false, + }, + plugins: [], + strings: { + closeGallery: 'Close gallery', + toggleMaximize: 'Toggle maximize', + previousSlide: 'Previous slide', + nextSlide: 'Next slide', + download: 'Download', + playVideo: 'Play video', + }, + }; + + function initLgPolyfills() { + (function () { + if (typeof window.CustomEvent === 'function') + return false; + function CustomEvent(event, params) { + params = params || { + bubbles: false, + cancelable: false, + detail: null, + }; + var evt = document.createEvent('CustomEvent'); + evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail); + return evt; + } + window.CustomEvent = CustomEvent; + })(); + (function () { + if (!Element.prototype.matches) { + Element.prototype.matches = + Element.prototype.msMatchesSelector || + Element.prototype.webkitMatchesSelector; + } + })(); + } + var lgQuery = /** @class */ (function () { + function lgQuery(selector) { + this.cssVenderPrefixes = [ + 'TransitionDuration', + 'TransitionTimingFunction', + 'Transform', + 'Transition', + ]; + this.selector = this._getSelector(selector); + this.firstElement = this._getFirstEl(); + return this; + } + lgQuery.generateUUID = function () { + return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { + var r = (Math.random() * 16) | 0, v = c == 'x' ? r : (r & 0x3) | 0x8; + return v.toString(16); + }); + }; + lgQuery.prototype._getSelector = function (selector, context) { + if (context === void 0) { context = document; } + if (typeof selector !== 'string') { + return selector; + } + context = context || document; + var fl = selector.substring(0, 1); + if (fl === '#') { + return context.querySelector(selector); + } + else { + return context.querySelectorAll(selector); + } + }; + lgQuery.prototype._each = function (func) { + if (!this.selector) { + return this; + } + if (this.selector.length !== undefined) { + [].forEach.call(this.selector, func); + } + else { + func(this.selector, 0); + } + return this; + }; + lgQuery.prototype._setCssVendorPrefix = function (el, cssProperty, value) { + // prettier-ignore + var property = cssProperty.replace(/-([a-z])/gi, function (s, group1) { + return group1.toUpperCase(); + }); + if (this.cssVenderPrefixes.indexOf(property) !== -1) { + el.style[property.charAt(0).toLowerCase() + property.slice(1)] = value; + el.style['webkit' + property] = value; + el.style['moz' + property] = value; + el.style['ms' + property] = value; + el.style['o' + property] = value; + } + else { + el.style[property] = value; + } + }; + lgQuery.prototype._getFirstEl = function () { + if (this.selector && this.selector.length !== undefined) { + return this.selector[0]; + } + else { + return this.selector; + } + }; + lgQuery.prototype.isEventMatched = function (event, eventName) { + var eventNamespace = eventName.split('.'); + return event + .split('.') + .filter(function (e) { return e; }) + .every(function (e) { + return eventNamespace.indexOf(e) !== -1; + }); + }; + lgQuery.prototype.attr = function (attr, value) { + if (value === undefined) { + if (!this.firstElement) { + return ''; + } + return this.firstElement.getAttribute(attr); + } + this._each(function (el) { + el.setAttribute(attr, value); + }); + return this; + }; + lgQuery.prototype.find = function (selector) { + return $LG(this._getSelector(selector, this.selector)); + }; + lgQuery.prototype.first = function () { + if (this.selector && this.selector.length !== undefined) { + return $LG(this.selector[0]); + } + else { + return $LG(this.selector); + } + }; + lgQuery.prototype.eq = function (index) { + return $LG(this.selector[index]); + }; + lgQuery.prototype.parent = function () { + return $LG(this.selector.parentElement); + }; + lgQuery.prototype.get = function () { + return this._getFirstEl(); + }; + lgQuery.prototype.removeAttr = function (attributes) { + var attrs = attributes.split(' '); + this._each(function (el) { + attrs.forEach(function (attr) { return el.removeAttribute(attr); }); + }); + return this; + }; + lgQuery.prototype.wrap = function (className) { + if (!this.firstElement) { + return this; + } + var wrapper = document.createElement('div'); + wrapper.className = className; + this.firstElement.parentNode.insertBefore(wrapper, this.firstElement); + this.firstElement.parentNode.removeChild(this.firstElement); + wrapper.appendChild(this.firstElement); + return this; + }; + lgQuery.prototype.addClass = function (classNames) { + if (classNames === void 0) { classNames = ''; } + this._each(function (el) { + // IE doesn't support multiple arguments + classNames.split(' ').forEach(function (className) { + if (className) { + el.classList.add(className); + } + }); + }); + return this; + }; + lgQuery.prototype.removeClass = function (classNames) { + this._each(function (el) { + // IE doesn't support multiple arguments + classNames.split(' ').forEach(function (className) { + if (className) { + el.classList.remove(className); + } + }); + }); + return this; + }; + lgQuery.prototype.hasClass = function (className) { + if (!this.firstElement) { + return false; + } + return this.firstElement.classList.contains(className); + }; + lgQuery.prototype.hasAttribute = function (attribute) { + if (!this.firstElement) { + return false; + } + return this.firstElement.hasAttribute(attribute); + }; + lgQuery.prototype.toggleClass = function (className) { + if (!this.firstElement) { + return this; + } + if (this.hasClass(className)) { + this.removeClass(className); + } + else { + this.addClass(className); + } + return this; + }; + lgQuery.prototype.css = function (property, value) { + var _this = this; + this._each(function (el) { + _this._setCssVendorPrefix(el, property, value); + }); + return this; + }; + // Need to pass separate namespaces for separate elements + lgQuery.prototype.on = function (events, listener) { + var _this = this; + if (!this.selector) { + return this; + } + events.split(' ').forEach(function (event) { + if (!Array.isArray(lgQuery.eventListeners[event])) { + lgQuery.eventListeners[event] = []; + } + lgQuery.eventListeners[event].push(listener); + _this.selector.addEventListener(event.split('.')[0], listener); + }); + return this; + }; + // @todo - test this + lgQuery.prototype.once = function (event, listener) { + var _this = this; + this.on(event, function () { + _this.off(event); + listener(event); + }); + return this; + }; + lgQuery.prototype.off = function (event) { + var _this = this; + if (!this.selector) { + return this; + } + Object.keys(lgQuery.eventListeners).forEach(function (eventName) { + if (_this.isEventMatched(event, eventName)) { + lgQuery.eventListeners[eventName].forEach(function (listener) { + _this.selector.removeEventListener(eventName.split('.')[0], listener); + }); + lgQuery.eventListeners[eventName] = []; + } + }); + return this; + }; + lgQuery.prototype.trigger = function (event, detail) { + if (!this.firstElement) { + return this; + } + var customEvent = new CustomEvent(event.split('.')[0], { + detail: detail || null, + }); + this.firstElement.dispatchEvent(customEvent); + return this; + }; + // Does not support IE + lgQuery.prototype.load = function (url) { + var _this = this; + fetch(url) + .then(function (res) { return res.text(); }) + .then(function (html) { + _this.selector.innerHTML = html; + }); + return this; + }; + lgQuery.prototype.html = function (html) { + if (html === undefined) { + if (!this.firstElement) { + return ''; + } + return this.firstElement.innerHTML; + } + this._each(function (el) { + el.innerHTML = html; + }); + return this; + }; + lgQuery.prototype.append = function (html) { + this._each(function (el) { + if (typeof html === 'string') { + el.insertAdjacentHTML('beforeend', html); + } + else { + el.appendChild(html); + } + }); + return this; + }; + lgQuery.prototype.prepend = function (html) { + this._each(function (el) { + el.insertAdjacentHTML('afterbegin', html); + }); + return this; + }; + lgQuery.prototype.remove = function () { + this._each(function (el) { + el.parentNode.removeChild(el); + }); + return this; + }; + lgQuery.prototype.empty = function () { + this._each(function (el) { + el.innerHTML = ''; + }); + return this; + }; + lgQuery.prototype.scrollTop = function (scrollTop) { + if (scrollTop !== undefined) { + document.body.scrollTop = scrollTop; + document.documentElement.scrollTop = scrollTop; + return this; + } + else { + return (window.pageYOffset || + document.documentElement.scrollTop || + document.body.scrollTop || + 0); + } + }; + lgQuery.prototype.scrollLeft = function (scrollLeft) { + if (scrollLeft !== undefined) { + document.body.scrollLeft = scrollLeft; + document.documentElement.scrollLeft = scrollLeft; + return this; + } + else { + return (window.pageXOffset || + document.documentElement.scrollLeft || + document.body.scrollLeft || + 0); + } + }; + lgQuery.prototype.offset = function () { + if (!this.firstElement) { + return { + left: 0, + top: 0, + }; + } + var rect = this.firstElement.getBoundingClientRect(); + var bodyMarginLeft = $LG('body').style().marginLeft; + // Minus body margin - https://stackoverflow.com/questions/30711548/is-getboundingclientrect-left-returning-a-wrong-value + return { + left: rect.left - parseFloat(bodyMarginLeft) + this.scrollLeft(), + top: rect.top + this.scrollTop(), + }; + }; + lgQuery.prototype.style = function () { + if (!this.firstElement) { + return {}; + } + return (this.firstElement.currentStyle || + window.getComputedStyle(this.firstElement)); + }; + // Width without padding and border even if box-sizing is used. + lgQuery.prototype.width = function () { + var style = this.style(); + return (this.firstElement.clientWidth - + parseFloat(style.paddingLeft) - + parseFloat(style.paddingRight)); + }; + // Height without padding and border even if box-sizing is used. + lgQuery.prototype.height = function () { + var style = this.style(); + return (this.firstElement.clientHeight - + parseFloat(style.paddingTop) - + parseFloat(style.paddingBottom)); + }; + lgQuery.eventListeners = {}; + return lgQuery; + }()); + function $LG(selector) { + initLgPolyfills(); + return new lgQuery(selector); + } + + var defaultDynamicOptions = [ + 'src', + 'sources', + 'subHtml', + 'subHtmlUrl', + 'html', + 'video', + 'poster', + 'slideName', + 'responsive', + 'srcset', + 'sizes', + 'iframe', + 'downloadUrl', + 'download', + 'width', + 'facebookShareUrl', + 'tweetText', + 'iframeTitle', + 'twitterShareUrl', + 'pinterestShareUrl', + 'pinterestText', + 'fbHtml', + 'disqusIdentifier', + 'disqusUrl', + ]; + // Convert html data-attribute to camalcase + function convertToData(attr) { + // FInd a way for lgsize + if (attr === 'href') { + return 'src'; + } + attr = attr.replace('data-', ''); + attr = attr.charAt(0).toLowerCase() + attr.slice(1); + attr = attr.replace(/-([a-z])/g, function (g) { return g[1].toUpperCase(); }); + return attr; + } + var utils = { + /** + * get possible width and height from the lgSize attribute. Used for ZoomFromOrigin option + */ + getSize: function (el, container, spacing, defaultLgSize) { + if (spacing === void 0) { spacing = 0; } + var LGel = $LG(el); + var lgSize = LGel.attr('data-lg-size') || defaultLgSize; + if (!lgSize) { + return; + } + var isResponsiveSizes = lgSize.split(','); + // if at-least two viewport sizes are available + if (isResponsiveSizes[1]) { + var wWidth = window.innerWidth; + for (var i = 0; i < isResponsiveSizes.length; i++) { + var size_1 = isResponsiveSizes[i]; + var responsiveWidth = parseInt(size_1.split('-')[2], 10); + if (responsiveWidth > wWidth) { + lgSize = size_1; + break; + } + // take last item as last option + if (i === isResponsiveSizes.length - 1) { + lgSize = size_1; + } + } + } + var size = lgSize.split('-'); + var width = parseInt(size[0], 10); + var height = parseInt(size[1], 10); + var cWidth = container.width(); + var cHeight = container.height() - spacing; + var maxWidth = Math.min(cWidth, width); + var maxHeight = Math.min(cHeight, height); + var ratio = Math.min(maxWidth / width, maxHeight / height); + return { width: width * ratio, height: height * ratio }; + }, + /** + * @desc Get transform value based on the imageSize. Used for ZoomFromOrigin option + * @param {jQuery Element} + * @returns {String} Transform CSS string + */ + getTransform: function (el, container, top, bottom, imageSize) { + if (!imageSize) { + return; + } + var LGel = $LG(el).find('img').first(); + if (!LGel.get()) { + return; + } + var containerRect = container.get().getBoundingClientRect(); + var wWidth = containerRect.width; + // using innerWidth to include mobile safari bottom bar + var wHeight = container.height() - (top + bottom); + var elWidth = LGel.width(); + var elHeight = LGel.height(); + var elStyle = LGel.style(); + var x = (wWidth - elWidth) / 2 - + LGel.offset().left + + (parseFloat(elStyle.paddingLeft) || 0) + + (parseFloat(elStyle.borderLeft) || 0) + + $LG(window).scrollLeft() + + containerRect.left; + var y = (wHeight - elHeight) / 2 - + LGel.offset().top + + (parseFloat(elStyle.paddingTop) || 0) + + (parseFloat(elStyle.borderTop) || 0) + + $LG(window).scrollTop() + + top; + var scX = elWidth / imageSize.width; + var scY = elHeight / imageSize.height; + var transform = 'translate3d(' + + (x *= -1) + + 'px, ' + + (y *= -1) + + 'px, 0) scale3d(' + + scX + + ', ' + + scY + + ', 1)'; + return transform; + }, + getIframeMarkup: function (iframeWidth, iframeHeight, iframeMaxWidth, iframeMaxHeight, src, iframeTitle) { + var title = iframeTitle ? 'title="' + iframeTitle + '"' : ''; + return "
\n \n
"; + }, + getImgMarkup: function (index, src, altAttr, srcset, sizes, sources) { + var srcsetAttr = srcset ? "srcset=\"" + srcset + "\"" : ''; + var sizesAttr = sizes ? "sizes=\"" + sizes + "\"" : ''; + var imgMarkup = ""; + var sourceTag = ''; + if (sources) { + var sourceObj = typeof sources === 'string' ? JSON.parse(sources) : sources; + sourceTag = sourceObj.map(function (source) { + var attrs = ''; + Object.keys(source).forEach(function (key) { + // Do not remove the first space as it is required to separate the attributes + attrs += " " + key + "=\"" + source[key] + "\""; + }); + return ""; + }); + } + return "" + sourceTag + imgMarkup; + }, + // Get src from responsive src + getResponsiveSrc: function (srcItms) { + var rsWidth = []; + var rsSrc = []; + var src = ''; + for (var i = 0; i < srcItms.length; i++) { + var _src = srcItms[i].split(' '); + // Manage empty space + if (_src[0] === '') { + _src.splice(0, 1); + } + rsSrc.push(_src[0]); + rsWidth.push(_src[1]); + } + var wWidth = window.innerWidth; + for (var j = 0; j < rsWidth.length; j++) { + if (parseInt(rsWidth[j], 10) > wWidth) { + src = rsSrc[j]; + break; + } + } + return src; + }, + isImageLoaded: function (img) { + if (!img) + return false; + // During the onload event, IE correctly identifies any images that + // weren’t downloaded as not complete. Others should too. Gecko-based + // browsers act like NS4 in that they report this incorrectly. + if (!img.complete) { + return false; + } + // However, they do have two very useful properties: naturalWidth and + // naturalHeight. These give the true size of the image. If it failed + // to load, either of these should be zero. + if (img.naturalWidth === 0) { + return false; + } + // No other way of checking: assume it’s ok. + return true; + }, + getVideoPosterMarkup: function (_poster, dummyImg, videoContStyle, playVideoString, _isVideo) { + var videoClass = ''; + if (_isVideo && _isVideo.youtube) { + videoClass = 'lg-has-youtube'; + } + else if (_isVideo && _isVideo.vimeo) { + videoClass = 'lg-has-vimeo'; + } + else { + videoClass = 'lg-has-html5'; + } + return "
\n
\n \n " + playVideoString + "\n \n \n \n \n \n \n \n
\n " + (dummyImg || '') + "\n \n
"; + }, + getFocusableElements: function (container) { + var elements = container.querySelectorAll('a[href]:not([disabled]), button:not([disabled]), textarea:not([disabled]), input[type="text"]:not([disabled]), input[type="radio"]:not([disabled]), input[type="checkbox"]:not([disabled]), select:not([disabled])'); + var visibleElements = [].filter.call(elements, function (element) { + var style = window.getComputedStyle(element); + return style.display !== 'none' && style.visibility !== 'hidden'; + }); + return visibleElements; + }, + /** + * @desc Create dynamic elements array from gallery items when dynamic option is false + * It helps to avoid frequent DOM interaction + * and avoid multiple checks for dynamic elments + * + * @returns {Array} dynamicEl + */ + getDynamicOptions: function (items, extraProps, getCaptionFromTitleOrAlt, exThumbImage) { + var dynamicElements = []; + var availableDynamicOptions = __spreadArrays(defaultDynamicOptions, extraProps); + [].forEach.call(items, function (item) { + var dynamicEl = {}; + for (var i = 0; i < item.attributes.length; i++) { + var attr = item.attributes[i]; + if (attr.specified) { + var dynamicAttr = convertToData(attr.name); + var label = ''; + if (availableDynamicOptions.indexOf(dynamicAttr) > -1) { + label = dynamicAttr; + } + if (label) { + dynamicEl[label] = attr.value; + } + } + } + var currentItem = $LG(item); + var alt = currentItem.find('img').first().attr('alt'); + var title = currentItem.attr('title'); + var thumb = exThumbImage + ? currentItem.attr(exThumbImage) + : currentItem.find('img').first().attr('src'); + dynamicEl.thumb = thumb; + if (getCaptionFromTitleOrAlt && !dynamicEl.subHtml) { + dynamicEl.subHtml = title || alt || ''; + } + dynamicEl.alt = alt || title || ''; + dynamicElements.push(dynamicEl); + }); + return dynamicElements; + }, + isMobile: function () { + return /iPhone|iPad|iPod|Android/i.test(navigator.userAgent); + }, + /** + * @desc Check the given src is video + * @param {String} src + * @return {Object} video type + * Ex:{ youtube : ["//www.youtube.com/watch?v=c0asJgSyxcY", "c0asJgSyxcY"] } + * + * @todo - this information can be moved to dynamicEl to avoid frequent calls + */ + isVideo: function (src, isHTML5VIdeo, index) { + if (!src) { + if (isHTML5VIdeo) { + return { + html5: true, + }; + } + else { + console.error('lightGallery :- data-src is not provided on slide item ' + + (index + 1) + + '. Please make sure the selector property is properly configured. More info - https://www.lightgalleryjs.com/demos/html-markup/'); + return; + } + } + var youtube = src.match(/\/\/(?:www\.)?youtu(?:\.be|be\.com|be-nocookie\.com)\/(?:watch\?v=|embed\/)?([a-z0-9\-\_\%]+)([\&|?][\S]*)*/i); + var vimeo = src.match(/\/\/(?:www\.)?(?:player\.)?vimeo.com\/(?:video\/)?([0-9a-z\-_]+)(.*)?/i); + var wistia = src.match(/https?:\/\/(.+)?(wistia\.com|wi\.st)\/(medias|embed)\/([0-9a-z\-_]+)(.*)/); + if (youtube) { + return { + youtube: youtube, + }; + } + else if (vimeo) { + return { + vimeo: vimeo, + }; + } + else if (wistia) { + return { + wistia: wistia, + }; + } + }, + }; + + // @ref - https://stackoverflow.com/questions/3971841/how-to-resize-images-proportionally-keeping-the-aspect-ratio + // @ref - https://2ality.com/2017/04/setting-up-multi-platform-packages.html + // Unique id for each gallery + var lgId = 0; + var LightGallery = /** @class */ (function () { + function LightGallery(element, options) { + this.lgOpened = false; + this.index = 0; + // lightGallery modules + this.plugins = []; + // false when lightGallery load first slide content; + this.lGalleryOn = false; + // True when a slide animation is in progress + this.lgBusy = false; + this.currentItemsInDom = []; + // Scroll top value before lightGallery is opened + this.prevScrollTop = 0; + this.bodyPaddingRight = 0; + this.isDummyImageRemoved = false; + this.dragOrSwipeEnabled = false; + this.mediaContainerPosition = { + top: 0, + bottom: 0, + }; + if (!element) { + return this; + } + lgId++; + this.lgId = lgId; + this.el = element; + this.LGel = $LG(element); + this.generateSettings(options); + this.buildModules(); + // When using dynamic mode, ensure dynamicEl is an array + if (this.settings.dynamic && + this.settings.dynamicEl !== undefined && + !Array.isArray(this.settings.dynamicEl)) { + throw 'When using dynamic mode, you must also define dynamicEl as an Array.'; + } + this.galleryItems = this.getItems(); + this.normalizeSettings(); + // Gallery items + this.init(); + this.validateLicense(); + return this; + } + LightGallery.prototype.generateSettings = function (options) { + // lightGallery settings + this.settings = __assign(__assign({}, lightGalleryCoreSettings), options); + if (this.settings.isMobile && + typeof this.settings.isMobile === 'function' + ? this.settings.isMobile() + : utils.isMobile()) { + var mobileSettings = __assign(__assign({}, this.settings.mobileSettings), this.settings.mobileSettings); + this.settings = __assign(__assign({}, this.settings), mobileSettings); + } + }; + LightGallery.prototype.normalizeSettings = function () { + if (this.settings.slideEndAnimation) { + this.settings.hideControlOnEnd = false; + } + if (!this.settings.closable) { + this.settings.swipeToClose = false; + } + // And reset it on close to get the correct value next time + this.zoomFromOrigin = this.settings.zoomFromOrigin; + // At the moment, Zoom from image doesn't support dynamic options + // @todo add zoomFromOrigin support for dynamic images + if (this.settings.dynamic) { + this.zoomFromOrigin = false; + } + if (!this.settings.container) { + this.settings.container = document.body; + } + // settings.preload should not be grater than $item.length + this.settings.preload = Math.min(this.settings.preload, this.galleryItems.length); + }; + LightGallery.prototype.init = function () { + var _this = this; + this.addSlideVideoInfo(this.galleryItems); + this.buildStructure(); + this.LGel.trigger(lGEvents.init, { + instance: this, + }); + if (this.settings.keyPress) { + this.keyPress(); + } + setTimeout(function () { + _this.enableDrag(); + _this.enableSwipe(); + _this.triggerPosterClick(); + }, 50); + this.arrow(); + if (this.settings.mousewheel) { + this.mousewheel(); + } + if (!this.settings.dynamic) { + this.openGalleryOnItemClick(); + } + }; + LightGallery.prototype.openGalleryOnItemClick = function () { + var _this = this; + var _loop_1 = function (index) { + var element = this_1.items[index]; + var $element = $LG(element); + // Using different namespace for click because click event should not unbind if selector is same object('this') + // @todo manage all event listners - should have namespace that represent element + var uuid = lgQuery.generateUUID(); + $element + .attr('data-lg-id', uuid) + .on("click.lgcustom-item-" + uuid, function (e) { + e.preventDefault(); + var currentItemIndex = _this.settings.index || index; + _this.openGallery(currentItemIndex, element); + }); + }; + var this_1 = this; + // Using for loop instead of using bubbling as the items can be any html element. + for (var index = 0; index < this.items.length; index++) { + _loop_1(index); + } + }; + /** + * Module constructor + * Modules are build incrementally. + * Gallery should be opened only once all the modules are initialized. + * use moduleBuildTimeout to make sure this + */ + LightGallery.prototype.buildModules = function () { + var _this = this; + this.settings.plugins.forEach(function (plugin) { + _this.plugins.push(new plugin(_this, $LG)); + }); + }; + LightGallery.prototype.validateLicense = function () { + if (!this.settings.licenseKey) { + console.error('Please provide a valid license key'); + } + else if (this.settings.licenseKey === '0000-0000-000-0000') { + console.warn("lightGallery: " + this.settings.licenseKey + " license key is not valid for production use"); + } + }; + LightGallery.prototype.getSlideItem = function (index) { + return $LG(this.getSlideItemId(index)); + }; + LightGallery.prototype.getSlideItemId = function (index) { + return "#lg-item-" + this.lgId + "-" + index; + }; + LightGallery.prototype.getIdName = function (id) { + return id + "-" + this.lgId; + }; + LightGallery.prototype.getElementById = function (id) { + return $LG("#" + this.getIdName(id)); + }; + LightGallery.prototype.manageSingleSlideClassName = function () { + if (this.galleryItems.length < 2) { + this.outer.addClass('lg-single-item'); + } + else { + this.outer.removeClass('lg-single-item'); + } + }; + LightGallery.prototype.buildStructure = function () { + var _this = this; + var container = this.$container && this.$container.get(); + if (container) { + return; + } + var controls = ''; + var subHtmlCont = ''; + // Create controls + if (this.settings.controls) { + controls = "\n "; + } + if (this.settings.appendSubHtmlTo !== '.lg-item') { + subHtmlCont = + '
'; + } + var addClasses = ''; + if (this.settings.allowMediaOverlap) { + // Do not remove space before last single quote + addClasses += 'lg-media-overlap '; + } + var ariaLabelledby = this.settings.ariaLabelledby + ? 'aria-labelledby="' + this.settings.ariaLabelledby + '"' + : ''; + var ariaDescribedby = this.settings.ariaDescribedby + ? 'aria-describedby="' + this.settings.ariaDescribedby + '"' + : ''; + var containerClassName = "lg-container " + this.settings.addClass + " " + (document.body !== this.settings.container ? 'lg-inline' : ''); + var closeIcon = this.settings.closable && this.settings.showCloseIcon + ? "" + : ''; + var maximizeIcon = this.settings.showMaximizeIcon + ? "" + : ''; + var template = "\n
\n
\n\n
\n\n
\n
\n
\n " + controls + "\n
\n
\n " + maximizeIcon + "\n " + closeIcon + "\n
\n " + (this.settings.appendSubHtmlTo === '.lg-outer' + ? subHtmlCont + : '') + "\n
\n " + (this.settings.appendSubHtmlTo === '.lg-sub-html' + ? subHtmlCont + : '') + "\n
\n
\n
\n "; + $LG(this.settings.container).append(template); + if (document.body !== this.settings.container) { + $LG(this.settings.container).css('position', 'relative'); + } + this.outer = this.getElementById('lg-outer'); + this.$lgComponents = this.getElementById('lg-components'); + this.$backdrop = this.getElementById('lg-backdrop'); + this.$container = this.getElementById('lg-container'); + this.$inner = this.getElementById('lg-inner'); + this.$content = this.getElementById('lg-content'); + this.$toolbar = this.getElementById('lg-toolbar'); + this.$backdrop.css('transition-duration', this.settings.backdropDuration + 'ms'); + var outerClassNames = this.settings.mode + " "; + this.manageSingleSlideClassName(); + if (this.settings.enableDrag) { + outerClassNames += 'lg-grab '; + } + this.outer.addClass(outerClassNames); + this.$inner.css('transition-timing-function', this.settings.easing); + this.$inner.css('transition-duration', this.settings.speed + 'ms'); + if (this.settings.download) { + this.$toolbar.append(""); + } + this.counter(); + $LG(window).on("resize.lg.global" + this.lgId + " orientationchange.lg.global" + this.lgId, function () { + _this.refreshOnResize(); + }); + this.hideBars(); + this.manageCloseGallery(); + this.toggleMaximize(); + this.initModules(); + }; + LightGallery.prototype.refreshOnResize = function () { + if (this.lgOpened) { + var currentGalleryItem = this.galleryItems[this.index]; + var __slideVideoInfo = currentGalleryItem.__slideVideoInfo; + this.mediaContainerPosition = this.getMediaContainerPosition(); + var _a = this.mediaContainerPosition, top_1 = _a.top, bottom = _a.bottom; + this.currentImageSize = utils.getSize(this.items[this.index], this.outer, top_1 + bottom, __slideVideoInfo && this.settings.videoMaxSize); + if (__slideVideoInfo) { + this.resizeVideoSlide(this.index, this.currentImageSize); + } + if (this.zoomFromOrigin && !this.isDummyImageRemoved) { + var imgStyle = this.getDummyImgStyles(this.currentImageSize); + this.outer + .find('.lg-current .lg-dummy-img') + .first() + .attr('style', imgStyle); + } + this.LGel.trigger(lGEvents.containerResize); + } + }; + LightGallery.prototype.resizeVideoSlide = function (index, imageSize) { + var lgVideoStyle = this.getVideoContStyle(imageSize); + var currentSlide = this.getSlideItem(index); + currentSlide.find('.lg-video-cont').attr('style', lgVideoStyle); + }; + /** + * Update slides dynamically. + * Add, edit or delete slides dynamically when lightGallery is opened. + * Modify the current gallery items and pass it via updateSlides method + * @note + * - Do not mutate existing lightGallery items directly. + * - Always pass new list of gallery items + * - You need to take care of thumbnails outside the gallery if any + * - user this method only if you want to update slides when the gallery is opened. Otherwise, use `refresh()` method. + * @param items Gallery items + * @param index After the update operation, which slide gallery should navigate to + * @category lGPublicMethods + * @example + * const plugin = lightGallery(); + * + * // Adding slides dynamically + * let galleryItems = [ + * // Access existing lightGallery items + * // galleryItems are automatically generated internally from the gallery HTML markup + * // or directly from galleryItems when dynamic gallery is used + * ...plugin.galleryItems, + * ...[ + * { + * src: 'img/img-1.png', + * thumb: 'img/thumb1.png', + * }, + * ], + * ]; + * plugin.updateSlides( + * galleryItems, + * plugin.index, + * ); + * + * + * // Remove slides dynamically + * galleryItems = JSON.parse( + * JSON.stringify(updateSlideInstance.galleryItems), + * ); + * galleryItems.shift(); + * updateSlideInstance.updateSlides(galleryItems, 1); + * @see Demo + */ + LightGallery.prototype.updateSlides = function (items, index) { + if (this.index > items.length - 1) { + this.index = items.length - 1; + } + if (items.length === 1) { + this.index = 0; + } + if (!items.length) { + this.closeGallery(); + return; + } + var currentSrc = this.galleryItems[index].src; + this.galleryItems = items; + this.updateControls(); + this.$inner.empty(); + this.currentItemsInDom = []; + var _index = 0; + // Find the current index based on source value of the slide + this.galleryItems.some(function (galleryItem, itemIndex) { + if (galleryItem.src === currentSrc) { + _index = itemIndex; + return true; + } + return false; + }); + this.currentItemsInDom = this.organizeSlideItems(_index, -1); + this.loadContent(_index, true); + this.getSlideItem(_index).addClass('lg-current'); + this.index = _index; + this.updateCurrentCounter(_index); + this.LGel.trigger(lGEvents.updateSlides); + }; + // Get gallery items based on multiple conditions + LightGallery.prototype.getItems = function () { + // Gallery items + this.items = []; + if (!this.settings.dynamic) { + if (this.settings.selector === 'this') { + this.items.push(this.el); + } + else if (this.settings.selector) { + if (typeof this.settings.selector === 'string') { + if (this.settings.selectWithin) { + var selectWithin = $LG(this.settings.selectWithin); + this.items = selectWithin + .find(this.settings.selector) + .get(); + } + else { + this.items = this.el.querySelectorAll(this.settings.selector); + } + } + else { + this.items = this.settings.selector; + } + } + else { + this.items = this.el.children; + } + return utils.getDynamicOptions(this.items, this.settings.extraProps, this.settings.getCaptionFromTitleOrAlt, this.settings.exThumbImage); + } + else { + return this.settings.dynamicEl || []; + } + }; + LightGallery.prototype.shouldHideScrollbar = function () { + return (this.settings.hideScrollbar && + document.body === this.settings.container); + }; + LightGallery.prototype.hideScrollbar = function () { + if (!this.shouldHideScrollbar()) { + return; + } + this.bodyPaddingRight = parseFloat($LG('body').style().paddingRight); + var bodyRect = document.documentElement.getBoundingClientRect(); + var scrollbarWidth = window.innerWidth - bodyRect.width; + $LG(document.body).css('padding-right', scrollbarWidth + this.bodyPaddingRight + 'px'); + $LG(document.body).addClass('lg-overlay-open'); + }; + LightGallery.prototype.resetScrollBar = function () { + if (!this.shouldHideScrollbar()) { + return; + } + $LG(document.body).css('padding-right', this.bodyPaddingRight + 'px'); + $LG(document.body).removeClass('lg-overlay-open'); + }; + /** + * Open lightGallery. + * Open gallery with specific slide by passing index of the slide as parameter. + * @category lGPublicMethods + * @param {Number} index - index of the slide + * @param {HTMLElement} element - Which image lightGallery should zoom from + * + * @example + * const $dynamicGallery = document.getElementById('dynamic-gallery-demo'); + * const dynamicGallery = lightGallery($dynamicGallery, { + * dynamic: true, + * dynamicEl: [ + * { + * src: 'img/1.jpg', + * thumb: 'img/thumb-1.jpg', + * subHtml: '

Image 1 title

Image 1 descriptions.

', + * }, + * ... + * ], + * }); + * $dynamicGallery.addEventListener('click', function () { + * // Starts with third item.(Optional). + * // This is useful if you want use dynamic mode with + * // custom thumbnails (thumbnails outside gallery), + * dynamicGallery.openGallery(2); + * }); + * + */ + LightGallery.prototype.openGallery = function (index, element) { + var _this = this; + if (index === void 0) { index = this.settings.index; } + // prevent accidental double execution + if (this.lgOpened) + return; + this.lgOpened = true; + this.outer.removeClass('lg-hide-items'); + this.hideScrollbar(); + // Add display block, but still has opacity 0 + this.$container.addClass('lg-show'); + var itemsToBeInsertedToDom = this.getItemsToBeInsertedToDom(index, index); + this.currentItemsInDom = itemsToBeInsertedToDom; + var items = ''; + itemsToBeInsertedToDom.forEach(function (item) { + items = items + ("
"); + }); + this.$inner.append(items); + this.addHtml(index); + var transform = ''; + this.mediaContainerPosition = this.getMediaContainerPosition(); + var _a = this.mediaContainerPosition, top = _a.top, bottom = _a.bottom; + if (!this.settings.allowMediaOverlap) { + this.setMediaContainerPosition(top, bottom); + } + var __slideVideoInfo = this.galleryItems[index].__slideVideoInfo; + if (this.zoomFromOrigin && element) { + this.currentImageSize = utils.getSize(element, this.outer, top + bottom, __slideVideoInfo && this.settings.videoMaxSize); + transform = utils.getTransform(element, this.outer, top, bottom, this.currentImageSize); + } + if (!this.zoomFromOrigin || !transform) { + this.outer.addClass(this.settings.startClass); + this.getSlideItem(index).removeClass('lg-complete'); + } + var timeout = this.settings.zoomFromOrigin + ? 100 + : this.settings.backdropDuration; + setTimeout(function () { + _this.outer.addClass('lg-components-open'); + }, timeout); + this.index = index; + this.LGel.trigger(lGEvents.beforeOpen); + // add class lg-current to remove initial transition + this.getSlideItem(index).addClass('lg-current'); + this.lGalleryOn = false; + // Store the current scroll top value to scroll back after closing the gallery.. + this.prevScrollTop = $LG(window).scrollTop(); + setTimeout(function () { + // Need to check both zoomFromOrigin and transform values as we need to set set the + // default opening animation if user missed to add the lg-size attribute + if (_this.zoomFromOrigin && transform) { + var currentSlide_1 = _this.getSlideItem(index); + currentSlide_1.css('transform', transform); + setTimeout(function () { + currentSlide_1 + .addClass('lg-start-progress lg-start-end-progress') + .css('transition-duration', _this.settings.startAnimationDuration + 'ms'); + _this.outer.addClass('lg-zoom-from-image'); + }); + setTimeout(function () { + currentSlide_1.css('transform', 'translate3d(0, 0, 0)'); + }, 100); + } + setTimeout(function () { + _this.$backdrop.addClass('in'); + _this.$container.addClass('lg-show-in'); + }, 10); + setTimeout(function () { + if (_this.settings.trapFocus && + document.body === _this.settings.container) { + _this.trapFocus(); + } + }, _this.settings.backdropDuration + 50); + // lg-visible class resets gallery opacity to 1 + if (!_this.zoomFromOrigin || !transform) { + setTimeout(function () { + _this.outer.addClass('lg-visible'); + }, _this.settings.backdropDuration); + } + // initiate slide function + _this.slide(index, false, false, false); + _this.LGel.trigger(lGEvents.afterOpen); + }); + if (document.body === this.settings.container) { + $LG('html').addClass('lg-on'); + } + }; + /** + * Note - Changing the position of the media on every slide transition creates a flickering effect. + * Therefore, The height of the caption is calculated dynamically, only once based on the first slide caption. + * if you have dynamic captions for each media, + * you can provide an appropriate height for the captions via allowMediaOverlap option + */ + LightGallery.prototype.getMediaContainerPosition = function () { + if (this.settings.allowMediaOverlap) { + return { + top: 0, + bottom: 0, + }; + } + var top = this.$toolbar.get().clientHeight || 0; + var subHtml = this.outer.find('.lg-components .lg-sub-html').get(); + var captionHeight = this.settings.defaultCaptionHeight || + (subHtml && subHtml.clientHeight) || + 0; + var thumbContainer = this.outer.find('.lg-thumb-outer').get(); + var thumbHeight = thumbContainer ? thumbContainer.clientHeight : 0; + var bottom = thumbHeight + captionHeight; + return { + top: top, + bottom: bottom, + }; + }; + LightGallery.prototype.setMediaContainerPosition = function (top, bottom) { + if (top === void 0) { top = 0; } + if (bottom === void 0) { bottom = 0; } + this.$content.css('top', top + 'px').css('bottom', bottom + 'px'); + }; + LightGallery.prototype.hideBars = function () { + var _this = this; + // Hide controllers if mouse doesn't move for some period + setTimeout(function () { + _this.outer.removeClass('lg-hide-items'); + if (_this.settings.hideBarsDelay > 0) { + _this.outer.on('mousemove.lg click.lg touchstart.lg', function () { + _this.outer.removeClass('lg-hide-items'); + clearTimeout(_this.hideBarTimeout); + // Timeout will be cleared on each slide movement also + _this.hideBarTimeout = setTimeout(function () { + _this.outer.addClass('lg-hide-items'); + }, _this.settings.hideBarsDelay); + }); + _this.outer.trigger('mousemove.lg'); + } + }, this.settings.showBarsAfter); + }; + LightGallery.prototype.initPictureFill = function ($img) { + if (this.settings.supportLegacyBrowser) { + try { + picturefill({ + elements: [$img.get()], + }); + } + catch (e) { + console.warn('lightGallery :- If you want srcset or picture tag to be supported for older browser please include picturefil javascript library in your document.'); + } + } + }; + /** + * @desc Create image counter + * Ex: 1/10 + */ + LightGallery.prototype.counter = function () { + if (this.settings.counter) { + var counterHtml = "
\n " + (this.index + 1) + " /\n " + this.galleryItems.length + "
"; + this.outer.find(this.settings.appendCounterTo).append(counterHtml); + } + }; + /** + * @desc add sub-html into the slide + * @param {Number} index - index of the slide + */ + LightGallery.prototype.addHtml = function (index) { + var subHtml; + var subHtmlUrl; + if (this.galleryItems[index].subHtmlUrl) { + subHtmlUrl = this.galleryItems[index].subHtmlUrl; + } + else { + subHtml = this.galleryItems[index].subHtml; + } + if (!subHtmlUrl) { + if (subHtml) { + // get first letter of sub-html + // if first letter starts with . or # get the html form the jQuery object + var fL = subHtml.substring(0, 1); + if (fL === '.' || fL === '#') { + if (this.settings.subHtmlSelectorRelative && + !this.settings.dynamic) { + subHtml = $LG(this.items) + .eq(index) + .find(subHtml) + .first() + .html(); + } + else { + subHtml = $LG(subHtml).first().html(); + } + } + } + else { + subHtml = ''; + } + } + if (this.settings.appendSubHtmlTo !== '.lg-item') { + if (subHtmlUrl) { + this.outer.find('.lg-sub-html').load(subHtmlUrl); + } + else { + this.outer.find('.lg-sub-html').html(subHtml); + } + } + else { + var currentSlide = $LG(this.getSlideItemId(index)); + if (subHtmlUrl) { + currentSlide.load(subHtmlUrl); + } + else { + currentSlide.append("
" + subHtml + "
"); + } + } + // Add lg-empty-html class if title doesn't exist + if (typeof subHtml !== 'undefined' && subHtml !== null) { + if (subHtml === '') { + this.outer + .find(this.settings.appendSubHtmlTo) + .addClass('lg-empty-html'); + } + else { + this.outer + .find(this.settings.appendSubHtmlTo) + .removeClass('lg-empty-html'); + } + } + this.LGel.trigger(lGEvents.afterAppendSubHtml, { + index: index, + }); + }; + /** + * @desc Preload slides + * @param {Number} index - index of the slide + * @todo preload not working for the first slide, Also, should work for the first and last slide as well + */ + LightGallery.prototype.preload = function (index) { + for (var i = 1; i <= this.settings.preload; i++) { + if (i >= this.galleryItems.length - index) { + break; + } + this.loadContent(index + i, false); + } + for (var j = 1; j <= this.settings.preload; j++) { + if (index - j < 0) { + break; + } + this.loadContent(index - j, false); + } + }; + LightGallery.prototype.getDummyImgStyles = function (imageSize) { + if (!imageSize) + return ''; + return "width:" + imageSize.width + "px;\n margin-left: -" + imageSize.width / 2 + "px;\n margin-top: -" + imageSize.height / 2 + "px;\n height:" + imageSize.height + "px"; + }; + LightGallery.prototype.getVideoContStyle = function (imageSize) { + if (!imageSize) + return ''; + return "width:" + imageSize.width + "px;\n height:" + imageSize.height + "px"; + }; + LightGallery.prototype.getDummyImageContent = function ($currentSlide, index, alt) { + var $currentItem; + if (!this.settings.dynamic) { + $currentItem = $LG(this.items).eq(index); + } + if ($currentItem) { + var _dummyImgSrc = void 0; + if (!this.settings.exThumbImage) { + _dummyImgSrc = $currentItem.find('img').first().attr('src'); + } + else { + _dummyImgSrc = $currentItem.attr(this.settings.exThumbImage); + } + if (!_dummyImgSrc) + return ''; + var imgStyle = this.getDummyImgStyles(this.currentImageSize); + var dummyImgContent = ""; + $currentSlide.addClass('lg-first-slide'); + this.outer.addClass('lg-first-slide-loading'); + return dummyImgContent; + } + return ''; + }; + LightGallery.prototype.setImgMarkup = function (src, $currentSlide, index) { + var currentGalleryItem = this.galleryItems[index]; + var alt = currentGalleryItem.alt, srcset = currentGalleryItem.srcset, sizes = currentGalleryItem.sizes, sources = currentGalleryItem.sources; + // Use the thumbnail as dummy image which will be resized to actual image size and + // displayed on top of actual image + var imgContent = ''; + var altAttr = alt ? 'alt="' + alt + '"' : ''; + if (this.isFirstSlideWithZoomAnimation()) { + imgContent = this.getDummyImageContent($currentSlide, index, altAttr); + } + else { + imgContent = utils.getImgMarkup(index, src, altAttr, srcset, sizes, sources); + } + var imgMarkup = " " + imgContent + ""; + $currentSlide.prepend(imgMarkup); + }; + LightGallery.prototype.onSlideObjectLoad = function ($slide, isHTML5VideoWithoutPoster, onLoad, onError) { + var mediaObject = $slide.find('.lg-object').first(); + if (utils.isImageLoaded(mediaObject.get()) || + isHTML5VideoWithoutPoster) { + onLoad(); + } + else { + mediaObject.on('load.lg error.lg', function () { + onLoad && onLoad(); + }); + mediaObject.on('error.lg', function () { + onError && onError(); + }); + } + }; + /** + * + * @param $el Current slide item + * @param index + * @param delay Delay is 0 except first time + * @param speed Speed is same as delay, except it is 0 if gallery is opened via hash plugin + * @param isFirstSlide + */ + LightGallery.prototype.onLgObjectLoad = function (currentSlide, index, delay, speed, isFirstSlide, isHTML5VideoWithoutPoster) { + var _this = this; + this.onSlideObjectLoad(currentSlide, isHTML5VideoWithoutPoster, function () { + _this.triggerSlideItemLoad(currentSlide, index, delay, speed, isFirstSlide); + }, function () { + currentSlide.addClass('lg-complete lg-complete_'); + currentSlide.html('Oops... Failed to load content...'); + }); + }; + LightGallery.prototype.triggerSlideItemLoad = function ($currentSlide, index, delay, speed, isFirstSlide) { + var _this = this; + var currentGalleryItem = this.galleryItems[index]; + // Adding delay for video slides without poster for better performance and user experience + // Videos should start playing once once the gallery is completely loaded + var _speed = isFirstSlide && + this.getSlideType(currentGalleryItem) === 'video' && + !currentGalleryItem.poster + ? speed + : 0; + setTimeout(function () { + $currentSlide.addClass('lg-complete lg-complete_'); + _this.LGel.trigger(lGEvents.slideItemLoad, { + index: index, + delay: delay || 0, + isFirstSlide: isFirstSlide, + }); + }, _speed); + }; + LightGallery.prototype.isFirstSlideWithZoomAnimation = function () { + return !!(!this.lGalleryOn && + this.zoomFromOrigin && + this.currentImageSize); + }; + // Add video slideInfo + LightGallery.prototype.addSlideVideoInfo = function (items) { + var _this = this; + items.forEach(function (element, index) { + element.__slideVideoInfo = utils.isVideo(element.src, !!element.video, index); + if (element.__slideVideoInfo && + _this.settings.loadYouTubePoster && + !element.poster && + element.__slideVideoInfo.youtube) { + element.poster = "//img.youtube.com/vi/" + element.__slideVideoInfo.youtube[1] + "/maxresdefault.jpg"; + } + }); + }; + /** + * Load slide content into slide. + * This is used to load content into slides that is not visible too + * @param {Number} index - index of the slide. + * @param {Boolean} rec - if true call loadcontent() function again. + */ + LightGallery.prototype.loadContent = function (index, rec) { + var _this = this; + var currentGalleryItem = this.galleryItems[index]; + var $currentSlide = $LG(this.getSlideItemId(index)); + var poster = currentGalleryItem.poster, srcset = currentGalleryItem.srcset, sizes = currentGalleryItem.sizes, sources = currentGalleryItem.sources; + var src = currentGalleryItem.src; + var video = currentGalleryItem.video; + var _html5Video = video && typeof video === 'string' ? JSON.parse(video) : video; + if (currentGalleryItem.responsive) { + var srcDyItms = currentGalleryItem.responsive.split(','); + src = utils.getResponsiveSrc(srcDyItms) || src; + } + var videoInfo = currentGalleryItem.__slideVideoInfo; + var lgVideoStyle = ''; + var iframe = !!currentGalleryItem.iframe; + var isFirstSlide = !this.lGalleryOn; + // delay for adding complete class. it is 0 except first time. + var delay = 0; + if (isFirstSlide) { + if (this.zoomFromOrigin && this.currentImageSize) { + delay = this.settings.startAnimationDuration + 10; + } + else { + delay = this.settings.backdropDuration + 10; + } + } + if (!$currentSlide.hasClass('lg-loaded')) { + if (videoInfo) { + var _a = this.mediaContainerPosition, top_2 = _a.top, bottom = _a.bottom; + var videoSize = utils.getSize(this.items[index], this.outer, top_2 + bottom, videoInfo && this.settings.videoMaxSize); + lgVideoStyle = this.getVideoContStyle(videoSize); + } + if (iframe) { + var markup = utils.getIframeMarkup(this.settings.iframeWidth, this.settings.iframeHeight, this.settings.iframeMaxWidth, this.settings.iframeMaxHeight, src, currentGalleryItem.iframeTitle); + $currentSlide.prepend(markup); + } + else if (poster) { + var dummyImg = ''; + var hasStartAnimation = isFirstSlide && + this.zoomFromOrigin && + this.currentImageSize; + if (hasStartAnimation) { + dummyImg = this.getDummyImageContent($currentSlide, index, ''); + } + var markup = utils.getVideoPosterMarkup(poster, dummyImg || '', lgVideoStyle, this.settings.strings['playVideo'], videoInfo); + $currentSlide.prepend(markup); + } + else if (videoInfo) { + var markup = "
"; + $currentSlide.prepend(markup); + } + else { + this.setImgMarkup(src, $currentSlide, index); + if (srcset || sources) { + var $img = $currentSlide.find('.lg-object'); + this.initPictureFill($img); + } + } + if (poster || videoInfo) { + this.LGel.trigger(lGEvents.hasVideo, { + index: index, + src: src, + html5Video: _html5Video, + hasPoster: !!poster, + }); + } + this.LGel.trigger(lGEvents.afterAppendSlide, { index: index }); + if (this.lGalleryOn && + this.settings.appendSubHtmlTo === '.lg-item') { + this.addHtml(index); + } + } + // For first time add some delay for displaying the start animation. + var _speed = 0; + // Do not change the delay value because it is required for zoom plugin. + // If gallery opened from direct url (hash) speed value should be 0 + if (delay && !$LG(document.body).hasClass('lg-from-hash')) { + _speed = delay; + } + // Only for first slide and zoomFromOrigin is enabled + if (this.isFirstSlideWithZoomAnimation()) { + setTimeout(function () { + $currentSlide + .removeClass('lg-start-end-progress lg-start-progress') + .removeAttr('style'); + }, this.settings.startAnimationDuration + 100); + if (!$currentSlide.hasClass('lg-loaded')) { + setTimeout(function () { + if (_this.getSlideType(currentGalleryItem) === 'image') { + var alt = currentGalleryItem.alt; + var altAttr = alt ? 'alt="' + alt + '"' : ''; + $currentSlide + .find('.lg-img-wrap') + .append(utils.getImgMarkup(index, src, altAttr, srcset, sizes, currentGalleryItem.sources)); + if (srcset || sources) { + var $img = $currentSlide.find('.lg-object'); + _this.initPictureFill($img); + } + } + if (_this.getSlideType(currentGalleryItem) === 'image' || + (_this.getSlideType(currentGalleryItem) === 'video' && + poster)) { + _this.onLgObjectLoad($currentSlide, index, delay, _speed, true, false); + // load remaining slides once the slide is completely loaded + _this.onSlideObjectLoad($currentSlide, !!(videoInfo && videoInfo.html5 && !poster), function () { + _this.loadContentOnFirstSlideLoad(index, $currentSlide, _speed); + }, function () { + _this.loadContentOnFirstSlideLoad(index, $currentSlide, _speed); + }); + } + }, this.settings.startAnimationDuration + 100); + } + } + // SLide content has been added to dom + $currentSlide.addClass('lg-loaded'); + if (!this.isFirstSlideWithZoomAnimation() || + (this.getSlideType(currentGalleryItem) === 'video' && !poster)) { + this.onLgObjectLoad($currentSlide, index, delay, _speed, isFirstSlide, !!(videoInfo && videoInfo.html5 && !poster)); + } + // When gallery is opened once content is loaded (second time) need to add lg-complete class for css styling + if ((!this.zoomFromOrigin || !this.currentImageSize) && + $currentSlide.hasClass('lg-complete_') && + !this.lGalleryOn) { + setTimeout(function () { + $currentSlide.addClass('lg-complete'); + }, this.settings.backdropDuration); + } + // Content loaded + // Need to set lGalleryOn before calling preload function + this.lGalleryOn = true; + if (rec === true) { + if (!$currentSlide.hasClass('lg-complete_')) { + $currentSlide + .find('.lg-object') + .first() + .on('load.lg error.lg', function () { + _this.preload(index); + }); + } + else { + this.preload(index); + } + } + }; + /** + * @desc Remove dummy image content and load next slides + * Called only for the first time if zoomFromOrigin animation is enabled + * @param index + * @param $currentSlide + * @param speed + */ + LightGallery.prototype.loadContentOnFirstSlideLoad = function (index, $currentSlide, speed) { + var _this = this; + setTimeout(function () { + $currentSlide.find('.lg-dummy-img').remove(); + $currentSlide.removeClass('lg-first-slide'); + _this.outer.removeClass('lg-first-slide-loading'); + _this.isDummyImageRemoved = true; + _this.preload(index); + }, speed + 300); + }; + LightGallery.prototype.getItemsToBeInsertedToDom = function (index, prevIndex, numberOfItems) { + var _this = this; + if (numberOfItems === void 0) { numberOfItems = 0; } + var itemsToBeInsertedToDom = []; + // Minimum 2 items should be there + var possibleNumberOfItems = Math.max(numberOfItems, 3); + possibleNumberOfItems = Math.min(possibleNumberOfItems, this.galleryItems.length); + var prevIndexItem = "lg-item-" + this.lgId + "-" + prevIndex; + if (this.galleryItems.length <= 3) { + this.galleryItems.forEach(function (_element, index) { + itemsToBeInsertedToDom.push("lg-item-" + _this.lgId + "-" + index); + }); + return itemsToBeInsertedToDom; + } + if (index < (this.galleryItems.length - 1) / 2) { + for (var idx = index; idx > index - possibleNumberOfItems / 2 && idx >= 0; idx--) { + itemsToBeInsertedToDom.push("lg-item-" + this.lgId + "-" + idx); + } + var numberOfExistingItems = itemsToBeInsertedToDom.length; + for (var idx = 0; idx < possibleNumberOfItems - numberOfExistingItems; idx++) { + itemsToBeInsertedToDom.push("lg-item-" + this.lgId + "-" + (index + idx + 1)); + } + } + else { + for (var idx = index; idx <= this.galleryItems.length - 1 && + idx < index + possibleNumberOfItems / 2; idx++) { + itemsToBeInsertedToDom.push("lg-item-" + this.lgId + "-" + idx); + } + var numberOfExistingItems = itemsToBeInsertedToDom.length; + for (var idx = 0; idx < possibleNumberOfItems - numberOfExistingItems; idx++) { + itemsToBeInsertedToDom.push("lg-item-" + this.lgId + "-" + (index - idx - 1)); + } + } + if (this.settings.loop) { + if (index === this.galleryItems.length - 1) { + itemsToBeInsertedToDom.push("lg-item-" + this.lgId + "-" + 0); + } + else if (index === 0) { + itemsToBeInsertedToDom.push("lg-item-" + this.lgId + "-" + (this.galleryItems.length - 1)); + } + } + if (itemsToBeInsertedToDom.indexOf(prevIndexItem) === -1) { + itemsToBeInsertedToDom.push("lg-item-" + this.lgId + "-" + prevIndex); + } + return itemsToBeInsertedToDom; + }; + LightGallery.prototype.organizeSlideItems = function (index, prevIndex) { + var _this = this; + var itemsToBeInsertedToDom = this.getItemsToBeInsertedToDom(index, prevIndex, this.settings.numberOfSlideItemsInDom); + itemsToBeInsertedToDom.forEach(function (item) { + if (_this.currentItemsInDom.indexOf(item) === -1) { + _this.$inner.append("
"); + } + }); + this.currentItemsInDom.forEach(function (item) { + if (itemsToBeInsertedToDom.indexOf(item) === -1) { + $LG("#" + item).remove(); + } + }); + return itemsToBeInsertedToDom; + }; + /** + * Get previous index of the slide + */ + LightGallery.prototype.getPreviousSlideIndex = function () { + var prevIndex = 0; + try { + var currentItemId = this.outer + .find('.lg-current') + .first() + .attr('id'); + prevIndex = parseInt(currentItemId.split('-')[3]) || 0; + } + catch (error) { + prevIndex = 0; + } + return prevIndex; + }; + LightGallery.prototype.setDownloadValue = function (index) { + if (this.settings.download) { + var currentGalleryItem = this.galleryItems[index]; + var hideDownloadBtn = currentGalleryItem.downloadUrl === false || + currentGalleryItem.downloadUrl === 'false'; + if (hideDownloadBtn) { + this.outer.addClass('lg-hide-download'); + } + else { + var $download = this.getElementById('lg-download'); + this.outer.removeClass('lg-hide-download'); + $download.attr('href', currentGalleryItem.downloadUrl || + currentGalleryItem.src); + if (currentGalleryItem.download) { + $download.attr('download', currentGalleryItem.download); + } + } + } + }; + LightGallery.prototype.makeSlideAnimation = function (direction, currentSlideItem, previousSlideItem) { + var _this = this; + if (this.lGalleryOn) { + previousSlideItem.addClass('lg-slide-progress'); + } + setTimeout(function () { + // remove all transitions + _this.outer.addClass('lg-no-trans'); + _this.outer + .find('.lg-item') + .removeClass('lg-prev-slide lg-next-slide'); + if (direction === 'prev') { + //prevslide + currentSlideItem.addClass('lg-prev-slide'); + previousSlideItem.addClass('lg-next-slide'); + } + else { + // next slide + currentSlideItem.addClass('lg-next-slide'); + previousSlideItem.addClass('lg-prev-slide'); + } + // give 50 ms for browser to add/remove class + setTimeout(function () { + _this.outer.find('.lg-item').removeClass('lg-current'); + currentSlideItem.addClass('lg-current'); + // reset all transitions + _this.outer.removeClass('lg-no-trans'); + }, 50); + }, this.lGalleryOn ? this.settings.slideDelay : 0); + }; + /** + * Goto a specific slide. + * @param {Number} index - index of the slide + * @param {Boolean} fromTouch - true if slide function called via touch event or mouse drag + * @param {Boolean} fromThumb - true if slide function called via thumbnail click + * @param {String} direction - Direction of the slide(next/prev) + * @category lGPublicMethods + * @example + * const plugin = lightGallery(); + * // to go to 3rd slide + * plugin.slide(2); + * + */ + LightGallery.prototype.slide = function (index, fromTouch, fromThumb, direction) { + var _this = this; + var prevIndex = this.getPreviousSlideIndex(); + this.currentItemsInDom = this.organizeSlideItems(index, prevIndex); + // Prevent multiple call, Required for hsh plugin + if (this.lGalleryOn && prevIndex === index) { + return; + } + var numberOfGalleryItems = this.galleryItems.length; + if (!this.lgBusy) { + if (this.settings.counter) { + this.updateCurrentCounter(index); + } + var currentSlideItem = this.getSlideItem(index); + var previousSlideItem_1 = this.getSlideItem(prevIndex); + var currentGalleryItem = this.galleryItems[index]; + var videoInfo = currentGalleryItem.__slideVideoInfo; + this.outer.attr('data-lg-slide-type', this.getSlideType(currentGalleryItem)); + this.setDownloadValue(index); + if (videoInfo) { + var _a = this.mediaContainerPosition, top_3 = _a.top, bottom = _a.bottom; + var videoSize = utils.getSize(this.items[index], this.outer, top_3 + bottom, videoInfo && this.settings.videoMaxSize); + this.resizeVideoSlide(index, videoSize); + } + this.LGel.trigger(lGEvents.beforeSlide, { + prevIndex: prevIndex, + index: index, + fromTouch: !!fromTouch, + fromThumb: !!fromThumb, + }); + this.lgBusy = true; + clearTimeout(this.hideBarTimeout); + this.arrowDisable(index); + if (!direction) { + if (index < prevIndex) { + direction = 'prev'; + } + else if (index > prevIndex) { + direction = 'next'; + } + } + if (!fromTouch) { + this.makeSlideAnimation(direction, currentSlideItem, previousSlideItem_1); + } + else { + this.outer + .find('.lg-item') + .removeClass('lg-prev-slide lg-current lg-next-slide'); + var touchPrev = void 0; + var touchNext = void 0; + if (numberOfGalleryItems > 2) { + touchPrev = index - 1; + touchNext = index + 1; + if (index === 0 && prevIndex === numberOfGalleryItems - 1) { + // next slide + touchNext = 0; + touchPrev = numberOfGalleryItems - 1; + } + else if (index === numberOfGalleryItems - 1 && + prevIndex === 0) { + // prev slide + touchNext = 0; + touchPrev = numberOfGalleryItems - 1; + } + } + else { + touchPrev = 0; + touchNext = 1; + } + if (direction === 'prev') { + this.getSlideItem(touchNext).addClass('lg-next-slide'); + } + else { + this.getSlideItem(touchPrev).addClass('lg-prev-slide'); + } + currentSlideItem.addClass('lg-current'); + } + // Do not put load content in set timeout as it needs to load immediately when the gallery is opened + if (!this.lGalleryOn) { + this.loadContent(index, true); + } + else { + setTimeout(function () { + _this.loadContent(index, true); + // Add title if this.settings.appendSubHtmlTo === lg-sub-html + if (_this.settings.appendSubHtmlTo !== '.lg-item') { + _this.addHtml(index); + } + }, this.settings.speed + 50 + (fromTouch ? 0 : this.settings.slideDelay)); + } + setTimeout(function () { + _this.lgBusy = false; + previousSlideItem_1.removeClass('lg-slide-progress'); + _this.LGel.trigger(lGEvents.afterSlide, { + prevIndex: prevIndex, + index: index, + fromTouch: fromTouch, + fromThumb: fromThumb, + }); + }, (this.lGalleryOn ? this.settings.speed + 100 : 100) + (fromTouch ? 0 : this.settings.slideDelay)); + } + this.index = index; + }; + LightGallery.prototype.updateCurrentCounter = function (index) { + this.getElementById('lg-counter-current').html(index + 1 + ''); + }; + LightGallery.prototype.updateCounterTotal = function () { + this.getElementById('lg-counter-all').html(this.galleryItems.length + ''); + }; + LightGallery.prototype.getSlideType = function (item) { + if (item.__slideVideoInfo) { + return 'video'; + } + else if (item.iframe) { + return 'iframe'; + } + else { + return 'image'; + } + }; + LightGallery.prototype.touchMove = function (startCoords, endCoords, e) { + var distanceX = endCoords.pageX - startCoords.pageX; + var distanceY = endCoords.pageY - startCoords.pageY; + var allowSwipe = false; + if (this.swipeDirection) { + allowSwipe = true; + } + else { + if (Math.abs(distanceX) > 15) { + this.swipeDirection = 'horizontal'; + allowSwipe = true; + } + else if (Math.abs(distanceY) > 15) { + this.swipeDirection = 'vertical'; + allowSwipe = true; + } + } + if (!allowSwipe) { + return; + } + var $currentSlide = this.getSlideItem(this.index); + if (this.swipeDirection === 'horizontal') { + e === null || e === void 0 ? void 0 : e.preventDefault(); + // reset opacity and transition duration + this.outer.addClass('lg-dragging'); + // move current slide + this.setTranslate($currentSlide, distanceX, 0); + // move next and prev slide with current slide + var width = $currentSlide.get().offsetWidth; + var slideWidthAmount = (width * 15) / 100; + var gutter = slideWidthAmount - Math.abs((distanceX * 10) / 100); + this.setTranslate(this.outer.find('.lg-prev-slide').first(), -width + distanceX - gutter, 0); + this.setTranslate(this.outer.find('.lg-next-slide').first(), width + distanceX + gutter, 0); + } + else if (this.swipeDirection === 'vertical') { + if (this.settings.swipeToClose) { + e === null || e === void 0 ? void 0 : e.preventDefault(); + this.$container.addClass('lg-dragging-vertical'); + var opacity = 1 - Math.abs(distanceY) / window.innerHeight; + this.$backdrop.css('opacity', opacity); + var scale = 1 - Math.abs(distanceY) / (window.innerWidth * 2); + this.setTranslate($currentSlide, 0, distanceY, scale, scale); + if (Math.abs(distanceY) > 100) { + this.outer + .addClass('lg-hide-items') + .removeClass('lg-components-open'); + } + } + } + }; + LightGallery.prototype.touchEnd = function (endCoords, startCoords, event) { + var _this = this; + var distance; + // keep slide animation for any mode while dragg/swipe + if (this.settings.mode !== 'lg-slide') { + this.outer.addClass('lg-slide'); + } + // set transition duration + setTimeout(function () { + _this.$container.removeClass('lg-dragging-vertical'); + _this.outer + .removeClass('lg-dragging lg-hide-items') + .addClass('lg-components-open'); + var triggerClick = true; + if (_this.swipeDirection === 'horizontal') { + distance = endCoords.pageX - startCoords.pageX; + var distanceAbs = Math.abs(endCoords.pageX - startCoords.pageX); + if (distance < 0 && + distanceAbs > _this.settings.swipeThreshold) { + _this.goToNextSlide(true); + triggerClick = false; + } + else if (distance > 0 && + distanceAbs > _this.settings.swipeThreshold) { + _this.goToPrevSlide(true); + triggerClick = false; + } + } + else if (_this.swipeDirection === 'vertical') { + distance = Math.abs(endCoords.pageY - startCoords.pageY); + if (_this.settings.closable && + _this.settings.swipeToClose && + distance > 100) { + _this.closeGallery(); + return; + } + else { + _this.$backdrop.css('opacity', 1); + } + } + _this.outer.find('.lg-item').removeAttr('style'); + if (triggerClick && + Math.abs(endCoords.pageX - startCoords.pageX) < 5) { + // Trigger click if distance is less than 5 pix + var target = $LG(event.target); + if (_this.isPosterElement(target)) { + _this.LGel.trigger(lGEvents.posterClick); + } + } + _this.swipeDirection = undefined; + }); + // remove slide class once drag/swipe is completed if mode is not slide + setTimeout(function () { + if (!_this.outer.hasClass('lg-dragging') && + _this.settings.mode !== 'lg-slide') { + _this.outer.removeClass('lg-slide'); + } + }, this.settings.speed + 100); + }; + LightGallery.prototype.enableSwipe = function () { + var _this = this; + var startCoords = {}; + var endCoords = {}; + var isMoved = false; + var isSwiping = false; + if (this.settings.enableSwipe) { + this.$inner.on('touchstart.lg', function (e) { + _this.dragOrSwipeEnabled = true; + var $item = _this.getSlideItem(_this.index); + if (($LG(e.target).hasClass('lg-item') || + $item.get().contains(e.target)) && + !_this.outer.hasClass('lg-zoomed') && + !_this.lgBusy && + e.touches.length === 1) { + isSwiping = true; + _this.touchAction = 'swipe'; + _this.manageSwipeClass(); + startCoords = { + pageX: e.touches[0].pageX, + pageY: e.touches[0].pageY, + }; + } + }); + this.$inner.on('touchmove.lg', function (e) { + if (isSwiping && + _this.touchAction === 'swipe' && + e.touches.length === 1) { + endCoords = { + pageX: e.touches[0].pageX, + pageY: e.touches[0].pageY, + }; + _this.touchMove(startCoords, endCoords, e); + isMoved = true; + } + }); + this.$inner.on('touchend.lg', function (event) { + if (_this.touchAction === 'swipe') { + if (isMoved) { + isMoved = false; + _this.touchEnd(endCoords, startCoords, event); + } + else if (isSwiping) { + var target = $LG(event.target); + if (_this.isPosterElement(target)) { + _this.LGel.trigger(lGEvents.posterClick); + } + } + _this.touchAction = undefined; + isSwiping = false; + } + }); + } + }; + LightGallery.prototype.enableDrag = function () { + var _this = this; + var startCoords = {}; + var endCoords = {}; + var isDraging = false; + var isMoved = false; + if (this.settings.enableDrag) { + this.outer.on('mousedown.lg', function (e) { + _this.dragOrSwipeEnabled = true; + var $item = _this.getSlideItem(_this.index); + if ($LG(e.target).hasClass('lg-item') || + $item.get().contains(e.target)) { + if (!_this.outer.hasClass('lg-zoomed') && !_this.lgBusy) { + e.preventDefault(); + if (!_this.lgBusy) { + _this.manageSwipeClass(); + startCoords = { + pageX: e.pageX, + pageY: e.pageY, + }; + isDraging = true; + // ** Fix for webkit cursor issue https://code.google.com/p/chromium/issues/detail?id=26723 + _this.outer.get().scrollLeft += 1; + _this.outer.get().scrollLeft -= 1; + // * + _this.outer + .removeClass('lg-grab') + .addClass('lg-grabbing'); + _this.LGel.trigger(lGEvents.dragStart); + } + } + } + }); + $LG(window).on("mousemove.lg.global" + this.lgId, function (e) { + if (isDraging && _this.lgOpened) { + isMoved = true; + endCoords = { + pageX: e.pageX, + pageY: e.pageY, + }; + _this.touchMove(startCoords, endCoords); + _this.LGel.trigger(lGEvents.dragMove); + } + }); + $LG(window).on("mouseup.lg.global" + this.lgId, function (event) { + if (!_this.lgOpened) { + return; + } + var target = $LG(event.target); + if (isMoved) { + isMoved = false; + _this.touchEnd(endCoords, startCoords, event); + _this.LGel.trigger(lGEvents.dragEnd); + } + else if (_this.isPosterElement(target)) { + _this.LGel.trigger(lGEvents.posterClick); + } + // Prevent execution on click + if (isDraging) { + isDraging = false; + _this.outer.removeClass('lg-grabbing').addClass('lg-grab'); + } + }); + } + }; + LightGallery.prototype.triggerPosterClick = function () { + var _this = this; + this.$inner.on('click.lg', function (event) { + if (!_this.dragOrSwipeEnabled && + _this.isPosterElement($LG(event.target))) { + _this.LGel.trigger(lGEvents.posterClick); + } + }); + }; + LightGallery.prototype.manageSwipeClass = function () { + var _touchNext = this.index + 1; + var _touchPrev = this.index - 1; + if (this.settings.loop && this.galleryItems.length > 2) { + if (this.index === 0) { + _touchPrev = this.galleryItems.length - 1; + } + else if (this.index === this.galleryItems.length - 1) { + _touchNext = 0; + } + } + this.outer.find('.lg-item').removeClass('lg-next-slide lg-prev-slide'); + if (_touchPrev > -1) { + this.getSlideItem(_touchPrev).addClass('lg-prev-slide'); + } + this.getSlideItem(_touchNext).addClass('lg-next-slide'); + }; + /** + * Go to next slide + * @param {Boolean} fromTouch - true if slide function called via touch event + * @category lGPublicMethods + * @example + * const plugin = lightGallery(); + * plugin.goToNextSlide(); + * @see Demo + */ + LightGallery.prototype.goToNextSlide = function (fromTouch) { + var _this = this; + var _loop = this.settings.loop; + if (fromTouch && this.galleryItems.length < 3) { + _loop = false; + } + if (!this.lgBusy) { + if (this.index + 1 < this.galleryItems.length) { + this.index++; + this.LGel.trigger(lGEvents.beforeNextSlide, { + index: this.index, + }); + this.slide(this.index, !!fromTouch, false, 'next'); + } + else { + if (_loop) { + this.index = 0; + this.LGel.trigger(lGEvents.beforeNextSlide, { + index: this.index, + }); + this.slide(this.index, !!fromTouch, false, 'next'); + } + else if (this.settings.slideEndAnimation && !fromTouch) { + this.outer.addClass('lg-right-end'); + setTimeout(function () { + _this.outer.removeClass('lg-right-end'); + }, 400); + } + } + } + }; + /** + * Go to previous slides + * @param {Boolean} fromTouch - true if slide function called via touch event + * @category lGPublicMethods + * @example + * const plugin = lightGallery({}); + * plugin.goToPrevSlide(); + * @see Demo + * + */ + LightGallery.prototype.goToPrevSlide = function (fromTouch) { + var _this = this; + var _loop = this.settings.loop; + if (fromTouch && this.galleryItems.length < 3) { + _loop = false; + } + if (!this.lgBusy) { + if (this.index > 0) { + this.index--; + this.LGel.trigger(lGEvents.beforePrevSlide, { + index: this.index, + fromTouch: fromTouch, + }); + this.slide(this.index, !!fromTouch, false, 'prev'); + } + else { + if (_loop) { + this.index = this.galleryItems.length - 1; + this.LGel.trigger(lGEvents.beforePrevSlide, { + index: this.index, + fromTouch: fromTouch, + }); + this.slide(this.index, !!fromTouch, false, 'prev'); + } + else if (this.settings.slideEndAnimation && !fromTouch) { + this.outer.addClass('lg-left-end'); + setTimeout(function () { + _this.outer.removeClass('lg-left-end'); + }, 400); + } + } + } + }; + LightGallery.prototype.keyPress = function () { + var _this = this; + $LG(window).on("keydown.lg.global" + this.lgId, function (e) { + if (_this.lgOpened && + _this.settings.escKey === true && + e.keyCode === 27) { + e.preventDefault(); + if (_this.settings.allowMediaOverlap && + _this.outer.hasClass('lg-can-toggle') && + _this.outer.hasClass('lg-components-open')) { + _this.outer.removeClass('lg-components-open'); + } + else { + _this.closeGallery(); + } + } + if (_this.lgOpened && _this.galleryItems.length > 1) { + if (e.keyCode === 37) { + e.preventDefault(); + _this.goToPrevSlide(); + } + if (e.keyCode === 39) { + e.preventDefault(); + _this.goToNextSlide(); + } + } + }); + }; + LightGallery.prototype.arrow = function () { + var _this = this; + this.getElementById('lg-prev').on('click.lg', function () { + _this.goToPrevSlide(); + }); + this.getElementById('lg-next').on('click.lg', function () { + _this.goToNextSlide(); + }); + }; + LightGallery.prototype.arrowDisable = function (index) { + // Disable arrows if settings.hideControlOnEnd is true + if (!this.settings.loop && this.settings.hideControlOnEnd) { + var $prev = this.getElementById('lg-prev'); + var $next = this.getElementById('lg-next'); + if (index + 1 === this.galleryItems.length) { + $next.attr('disabled', 'disabled').addClass('disabled'); + } + else { + $next.removeAttr('disabled').removeClass('disabled'); + } + if (index === 0) { + $prev.attr('disabled', 'disabled').addClass('disabled'); + } + else { + $prev.removeAttr('disabled').removeClass('disabled'); + } + } + }; + LightGallery.prototype.setTranslate = function ($el, xValue, yValue, scaleX, scaleY) { + if (scaleX === void 0) { scaleX = 1; } + if (scaleY === void 0) { scaleY = 1; } + $el.css('transform', 'translate3d(' + + xValue + + 'px, ' + + yValue + + 'px, 0px) scale3d(' + + scaleX + + ', ' + + scaleY + + ', 1)'); + }; + LightGallery.prototype.mousewheel = function () { + var _this = this; + var lastCall = 0; + this.outer.on('wheel.lg', function (e) { + if (!e.deltaY || _this.galleryItems.length < 2) { + return; + } + e.preventDefault(); + var now = new Date().getTime(); + if (now - lastCall < 1000) { + return; + } + lastCall = now; + if (e.deltaY > 0) { + _this.goToNextSlide(); + } + else if (e.deltaY < 0) { + _this.goToPrevSlide(); + } + }); + }; + LightGallery.prototype.isSlideElement = function (target) { + return (target.hasClass('lg-outer') || + target.hasClass('lg-item') || + target.hasClass('lg-img-wrap')); + }; + LightGallery.prototype.isPosterElement = function (target) { + var playButton = this.getSlideItem(this.index) + .find('.lg-video-play-button') + .get(); + return (target.hasClass('lg-video-poster') || + target.hasClass('lg-video-play-button') || + (playButton && playButton.contains(target.get()))); + }; + /** + * Maximize minimize inline gallery. + * @category lGPublicMethods + */ + LightGallery.prototype.toggleMaximize = function () { + var _this = this; + this.getElementById('lg-maximize').on('click.lg', function () { + _this.$container.toggleClass('lg-inline'); + _this.refreshOnResize(); + }); + }; + LightGallery.prototype.invalidateItems = function () { + for (var index = 0; index < this.items.length; index++) { + var element = this.items[index]; + var $element = $LG(element); + $element.off("click.lgcustom-item-" + $element.attr('data-lg-id')); + } + }; + LightGallery.prototype.trapFocus = function () { + var _this = this; + this.$container.get().focus({ + preventScroll: true, + }); + $LG(window).on("keydown.lg.global" + this.lgId, function (e) { + if (!_this.lgOpened) { + return; + } + var isTabPressed = e.key === 'Tab' || e.keyCode === 9; + if (!isTabPressed) { + return; + } + var focusableEls = utils.getFocusableElements(_this.$container.get()); + var firstFocusableEl = focusableEls[0]; + var lastFocusableEl = focusableEls[focusableEls.length - 1]; + if (e.shiftKey) { + if (document.activeElement === firstFocusableEl) { + lastFocusableEl.focus(); + e.preventDefault(); + } + } + else { + if (document.activeElement === lastFocusableEl) { + firstFocusableEl.focus(); + e.preventDefault(); + } + } + }); + }; + LightGallery.prototype.manageCloseGallery = function () { + var _this = this; + if (!this.settings.closable) + return; + var mousedown = false; + this.getElementById('lg-close').on('click.lg', function () { + _this.closeGallery(); + }); + if (this.settings.closeOnTap) { + // If you drag the slide and release outside gallery gets close on chrome + // for preventing this check mousedown and mouseup happened on .lg-item or lg-outer + this.outer.on('mousedown.lg', function (e) { + var target = $LG(e.target); + if (_this.isSlideElement(target)) { + mousedown = true; + } + else { + mousedown = false; + } + }); + this.outer.on('mousemove.lg', function () { + mousedown = false; + }); + this.outer.on('mouseup.lg', function (e) { + var target = $LG(e.target); + if (_this.isSlideElement(target) && mousedown) { + if (!_this.outer.hasClass('lg-dragging')) { + _this.closeGallery(); + } + } + }); + } + }; + /** + * Close lightGallery if it is opened. + * + * @description If closable is false in the settings, you need to pass true via closeGallery method to force close gallery + * @return returns the estimated time to close gallery completely including the close animation duration + * @category lGPublicMethods + * @example + * const plugin = lightGallery(); + * plugin.closeGallery(); + * + */ + LightGallery.prototype.closeGallery = function (force) { + var _this = this; + if (!this.lgOpened || (!this.settings.closable && !force)) { + return 0; + } + this.LGel.trigger(lGEvents.beforeClose); + if (this.settings.resetScrollPosition && !this.settings.hideScrollbar) { + $LG(window).scrollTop(this.prevScrollTop); + } + var currentItem = this.items[this.index]; + var transform; + if (this.zoomFromOrigin && currentItem) { + var _a = this.mediaContainerPosition, top_4 = _a.top, bottom = _a.bottom; + var _b = this.galleryItems[this.index], __slideVideoInfo = _b.__slideVideoInfo, poster = _b.poster; + var imageSize = utils.getSize(currentItem, this.outer, top_4 + bottom, __slideVideoInfo && poster && this.settings.videoMaxSize); + transform = utils.getTransform(currentItem, this.outer, top_4, bottom, imageSize); + } + if (this.zoomFromOrigin && transform) { + this.outer.addClass('lg-closing lg-zoom-from-image'); + this.getSlideItem(this.index) + .addClass('lg-start-end-progress') + .css('transition-duration', this.settings.startAnimationDuration + 'ms') + .css('transform', transform); + } + else { + this.outer.addClass('lg-hide-items'); + // lg-zoom-from-image is used for setting the opacity to 1 if zoomFromOrigin is true + // If the closing item doesn't have the lg-size attribute, remove this class to avoid the closing css conflicts + this.outer.removeClass('lg-zoom-from-image'); + } + // Unbind all events added by lightGallery + // @todo + //this.$el.off('.lg.tm'); + this.destroyModules(); + this.lGalleryOn = false; + this.isDummyImageRemoved = false; + this.zoomFromOrigin = this.settings.zoomFromOrigin; + clearTimeout(this.hideBarTimeout); + this.hideBarTimeout = false; + $LG('html').removeClass('lg-on'); + this.outer.removeClass('lg-visible lg-components-open'); + // Resetting opacity to 0 isd required as vertical swipe to close function adds inline opacity. + this.$backdrop.removeClass('in').css('opacity', 0); + var removeTimeout = this.zoomFromOrigin && transform + ? Math.max(this.settings.startAnimationDuration, this.settings.backdropDuration) + : this.settings.backdropDuration; + this.$container.removeClass('lg-show-in'); + // Once the closign animation is completed and gallery is invisible + setTimeout(function () { + if (_this.zoomFromOrigin && transform) { + _this.outer.removeClass('lg-zoom-from-image'); + } + _this.$container.removeClass('lg-show'); + // Reset scrollbar + _this.resetScrollBar(); + // Need to remove inline opacity as it is used in the stylesheet as well + _this.$backdrop + .removeAttr('style') + .css('transition-duration', _this.settings.backdropDuration + 'ms'); + _this.outer.removeClass("lg-closing " + _this.settings.startClass); + _this.getSlideItem(_this.index).removeClass('lg-start-end-progress'); + _this.$inner.empty(); + if (_this.lgOpened) { + _this.LGel.trigger(lGEvents.afterClose, { + instance: _this, + }); + } + if (_this.$container.get()) { + _this.$container.get().blur(); + } + _this.lgOpened = false; + }, removeTimeout + 100); + return removeTimeout + 100; + }; + LightGallery.prototype.initModules = function () { + this.plugins.forEach(function (module) { + try { + module.init(); + } + catch (err) { + console.warn("lightGallery:- make sure lightGallery module is properly initiated"); + } + }); + }; + LightGallery.prototype.destroyModules = function (destroy) { + this.plugins.forEach(function (module) { + try { + if (destroy) { + module.destroy(); + } + else { + module.closeGallery && module.closeGallery(); + } + } + catch (err) { + console.warn("lightGallery:- make sure lightGallery module is properly destroyed"); + } + }); + }; + /** + * Refresh lightGallery with new set of children. + * + * @description This is useful to update the gallery when the child elements are changed without calling destroy method. + * + * If you are using dynamic mode, you can pass the modified array of dynamicEl as the first parameter to refresh the dynamic gallery + * @see Demo + * @category lGPublicMethods + * @example + * const plugin = lightGallery(); + * // Delete or add children, then call + * plugin.refresh(); + * + */ + LightGallery.prototype.refresh = function (galleryItems) { + if (!this.settings.dynamic) { + this.invalidateItems(); + } + if (galleryItems) { + this.galleryItems = galleryItems; + } + else { + this.galleryItems = this.getItems(); + } + this.updateControls(); + this.openGalleryOnItemClick(); + this.LGel.trigger(lGEvents.updateSlides); + }; + LightGallery.prototype.updateControls = function () { + this.addSlideVideoInfo(this.galleryItems); + this.updateCounterTotal(); + this.manageSingleSlideClassName(); + }; + LightGallery.prototype.destroyGallery = function () { + this.destroyModules(true); + if (!this.settings.dynamic) { + this.invalidateItems(); + } + $LG(window).off(".lg.global" + this.lgId); + this.LGel.off('.lg'); + this.$container.remove(); + }; + /** + * Destroy lightGallery. + * Destroy lightGallery and its plugin instances completely + * + * @description This method also calls CloseGallery function internally. Returns the time takes to completely close and destroy the instance. + * In case if you want to re-initialize lightGallery right after destroying it, initialize it only once the destroy process is completed. + * You can use refresh method most of the times. + * @category lGPublicMethods + * @example + * const plugin = lightGallery(); + * plugin.destroy(); + * + */ + LightGallery.prototype.destroy = function () { + var closeTimeout = this.closeGallery(true); + if (closeTimeout) { + setTimeout(this.destroyGallery.bind(this), closeTimeout); + } + else { + this.destroyGallery(); + } + return closeTimeout; + }; + return LightGallery; + }()); + + function lightGallery(el, options) { + return new LightGallery(el, options); + } + + return lightGallery; + +}))); +//# sourceMappingURL=lightgallery.umd.js.map + +; +/*! + * lightgallery | 2.7.2-beta.1 | June 25th 2023 + * http://www.lightgalleryjs.com/ + * Copyright (c) 2020 Sachin Neravath; + * @license GPLv3 + */ + +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lgVideo = factory()); +}(this, (function () { 'use strict'; + + /*! ***************************************************************************** + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** */ + + var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + + var videoSettings = { + autoplayFirstVideo: true, + youTubePlayerParams: false, + vimeoPlayerParams: false, + wistiaPlayerParams: false, + gotoNextSlideOnVideoEnd: true, + autoplayVideoOnSlide: false, + videojs: false, + videojsTheme: '', + videojsOptions: {}, + }; + + /** + * List of lightGallery events + * All events should be documented here + * Below interfaces are used to build the website documentations + * */ + var lGEvents = { + afterAppendSlide: 'lgAfterAppendSlide', + init: 'lgInit', + hasVideo: 'lgHasVideo', + containerResize: 'lgContainerResize', + updateSlides: 'lgUpdateSlides', + afterAppendSubHtml: 'lgAfterAppendSubHtml', + beforeOpen: 'lgBeforeOpen', + afterOpen: 'lgAfterOpen', + slideItemLoad: 'lgSlideItemLoad', + beforeSlide: 'lgBeforeSlide', + afterSlide: 'lgAfterSlide', + posterClick: 'lgPosterClick', + dragStart: 'lgDragStart', + dragMove: 'lgDragMove', + dragEnd: 'lgDragEnd', + beforeNextSlide: 'lgBeforeNextSlide', + beforePrevSlide: 'lgBeforePrevSlide', + beforeClose: 'lgBeforeClose', + afterClose: 'lgAfterClose', + rotateLeft: 'lgRotateLeft', + rotateRight: 'lgRotateRight', + flipHorizontal: 'lgFlipHorizontal', + flipVertical: 'lgFlipVertical', + autoplay: 'lgAutoplay', + autoplayStart: 'lgAutoplayStart', + autoplayStop: 'lgAutoplayStop', + }; + + var param = function (obj) { + return Object.keys(obj) + .map(function (k) { + return encodeURIComponent(k) + '=' + encodeURIComponent(obj[k]); + }) + .join('&'); + }; + var paramsToObject = function (url) { + var paramas = url + .slice(1) + .split('&') + .map(function (p) { return p.split('='); }) + .reduce(function (obj, pair) { + var _a = pair.map(decodeURIComponent), key = _a[0], value = _a[1]; + obj[key] = value; + return obj; + }, {}); + return paramas; + }; + var getYouTubeParams = function (videoInfo, youTubePlayerParamsSettings) { + if (!videoInfo.youtube) + return ''; + var slideUrlParams = videoInfo.youtube[2] + ? paramsToObject(videoInfo.youtube[2]) + : ''; + // For youtube first params gets priority if duplicates found + var defaultYouTubePlayerParams = { + wmode: 'opaque', + autoplay: 0, + mute: 1, + enablejsapi: 1, + }; + var playerParamsSettings = youTubePlayerParamsSettings || {}; + var youTubePlayerParams = __assign(__assign(__assign({}, defaultYouTubePlayerParams), playerParamsSettings), slideUrlParams); + var youTubeParams = "?" + param(youTubePlayerParams); + return youTubeParams; + }; + var isYouTubeNoCookie = function (url) { + return url.includes('youtube-nocookie.com'); + }; + var getVimeoURLParams = function (defaultParams, videoInfo) { + if (!videoInfo || !videoInfo.vimeo) + return ''; + var urlParams = videoInfo.vimeo[2] || ''; + var defaultPlayerParams = defaultParams && Object.keys(defaultParams).length !== 0 + ? '&' + param(defaultParams) + : ''; + // Support private video + var urlWithHash = videoInfo.vimeo[0].split('/').pop() || ''; + var urlWithHashWithParams = urlWithHash.split('?')[0] || ''; + var hash = urlWithHashWithParams.split('#')[0]; + var isPrivate = videoInfo.vimeo[1] !== hash; + if (isPrivate) { + urlParams = urlParams.replace("/" + hash, ''); + } + urlParams = + urlParams[0] == '?' ? '&' + urlParams.slice(1) : urlParams || ''; + // For vimeo last params gets priority if duplicates found + var vimeoPlayerParams = "?autoplay=0&muted=1" + (isPrivate ? "&h=" + hash : '') + defaultPlayerParams + urlParams; + return vimeoPlayerParams; + }; + + /** + * Video module for lightGallery + * Supports HTML5, YouTube, Vimeo, wistia videos + * + * + * @ref Wistia + * https://wistia.com/support/integrations/wordpress(How to get url) + * https://wistia.com/support/developers/embed-options#using-embed-options + * https://wistia.com/support/developers/player-api + * https://wistia.com/support/developers/construct-an-embed-code + * http://jsfiddle.net/xvnm7xLm/ + * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video + * https://wistia.com/support/embed-and-share/sharing-videos + * https://private-sharing.wistia.com/medias/mwhrulrucj + * + * @ref Youtube + * https://developers.google.com/youtube/player_parameters#enablejsapi + * https://developers.google.com/youtube/iframe_api_reference + * https://developer.chrome.com/blog/autoplay/#iframe-delegation + * + * @ref Vimeo + * https://stackoverflow.com/questions/10488943/easy-way-to-get-vimeo-id-from-a-vimeo-url + * https://vimeo.zendesk.com/hc/en-us/articles/360000121668-Starting-playback-at-a-specific-timecode + * https://vimeo.zendesk.com/hc/en-us/articles/360001494447-Using-Player-Parameters + */ + var Video = /** @class */ (function () { + function Video(instance) { + // get lightGallery core plugin instance + this.core = instance; + this.settings = __assign(__assign({}, videoSettings), this.core.settings); + return this; + } + Video.prototype.init = function () { + var _this = this; + /** + * Event triggered when video url found without poster + * Append video HTML + * Play if autoplayFirstVideo is true + */ + this.core.LGel.on(lGEvents.hasVideo + ".video", this.onHasVideo.bind(this)); + this.core.LGel.on(lGEvents.posterClick + ".video", function () { + var $el = _this.core.getSlideItem(_this.core.index); + _this.loadVideoOnPosterClick($el); + }); + this.core.LGel.on(lGEvents.slideItemLoad + ".video", this.onSlideItemLoad.bind(this)); + // @desc fired immediately before each slide transition. + this.core.LGel.on(lGEvents.beforeSlide + ".video", this.onBeforeSlide.bind(this)); + // @desc fired immediately after each slide transition. + this.core.LGel.on(lGEvents.afterSlide + ".video", this.onAfterSlide.bind(this)); + }; + /** + * @desc Event triggered when a slide is completely loaded + * + * @param {Event} event - lightGalley custom event + */ + Video.prototype.onSlideItemLoad = function (event) { + var _this = this; + var _a = event.detail, isFirstSlide = _a.isFirstSlide, index = _a.index; + // Should check the active slide as well as user may have moved to different slide before the first slide is loaded + if (this.settings.autoplayFirstVideo && + isFirstSlide && + index === this.core.index) { + // Delay is just for the transition effect on video load + setTimeout(function () { + _this.loadAndPlayVideo(index); + }, 200); + } + // Should not call on first slide. should check only if the slide is active + if (!isFirstSlide && + this.settings.autoplayVideoOnSlide && + index === this.core.index) { + this.loadAndPlayVideo(index); + } + }; + /** + * @desc Event triggered when video url or poster found + * Append video HTML is poster is not given + * Play if autoplayFirstVideo is true + * + * @param {Event} event - Javascript Event object. + */ + Video.prototype.onHasVideo = function (event) { + var _a = event.detail, index = _a.index, src = _a.src, html5Video = _a.html5Video, hasPoster = _a.hasPoster; + if (!hasPoster) { + // All functions are called separately if poster exist in loadVideoOnPosterClick function + this.appendVideos(this.core.getSlideItem(index), { + src: src, + addClass: 'lg-object', + index: index, + html5Video: html5Video, + }); + // Automatically navigate to next slide once video reaches the end. + this.gotoNextSlideOnVideoEnd(src, index); + } + }; + /** + * @desc fired immediately before each slide transition. + * Pause the previous video + * Hide the download button if the slide contains YouTube, Vimeo, or Wistia videos. + * + * @param {Event} event - Javascript Event object. + * @param {number} prevIndex - Previous index of the slide. + * @param {number} index - Current index of the slide + */ + Video.prototype.onBeforeSlide = function (event) { + if (this.core.lGalleryOn) { + var prevIndex = event.detail.prevIndex; + this.pauseVideo(prevIndex); + } + }; + /** + * @desc fired immediately after each slide transition. + * Play video if autoplayVideoOnSlide option is enabled. + * + * @param {Event} event - Javascript Event object. + * @param {number} prevIndex - Previous index of the slide. + * @param {number} index - Current index of the slide + * @todo should check on onSlideLoad as well if video is not loaded on after slide + */ + Video.prototype.onAfterSlide = function (event) { + var _this = this; + var _a = event.detail, index = _a.index, prevIndex = _a.prevIndex; + // Do not call on first slide + var $slide = this.core.getSlideItem(index); + if (this.settings.autoplayVideoOnSlide && index !== prevIndex) { + if ($slide.hasClass('lg-complete')) { + setTimeout(function () { + _this.loadAndPlayVideo(index); + }, 100); + } + } + }; + Video.prototype.loadAndPlayVideo = function (index) { + var $slide = this.core.getSlideItem(index); + var currentGalleryItem = this.core.galleryItems[index]; + if (currentGalleryItem.poster) { + this.loadVideoOnPosterClick($slide, true); + } + else { + this.playVideo(index); + } + }; + /** + * Play HTML5, Youtube, Vimeo or Wistia videos in a particular slide. + * @param {number} index - Index of the slide + */ + Video.prototype.playVideo = function (index) { + this.controlVideo(index, 'play'); + }; + /** + * Pause HTML5, Youtube, Vimeo or Wistia videos in a particular slide. + * @param {number} index - Index of the slide + */ + Video.prototype.pauseVideo = function (index) { + this.controlVideo(index, 'pause'); + }; + Video.prototype.getVideoHtml = function (src, addClass, index, html5Video) { + var video = ''; + var videoInfo = this.core.galleryItems[index] + .__slideVideoInfo || {}; + var currentGalleryItem = this.core.galleryItems[index]; + var videoTitle = currentGalleryItem.title || currentGalleryItem.alt; + videoTitle = videoTitle ? 'title="' + videoTitle + '"' : ''; + var commonIframeProps = "allowtransparency=\"true\"\n frameborder=\"0\"\n scrolling=\"no\"\n allowfullscreen\n mozallowfullscreen\n webkitallowfullscreen\n oallowfullscreen\n msallowfullscreen"; + if (videoInfo.youtube) { + var videoId = 'lg-youtube' + index; + var youTubeParams = getYouTubeParams(videoInfo, this.settings.youTubePlayerParams); + var isYouTubeNoCookieURL = isYouTubeNoCookie(src); + var youtubeURL = isYouTubeNoCookieURL + ? '//www.youtube-nocookie.com/' + : '//www.youtube.com/'; + video = ""; + } + else if (videoInfo.vimeo) { + var videoId = 'lg-vimeo' + index; + var playerParams = getVimeoURLParams(this.settings.vimeoPlayerParams, videoInfo); + video = ""; + } + else if (videoInfo.wistia) { + var wistiaId = 'lg-wistia' + index; + var playerParams = param(this.settings.wistiaPlayerParams); + playerParams = playerParams ? '?' + playerParams : ''; + video = ""; + } + else if (videoInfo.html5) { + var html5VideoMarkup = ''; + for (var i = 0; i < html5Video.source.length; i++) { + html5VideoMarkup += ""; + } + if (html5Video.tracks) { + var _loop_1 = function (i) { + var trackAttributes = ''; + var track = html5Video.tracks[i]; + Object.keys(track || {}).forEach(function (key) { + trackAttributes += key + "=\"" + track[key] + "\" "; + }); + html5VideoMarkup += ""; + }; + for (var i = 0; i < html5Video.tracks.length; i++) { + _loop_1(i); + } + } + var html5VideoAttrs_1 = ''; + var videoAttributes_1 = html5Video.attributes || {}; + Object.keys(videoAttributes_1 || {}).forEach(function (key) { + html5VideoAttrs_1 += key + "=\"" + videoAttributes_1[key] + "\" "; + }); + video = ""; + } + return video; + }; + /** + * @desc - Append videos to the slide + * + * @param {HTMLElement} el - slide element + * @param {Object} videoParams - Video parameters, Contains src, class, index, htmlVideo + */ + Video.prototype.appendVideos = function (el, videoParams) { + var _a; + var videoHtml = this.getVideoHtml(videoParams.src, videoParams.addClass, videoParams.index, videoParams.html5Video); + el.find('.lg-video-cont').append(videoHtml); + var $videoElement = el.find('.lg-video-object').first(); + if (videoParams.html5Video) { + $videoElement.on('mousedown.lg.video', function (e) { + e.stopPropagation(); + }); + } + if (this.settings.videojs && ((_a = this.core.galleryItems[videoParams.index].__slideVideoInfo) === null || _a === void 0 ? void 0 : _a.html5)) { + try { + return videojs($videoElement.get(), this.settings.videojsOptions); + } + catch (e) { + console.error('lightGallery:- Make sure you have included videojs'); + } + } + }; + Video.prototype.gotoNextSlideOnVideoEnd = function (src, index) { + var _this = this; + var $videoElement = this.core + .getSlideItem(index) + .find('.lg-video-object') + .first(); + var videoInfo = this.core.galleryItems[index].__slideVideoInfo || {}; + if (this.settings.gotoNextSlideOnVideoEnd) { + if (videoInfo.html5) { + $videoElement.on('ended', function () { + _this.core.goToNextSlide(); + }); + } + else if (videoInfo.vimeo) { + try { + // https://github.com/vimeo/player.js/#ended + new Vimeo.Player($videoElement.get()).on('ended', function () { + _this.core.goToNextSlide(); + }); + } + catch (e) { + console.error('lightGallery:- Make sure you have included //github.com/vimeo/player.js'); + } + } + else if (videoInfo.wistia) { + try { + window._wq = window._wq || []; + // @todo Event is gettign triggered multiple times + window._wq.push({ + id: $videoElement.attr('id'), + onReady: function (video) { + video.bind('end', function () { + _this.core.goToNextSlide(); + }); + }, + }); + } + catch (e) { + console.error('lightGallery:- Make sure you have included //fast.wistia.com/assets/external/E-v1.js'); + } + } + } + }; + Video.prototype.controlVideo = function (index, action) { + var $videoElement = this.core + .getSlideItem(index) + .find('.lg-video-object') + .first(); + var videoInfo = this.core.galleryItems[index].__slideVideoInfo || {}; + if (!$videoElement.get()) + return; + if (videoInfo.youtube) { + try { + $videoElement.get().contentWindow.postMessage("{\"event\":\"command\",\"func\":\"" + action + "Video\",\"args\":\"\"}", '*'); + } + catch (e) { + console.error("lightGallery:- " + e); + } + } + else if (videoInfo.vimeo) { + try { + new Vimeo.Player($videoElement.get())[action](); + } + catch (e) { + console.error('lightGallery:- Make sure you have included //github.com/vimeo/player.js'); + } + } + else if (videoInfo.html5) { + if (this.settings.videojs) { + try { + videojs($videoElement.get())[action](); + } + catch (e) { + console.error('lightGallery:- Make sure you have included videojs'); + } + } + else { + $videoElement.get()[action](); + } + } + else if (videoInfo.wistia) { + try { + window._wq = window._wq || []; + // @todo Find a way to destroy wistia player instance + window._wq.push({ + id: $videoElement.attr('id'), + onReady: function (video) { + video[action](); + }, + }); + } + catch (e) { + console.error('lightGallery:- Make sure you have included //fast.wistia.com/assets/external/E-v1.js'); + } + } + }; + Video.prototype.loadVideoOnPosterClick = function ($el, forcePlay) { + var _this = this; + // check slide has poster + if (!$el.hasClass('lg-video-loaded')) { + // check already video element present + if (!$el.hasClass('lg-has-video')) { + $el.addClass('lg-has-video'); + var _html = void 0; + var _src = this.core.galleryItems[this.core.index].src; + var video = this.core.galleryItems[this.core.index].video; + if (video) { + _html = + typeof video === 'string' ? JSON.parse(video) : video; + } + var videoJsPlayer_1 = this.appendVideos($el, { + src: _src, + addClass: '', + index: this.core.index, + html5Video: _html, + }); + this.gotoNextSlideOnVideoEnd(_src, this.core.index); + var $tempImg = $el.find('.lg-object').first().get(); + // @todo make sure it is working + $el.find('.lg-video-cont').first().append($tempImg); + $el.addClass('lg-video-loading'); + videoJsPlayer_1 && + videoJsPlayer_1.ready(function () { + videoJsPlayer_1.on('loadedmetadata', function () { + _this.onVideoLoadAfterPosterClick($el, _this.core.index); + }); + }); + $el.find('.lg-video-object') + .first() + .on('load.lg error.lg loadedmetadata.lg', function () { + setTimeout(function () { + _this.onVideoLoadAfterPosterClick($el, _this.core.index); + }, 50); + }); + } + else { + this.playVideo(this.core.index); + } + } + else if (forcePlay) { + this.playVideo(this.core.index); + } + }; + Video.prototype.onVideoLoadAfterPosterClick = function ($el, index) { + $el.addClass('lg-video-loaded'); + this.playVideo(index); + }; + Video.prototype.destroy = function () { + this.core.LGel.off('.lg.video'); + this.core.LGel.off('.video'); + }; + return Video; + }()); + + return Video; + +}))); +//# sourceMappingURL=lg-video.umd.js.map + +; +/*! + * lightgallery | 2.7.2-beta.1 | June 25th 2023 + * http://www.lightgalleryjs.com/ + * Copyright (c) 2020 Sachin Neravath; + * @license GPLv3 + */ + +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lgFullscreen = factory()); +}(this, (function () { 'use strict'; + + /*! ***************************************************************************** + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** */ + + var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + + var fullscreenSettings = { + fullScreen: true, + fullscreenPluginStrings: { + toggleFullscreen: 'Toggle Fullscreen', + }, + }; + + var FullScreen = /** @class */ (function () { + function FullScreen(instance, $LG) { + // get lightGallery core plugin instance + this.core = instance; + this.$LG = $LG; + // extend module default settings with lightGallery core settings + this.settings = __assign(__assign({}, fullscreenSettings), this.core.settings); + return this; + } + FullScreen.prototype.init = function () { + var fullScreen = ''; + if (this.settings.fullScreen) { + // check for fullscreen browser support + if (!document.fullscreenEnabled && + !document.webkitFullscreenEnabled && + !document.mozFullScreenEnabled && + !document.msFullscreenEnabled) { + return; + } + else { + fullScreen = ""; + this.core.$toolbar.append(fullScreen); + this.fullScreen(); + } + } + }; + FullScreen.prototype.isFullScreen = function () { + return (document.fullscreenElement || + document.mozFullScreenElement || + document.webkitFullscreenElement || + document.msFullscreenElement); + }; + FullScreen.prototype.requestFullscreen = function () { + var el = document.documentElement; + if (el.requestFullscreen) { + el.requestFullscreen(); + } + else if (el.msRequestFullscreen) { + el.msRequestFullscreen(); + } + else if (el.mozRequestFullScreen) { + el.mozRequestFullScreen(); + } + else if (el.webkitRequestFullscreen) { + el.webkitRequestFullscreen(); + } + }; + FullScreen.prototype.exitFullscreen = function () { + if (document.exitFullscreen) { + document.exitFullscreen(); + } + else if (document.msExitFullscreen) { + document.msExitFullscreen(); + } + else if (document.mozCancelFullScreen) { + document.mozCancelFullScreen(); + } + else if (document.webkitExitFullscreen) { + document.webkitExitFullscreen(); + } + }; + // https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Using_full_screen_mode + FullScreen.prototype.fullScreen = function () { + var _this = this; + this.$LG(document).on("fullscreenchange.lg.global" + this.core.lgId + " \n webkitfullscreenchange.lg.global" + this.core.lgId + " \n mozfullscreenchange.lg.global" + this.core.lgId + " \n MSFullscreenChange.lg.global" + this.core.lgId, function () { + if (!_this.core.lgOpened) + return; + _this.core.outer.toggleClass('lg-fullscreen-on'); + }); + this.core.outer + .find('.lg-fullscreen') + .first() + .on('click.lg', function () { + if (_this.isFullScreen()) { + _this.exitFullscreen(); + } + else { + _this.requestFullscreen(); + } + }); + }; + FullScreen.prototype.closeGallery = function () { + // exit from fullscreen if activated + if (this.isFullScreen()) { + this.exitFullscreen(); + } + }; + FullScreen.prototype.destroy = function () { + this.$LG(document).off("fullscreenchange.lg.global" + this.core.lgId + " \n webkitfullscreenchange.lg.global" + this.core.lgId + " \n mozfullscreenchange.lg.global" + this.core.lgId + " \n MSFullscreenChange.lg.global" + this.core.lgId); + }; + return FullScreen; + }()); + + return FullScreen; + +}))); +//# sourceMappingURL=lg-fullscreen.umd.js.map + +; +/*! + * lightgallery | 2.7.2-beta.1 | June 25th 2023 + * http://www.lightgalleryjs.com/ + * Copyright (c) 2020 Sachin Neravath; + * @license GPLv3 + */ + +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lgZoom = factory()); +}(this, (function () { 'use strict'; + + /*! ***************************************************************************** + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** */ + + var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + + var zoomSettings = { + scale: 1, + zoom: true, + infiniteZoom: true, + actualSize: true, + showZoomInOutIcons: false, + actualSizeIcons: { + zoomIn: 'lg-zoom-in', + zoomOut: 'lg-zoom-out', + }, + enableZoomAfter: 300, + zoomPluginStrings: { + zoomIn: 'Zoom in', + zoomOut: 'Zoom out', + viewActualSize: 'View actual size', + }, + }; + + /** + * List of lightGallery events + * All events should be documented here + * Below interfaces are used to build the website documentations + * */ + var lGEvents = { + afterAppendSlide: 'lgAfterAppendSlide', + init: 'lgInit', + hasVideo: 'lgHasVideo', + containerResize: 'lgContainerResize', + updateSlides: 'lgUpdateSlides', + afterAppendSubHtml: 'lgAfterAppendSubHtml', + beforeOpen: 'lgBeforeOpen', + afterOpen: 'lgAfterOpen', + slideItemLoad: 'lgSlideItemLoad', + beforeSlide: 'lgBeforeSlide', + afterSlide: 'lgAfterSlide', + posterClick: 'lgPosterClick', + dragStart: 'lgDragStart', + dragMove: 'lgDragMove', + dragEnd: 'lgDragEnd', + beforeNextSlide: 'lgBeforeNextSlide', + beforePrevSlide: 'lgBeforePrevSlide', + beforeClose: 'lgBeforeClose', + afterClose: 'lgAfterClose', + rotateLeft: 'lgRotateLeft', + rotateRight: 'lgRotateRight', + flipHorizontal: 'lgFlipHorizontal', + flipVertical: 'lgFlipVertical', + autoplay: 'lgAutoplay', + autoplayStart: 'lgAutoplayStart', + autoplayStop: 'lgAutoplayStop', + }; + + var ZOOM_TRANSITION_DURATION = 500; + var Zoom = /** @class */ (function () { + function Zoom(instance, $LG) { + // get lightGallery core plugin instance + this.core = instance; + this.$LG = $LG; + this.settings = __assign(__assign({}, zoomSettings), this.core.settings); + return this; + } + // Append Zoom controls. Actual size, Zoom-in, Zoom-out + Zoom.prototype.buildTemplates = function () { + var zoomIcons = this.settings.showZoomInOutIcons + ? "" + : ''; + if (this.settings.actualSize) { + zoomIcons += ""; + } + this.core.outer.addClass('lg-use-transition-for-zoom'); + this.core.$toolbar.first().append(zoomIcons); + }; + /** + * @desc Enable zoom option only once the image is completely loaded + * If zoomFromOrigin is true, Zoom is enabled once the dummy image has been inserted + * + * Zoom styles are defined under lg-zoomable CSS class. + */ + Zoom.prototype.enableZoom = function (event) { + var _this = this; + // delay will be 0 except first time + var _speed = this.settings.enableZoomAfter + event.detail.delay; + // set _speed value 0 if gallery opened from direct url and if it is first slide + if (this.$LG('body').first().hasClass('lg-from-hash') && + event.detail.delay) { + // will execute only once + _speed = 0; + } + else { + // Remove lg-from-hash to enable starting animation. + this.$LG('body').first().removeClass('lg-from-hash'); + } + this.zoomableTimeout = setTimeout(function () { + if (!_this.isImageSlide(_this.core.index)) { + return; + } + _this.core.getSlideItem(event.detail.index).addClass('lg-zoomable'); + if (event.detail.index === _this.core.index) { + _this.setZoomEssentials(); + } + }, _speed + 30); + }; + Zoom.prototype.enableZoomOnSlideItemLoad = function () { + // Add zoomable class + this.core.LGel.on(lGEvents.slideItemLoad + ".zoom", this.enableZoom.bind(this)); + }; + Zoom.prototype.getDragCords = function (e) { + return { + x: e.pageX, + y: e.pageY, + }; + }; + Zoom.prototype.getSwipeCords = function (e) { + var x = e.touches[0].pageX; + var y = e.touches[0].pageY; + return { + x: x, + y: y, + }; + }; + Zoom.prototype.getDragAllowedAxises = function (scale, scaleDiff) { + var $image = this.core + .getSlideItem(this.core.index) + .find('.lg-image') + .first() + .get(); + var height = 0; + var width = 0; + var rect = $image.getBoundingClientRect(); + if (scale) { + height = $image.offsetHeight * scale; + width = $image.offsetWidth * scale; + } + else if (scaleDiff) { + height = rect.height + scaleDiff * rect.height; + width = rect.width + scaleDiff * rect.width; + } + else { + height = rect.height; + width = rect.width; + } + var allowY = height > this.containerRect.height; + var allowX = width > this.containerRect.width; + return { + allowX: allowX, + allowY: allowY, + }; + }; + Zoom.prototype.setZoomEssentials = function () { + this.containerRect = this.core.$content.get().getBoundingClientRect(); + }; + /** + * @desc Image zoom + * Translate the wrap and scale the image to get better user experience + * + * @param {String} scale - Zoom decrement/increment value + */ + Zoom.prototype.zoomImage = function (scale, scaleDiff, reposition, resetToMax) { + if (Math.abs(scaleDiff) <= 0) + return; + var offsetX = this.containerRect.width / 2 + this.containerRect.left; + var offsetY = this.containerRect.height / 2 + + this.containerRect.top + + this.scrollTop; + var originalX; + var originalY; + if (scale === 1) { + this.positionChanged = false; + } + var dragAllowedAxises = this.getDragAllowedAxises(0, scaleDiff); + var allowY = dragAllowedAxises.allowY, allowX = dragAllowedAxises.allowX; + if (this.positionChanged) { + originalX = this.left / (this.scale - scaleDiff); + originalY = this.top / (this.scale - scaleDiff); + this.pageX = offsetX - originalX; + this.pageY = offsetY - originalY; + this.positionChanged = false; + } + var possibleSwipeCords = this.getPossibleSwipeDragCords(scaleDiff); + var x; + var y; + var _x = offsetX - this.pageX; + var _y = offsetY - this.pageY; + if (scale - scaleDiff > 1) { + var scaleVal = (scale - scaleDiff) / Math.abs(scaleDiff); + _x = + (scaleDiff < 0 ? -_x : _x) + + this.left * (scaleVal + (scaleDiff < 0 ? -1 : 1)); + _y = + (scaleDiff < 0 ? -_y : _y) + + this.top * (scaleVal + (scaleDiff < 0 ? -1 : 1)); + x = _x / scaleVal; + y = _y / scaleVal; + } + else { + var scaleVal = (scale - scaleDiff) * scaleDiff; + x = _x * scaleVal; + y = _y * scaleVal; + } + if (reposition) { + if (allowX) { + if (this.isBeyondPossibleLeft(x, possibleSwipeCords.minX)) { + x = possibleSwipeCords.minX; + } + else if (this.isBeyondPossibleRight(x, possibleSwipeCords.maxX)) { + x = possibleSwipeCords.maxX; + } + } + else { + if (scale > 1) { + if (x < possibleSwipeCords.minX) { + x = possibleSwipeCords.minX; + } + else if (x > possibleSwipeCords.maxX) { + x = possibleSwipeCords.maxX; + } + } + } + // @todo fix this + if (allowY) { + if (this.isBeyondPossibleTop(y, possibleSwipeCords.minY)) { + y = possibleSwipeCords.minY; + } + else if (this.isBeyondPossibleBottom(y, possibleSwipeCords.maxY)) { + y = possibleSwipeCords.maxY; + } + } + else { + // If the translate value based on index of beyond the viewport, utilize the available space to prevent image being cut out + if (scale > 1) { + //If image goes beyond viewport top, use the minim possible translate value + if (y < possibleSwipeCords.minY) { + y = possibleSwipeCords.minY; + } + else if (y > possibleSwipeCords.maxY) { + y = possibleSwipeCords.maxY; + } + } + } + } + this.setZoomStyles({ + x: x, + y: y, + scale: scale, + }); + this.left = x; + this.top = y; + if (resetToMax) { + this.setZoomImageSize(); + } + }; + Zoom.prototype.resetImageTranslate = function (index) { + if (!this.isImageSlide(index)) { + return; + } + var $image = this.core.getSlideItem(index).find('.lg-image').first(); + this.imageReset = false; + $image.removeClass('reset-transition reset-transition-y reset-transition-x'); + this.core.outer.removeClass('lg-actual-size'); + $image.css('width', 'auto').css('height', 'auto'); + setTimeout(function () { + $image.removeClass('no-transition'); + }, 10); + }; + Zoom.prototype.setZoomImageSize = function () { + var _this = this; + var $image = this.core + .getSlideItem(this.core.index) + .find('.lg-image') + .first(); + setTimeout(function () { + var actualSizeScale = _this.getCurrentImageActualSizeScale(); + if (_this.scale >= actualSizeScale) { + $image.addClass('no-transition'); + _this.imageReset = true; + } + }, ZOOM_TRANSITION_DURATION); + setTimeout(function () { + var actualSizeScale = _this.getCurrentImageActualSizeScale(); + if (_this.scale >= actualSizeScale) { + var dragAllowedAxises = _this.getDragAllowedAxises(_this.scale); + $image + .css('width', $image.get().naturalWidth + 'px') + .css('height', $image.get().naturalHeight + 'px'); + _this.core.outer.addClass('lg-actual-size'); + if (dragAllowedAxises.allowX && dragAllowedAxises.allowY) { + $image.addClass('reset-transition'); + } + else if (dragAllowedAxises.allowX && + !dragAllowedAxises.allowY) { + $image.addClass('reset-transition-x'); + } + else if (!dragAllowedAxises.allowX && + dragAllowedAxises.allowY) { + $image.addClass('reset-transition-y'); + } + } + }, ZOOM_TRANSITION_DURATION + 50); + }; + /** + * @desc apply scale3d to image and translate to image wrap + * @param {style} X,Y and scale + */ + Zoom.prototype.setZoomStyles = function (style) { + var $imageWrap = this.core + .getSlideItem(this.core.index) + .find('.lg-img-wrap') + .first(); + var $image = this.core + .getSlideItem(this.core.index) + .find('.lg-image') + .first(); + var $dummyImage = this.core.outer + .find('.lg-current .lg-dummy-img') + .first(); + this.scale = style.scale; + $image.css('transform', 'scale3d(' + style.scale + ', ' + style.scale + ', 1)'); + $dummyImage.css('transform', 'scale3d(' + style.scale + ', ' + style.scale + ', 1)'); + var transform = 'translate3d(' + style.x + 'px, ' + style.y + 'px, 0)'; + $imageWrap.css('transform', transform); + }; + /** + * @param index - Index of the current slide + * @param event - event will be available only if the function is called on clicking/taping the imags + */ + Zoom.prototype.setActualSize = function (index, event) { + var _this = this; + if (this.zoomInProgress) { + return; + } + this.zoomInProgress = true; + var currentItem = this.core.galleryItems[this.core.index]; + this.resetImageTranslate(index); + setTimeout(function () { + // Allow zoom only on image + if (!currentItem.src || + _this.core.outer.hasClass('lg-first-slide-loading')) { + return; + } + var scale = _this.getCurrentImageActualSizeScale(); + var prevScale = _this.scale; + if (_this.core.outer.hasClass('lg-zoomed')) { + _this.scale = 1; + } + else { + _this.scale = _this.getScale(scale); + } + _this.setPageCords(event); + _this.beginZoom(_this.scale); + _this.zoomImage(_this.scale, _this.scale - prevScale, true, true); + }, 50); + setTimeout(function () { + _this.core.outer.removeClass('lg-grabbing').addClass('lg-grab'); + }, 60); + setTimeout(function () { + _this.zoomInProgress = false; + }, ZOOM_TRANSITION_DURATION + 110); + }; + Zoom.prototype.getNaturalWidth = function (index) { + var $image = this.core.getSlideItem(index).find('.lg-image').first(); + var naturalWidth = this.core.galleryItems[index].width; + return naturalWidth + ? parseFloat(naturalWidth) + : $image.get().naturalWidth; + }; + Zoom.prototype.getActualSizeScale = function (naturalWidth, width) { + var _scale; + var scale; + if (naturalWidth >= width) { + _scale = naturalWidth / width; + scale = _scale || 2; + } + else { + scale = 1; + } + return scale; + }; + Zoom.prototype.getCurrentImageActualSizeScale = function () { + var $image = this.core + .getSlideItem(this.core.index) + .find('.lg-image') + .first(); + var width = $image.get().offsetWidth; + var naturalWidth = this.getNaturalWidth(this.core.index) || width; + return this.getActualSizeScale(naturalWidth, width); + }; + Zoom.prototype.getPageCords = function (event) { + var cords = {}; + if (event) { + cords.x = event.pageX || event.touches[0].pageX; + cords.y = event.pageY || event.touches[0].pageY; + } + else { + var containerRect = this.core.$content + .get() + .getBoundingClientRect(); + cords.x = containerRect.width / 2 + containerRect.left; + cords.y = + containerRect.height / 2 + this.scrollTop + containerRect.top; + } + return cords; + }; + Zoom.prototype.setPageCords = function (event) { + var pageCords = this.getPageCords(event); + this.pageX = pageCords.x; + this.pageY = pageCords.y; + }; + Zoom.prototype.manageActualPixelClassNames = function () { + var $actualSize = this.core.getElementById('lg-actual-size'); + $actualSize + .removeClass(this.settings.actualSizeIcons.zoomIn) + .addClass(this.settings.actualSizeIcons.zoomOut); + }; + // If true, zoomed - in else zoomed out + Zoom.prototype.beginZoom = function (scale) { + this.core.outer.removeClass('lg-zoom-drag-transition lg-zoom-dragging'); + if (scale > 1) { + this.core.outer.addClass('lg-zoomed'); + this.manageActualPixelClassNames(); + } + else { + this.resetZoom(); + } + return scale > 1; + }; + Zoom.prototype.getScale = function (scale) { + var actualSizeScale = this.getCurrentImageActualSizeScale(); + if (scale < 1) { + scale = 1; + } + else if (scale > actualSizeScale) { + scale = actualSizeScale; + } + return scale; + }; + Zoom.prototype.init = function () { + var _this = this; + if (!this.settings.zoom) { + return; + } + this.buildTemplates(); + this.enableZoomOnSlideItemLoad(); + var tapped = null; + this.core.outer.on('dblclick.lg', function (event) { + if (!_this.$LG(event.target).hasClass('lg-image')) { + return; + } + _this.setActualSize(_this.core.index, event); + }); + this.core.outer.on('touchstart.lg', function (event) { + var $target = _this.$LG(event.target); + if (event.touches.length === 1 && $target.hasClass('lg-image')) { + if (!tapped) { + tapped = setTimeout(function () { + tapped = null; + }, 300); + } + else { + clearTimeout(tapped); + tapped = null; + event.preventDefault(); + _this.setActualSize(_this.core.index, event); + } + } + }); + this.core.LGel.on(lGEvents.containerResize + ".zoom " + lGEvents.rotateRight + ".zoom " + lGEvents.rotateLeft + ".zoom " + lGEvents.flipHorizontal + ".zoom " + lGEvents.flipVertical + ".zoom", function () { + if (!_this.core.lgOpened || + !_this.isImageSlide(_this.core.index) || + _this.core.touchAction) { + return; + } + var _LGel = _this.core + .getSlideItem(_this.core.index) + .find('.lg-img-wrap') + .first(); + _this.top = 0; + _this.left = 0; + _this.setZoomEssentials(); + _this.setZoomSwipeStyles(_LGel, { x: 0, y: 0 }); + _this.positionChanged = true; + }); + // Update zoom on resize and orientationchange + this.$LG(window).on("scroll.lg.zoom.global" + this.core.lgId, function () { + if (!_this.core.lgOpened) + return; + _this.scrollTop = _this.$LG(window).scrollTop(); + }); + this.core.getElementById('lg-zoom-out').on('click.lg', function () { + // Allow zoom only on image + if (!_this.isImageSlide(_this.core.index)) { + return; + } + var timeout = 0; + if (_this.imageReset) { + _this.resetImageTranslate(_this.core.index); + timeout = 50; + } + setTimeout(function () { + var scale = _this.scale - _this.settings.scale; + if (scale < 1) { + scale = 1; + } + _this.beginZoom(scale); + _this.zoomImage(scale, -_this.settings.scale, true, !_this.settings.infiniteZoom); + }, timeout); + }); + this.core.getElementById('lg-zoom-in').on('click.lg', function () { + _this.zoomIn(); + }); + this.core.getElementById('lg-actual-size').on('click.lg', function () { + _this.setActualSize(_this.core.index); + }); + this.core.LGel.on(lGEvents.beforeOpen + ".zoom", function () { + _this.core.outer.find('.lg-item').removeClass('lg-zoomable'); + }); + this.core.LGel.on(lGEvents.afterOpen + ".zoom", function () { + _this.scrollTop = _this.$LG(window).scrollTop(); + // Set the initial value center + _this.pageX = _this.core.outer.width() / 2; + _this.pageY = _this.core.outer.height() / 2 + _this.scrollTop; + _this.scale = 1; + }); + // Reset zoom on slide change + this.core.LGel.on(lGEvents.afterSlide + ".zoom", function (event) { + var prevIndex = event.detail.prevIndex; + _this.scale = 1; + _this.positionChanged = false; + _this.zoomInProgress = false; + _this.resetZoom(prevIndex); + _this.resetImageTranslate(prevIndex); + if (_this.isImageSlide(_this.core.index)) { + _this.setZoomEssentials(); + } + }); + // Drag option after zoom + this.zoomDrag(); + this.pinchZoom(); + this.zoomSwipe(); + // Store the zoomable timeout value just to clear it while closing + this.zoomableTimeout = false; + this.positionChanged = false; + this.zoomInProgress = false; + }; + Zoom.prototype.zoomIn = function () { + // Allow zoom only on image + if (!this.isImageSlide(this.core.index)) { + return; + } + var scale = this.scale + this.settings.scale; + if (!this.settings.infiniteZoom) { + scale = this.getScale(scale); + } + this.beginZoom(scale); + this.zoomImage(scale, Math.min(this.settings.scale, scale - this.scale), true, !this.settings.infiniteZoom); + }; + // Reset zoom effect + Zoom.prototype.resetZoom = function (index) { + this.core.outer.removeClass('lg-zoomed lg-zoom-drag-transition'); + var $actualSize = this.core.getElementById('lg-actual-size'); + var $item = this.core.getSlideItem(index !== undefined ? index : this.core.index); + $actualSize + .removeClass(this.settings.actualSizeIcons.zoomOut) + .addClass(this.settings.actualSizeIcons.zoomIn); + $item.find('.lg-img-wrap').first().removeAttr('style'); + $item.find('.lg-image').first().removeAttr('style'); + this.scale = 1; + this.left = 0; + this.top = 0; + // Reset pagx pagy values to center + this.setPageCords(); + }; + Zoom.prototype.getTouchDistance = function (e) { + return Math.sqrt((e.touches[0].pageX - e.touches[1].pageX) * + (e.touches[0].pageX - e.touches[1].pageX) + + (e.touches[0].pageY - e.touches[1].pageY) * + (e.touches[0].pageY - e.touches[1].pageY)); + }; + Zoom.prototype.pinchZoom = function () { + var _this = this; + var startDist = 0; + var pinchStarted = false; + var initScale = 1; + var prevScale = 0; + var $item = this.core.getSlideItem(this.core.index); + this.core.outer.on('touchstart.lg', function (e) { + $item = _this.core.getSlideItem(_this.core.index); + if (!_this.isImageSlide(_this.core.index)) { + return; + } + if (e.touches.length === 2) { + e.preventDefault(); + if (_this.core.outer.hasClass('lg-first-slide-loading')) { + return; + } + initScale = _this.scale || 1; + _this.core.outer.removeClass('lg-zoom-drag-transition lg-zoom-dragging'); + _this.setPageCords(e); + _this.resetImageTranslate(_this.core.index); + _this.core.touchAction = 'pinch'; + startDist = _this.getTouchDistance(e); + } + }); + this.core.$inner.on('touchmove.lg', function (e) { + if (e.touches.length === 2 && + _this.core.touchAction === 'pinch' && + (_this.$LG(e.target).hasClass('lg-item') || + $item.get().contains(e.target))) { + e.preventDefault(); + var endDist = _this.getTouchDistance(e); + var distance = startDist - endDist; + if (!pinchStarted && Math.abs(distance) > 5) { + pinchStarted = true; + } + if (pinchStarted) { + prevScale = _this.scale; + var _scale = Math.max(1, initScale + -distance * 0.02); + _this.scale = + Math.round((_scale + Number.EPSILON) * 100) / 100; + var diff = _this.scale - prevScale; + _this.zoomImage(_this.scale, Math.round((diff + Number.EPSILON) * 100) / 100, false, false); + } + } + }); + this.core.$inner.on('touchend.lg', function (e) { + if (_this.core.touchAction === 'pinch' && + (_this.$LG(e.target).hasClass('lg-item') || + $item.get().contains(e.target))) { + pinchStarted = false; + startDist = 0; + if (_this.scale <= 1) { + _this.resetZoom(); + } + else { + var actualSizeScale = _this.getCurrentImageActualSizeScale(); + if (_this.scale >= actualSizeScale) { + var scaleDiff = actualSizeScale - _this.scale; + if (scaleDiff === 0) { + scaleDiff = 0.01; + } + _this.zoomImage(actualSizeScale, scaleDiff, false, true); + } + _this.manageActualPixelClassNames(); + _this.core.outer.addClass('lg-zoomed'); + } + _this.core.touchAction = undefined; + } + }); + }; + Zoom.prototype.touchendZoom = function (startCoords, endCoords, allowX, allowY, touchDuration) { + var distanceXnew = endCoords.x - startCoords.x; + var distanceYnew = endCoords.y - startCoords.y; + var speedX = Math.abs(distanceXnew) / touchDuration + 1; + var speedY = Math.abs(distanceYnew) / touchDuration + 1; + if (speedX > 2) { + speedX += 1; + } + if (speedY > 2) { + speedY += 1; + } + distanceXnew = distanceXnew * speedX; + distanceYnew = distanceYnew * speedY; + var _LGel = this.core + .getSlideItem(this.core.index) + .find('.lg-img-wrap') + .first(); + var distance = {}; + distance.x = this.left + distanceXnew; + distance.y = this.top + distanceYnew; + var possibleSwipeCords = this.getPossibleSwipeDragCords(); + if (Math.abs(distanceXnew) > 15 || Math.abs(distanceYnew) > 15) { + if (allowY) { + if (this.isBeyondPossibleTop(distance.y, possibleSwipeCords.minY)) { + distance.y = possibleSwipeCords.minY; + } + else if (this.isBeyondPossibleBottom(distance.y, possibleSwipeCords.maxY)) { + distance.y = possibleSwipeCords.maxY; + } + } + if (allowX) { + if (this.isBeyondPossibleLeft(distance.x, possibleSwipeCords.minX)) { + distance.x = possibleSwipeCords.minX; + } + else if (this.isBeyondPossibleRight(distance.x, possibleSwipeCords.maxX)) { + distance.x = possibleSwipeCords.maxX; + } + } + if (allowY) { + this.top = distance.y; + } + else { + distance.y = this.top; + } + if (allowX) { + this.left = distance.x; + } + else { + distance.x = this.left; + } + this.setZoomSwipeStyles(_LGel, distance); + this.positionChanged = true; + } + }; + Zoom.prototype.getZoomSwipeCords = function (startCoords, endCoords, allowX, allowY, possibleSwipeCords) { + var distance = {}; + if (allowY) { + distance.y = this.top + (endCoords.y - startCoords.y); + if (this.isBeyondPossibleTop(distance.y, possibleSwipeCords.minY)) { + var diffMinY = possibleSwipeCords.minY - distance.y; + distance.y = possibleSwipeCords.minY - diffMinY / 6; + } + else if (this.isBeyondPossibleBottom(distance.y, possibleSwipeCords.maxY)) { + var diffMaxY = distance.y - possibleSwipeCords.maxY; + distance.y = possibleSwipeCords.maxY + diffMaxY / 6; + } + } + else { + distance.y = this.top; + } + if (allowX) { + distance.x = this.left + (endCoords.x - startCoords.x); + if (this.isBeyondPossibleLeft(distance.x, possibleSwipeCords.minX)) { + var diffMinX = possibleSwipeCords.minX - distance.x; + distance.x = possibleSwipeCords.minX - diffMinX / 6; + } + else if (this.isBeyondPossibleRight(distance.x, possibleSwipeCords.maxX)) { + var difMaxX = distance.x - possibleSwipeCords.maxX; + distance.x = possibleSwipeCords.maxX + difMaxX / 6; + } + } + else { + distance.x = this.left; + } + return distance; + }; + Zoom.prototype.isBeyondPossibleLeft = function (x, minX) { + return x >= minX; + }; + Zoom.prototype.isBeyondPossibleRight = function (x, maxX) { + return x <= maxX; + }; + Zoom.prototype.isBeyondPossibleTop = function (y, minY) { + return y >= minY; + }; + Zoom.prototype.isBeyondPossibleBottom = function (y, maxY) { + return y <= maxY; + }; + Zoom.prototype.isImageSlide = function (index) { + var currentItem = this.core.galleryItems[index]; + return this.core.getSlideType(currentItem) === 'image'; + }; + Zoom.prototype.getPossibleSwipeDragCords = function (scale) { + var $image = this.core + .getSlideItem(this.core.index) + .find('.lg-image') + .first(); + var bottom = this.core.mediaContainerPosition.bottom; + var imgRect = $image.get().getBoundingClientRect(); + var imageHeight = imgRect.height; + var imageWidth = imgRect.width; + if (scale) { + imageHeight = imageHeight + scale * imageHeight; + imageWidth = imageWidth + scale * imageWidth; + } + var minY = (imageHeight - this.containerRect.height) / 2; + var maxY = (this.containerRect.height - imageHeight) / 2 + bottom; + var minX = (imageWidth - this.containerRect.width) / 2; + var maxX = (this.containerRect.width - imageWidth) / 2; + var possibleSwipeCords = { + minY: minY, + maxY: maxY, + minX: minX, + maxX: maxX, + }; + return possibleSwipeCords; + }; + Zoom.prototype.setZoomSwipeStyles = function (LGel, distance) { + LGel.css('transform', 'translate3d(' + distance.x + 'px, ' + distance.y + 'px, 0)'); + }; + Zoom.prototype.zoomSwipe = function () { + var _this = this; + var startCoords = {}; + var endCoords = {}; + var isMoved = false; + // Allow x direction drag + var allowX = false; + // Allow Y direction drag + var allowY = false; + var startTime = new Date(); + var endTime = new Date(); + var possibleSwipeCords; + var _LGel; + var $item = this.core.getSlideItem(this.core.index); + this.core.$inner.on('touchstart.lg', function (e) { + // Allow zoom only on image + if (!_this.isImageSlide(_this.core.index)) { + return; + } + $item = _this.core.getSlideItem(_this.core.index); + if ((_this.$LG(e.target).hasClass('lg-item') || + $item.get().contains(e.target)) && + e.touches.length === 1 && + _this.core.outer.hasClass('lg-zoomed')) { + e.preventDefault(); + startTime = new Date(); + _this.core.touchAction = 'zoomSwipe'; + _LGel = _this.core + .getSlideItem(_this.core.index) + .find('.lg-img-wrap') + .first(); + var dragAllowedAxises = _this.getDragAllowedAxises(0); + allowY = dragAllowedAxises.allowY; + allowX = dragAllowedAxises.allowX; + if (allowX || allowY) { + startCoords = _this.getSwipeCords(e); + } + possibleSwipeCords = _this.getPossibleSwipeDragCords(); + // reset opacity and transition duration + _this.core.outer.addClass('lg-zoom-dragging lg-zoom-drag-transition'); + } + }); + this.core.$inner.on('touchmove.lg', function (e) { + if (e.touches.length === 1 && + _this.core.touchAction === 'zoomSwipe' && + (_this.$LG(e.target).hasClass('lg-item') || + $item.get().contains(e.target))) { + e.preventDefault(); + _this.core.touchAction = 'zoomSwipe'; + endCoords = _this.getSwipeCords(e); + var distance = _this.getZoomSwipeCords(startCoords, endCoords, allowX, allowY, possibleSwipeCords); + if (Math.abs(endCoords.x - startCoords.x) > 15 || + Math.abs(endCoords.y - startCoords.y) > 15) { + isMoved = true; + _this.setZoomSwipeStyles(_LGel, distance); + } + } + }); + this.core.$inner.on('touchend.lg', function (e) { + if (_this.core.touchAction === 'zoomSwipe' && + (_this.$LG(e.target).hasClass('lg-item') || + $item.get().contains(e.target))) { + e.preventDefault(); + _this.core.touchAction = undefined; + _this.core.outer.removeClass('lg-zoom-dragging'); + if (!isMoved) { + return; + } + isMoved = false; + endTime = new Date(); + var touchDuration = endTime.valueOf() - startTime.valueOf(); + _this.touchendZoom(startCoords, endCoords, allowX, allowY, touchDuration); + } + }); + }; + Zoom.prototype.zoomDrag = function () { + var _this = this; + var startCoords = {}; + var endCoords = {}; + var isDragging = false; + var isMoved = false; + // Allow x direction drag + var allowX = false; + // Allow Y direction drag + var allowY = false; + var startTime; + var endTime; + var possibleSwipeCords; + var _LGel; + this.core.outer.on('mousedown.lg.zoom', function (e) { + // Allow zoom only on image + if (!_this.isImageSlide(_this.core.index)) { + return; + } + var $item = _this.core.getSlideItem(_this.core.index); + if (_this.$LG(e.target).hasClass('lg-item') || + $item.get().contains(e.target)) { + startTime = new Date(); + _LGel = _this.core + .getSlideItem(_this.core.index) + .find('.lg-img-wrap') + .first(); + var dragAllowedAxises = _this.getDragAllowedAxises(0); + allowY = dragAllowedAxises.allowY; + allowX = dragAllowedAxises.allowX; + if (_this.core.outer.hasClass('lg-zoomed')) { + if (_this.$LG(e.target).hasClass('lg-object') && + (allowX || allowY)) { + e.preventDefault(); + startCoords = _this.getDragCords(e); + possibleSwipeCords = _this.getPossibleSwipeDragCords(); + isDragging = true; + _this.core.outer + .removeClass('lg-grab') + .addClass('lg-grabbing lg-zoom-drag-transition lg-zoom-dragging'); + // reset opacity and transition duration + } + } + } + }); + this.$LG(window).on("mousemove.lg.zoom.global" + this.core.lgId, function (e) { + if (isDragging) { + isMoved = true; + endCoords = _this.getDragCords(e); + var distance = _this.getZoomSwipeCords(startCoords, endCoords, allowX, allowY, possibleSwipeCords); + _this.setZoomSwipeStyles(_LGel, distance); + } + }); + this.$LG(window).on("mouseup.lg.zoom.global" + this.core.lgId, function (e) { + if (isDragging) { + endTime = new Date(); + isDragging = false; + _this.core.outer.removeClass('lg-zoom-dragging'); + // Fix for chrome mouse move on click + if (isMoved && + (startCoords.x !== endCoords.x || + startCoords.y !== endCoords.y)) { + endCoords = _this.getDragCords(e); + var touchDuration = endTime.valueOf() - startTime.valueOf(); + _this.touchendZoom(startCoords, endCoords, allowX, allowY, touchDuration); + } + isMoved = false; + } + _this.core.outer.removeClass('lg-grabbing').addClass('lg-grab'); + }); + }; + Zoom.prototype.closeGallery = function () { + this.resetZoom(); + this.zoomInProgress = false; + }; + Zoom.prototype.destroy = function () { + // Unbind all events added by lightGallery zoom plugin + this.$LG(window).off(".lg.zoom.global" + this.core.lgId); + this.core.LGel.off('.lg.zoom'); + this.core.LGel.off('.zoom'); + clearTimeout(this.zoomableTimeout); + this.zoomableTimeout = false; + }; + return Zoom; + }()); + + return Zoom; + +}))); +//# sourceMappingURL=lg-zoom.umd.js.map + +; +/*! + * lightgallery | 2.7.2-beta.1 | June 25th 2023 + * http://www.lightgalleryjs.com/ + * Copyright (c) 2020 Sachin Neravath; + * @license GPLv3 + */ + +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lgRotate = factory()); +}(this, (function () { 'use strict'; + + /*! ***************************************************************************** + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** */ + + var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + + /** + * List of lightGallery events + * All events should be documented here + * Below interfaces are used to build the website documentations + * */ + var lGEvents = { + afterAppendSlide: 'lgAfterAppendSlide', + init: 'lgInit', + hasVideo: 'lgHasVideo', + containerResize: 'lgContainerResize', + updateSlides: 'lgUpdateSlides', + afterAppendSubHtml: 'lgAfterAppendSubHtml', + beforeOpen: 'lgBeforeOpen', + afterOpen: 'lgAfterOpen', + slideItemLoad: 'lgSlideItemLoad', + beforeSlide: 'lgBeforeSlide', + afterSlide: 'lgAfterSlide', + posterClick: 'lgPosterClick', + dragStart: 'lgDragStart', + dragMove: 'lgDragMove', + dragEnd: 'lgDragEnd', + beforeNextSlide: 'lgBeforeNextSlide', + beforePrevSlide: 'lgBeforePrevSlide', + beforeClose: 'lgBeforeClose', + afterClose: 'lgAfterClose', + rotateLeft: 'lgRotateLeft', + rotateRight: 'lgRotateRight', + flipHorizontal: 'lgFlipHorizontal', + flipVertical: 'lgFlipVertical', + autoplay: 'lgAutoplay', + autoplayStart: 'lgAutoplayStart', + autoplayStop: 'lgAutoplayStop', + }; + + var rotateSettings = { + rotate: true, + rotateSpeed: 400, + rotateLeft: true, + rotateRight: true, + flipHorizontal: true, + flipVertical: true, + rotatePluginStrings: { + flipVertical: 'Flip vertical', + flipHorizontal: 'Flip horizontal', + rotateLeft: 'Rotate left', + rotateRight: 'Rotate right', + }, + }; + + var Rotate = /** @class */ (function () { + function Rotate(instance, $LG) { + // get lightGallery core plugin instance + this.core = instance; + this.$LG = $LG; + // extend module default settings with lightGallery core settings + this.settings = __assign(__assign({}, rotateSettings), this.core.settings); + return this; + } + Rotate.prototype.buildTemplates = function () { + var rotateIcons = ''; + if (this.settings.flipVertical) { + rotateIcons += ""; + } + if (this.settings.flipHorizontal) { + rotateIcons += ""; + } + if (this.settings.rotateLeft) { + rotateIcons += ""; + } + if (this.settings.rotateRight) { + rotateIcons += ""; + } + this.core.$toolbar.append(rotateIcons); + }; + Rotate.prototype.init = function () { + var _this = this; + if (!this.settings.rotate) { + return; + } + this.buildTemplates(); + // Save rotate config for each item to persist its rotate, flip values + // even after navigating to diferent slides + this.rotateValuesList = {}; + // event triggered after appending slide content + this.core.LGel.on(lGEvents.slideItemLoad + ".rotate", function (event) { + var index = event.detail.index; + var rotateEl = _this.core + .getSlideItem(index) + .find('.lg-img-rotate') + .get(); + if (!rotateEl) { + var imageWrap = _this.core + .getSlideItem(index) + .find('.lg-object') + .first(); + imageWrap.wrap('lg-img-rotate'); + //this.rotateValuesList[this.core.index] + _this.core + .getSlideItem(_this.core.index) + .find('.lg-img-rotate') + .css('transition-duration', _this.settings.rotateSpeed + 'ms'); + } + }); + this.core.outer + .find('#lg-rotate-left') + .first() + .on('click.lg', this.rotateLeft.bind(this)); + this.core.outer + .find('#lg-rotate-right') + .first() + .on('click.lg', this.rotateRight.bind(this)); + this.core.outer + .find('#lg-flip-hor') + .first() + .on('click.lg', this.flipHorizontal.bind(this)); + this.core.outer + .find('#lg-flip-ver') + .first() + .on('click.lg', this.flipVertical.bind(this)); + // Reset rotate on slide change + this.core.LGel.on(lGEvents.beforeSlide + ".rotate", function (event) { + if (!_this.rotateValuesList[event.detail.index]) { + _this.rotateValuesList[event.detail.index] = { + rotate: 0, + flipHorizontal: 1, + flipVertical: 1, + }; + } + }); + }; + Rotate.prototype.applyStyles = function () { + var $image = this.core + .getSlideItem(this.core.index) + .find('.lg-img-rotate') + .first(); + $image.css('transform', 'rotate(' + + this.rotateValuesList[this.core.index].rotate + + 'deg)' + + ' scale3d(' + + this.rotateValuesList[this.core.index].flipHorizontal + + ', ' + + this.rotateValuesList[this.core.index].flipVertical + + ', 1)'); + }; + Rotate.prototype.rotateLeft = function () { + this.rotateValuesList[this.core.index].rotate -= 90; + this.applyStyles(); + this.triggerEvents(lGEvents.rotateLeft, { + rotate: this.rotateValuesList[this.core.index].rotate, + }); + }; + Rotate.prototype.rotateRight = function () { + this.rotateValuesList[this.core.index].rotate += 90; + this.applyStyles(); + this.triggerEvents(lGEvents.rotateRight, { + rotate: this.rotateValuesList[this.core.index].rotate, + }); + }; + Rotate.prototype.getCurrentRotation = function (el) { + if (!el) { + return 0; + } + var st = this.$LG(el).style(); + var tm = st.getPropertyValue('-webkit-transform') || + st.getPropertyValue('-moz-transform') || + st.getPropertyValue('-ms-transform') || + st.getPropertyValue('-o-transform') || + st.getPropertyValue('transform') || + 'none'; + if (tm !== 'none') { + var values = tm.split('(')[1].split(')')[0].split(','); + if (values) { + var angle = Math.round(Math.atan2(values[1], values[0]) * (180 / Math.PI)); + return angle < 0 ? angle + 360 : angle; + } + } + return 0; + }; + Rotate.prototype.flipHorizontal = function () { + var rotateEl = this.core + .getSlideItem(this.core.index) + .find('.lg-img-rotate') + .first() + .get(); + var currentRotation = this.getCurrentRotation(rotateEl); + var rotateAxis = 'flipHorizontal'; + if (currentRotation === 90 || currentRotation === 270) { + rotateAxis = 'flipVertical'; + } + this.rotateValuesList[this.core.index][rotateAxis] *= -1; + this.applyStyles(); + this.triggerEvents(lGEvents.flipHorizontal, { + flipHorizontal: this.rotateValuesList[this.core.index][rotateAxis], + }); + }; + Rotate.prototype.flipVertical = function () { + var rotateEl = this.core + .getSlideItem(this.core.index) + .find('.lg-img-rotate') + .first() + .get(); + var currentRotation = this.getCurrentRotation(rotateEl); + var rotateAxis = 'flipVertical'; + if (currentRotation === 90 || currentRotation === 270) { + rotateAxis = 'flipHorizontal'; + } + this.rotateValuesList[this.core.index][rotateAxis] *= -1; + this.applyStyles(); + this.triggerEvents(lGEvents.flipVertical, { + flipVertical: this.rotateValuesList[this.core.index][rotateAxis], + }); + }; + Rotate.prototype.triggerEvents = function (event, detail) { + var _this = this; + setTimeout(function () { + _this.core.LGel.trigger(event, detail); + }, this.settings.rotateSpeed + 10); + }; + Rotate.prototype.isImageOrientationChanged = function () { + var rotateValue = this.rotateValuesList[this.core.index]; + var isRotated = Math.abs(rotateValue.rotate) % 360 !== 0; + var ifFlippedHor = rotateValue.flipHorizontal < 0; + var ifFlippedVer = rotateValue.flipVertical < 0; + return isRotated || ifFlippedHor || ifFlippedVer; + }; + Rotate.prototype.closeGallery = function () { + if (this.isImageOrientationChanged()) { + this.core.getSlideItem(this.core.index).css('opacity', 0); + } + this.rotateValuesList = {}; + }; + Rotate.prototype.destroy = function () { + // Unbind all events added by lightGallery rotate plugin + this.core.LGel.off('.lg.rotate'); + this.core.LGel.off('.rotate'); + }; + return Rotate; + }()); + + return Rotate; + +}))); +//# sourceMappingURL=lg-rotate.umd.js.map + +; +/*! + * lightgallery | 2.7.2-beta.1 | June 25th 2023 + * http://www.lightgalleryjs.com/ + * Copyright (c) 2020 Sachin Neravath; + * @license GPLv3 + */ + +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lgThumbnail = factory()); +}(this, (function () { 'use strict'; + + /*! ***************************************************************************** + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** */ + + var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + + var thumbnailsSettings = { + thumbnail: true, + animateThumb: true, + currentPagerPosition: 'middle', + alignThumbnails: 'middle', + thumbWidth: 100, + thumbHeight: '80px', + thumbMargin: 5, + appendThumbnailsTo: '.lg-components', + toggleThumb: false, + enableThumbDrag: true, + enableThumbSwipe: true, + thumbnailSwipeThreshold: 10, + loadYouTubeThumbnail: true, + youTubeThumbSize: 1, + thumbnailPluginStrings: { + toggleThumbnails: 'Toggle thumbnails', + }, + }; + + /** + * List of lightGallery events + * All events should be documented here + * Below interfaces are used to build the website documentations + * */ + var lGEvents = { + afterAppendSlide: 'lgAfterAppendSlide', + init: 'lgInit', + hasVideo: 'lgHasVideo', + containerResize: 'lgContainerResize', + updateSlides: 'lgUpdateSlides', + afterAppendSubHtml: 'lgAfterAppendSubHtml', + beforeOpen: 'lgBeforeOpen', + afterOpen: 'lgAfterOpen', + slideItemLoad: 'lgSlideItemLoad', + beforeSlide: 'lgBeforeSlide', + afterSlide: 'lgAfterSlide', + posterClick: 'lgPosterClick', + dragStart: 'lgDragStart', + dragMove: 'lgDragMove', + dragEnd: 'lgDragEnd', + beforeNextSlide: 'lgBeforeNextSlide', + beforePrevSlide: 'lgBeforePrevSlide', + beforeClose: 'lgBeforeClose', + afterClose: 'lgAfterClose', + rotateLeft: 'lgRotateLeft', + rotateRight: 'lgRotateRight', + flipHorizontal: 'lgFlipHorizontal', + flipVertical: 'lgFlipVertical', + autoplay: 'lgAutoplay', + autoplayStart: 'lgAutoplayStart', + autoplayStop: 'lgAutoplayStop', + }; + + var Thumbnail = /** @class */ (function () { + function Thumbnail(instance, $LG) { + this.thumbOuterWidth = 0; + this.thumbTotalWidth = 0; + this.translateX = 0; + this.thumbClickable = false; + // get lightGallery core plugin instance + this.core = instance; + this.$LG = $LG; + return this; + } + Thumbnail.prototype.init = function () { + // extend module default settings with lightGallery core settings + this.settings = __assign(__assign({}, thumbnailsSettings), this.core.settings); + this.thumbOuterWidth = 0; + this.thumbTotalWidth = + this.core.galleryItems.length * + (this.settings.thumbWidth + this.settings.thumbMargin); + // Thumbnail animation value + this.translateX = 0; + this.setAnimateThumbStyles(); + if (!this.core.settings.allowMediaOverlap) { + this.settings.toggleThumb = false; + } + if (this.settings.thumbnail) { + this.build(); + if (this.settings.animateThumb) { + if (this.settings.enableThumbDrag) { + this.enableThumbDrag(); + } + if (this.settings.enableThumbSwipe) { + this.enableThumbSwipe(); + } + this.thumbClickable = false; + } + else { + this.thumbClickable = true; + } + this.toggleThumbBar(); + this.thumbKeyPress(); + } + }; + Thumbnail.prototype.build = function () { + var _this = this; + this.setThumbMarkup(); + this.manageActiveClassOnSlideChange(); + this.$lgThumb.first().on('click.lg touchend.lg', function (e) { + var $target = _this.$LG(e.target); + if (!$target.hasAttribute('data-lg-item-id')) { + return; + } + setTimeout(function () { + // In IE9 and bellow touch does not support + // Go to slide if browser does not support css transitions + if (_this.thumbClickable && !_this.core.lgBusy) { + var index = parseInt($target.attr('data-lg-item-id')); + _this.core.slide(index, false, true, false); + } + }, 50); + }); + this.core.LGel.on(lGEvents.beforeSlide + ".thumb", function (event) { + var index = event.detail.index; + _this.animateThumb(index); + }); + this.core.LGel.on(lGEvents.beforeOpen + ".thumb", function () { + _this.thumbOuterWidth = _this.core.outer.get().offsetWidth; + }); + this.core.LGel.on(lGEvents.updateSlides + ".thumb", function () { + _this.rebuildThumbnails(); + }); + this.core.LGel.on(lGEvents.containerResize + ".thumb", function () { + if (!_this.core.lgOpened) + return; + setTimeout(function () { + _this.thumbOuterWidth = _this.core.outer.get().offsetWidth; + _this.animateThumb(_this.core.index); + _this.thumbOuterWidth = _this.core.outer.get().offsetWidth; + }, 50); + }); + }; + Thumbnail.prototype.setThumbMarkup = function () { + var thumbOuterClassNames = 'lg-thumb-outer '; + if (this.settings.alignThumbnails) { + thumbOuterClassNames += "lg-thumb-align-" + this.settings.alignThumbnails; + } + var html = "
\n
\n
\n
"; + this.core.outer.addClass('lg-has-thumb'); + if (this.settings.appendThumbnailsTo === '.lg-components') { + this.core.$lgComponents.append(html); + } + else { + this.core.outer.append(html); + } + this.$thumbOuter = this.core.outer.find('.lg-thumb-outer').first(); + this.$lgThumb = this.core.outer.find('.lg-thumb').first(); + if (this.settings.animateThumb) { + this.core.outer + .find('.lg-thumb') + .css('transition-duration', this.core.settings.speed + 'ms') + .css('width', this.thumbTotalWidth + 'px') + .css('position', 'relative'); + } + this.setThumbItemHtml(this.core.galleryItems); + }; + Thumbnail.prototype.enableThumbDrag = function () { + var _this = this; + var thumbDragUtils = { + cords: { + startX: 0, + endX: 0, + }, + isMoved: false, + newTranslateX: 0, + startTime: new Date(), + endTime: new Date(), + touchMoveTime: 0, + }; + var isDragging = false; + this.$thumbOuter.addClass('lg-grab'); + this.core.outer + .find('.lg-thumb') + .first() + .on('mousedown.lg.thumb', function (e) { + if (_this.thumbTotalWidth > _this.thumbOuterWidth) { + // execute only on .lg-object + e.preventDefault(); + thumbDragUtils.cords.startX = e.pageX; + thumbDragUtils.startTime = new Date(); + _this.thumbClickable = false; + isDragging = true; + // ** Fix for webkit cursor issue https://code.google.com/p/chromium/issues/detail?id=26723 + _this.core.outer.get().scrollLeft += 1; + _this.core.outer.get().scrollLeft -= 1; + // * + _this.$thumbOuter + .removeClass('lg-grab') + .addClass('lg-grabbing'); + } + }); + this.$LG(window).on("mousemove.lg.thumb.global" + this.core.lgId, function (e) { + if (!_this.core.lgOpened) + return; + if (isDragging) { + thumbDragUtils.cords.endX = e.pageX; + thumbDragUtils = _this.onThumbTouchMove(thumbDragUtils); + } + }); + this.$LG(window).on("mouseup.lg.thumb.global" + this.core.lgId, function () { + if (!_this.core.lgOpened) + return; + if (thumbDragUtils.isMoved) { + thumbDragUtils = _this.onThumbTouchEnd(thumbDragUtils); + } + else { + _this.thumbClickable = true; + } + if (isDragging) { + isDragging = false; + _this.$thumbOuter.removeClass('lg-grabbing').addClass('lg-grab'); + } + }); + }; + Thumbnail.prototype.enableThumbSwipe = function () { + var _this = this; + var thumbDragUtils = { + cords: { + startX: 0, + endX: 0, + }, + isMoved: false, + newTranslateX: 0, + startTime: new Date(), + endTime: new Date(), + touchMoveTime: 0, + }; + this.$lgThumb.on('touchstart.lg', function (e) { + if (_this.thumbTotalWidth > _this.thumbOuterWidth) { + e.preventDefault(); + thumbDragUtils.cords.startX = e.targetTouches[0].pageX; + _this.thumbClickable = false; + thumbDragUtils.startTime = new Date(); + } + }); + this.$lgThumb.on('touchmove.lg', function (e) { + if (_this.thumbTotalWidth > _this.thumbOuterWidth) { + e.preventDefault(); + thumbDragUtils.cords.endX = e.targetTouches[0].pageX; + thumbDragUtils = _this.onThumbTouchMove(thumbDragUtils); + } + }); + this.$lgThumb.on('touchend.lg', function () { + if (thumbDragUtils.isMoved) { + thumbDragUtils = _this.onThumbTouchEnd(thumbDragUtils); + } + else { + _this.thumbClickable = true; + } + }); + }; + // Rebuild thumbnails + Thumbnail.prototype.rebuildThumbnails = function () { + var _this = this; + // Remove transitions + this.$thumbOuter.addClass('lg-rebuilding-thumbnails'); + setTimeout(function () { + _this.thumbTotalWidth = + _this.core.galleryItems.length * + (_this.settings.thumbWidth + _this.settings.thumbMargin); + _this.$lgThumb.css('width', _this.thumbTotalWidth + 'px'); + _this.$lgThumb.empty(); + _this.setThumbItemHtml(_this.core.galleryItems); + _this.animateThumb(_this.core.index); + }, 50); + setTimeout(function () { + _this.$thumbOuter.removeClass('lg-rebuilding-thumbnails'); + }, 200); + }; + // @ts-check + Thumbnail.prototype.setTranslate = function (value) { + this.$lgThumb.css('transform', 'translate3d(-' + value + 'px, 0px, 0px)'); + }; + Thumbnail.prototype.getPossibleTransformX = function (left) { + if (left > this.thumbTotalWidth - this.thumbOuterWidth) { + left = this.thumbTotalWidth - this.thumbOuterWidth; + } + if (left < 0) { + left = 0; + } + return left; + }; + Thumbnail.prototype.animateThumb = function (index) { + this.$lgThumb.css('transition-duration', this.core.settings.speed + 'ms'); + if (this.settings.animateThumb) { + var position = 0; + switch (this.settings.currentPagerPosition) { + case 'left': + position = 0; + break; + case 'middle': + position = + this.thumbOuterWidth / 2 - this.settings.thumbWidth / 2; + break; + case 'right': + position = this.thumbOuterWidth - this.settings.thumbWidth; + } + this.translateX = + (this.settings.thumbWidth + this.settings.thumbMargin) * index - + 1 - + position; + if (this.translateX > this.thumbTotalWidth - this.thumbOuterWidth) { + this.translateX = this.thumbTotalWidth - this.thumbOuterWidth; + } + if (this.translateX < 0) { + this.translateX = 0; + } + this.setTranslate(this.translateX); + } + }; + Thumbnail.prototype.onThumbTouchMove = function (thumbDragUtils) { + thumbDragUtils.newTranslateX = this.translateX; + thumbDragUtils.isMoved = true; + thumbDragUtils.touchMoveTime = new Date().valueOf(); + thumbDragUtils.newTranslateX -= + thumbDragUtils.cords.endX - thumbDragUtils.cords.startX; + thumbDragUtils.newTranslateX = this.getPossibleTransformX(thumbDragUtils.newTranslateX); + // move current slide + this.setTranslate(thumbDragUtils.newTranslateX); + this.$thumbOuter.addClass('lg-dragging'); + return thumbDragUtils; + }; + Thumbnail.prototype.onThumbTouchEnd = function (thumbDragUtils) { + thumbDragUtils.isMoved = false; + thumbDragUtils.endTime = new Date(); + this.$thumbOuter.removeClass('lg-dragging'); + var touchDuration = thumbDragUtils.endTime.valueOf() - + thumbDragUtils.startTime.valueOf(); + var distanceXnew = thumbDragUtils.cords.endX - thumbDragUtils.cords.startX; + var speedX = Math.abs(distanceXnew) / touchDuration; + // Some magical numbers + // Can be improved + if (speedX > 0.15 && + thumbDragUtils.endTime.valueOf() - thumbDragUtils.touchMoveTime < 30) { + speedX += 1; + if (speedX > 2) { + speedX += 1; + } + speedX = + speedX + + speedX * (Math.abs(distanceXnew) / this.thumbOuterWidth); + this.$lgThumb.css('transition-duration', Math.min(speedX - 1, 2) + 'settings'); + distanceXnew = distanceXnew * speedX; + this.translateX = this.getPossibleTransformX(this.translateX - distanceXnew); + this.setTranslate(this.translateX); + } + else { + this.translateX = thumbDragUtils.newTranslateX; + } + if (Math.abs(thumbDragUtils.cords.endX - thumbDragUtils.cords.startX) < + this.settings.thumbnailSwipeThreshold) { + this.thumbClickable = true; + } + return thumbDragUtils; + }; + Thumbnail.prototype.getThumbHtml = function (thumb, index, alt) { + var slideVideoInfo = this.core.galleryItems[index].__slideVideoInfo || {}; + var thumbImg; + if (slideVideoInfo.youtube) { + if (this.settings.loadYouTubeThumbnail) { + thumbImg = + '//img.youtube.com/vi/' + + slideVideoInfo.youtube[1] + + '/' + + this.settings.youTubeThumbSize + + '.jpg'; + } + else { + thumbImg = thumb; + } + } + else { + thumbImg = thumb; + } + var altAttr = alt ? 'alt="' + alt + '"' : ''; + return "
\n \n
"; + }; + Thumbnail.prototype.getThumbItemHtml = function (items) { + var thumbList = ''; + for (var i = 0; i < items.length; i++) { + thumbList += this.getThumbHtml(items[i].thumb, i, items[i].alt); + } + return thumbList; + }; + Thumbnail.prototype.setThumbItemHtml = function (items) { + var thumbList = this.getThumbItemHtml(items); + this.$lgThumb.html(thumbList); + }; + Thumbnail.prototype.setAnimateThumbStyles = function () { + if (this.settings.animateThumb) { + this.core.outer.addClass('lg-animate-thumb'); + } + }; + // Manage thumbnail active calss + Thumbnail.prototype.manageActiveClassOnSlideChange = function () { + var _this = this; + // manage active class for thumbnail + this.core.LGel.on(lGEvents.beforeSlide + ".thumb", function (event) { + var $thumb = _this.core.outer.find('.lg-thumb-item'); + var index = event.detail.index; + $thumb.removeClass('active'); + $thumb.eq(index).addClass('active'); + }); + }; + // Toggle thumbnail bar + Thumbnail.prototype.toggleThumbBar = function () { + var _this = this; + if (this.settings.toggleThumb) { + this.core.outer.addClass('lg-can-toggle'); + this.core.$toolbar.append(''); + this.core.outer + .find('.lg-toggle-thumb') + .first() + .on('click.lg', function () { + _this.core.outer.toggleClass('lg-components-open'); + }); + } + }; + Thumbnail.prototype.thumbKeyPress = function () { + var _this = this; + this.$LG(window).on("keydown.lg.thumb.global" + this.core.lgId, function (e) { + if (!_this.core.lgOpened || !_this.settings.toggleThumb) + return; + if (e.keyCode === 38) { + e.preventDefault(); + _this.core.outer.addClass('lg-components-open'); + } + else if (e.keyCode === 40) { + e.preventDefault(); + _this.core.outer.removeClass('lg-components-open'); + } + }); + }; + Thumbnail.prototype.destroy = function () { + if (this.settings.thumbnail) { + this.$LG(window).off(".lg.thumb.global" + this.core.lgId); + this.core.LGel.off('.lg.thumb'); + this.core.LGel.off('.thumb'); + this.$thumbOuter.remove(); + this.core.outer.removeClass('lg-has-thumb'); + } + }; + return Thumbnail; + }()); + + return Thumbnail; + +}))); +//# sourceMappingURL=lg-thumbnail.umd.js.map + +; +/*! + * lightgallery | 2.7.2-beta.1 | June 25th 2023 + * http://www.lightgalleryjs.com/ + * Copyright (c) 2020 Sachin Neravath; + * @license GPLv3 + */ + +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lgPager = factory()); +}(this, (function () { 'use strict'; + + /*! ***************************************************************************** + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** */ + + var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + + /** + * List of lightGallery events + * All events should be documented here + * Below interfaces are used to build the website documentations + * */ + var lGEvents = { + afterAppendSlide: 'lgAfterAppendSlide', + init: 'lgInit', + hasVideo: 'lgHasVideo', + containerResize: 'lgContainerResize', + updateSlides: 'lgUpdateSlides', + afterAppendSubHtml: 'lgAfterAppendSubHtml', + beforeOpen: 'lgBeforeOpen', + afterOpen: 'lgAfterOpen', + slideItemLoad: 'lgSlideItemLoad', + beforeSlide: 'lgBeforeSlide', + afterSlide: 'lgAfterSlide', + posterClick: 'lgPosterClick', + dragStart: 'lgDragStart', + dragMove: 'lgDragMove', + dragEnd: 'lgDragEnd', + beforeNextSlide: 'lgBeforeNextSlide', + beforePrevSlide: 'lgBeforePrevSlide', + beforeClose: 'lgBeforeClose', + afterClose: 'lgAfterClose', + rotateLeft: 'lgRotateLeft', + rotateRight: 'lgRotateRight', + flipHorizontal: 'lgFlipHorizontal', + flipVertical: 'lgFlipVertical', + autoplay: 'lgAutoplay', + autoplayStart: 'lgAutoplayStart', + autoplayStop: 'lgAutoplayStop', + }; + + var pagerSettings = { + pager: true, + }; + + var Pager = /** @class */ (function () { + function Pager(instance, $LG) { + // get lightGallery core plugin instance + this.core = instance; + this.$LG = $LG; + // extend module default settings with lightGallery core settings + this.settings = __assign(__assign({}, pagerSettings), this.core.settings); + return this; + } + Pager.prototype.getPagerHtml = function (items) { + var pagerList = ''; + for (var i = 0; i < items.length; i++) { + pagerList += " \n \n
\n
"; + } + return pagerList; + }; + Pager.prototype.init = function () { + var _this = this; + if (!this.settings.pager) { + return; + } + var timeout; + this.core.$lgComponents.prepend('
'); + var $pagerOuter = this.core.outer.find('.lg-pager-outer'); + $pagerOuter.html(this.getPagerHtml(this.core.galleryItems)); + // @todo enable click + $pagerOuter.first().on('click.lg touchend.lg', function (event) { + var $target = _this.$LG(event.target); + if (!$target.hasAttribute('data-lg-item-id')) { + return; + } + var index = parseInt($target.attr('data-lg-item-id')); + _this.core.slide(index, false, true, false); + }); + $pagerOuter.first().on('mouseover.lg', function () { + clearTimeout(timeout); + $pagerOuter.addClass('lg-pager-hover'); + }); + $pagerOuter.first().on('mouseout.lg', function () { + timeout = setTimeout(function () { + $pagerOuter.removeClass('lg-pager-hover'); + }); + }); + this.core.LGel.on(lGEvents.beforeSlide + ".pager", function (event) { + var index = event.detail.index; + _this.manageActiveClass.call(_this, index); + }); + this.core.LGel.on(lGEvents.updateSlides + ".pager", function () { + $pagerOuter.empty(); + $pagerOuter.html(_this.getPagerHtml(_this.core.galleryItems)); + _this.manageActiveClass(_this.core.index); + }); + }; + Pager.prototype.manageActiveClass = function (index) { + var $pagerCont = this.core.outer.find('.lg-pager-cont'); + $pagerCont.removeClass('lg-pager-active'); + $pagerCont.eq(index).addClass('lg-pager-active'); + }; + Pager.prototype.destroy = function () { + this.core.outer.find('.lg-pager-outer').remove(); + this.core.LGel.off('.lg.pager'); + this.core.LGel.off('.pager'); + }; + return Pager; + }()); + + return Pager; + +}))); +//# sourceMappingURL=lg-pager.umd.js.map + +; +/*! + * lightgallery | 2.7.2-beta.1 | June 25th 2023 + * http://www.lightgalleryjs.com/ + * Copyright (c) 2020 Sachin Neravath; + * @license GPLv3 + */ + +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lgHash = factory()); +}(this, (function () { 'use strict'; + + /*! ***************************************************************************** + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** */ + + var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + + /** + * List of lightGallery events + * All events should be documented here + * Below interfaces are used to build the website documentations + * */ + var lGEvents = { + afterAppendSlide: 'lgAfterAppendSlide', + init: 'lgInit', + hasVideo: 'lgHasVideo', + containerResize: 'lgContainerResize', + updateSlides: 'lgUpdateSlides', + afterAppendSubHtml: 'lgAfterAppendSubHtml', + beforeOpen: 'lgBeforeOpen', + afterOpen: 'lgAfterOpen', + slideItemLoad: 'lgSlideItemLoad', + beforeSlide: 'lgBeforeSlide', + afterSlide: 'lgAfterSlide', + posterClick: 'lgPosterClick', + dragStart: 'lgDragStart', + dragMove: 'lgDragMove', + dragEnd: 'lgDragEnd', + beforeNextSlide: 'lgBeforeNextSlide', + beforePrevSlide: 'lgBeforePrevSlide', + beforeClose: 'lgBeforeClose', + afterClose: 'lgAfterClose', + rotateLeft: 'lgRotateLeft', + rotateRight: 'lgRotateRight', + flipHorizontal: 'lgFlipHorizontal', + flipVertical: 'lgFlipVertical', + autoplay: 'lgAutoplay', + autoplayStart: 'lgAutoplayStart', + autoplayStop: 'lgAutoplayStop', + }; + + var hashSettings = { + hash: true, + galleryId: '1', + customSlideName: false, + }; + + var Hash = /** @class */ (function () { + function Hash(instance, $LG) { + // get lightGallery core plugin instance + this.core = instance; + this.$LG = $LG; + // extend module default settings with lightGallery core settings + this.settings = __assign(__assign({}, hashSettings), this.core.settings); + return this; + } + Hash.prototype.init = function () { + var _this = this; + if (!this.settings.hash) { + return; + } + this.oldHash = window.location.hash; + setTimeout(function () { + _this.buildFromHash(); + }, 100); + // Change hash value on after each slide transition + this.core.LGel.on(lGEvents.afterSlide + ".hash", this.onAfterSlide.bind(this)); + this.core.LGel.on(lGEvents.afterClose + ".hash", this.onCloseAfter.bind(this)); + // Listen hash change and change the slide according to slide value + this.$LG(window).on("hashchange.lg.hash.global" + this.core.lgId, this.onHashchange.bind(this)); + }; + Hash.prototype.onAfterSlide = function (event) { + var slideName = this.core.galleryItems[event.detail.index].slideName; + slideName = this.settings.customSlideName + ? slideName || event.detail.index + : event.detail.index; + if (history.replaceState) { + history.replaceState(null, '', window.location.pathname + + window.location.search + + '#lg=' + + this.settings.galleryId + + '&slide=' + + slideName); + } + else { + window.location.hash = + 'lg=' + this.settings.galleryId + '&slide=' + slideName; + } + }; + /** + * Get index of the slide from custom slideName. Has to be a public method. Used in hash plugin + * @param {String} hash + * @returns {Number} Index of the slide. + */ + Hash.prototype.getIndexFromUrl = function (hash) { + if (hash === void 0) { hash = window.location.hash; } + var slideName = hash.split('&slide=')[1]; + var _idx = 0; + if (this.settings.customSlideName) { + for (var index = 0; index < this.core.galleryItems.length; index++) { + var dynamicEl = this.core.galleryItems[index]; + if (dynamicEl.slideName === slideName) { + _idx = index; + break; + } + } + } + else { + _idx = parseInt(slideName, 10); + } + return isNaN(_idx) ? 0 : _idx; + }; + // Build Gallery if gallery id exist in the URL + Hash.prototype.buildFromHash = function () { + // if dynamic option is enabled execute immediately + var _hash = window.location.hash; + if (_hash.indexOf('lg=' + this.settings.galleryId) > 0) { + // This class is used to remove the initial animation if galleryId present in the URL + this.$LG(document.body).addClass('lg-from-hash'); + var index = this.getIndexFromUrl(_hash); + this.core.openGallery(index); + return true; + } + }; + Hash.prototype.onCloseAfter = function () { + // Reset to old hash value + if (this.oldHash && + this.oldHash.indexOf('lg=' + this.settings.galleryId) < 0) { + if (history.replaceState) { + history.replaceState(null, '', this.oldHash); + } + else { + window.location.hash = this.oldHash; + } + } + else { + if (history.replaceState) { + history.replaceState(null, document.title, window.location.pathname + window.location.search); + } + else { + window.location.hash = ''; + } + } + }; + Hash.prototype.onHashchange = function () { + if (!this.core.lgOpened) + return; + var _hash = window.location.hash; + var index = this.getIndexFromUrl(_hash); + // it galleryId doesn't exist in the url close the gallery + if (_hash.indexOf('lg=' + this.settings.galleryId) > -1) { + this.core.slide(index, false, false); + } + else if (this.core.lGalleryOn) { + this.core.closeGallery(); + } + }; + Hash.prototype.closeGallery = function () { + if (this.settings.hash) { + this.$LG(document.body).removeClass('lg-from-hash'); + } + }; + Hash.prototype.destroy = function () { + this.core.LGel.off('.lg.hash'); + this.core.LGel.off('.hash'); + this.$LG(window).off("hashchange.lg.hash.global" + this.core.lgId); + }; + return Hash; + }()); + + return Hash; + +}))); +//# sourceMappingURL=lg-hash.umd.js.map + +; +/*! + * lightgallery | 2.7.2-beta.1 | June 25th 2023 + * http://www.lightgalleryjs.com/ + * Copyright (c) 2020 Sachin Neravath; + * @license GPLv3 + */ + +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lgShare = factory()); +}(this, (function () { 'use strict'; + + /*! ***************************************************************************** + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** */ + + var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + + function __spreadArrays() { + for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; + for (var r = Array(s), k = 0, i = 0; i < il; i++) + for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) + r[k] = a[j]; + return r; + } + + var shareSettings = { + share: true, + facebook: true, + facebookDropdownText: 'Facebook', + twitter: true, + twitterDropdownText: 'Twitter', + pinterest: true, + pinterestDropdownText: 'Pinterest', + additionalShareOptions: [], + sharePluginStrings: { share: 'Share' }, + }; + + function getFacebookShareLink(galleryItem) { + var facebookBaseUrl = '//www.facebook.com/sharer/sharer.php?u='; + return (facebookBaseUrl + + encodeURIComponent(galleryItem.facebookShareUrl || window.location.href)); + } + + function getTwitterShareLink(galleryItem) { + var twitterBaseUrl = '//twitter.com/intent/tweet?text='; + var url = encodeURIComponent(galleryItem.twitterShareUrl || window.location.href); + var text = galleryItem.tweetText; + return twitterBaseUrl + text + '&url=' + url; + } + + function getPinterestShareLink(galleryItem) { + var pinterestBaseUrl = 'http://www.pinterest.com/pin/create/button/?url='; + var description = galleryItem.pinterestText; + var media = encodeURIComponent(galleryItem.src); + var url = encodeURIComponent(galleryItem.pinterestShareUrl || window.location.href); + return (pinterestBaseUrl + + url + + '&media=' + + media + + '&description=' + + description); + } + + /** + * List of lightGallery events + * All events should be documented here + * Below interfaces are used to build the website documentations + * */ + var lGEvents = { + afterAppendSlide: 'lgAfterAppendSlide', + init: 'lgInit', + hasVideo: 'lgHasVideo', + containerResize: 'lgContainerResize', + updateSlides: 'lgUpdateSlides', + afterAppendSubHtml: 'lgAfterAppendSubHtml', + beforeOpen: 'lgBeforeOpen', + afterOpen: 'lgAfterOpen', + slideItemLoad: 'lgSlideItemLoad', + beforeSlide: 'lgBeforeSlide', + afterSlide: 'lgAfterSlide', + posterClick: 'lgPosterClick', + dragStart: 'lgDragStart', + dragMove: 'lgDragMove', + dragEnd: 'lgDragEnd', + beforeNextSlide: 'lgBeforeNextSlide', + beforePrevSlide: 'lgBeforePrevSlide', + beforeClose: 'lgBeforeClose', + afterClose: 'lgAfterClose', + rotateLeft: 'lgRotateLeft', + rotateRight: 'lgRotateRight', + flipHorizontal: 'lgFlipHorizontal', + flipVertical: 'lgFlipVertical', + autoplay: 'lgAutoplay', + autoplayStart: 'lgAutoplayStart', + autoplayStop: 'lgAutoplayStop', + }; + + var Share = /** @class */ (function () { + function Share(instance) { + this.shareOptions = []; + // get lightGallery core plugin instance + this.core = instance; + // extend module default settings with lightGallery core settings + this.settings = __assign(__assign({}, shareSettings), this.core.settings); + return this; + } + Share.prototype.init = function () { + if (!this.settings.share) { + return; + } + this.shareOptions = __spreadArrays(this.getDefaultShareOptions(), this.settings.additionalShareOptions); + this.setLgShareMarkup(); + this.core.outer + .find('.lg-share .lg-dropdown') + .append(this.getShareListHtml()); + this.core.LGel.on(lGEvents.afterSlide + ".share", this.onAfterSlide.bind(this)); + }; + Share.prototype.getShareListHtml = function () { + var shareHtml = ''; + this.shareOptions.forEach(function (shareOption) { + shareHtml += shareOption.dropdownHTML; + }); + return shareHtml; + }; + Share.prototype.setLgShareMarkup = function () { + var _this = this; + this.core.$toolbar.append(""); + this.core.outer.append('
'); + var $shareButton = this.core.outer.find('.lg-share'); + $shareButton.first().on('click.lg', function () { + _this.core.outer.toggleClass('lg-dropdown-active'); + if (_this.core.outer.hasClass('lg-dropdown-active')) { + _this.core.outer.attr('aria-expanded', true); + } + else { + _this.core.outer.attr('aria-expanded', false); + } + }); + this.core.outer + .find('.lg-dropdown-overlay') + .first() + .on('click.lg', function () { + _this.core.outer.removeClass('lg-dropdown-active'); + _this.core.outer.attr('aria-expanded', false); + }); + }; + Share.prototype.onAfterSlide = function (event) { + var _this = this; + var index = event.detail.index; + var currentItem = this.core.galleryItems[index]; + setTimeout(function () { + _this.shareOptions.forEach(function (shareOption) { + var selector = shareOption.selector; + _this.core.outer + .find(selector) + .attr('href', shareOption.generateLink(currentItem)); + }); + }, 100); + }; + Share.prototype.getShareListItemHTML = function (type, text) { + return "
  • " + text + "
  • "; + }; + Share.prototype.getDefaultShareOptions = function () { + return __spreadArrays((this.settings.facebook + ? [ + { + type: 'facebook', + generateLink: getFacebookShareLink, + dropdownHTML: this.getShareListItemHTML('facebook', this.settings.facebookDropdownText), + selector: '.lg-share-facebook', + }, + ] + : []), (this.settings.twitter + ? [ + { + type: 'twitter', + generateLink: getTwitterShareLink, + dropdownHTML: this.getShareListItemHTML('twitter', this.settings.twitterDropdownText), + selector: '.lg-share-twitter', + }, + ] + : []), (this.settings.pinterest + ? [ + { + type: 'pinterest', + generateLink: getPinterestShareLink, + dropdownHTML: this.getShareListItemHTML('pinterest', this.settings.pinterestDropdownText), + selector: '.lg-share-pinterest', + }, + ] + : [])); + }; + Share.prototype.destroy = function () { + this.core.outer.find('.lg-dropdown-overlay').remove(); + this.core.outer.find('.lg-share').remove(); + this.core.LGel.off('.lg.share'); + this.core.LGel.off('.share'); + }; + return Share; + }()); + + return Share; + +}))); +//# sourceMappingURL=lg-share.umd.js.map + +; +/*! + * lightgallery | 2.7.2-beta.1 | June 25th 2023 + * http://www.lightgalleryjs.com/ + * Copyright (c) 2020 Sachin Neravath; + * @license GPLv3 + */ + +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lgComment = factory()); +}(this, (function () { 'use strict'; + + /*! ***************************************************************************** + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** */ + + var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + + /** + * List of lightGallery events + * All events should be documented here + * Below interfaces are used to build the website documentations + * */ + var lGEvents = { + afterAppendSlide: 'lgAfterAppendSlide', + init: 'lgInit', + hasVideo: 'lgHasVideo', + containerResize: 'lgContainerResize', + updateSlides: 'lgUpdateSlides', + afterAppendSubHtml: 'lgAfterAppendSubHtml', + beforeOpen: 'lgBeforeOpen', + afterOpen: 'lgAfterOpen', + slideItemLoad: 'lgSlideItemLoad', + beforeSlide: 'lgBeforeSlide', + afterSlide: 'lgAfterSlide', + posterClick: 'lgPosterClick', + dragStart: 'lgDragStart', + dragMove: 'lgDragMove', + dragEnd: 'lgDragEnd', + beforeNextSlide: 'lgBeforeNextSlide', + beforePrevSlide: 'lgBeforePrevSlide', + beforeClose: 'lgBeforeClose', + afterClose: 'lgAfterClose', + rotateLeft: 'lgRotateLeft', + rotateRight: 'lgRotateRight', + flipHorizontal: 'lgFlipHorizontal', + flipVertical: 'lgFlipVertical', + autoplay: 'lgAutoplay', + autoplayStart: 'lgAutoplayStart', + autoplayStop: 'lgAutoplayStop', + }; + + var commentSettings = { + commentBox: false, + fbComments: false, + disqusComments: false, + disqusConfig: { + title: undefined, + language: 'en', + }, + commentsMarkup: '

    Leave a comment.

    ', + commentPluginStrings: { + toggleComments: 'Toggle Comments', + }, + }; + + /** + * lightGallery comments module + * Supports facebook and disqus comments + * + * @ref - https://help.disqus.com/customer/portal/articles/472098-javascript-configuration-variables + * @ref - https://github.com/disqus/DISQUS-API-Recipes/blob/master/snippets/js/disqus-reset/disqus_reset.html + * @ref - https://css-tricks.com/lazy-loading-disqus-comments/ + * @ref - https://developers.facebook.com/docs/plugins/comments/#comments-plugin + * + */ + var CommentBox = /** @class */ (function () { + function CommentBox(instance, $LG) { + // get lightGallery core plugin instance + this.core = instance; + this.$LG = $LG; + // extend module default settings with lightGallery core settings + this.settings = __assign(__assign({}, commentSettings), this.core.settings); + return this; + } + CommentBox.prototype.init = function () { + if (!this.settings.commentBox) { + return; + } + this.setMarkup(); + this.toggleCommentBox(); + if (this.settings.fbComments) { + this.addFbComments(); + } + else if (this.settings.disqusComments) { + this.addDisqusComments(); + } + }; + CommentBox.prototype.setMarkup = function () { + this.core.outer.append(this.settings.commentsMarkup + + '
    '); + var commentToggleBtn = ""; + this.core.$toolbar.append(commentToggleBtn); + }; + CommentBox.prototype.toggleCommentBox = function () { + var _this_1 = this; + this.core.outer + .find('.lg-comment-toggle') + .first() + .on('click.lg.comment', function () { + _this_1.core.outer.toggleClass('lg-comment-active'); + }); + this.core.outer + .find('.lg-comment-overlay') + .first() + .on('click.lg.comment', function () { + _this_1.core.outer.removeClass('lg-comment-active'); + }); + this.core.outer + .find('.lg-comment-close') + .first() + .on('click.lg.comment', function () { + _this_1.core.outer.removeClass('lg-comment-active'); + }); + }; + CommentBox.prototype.addFbComments = function () { + var _this_1 = this; + // eslint-disable-next-line @typescript-eslint/no-this-alias + var _this = this; + this.core.LGel.on(lGEvents.beforeSlide + ".comment", function (event) { + var html = _this_1.core.galleryItems[event.detail.index].fbHtml; + _this_1.core.outer.find('.lg-comment-body').html(html); + }); + this.core.LGel.on(lGEvents.afterSlide + ".comment", function () { + try { + FB.XFBML.parse(); + } + catch (err) { + _this.$LG(window).on('fbAsyncInit', function () { + FB.XFBML.parse(); + }); + } + }); + }; + CommentBox.prototype.addDisqusComments = function () { + var _this_1 = this; + var $disqusThread = this.$LG('#disqus_thread'); + $disqusThread.remove(); + this.core.outer + .find('.lg-comment-body') + .append('
    '); + this.core.LGel.on(lGEvents.beforeSlide + ".comment", function () { + $disqusThread.html(''); + }); + this.core.LGel.on(lGEvents.afterSlide + ".comment", function (event) { + var index = event.detail.index; + // eslint-disable-next-line @typescript-eslint/no-this-alias + var _this = _this_1; + // DISQUS needs sometime to intialize when lightGallery is opened from direct url(hash plugin). + setTimeout(function () { + try { + DISQUS.reset({ + reload: true, + config: function () { + this.page.identifier = + _this.core.galleryItems[index].disqusIdentifier; + this.page.url = + _this.core.galleryItems[index].disqusURL; + this.page.title = + _this.settings.disqusConfig.title; + this.language = + _this.settings.disqusConfig.language; + }, + }); + } + catch (err) { + console.error('Make sure you have included disqus JavaScript code in your document. Ex - https://lg-disqus.disqus.com/admin/install/platforms/universalcode/'); + } + }, _this.core.lGalleryOn ? 0 : 1000); + }); + }; + CommentBox.prototype.destroy = function () { + this.core.LGel.off('.lg.comment'); + this.core.LGel.off('.comment'); + }; + return CommentBox; + }()); + + return CommentBox; + +}))); +//# sourceMappingURL=lg-comment.umd.js.map + +; +/*! + * lightgallery | 2.7.2-beta.1 | June 25th 2023 + * http://www.lightgalleryjs.com/ + * Copyright (c) 2020 Sachin Neravath; + * @license GPLv3 + */ + +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lgAutoplay = factory()); +}(this, (function () { 'use strict'; + + /*! ***************************************************************************** + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** */ + + var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + + /** + * List of lightGallery events + * All events should be documented here + * Below interfaces are used to build the website documentations + * */ + var lGEvents = { + afterAppendSlide: 'lgAfterAppendSlide', + init: 'lgInit', + hasVideo: 'lgHasVideo', + containerResize: 'lgContainerResize', + updateSlides: 'lgUpdateSlides', + afterAppendSubHtml: 'lgAfterAppendSubHtml', + beforeOpen: 'lgBeforeOpen', + afterOpen: 'lgAfterOpen', + slideItemLoad: 'lgSlideItemLoad', + beforeSlide: 'lgBeforeSlide', + afterSlide: 'lgAfterSlide', + posterClick: 'lgPosterClick', + dragStart: 'lgDragStart', + dragMove: 'lgDragMove', + dragEnd: 'lgDragEnd', + beforeNextSlide: 'lgBeforeNextSlide', + beforePrevSlide: 'lgBeforePrevSlide', + beforeClose: 'lgBeforeClose', + afterClose: 'lgAfterClose', + rotateLeft: 'lgRotateLeft', + rotateRight: 'lgRotateRight', + flipHorizontal: 'lgFlipHorizontal', + flipVertical: 'lgFlipVertical', + autoplay: 'lgAutoplay', + autoplayStart: 'lgAutoplayStart', + autoplayStop: 'lgAutoplayStop', + }; + + var autoplaySettings = { + autoplay: true, + slideShowAutoplay: false, + slideShowInterval: 5000, + progressBar: true, + forceSlideShowAutoplay: false, + autoplayControls: true, + appendAutoplayControlsTo: '.lg-toolbar', + autoplayPluginStrings: { + toggleAutoplay: 'Toggle Autoplay', + }, + }; + + /** + * Creates the autoplay plugin. + * @param {object} element - lightGallery element + */ + var Autoplay = /** @class */ (function () { + function Autoplay(instance) { + this.core = instance; + // extend module default settings with lightGallery core settings + this.settings = __assign(__assign({}, autoplaySettings), this.core.settings); + return this; + } + Autoplay.prototype.init = function () { + var _this = this; + if (!this.settings.autoplay) { + return; + } + this.interval = false; + // Identify if slide happened from autoplay + this.fromAuto = true; + // Identify if autoplay canceled from touch/drag + this.pausedOnTouchDrag = false; + this.pausedOnSlideChange = false; + // append autoplay controls + if (this.settings.autoplayControls) { + this.controls(); + } + // Create progress bar + if (this.settings.progressBar) { + this.core.outer.append('
    '); + } + // Start autoplay + if (this.settings.slideShowAutoplay) { + this.core.LGel.once(lGEvents.slideItemLoad + ".autoplay", function () { + _this.startAutoPlay(); + }); + } + // cancel interval on touchstart and dragstart + this.core.LGel.on(lGEvents.dragStart + ".autoplay touchstart.lg.autoplay", function () { + if (_this.interval) { + _this.stopAutoPlay(); + _this.pausedOnTouchDrag = true; + } + }); + // restore autoplay if autoplay canceled from touchstart / dragstart + this.core.LGel.on(lGEvents.dragEnd + ".autoplay touchend.lg.autoplay", function () { + if (!_this.interval && _this.pausedOnTouchDrag) { + _this.startAutoPlay(); + _this.pausedOnTouchDrag = false; + } + }); + this.core.LGel.on(lGEvents.beforeSlide + ".autoplay", function () { + _this.showProgressBar(); + if (!_this.fromAuto && _this.interval) { + _this.stopAutoPlay(); + _this.pausedOnSlideChange = true; + } + else { + _this.pausedOnSlideChange = false; + } + _this.fromAuto = false; + }); + // restore autoplay if autoplay canceled from touchstart / dragstart + this.core.LGel.on(lGEvents.afterSlide + ".autoplay", function () { + if (_this.pausedOnSlideChange && + !_this.interval && + _this.settings.forceSlideShowAutoplay) { + _this.startAutoPlay(); + _this.pausedOnSlideChange = false; + } + }); + // set progress + this.showProgressBar(); + }; + Autoplay.prototype.showProgressBar = function () { + var _this = this; + if (this.settings.progressBar && this.fromAuto) { + var _$progressBar_1 = this.core.outer.find('.lg-progress-bar'); + var _$progress_1 = this.core.outer.find('.lg-progress'); + if (this.interval) { + _$progress_1.removeAttr('style'); + _$progressBar_1.removeClass('lg-start'); + setTimeout(function () { + _$progress_1.css('transition', 'width ' + + (_this.core.settings.speed + + _this.settings.slideShowInterval) + + 'ms ease 0s'); + _$progressBar_1.addClass('lg-start'); + }, 20); + } + } + }; + // Manage autoplay via play/stop buttons + Autoplay.prototype.controls = function () { + var _this = this; + var _html = ""; + // Append autoplay controls + this.core.outer + .find(this.settings.appendAutoplayControlsTo) + .append(_html); + this.core.outer + .find('.lg-autoplay-button') + .first() + .on('click.lg.autoplay', function () { + if (_this.core.outer.hasClass('lg-show-autoplay')) { + _this.stopAutoPlay(); + } + else { + if (!_this.interval) { + _this.startAutoPlay(); + } + } + }); + }; + // Autostart gallery + Autoplay.prototype.startAutoPlay = function () { + var _this = this; + this.core.outer + .find('.lg-progress') + .css('transition', 'width ' + + (this.core.settings.speed + + this.settings.slideShowInterval) + + 'ms ease 0s'); + this.core.outer.addClass('lg-show-autoplay'); + this.core.outer.find('.lg-progress-bar').addClass('lg-start'); + this.core.LGel.trigger(lGEvents.autoplayStart, { + index: this.core.index, + }); + this.interval = setInterval(function () { + if (_this.core.index + 1 < _this.core.galleryItems.length) { + _this.core.index++; + } + else { + _this.core.index = 0; + } + _this.core.LGel.trigger(lGEvents.autoplay, { + index: _this.core.index, + }); + _this.fromAuto = true; + _this.core.slide(_this.core.index, false, false, 'next'); + }, this.core.settings.speed + this.settings.slideShowInterval); + }; + // cancel Autostart + Autoplay.prototype.stopAutoPlay = function () { + if (this.interval) { + this.core.LGel.trigger(lGEvents.autoplayStop, { + index: this.core.index, + }); + this.core.outer.find('.lg-progress').removeAttr('style'); + this.core.outer.removeClass('lg-show-autoplay'); + this.core.outer.find('.lg-progress-bar').removeClass('lg-start'); + } + clearInterval(this.interval); + this.interval = false; + }; + Autoplay.prototype.closeGallery = function () { + this.stopAutoPlay(); + }; + Autoplay.prototype.destroy = function () { + if (this.settings.autoplay) { + this.core.outer.find('.lg-progress-bar').remove(); + } + // Remove all event listeners added by autoplay plugin + this.core.LGel.off('.lg.autoplay'); + this.core.LGel.off('.autoplay'); + }; + return Autoplay; + }()); + + return Autoplay; + +}))); +//# sourceMappingURL=lg-autoplay.umd.js.map + +; +/*! + * lightgallery | 2.7.2-beta.1 | June 25th 2023 + * http://www.lightgalleryjs.com/ + * Copyright (c) 2020 Sachin Neravath; + * @license GPLv3 + */ + +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lgRelativeCaption = factory()); +}(this, (function () { 'use strict'; + + /*! ***************************************************************************** + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** */ + + var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + + /** + * List of lightGallery events + * All events should be documented here + * Below interfaces are used to build the website documentations + * */ + var lGEvents = { + afterAppendSlide: 'lgAfterAppendSlide', + init: 'lgInit', + hasVideo: 'lgHasVideo', + containerResize: 'lgContainerResize', + updateSlides: 'lgUpdateSlides', + afterAppendSubHtml: 'lgAfterAppendSubHtml', + beforeOpen: 'lgBeforeOpen', + afterOpen: 'lgAfterOpen', + slideItemLoad: 'lgSlideItemLoad', + beforeSlide: 'lgBeforeSlide', + afterSlide: 'lgAfterSlide', + posterClick: 'lgPosterClick', + dragStart: 'lgDragStart', + dragMove: 'lgDragMove', + dragEnd: 'lgDragEnd', + beforeNextSlide: 'lgBeforeNextSlide', + beforePrevSlide: 'lgBeforePrevSlide', + beforeClose: 'lgBeforeClose', + afterClose: 'lgAfterClose', + rotateLeft: 'lgRotateLeft', + rotateRight: 'lgRotateRight', + flipHorizontal: 'lgFlipHorizontal', + flipVertical: 'lgFlipVertical', + autoplay: 'lgAutoplay', + autoplayStart: 'lgAutoplayStart', + autoplayStop: 'lgAutoplayStop', + }; + + var relativeCaptionSettings = { + relativeCaption: false, + }; + + /** + * lightGallery caption for placing captions relative to the image + */ + var RelativeCaption = /** @class */ (function () { + function RelativeCaption(instance) { + // get lightGallery core plugin instance + this.core = instance; + // Override some of lightGallery default settings + var defaultSettings = { + addClass: this.core.settings.addClass + ' lg-relative-caption', + }; + this.core.settings = __assign(__assign({}, this.core.settings), defaultSettings); + // extend module default settings with lightGallery core settings + this.settings = __assign(__assign(__assign({}, relativeCaptionSettings), this.core.settings), defaultSettings); + return this; + } + RelativeCaption.prototype.init = function () { + var _this = this; + if (!this.settings.relativeCaption) { + return; + } + this.core.LGel.on(lGEvents.slideItemLoad + ".caption", function (event) { + var _a = event.detail, index = _a.index, delay = _a.delay; + setTimeout(function () { + if (index === _this.core.index) { + _this.setRelativeCaption(index); + } + }, delay); + }); + this.core.LGel.on(lGEvents.afterSlide + ".caption", function (event) { + var index = event.detail.index; + setTimeout(function () { + var slide = _this.core.getSlideItem(index); + if (slide.hasClass('lg-complete')) { + _this.setRelativeCaption(index); + } + }); + }); + this.core.LGel.on(lGEvents.beforeSlide + ".caption", function (event) { + var index = event.detail.index; + setTimeout(function () { + var slide = _this.core.getSlideItem(index); + slide.removeClass('lg-show-caption'); + }); + }); + this.core.LGel.on(lGEvents.containerResize + ".caption", function (event) { + _this.setRelativeCaption(_this.core.index); + }); + }; + RelativeCaption.prototype.setCaptionStyle = function (index, rect, slideWrapRect) { + var $subHtmlInner = this.core + .getSlideItem(index) + .find('.lg-relative-caption-item'); + var $subHtml = this.core.getSlideItem(index).find('.lg-sub-html'); + $subHtml.css('width', rect.width + "px").css('left', rect.left + "px"); + var subHtmlRect = $subHtmlInner.get().getBoundingClientRect(); + var bottom = slideWrapRect.bottom - rect.bottom - subHtmlRect.height; + $subHtml.css('top', "auto").css('bottom', Math.max(bottom, 0) + "px"); + }; + RelativeCaption.prototype.setRelativeCaption = function (index) { + var slide = this.core.getSlideItem(index); + if (slide.hasClass('lg-current')) { + var rect = this.core + .getSlideItem(index) + .find('.lg-object') + .get() + .getBoundingClientRect(); + var slideWrapRect = this.core + .getSlideItem(index) + .get() + .getBoundingClientRect(); + this.setCaptionStyle(index, rect, slideWrapRect); + slide.addClass('lg-show-caption'); + } + }; + RelativeCaption.prototype.destroy = function () { + this.core.LGel.off('.caption'); + }; + return RelativeCaption; + }()); + + return RelativeCaption; + +}))); +//# sourceMappingURL=lg-relative-caption.umd.js.map + +; +/*! + * lightgallery | 2.7.2-beta.1 | June 25th 2023 + * http://www.lightgalleryjs.com/ + * Copyright (c) 2020 Sachin Neravath; + * @license GPLv3 + */ + +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lgVimeoThumbnail = factory()); +}(this, (function () { 'use strict'; + + /*! ***************************************************************************** + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** */ + + var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + + function __awaiter(thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + } + + function __generator(thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } + } + + /** + * List of lightGallery events + * All events should be documented here + * Below interfaces are used to build the website documentations + * */ + var lGEvents = { + afterAppendSlide: 'lgAfterAppendSlide', + init: 'lgInit', + hasVideo: 'lgHasVideo', + containerResize: 'lgContainerResize', + updateSlides: 'lgUpdateSlides', + afterAppendSubHtml: 'lgAfterAppendSubHtml', + beforeOpen: 'lgBeforeOpen', + afterOpen: 'lgAfterOpen', + slideItemLoad: 'lgSlideItemLoad', + beforeSlide: 'lgBeforeSlide', + afterSlide: 'lgAfterSlide', + posterClick: 'lgPosterClick', + dragStart: 'lgDragStart', + dragMove: 'lgDragMove', + dragEnd: 'lgDragEnd', + beforeNextSlide: 'lgBeforeNextSlide', + beforePrevSlide: 'lgBeforePrevSlide', + beforeClose: 'lgBeforeClose', + afterClose: 'lgAfterClose', + rotateLeft: 'lgRotateLeft', + rotateRight: 'lgRotateRight', + flipHorizontal: 'lgFlipHorizontal', + flipVertical: 'lgFlipVertical', + autoplay: 'lgAutoplay', + autoplayStart: 'lgAutoplayStart', + autoplayStop: 'lgAutoplayStop', + }; + + var vimeoSettings = { + showVimeoThumbnails: true, + showThumbnailWithPlayButton: false, + }; + + /** + * Creates the vimeo thumbnails plugin. + * @param {object} element - lightGallery element + */ + var VimeoThumbnail = /** @class */ (function () { + function VimeoThumbnail(instance) { + this.core = instance; + // extend module default settings with lightGallery core settings + this.settings = __assign(__assign({}, vimeoSettings), this.core.settings); + return this; + } + VimeoThumbnail.prototype.init = function () { + var _this = this; + if (!this.settings.showVimeoThumbnails) { + return; + } + this.core.LGel.on(lGEvents.init + ".vimeothumbnails", function (event) { + var pluginInstance = event.detail.instance; + var thumbCont = pluginInstance.$container + .find('.lg-thumb-outer') + .get(); + if (thumbCont) { + _this.setVimeoThumbnails(pluginInstance); + } + }); + }; + VimeoThumbnail.prototype.setVimeoThumbnails = function (dynamicGallery) { + return __awaiter(this, void 0, void 0, function () { + var i, item, slideVideoInfo, response, vimeoInfo; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + i = 0; + _a.label = 1; + case 1: + if (!(i < dynamicGallery.galleryItems.length)) return [3 /*break*/, 5]; + item = dynamicGallery.galleryItems[i]; + slideVideoInfo = item.__slideVideoInfo || {}; + if (!slideVideoInfo.vimeo) return [3 /*break*/, 4]; + return [4 /*yield*/, fetch('https://vimeo.com/api/oembed.json?url=' + + encodeURIComponent(item.src))]; + case 2: + response = _a.sent(); + return [4 /*yield*/, response.json()]; + case 3: + vimeoInfo = _a.sent(); + dynamicGallery.$container + .find('.lg-thumb-item') + .eq(i) + .find('img') + .attr('src', this.settings.showThumbnailWithPlayButton + ? vimeoInfo.thumbnail_url_with_play_button + : vimeoInfo.thumbnail_url); + _a.label = 4; + case 4: + i++; + return [3 /*break*/, 1]; + case 5: return [2 /*return*/]; + } + }); + }); + }; + VimeoThumbnail.prototype.destroy = function () { + // Remove all event listeners added by vimeothumbnails plugin + this.core.LGel.off('.lg.vimeothumbnails'); + this.core.LGel.off('.vimeothumbnails'); + }; + return VimeoThumbnail; + }()); + + return VimeoThumbnail; + +}))); +//# sourceMappingURL=lg-vimeo-thumbnail.umd.js.map + +; +/*! + * lightgallery | 2.7.2-beta.1 | June 25th 2023 + * http://www.lightgalleryjs.com/ + * Copyright (c) 2020 Sachin Neravath; + * @license GPLv3 + */ + +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lgMediumZoom = factory()); +}(this, (function () { 'use strict'; + + /*! ***************************************************************************** + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** */ + + var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + + /** + * List of lightGallery events + * All events should be documented here + * Below interfaces are used to build the website documentations + * */ + var lGEvents = { + afterAppendSlide: 'lgAfterAppendSlide', + init: 'lgInit', + hasVideo: 'lgHasVideo', + containerResize: 'lgContainerResize', + updateSlides: 'lgUpdateSlides', + afterAppendSubHtml: 'lgAfterAppendSubHtml', + beforeOpen: 'lgBeforeOpen', + afterOpen: 'lgAfterOpen', + slideItemLoad: 'lgSlideItemLoad', + beforeSlide: 'lgBeforeSlide', + afterSlide: 'lgAfterSlide', + posterClick: 'lgPosterClick', + dragStart: 'lgDragStart', + dragMove: 'lgDragMove', + dragEnd: 'lgDragEnd', + beforeNextSlide: 'lgBeforeNextSlide', + beforePrevSlide: 'lgBeforePrevSlide', + beforeClose: 'lgBeforeClose', + afterClose: 'lgAfterClose', + rotateLeft: 'lgRotateLeft', + rotateRight: 'lgRotateRight', + flipHorizontal: 'lgFlipHorizontal', + flipVertical: 'lgFlipVertical', + autoplay: 'lgAutoplay', + autoplayStart: 'lgAutoplayStart', + autoplayStop: 'lgAutoplayStop', + }; + + var mediumZoomSettings = { + margin: 40, + mediumZoom: true, + backgroundColor: '#000', + }; + + var MediumZoom = /** @class */ (function () { + function MediumZoom(instance, $LG) { + var _this = this; + // get lightGallery core plugin instance + this.core = instance; + this.$LG = $LG; + // Set margin + this.core.getMediaContainerPosition = function () { + return { + top: _this.settings.margin, + bottom: _this.settings.margin, + }; + }; + // Override some of lightGallery default settings + var defaultSettings = { + controls: false, + download: false, + counter: false, + showCloseIcon: false, + extraProps: ['lgBackgroundColor'], + closeOnTap: false, + enableSwipe: false, + enableDrag: false, + swipeToClose: false, + addClass: this.core.settings.addClass + ' lg-medium-zoom', + }; + this.core.settings = __assign(__assign({}, this.core.settings), defaultSettings); + // extend module default settings with lightGallery core settings + this.settings = __assign(__assign(__assign({}, mediumZoomSettings), this.core.settings), defaultSettings); + return this; + } + MediumZoom.prototype.toggleItemClass = function () { + for (var index = 0; index < this.core.items.length; index++) { + var $element = this.$LG(this.core.items[index]); + $element.toggleClass('lg-medium-zoom-item'); + } + }; + MediumZoom.prototype.init = function () { + var _this = this; + if (!this.settings.mediumZoom) { + return; + } + this.core.LGel.on(lGEvents.beforeOpen + ".medium", function () { + _this.core.$backdrop.css('background-color', _this.core.galleryItems[_this.core.index].lgBackgroundColor || + _this.settings.backgroundColor); + }); + this.toggleItemClass(); + this.core.outer.on('click.lg.medium', function () { + _this.core.closeGallery(); + }); + }; + MediumZoom.prototype.destroy = function () { + this.toggleItemClass(); + }; + return MediumZoom; + }()); + + return MediumZoom; + +}))); +//# sourceMappingURL=lg-medium-zoom.umd.js.map + +; +"use strict";var $lgInlineContainer,inlineGallery,masonryElMixed,$galleryEventsDemo,galleryEventsDemo,colours,customTransitionsGallery,customEasingGallery,methodsInstance,$lgGalleryMethodsDemo,$lgDemoUpdateSlides,lgDemoUpdateSlides,updateSlidesGallery,slidesUpdated,jG,$dynamicGallery,dynamicEl,dynamicGallery,$infiniteScrollingGallery,infiniteScrollingGallery,images,$lgSwiper,swiper;function _toConsumableArray(a){return _arrayWithoutHoles(a)||_iterableToArray(a)||_unsupportedIterableToArray(a)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(a,c){if(!a)return;if(typeof a=="string")return _arrayLikeToArray(a,c);var b=Object.prototype.toString.call(a).slice(8,-1);if(b==="Object"&&a.constructor&&(b=a.constructor.name),b==="Map"||b==="Set")return Array.from(a);if(b==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(b))return _arrayLikeToArray(a,c)}function _iterableToArray(a){if(typeof Symbol!="undefined"&&Symbol.iterator in Object(a))return Array.from(a)}function _arrayWithoutHoles(a){if(Array.isArray(a))return _arrayLikeToArray(a)}function _arrayLikeToArray(c,a){(a==null||a>c.length)&&(a=c.length);for(var b=0,d=new Array(a);b50?($('body').addClass('has-fixed-header'),$('#nav-header').addClass('fixed-header ')):($('body').removeClass('has-fixed-header'),$('#nav-header').removeClass('fixed-header '))});function getResponsiveThumbnailsSettings(){return $(window).width()<768?{thumbWidth:30,thumbHeight:'20px',thumbMargin:2}:{thumbWidth:100,thumbHeight:'80px',thumbMargin:5}}$lgInlineContainer=document.getElementById('inline-gallery-container'),$lgInlineContainer&&(inlineGallery=window.lightGallery($lgInlineContainer,_objectSpread(_objectSpread({container:$lgInlineContainer,dynamic:!0,thumbnail:!0,swipeToClose:!1,addClass:'lg-inline',mode:'lg-scale-up',slideShowAutoplay:!0,hash:!1,pager:!1,closable:!1,showMaximizeIcon:!0,rotate:!1,download:!1,slideDelay:400,plugins:[lgZoom,lgShare,lgAutoplay,lgThumbnail],appendSubHtmlTo:'.lg-item'},getResponsiveThumbnailsSettings()),{},{dynamicEl:[{src:'https://images.unsplash.com/photo-1542103749-8ef59b94f47e?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1400&q=80',responsive:'https://images.unsplash.com/photo-1542103749-8ef59b94f47e?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=480&q=80 480, https://images.unsplash.com/photo-1542103749-8ef59b94f47e?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=800&q=80 800',thumb:'https://images.unsplash.com/photo-1542103749-8ef59b94f47e?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80',subHtml:'
    \n

    Photo by Dan

    \n

    Published on November 13, 2018

    \n
    '},{src:'https://images.unsplash.com/photo-1473876988266-ca0860a443b8?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1400&q=80',responsive:'https://images.unsplash.com/photo-1473876988266-ca0860a443b8?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=480&q=80 480, https://images.unsplash.com/photo-1473876988266-ca0860a443b8?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=800&q=80 800',thumb:'https://images.unsplash.com/photo-1473876988266-ca0860a443b8?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80',subHtml:'
    \n

    Photo by Kyle Peyton

    \n

    Published on September 14, 2016

    \n
    '},{src:'https://images.unsplash.com/photo-1588953936179-d2a4734c5490?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=1400&q=80',responsive:'https://images.unsplash.com/photo-1588953936179-d2a4734c5490?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=480&q=80 480, https://images.unsplash.com/photo-1588953936179-d2a4734c5490?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=800&q=80 800',thumb:'https://images.unsplash.com/photo-1588953936179-d2a4734c5490?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=240&q=80',subHtml:'
    \n

    Photo by Garrett Jackson

    \n

    Published on May 8, 2020

    \n
    '},{src:'https://images.unsplash.com/photo-1591634616938-1dfa7ee2e617?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1400&q=80',responsive:'https://images.unsplash.com/photo-1591634616938-1dfa7ee2e617?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=480&q=80 480, https://images.unsplash.com/photo-1591634616938-1dfa7ee2e617?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=800&q=80 800',thumb:'https://images.unsplash.com/photo-1591634616938-1dfa7ee2e617?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80',subHtml:'
    \n

    Photo by Brooke Cagle

    \n

    Description of the slide 4

    \n
    '},{src:'https://images.unsplash.com/photo-1543059509-6d53dbee1728?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=1400&q=80',responsive:'https://images.unsplash.com/photo-1543059509-6d53dbee1728?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=480&q=80 480, https://images.unsplash.com/photo-1543059509-6d53dbee1728?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=800&q=80 800',thumb:'https://images.unsplash.com/photo-1543059509-6d53dbee1728?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=240&q=80',subHtml:'
    \n

    Photo by Charles Postiaux

    \n

    Published on November 24, 2018

    \n
    '},{src:'https://images.unsplash.com/photo-1609902726285-00668009f004?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=1400&q=80',responsive:'https://images.unsplash.com/photo-1609902726285-00668009f004?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=480&q=80 480, https://images.unsplash.com/photo-1609902726285-00668009f004?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=800&q=80 800',thumb:'https://images.unsplash.com/photo-1609902726285-00668009f004?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=240&q=80',subHtml:'
    \n

    Photo by Bruno Adam

    \n

    Published on January 6, 2021

    \n
    '},{src:'https://images.unsplash.com/photo-1573007974656-b958089e9f7b?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1400&q=80',responsive:'https://images.unsplash.com/photo-1573007974656-b958089e9f7b?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=480&q=80 480, https://images.unsplash.com/photo-1573007974656-b958089e9f7b?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=800&q=80 800',thumb:'https://images.unsplash.com/photo-1573007974656-b958089e9f7b?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80',subHtml:'
    \n

    Photo by Sigmund

    \n

    Published on November 6, 2019

    \n
    '},{src:'https://images.unsplash.com/photo-1579406842270-ea87c39a8a12?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1400&q=80',responsive:'https://images.unsplash.com/photo-1579406842270-ea87c39a8a12?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=480&q=80 480, https://images.unsplash.com/photo-1579406842270-ea87c39a8a12?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=800&q=80 800',thumb:'https://images.unsplash.com/photo-1579406842270-ea87c39a8a12?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80',subHtml:'
    \n

    Photo by Parij Borgohain

    \n

    Published on January 19, 2020

    \n
    '},{src:'https://images.unsplash.com/photo-1598911543663-37d77962beb1?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=1400&q=80',responsive:'https://images.unsplash.com/photo-1598911543663-37d77962beb1?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=480&q=80 480, https://images.unsplash.com/photo-1598911543663-37d77962beb1?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=800&q=80 800',thumb:'https://images.unsplash.com/photo-1598911543663-37d77962beb1?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=240&q=80',subHtml:'
    \n

    Photo by Ines Piazzese

    \n

    Published on September 1, 2020

    \n
    '},{src:'https://images.unsplash.com/photo-1560885673-2cdc12600ec8?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=1400&q=80',responsive:'https://images.unsplash.com/photo-1560885673-2cdc12600ec8?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=480&q=80 480, https://images.unsplash.com/photo-1560885673-2cdc12600ec8?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=800&q=80 800',thumb:'https://images.unsplash.com/photo-1560885673-2cdc12600ec8?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=240&q=80',subHtml:'
    \n

    Photo by Richard Saunders

    \n

    Published on June 19, 2019

    \n
    '},{src:'https://images.unsplash.com/photo-1571292064306-669f0e758231?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1400&q=80',responsive:'https://images.unsplash.com/photo-1571292064306-669f0e758231?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=480&q=80 480, https://images.unsplash.com/photo-1571292064306-669f0e758231?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=800&q=80 800',thumb:'https://images.unsplash.com/photo-1571292064306-669f0e758231?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80',subHtml:'
    \n

    Photo by J. Meier

    \n

    Published on October 17, 2019

    \n
    '},{src:'https://images.unsplash.com/photo-1601935111741-ae98b2b230b0?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=1400&q=80',responsive:'https://images.unsplash.com/photo-1601935111741-ae98b2b230b0?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=480&q=80 480, https://images.unsplash.com/photo-1601935111741-ae98b2b230b0?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=800&q=80 800',thumb:'https://images.unsplash.com/photo-1601935111741-ae98b2b230b0?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=240&q=80',subHtml:'
    \n

    Photo by Brooke Cagle

    \n

    Published on October 6, 2020

    \n
    '}]})),inlineGallery.openGallery()),window.lightGallery(document.getElementById('gallery-demo-animated-thumbnails'),_objectSpread({pager:!1,hash:!1,plugins:[lgZoom,lgAutoplay,lgFullscreen,lgPager,lgRotate,lgShare,lgThumbnail,lgVideo]},getResponsiveThumbnailsSettings())),jQuery('#animated-thumbnails-wp').justifiedGallery({captions:!1,lastRow:'hide',rowHeight:120,maxRowsCount:4,margins:5}).on('jg.complete',function(){window.lightGallery(document.getElementById('animated-thumbnails-wp'),_objectSpread(_objectSpread({autoplayFirstVideo:!1,pager:!1,galleryId:'nature',plugins:[lgZoom,lgAutoplay,lgHash,lgFullscreen,lgPager,lgRotate,lgShare,lgThumbnail,lgVideo]},getResponsiveThumbnailsSettings()),{},{preload:3,videoMaxWidth:'1400px',mobileSettings:{controls:!1,showCloseIcon:!1,download:!1,rotate:!1}}))}),jQuery('#animated-thumbnails-gallery').justifiedGallery({captions:!1,lastRow:'hide',rowHeight:180,margins:5}).on('jg.complete',function(){window.lightGallery(document.getElementById('animated-thumbnails-gallery'),_objectSpread(_objectSpread({autoplayFirstVideo:!1,pager:!1,galleryId:'nature',plugins:[lgZoom,lgAutoplay,lgHash,lgFullscreen,lgPager,lgRotate,lgShare,lgThumbnail,lgVideo]},getResponsiveThumbnailsSettings()),{},{preload:3,videoMaxWidth:'1400px',mobileSettings:{controls:!1,showCloseIcon:!1,download:!1,rotate:!1}}))}),masonryElMixed=document.getElementById('static-thumbnails-gallery'),masonryElMixed&&imagesLoaded(document.getElementById('static-thumbnails-gallery'),function(){new Masonry(masonryElMixed,{temSelector:'.gallery-item',percentPosition:!0,gutter:0}),window.lightGallery(masonryElMixed,{animateThumb:!1,pager:!1,plugins:[lgZoom,lgAutoplay,lgFullscreen,lgThumbnail],hash:!1,zoomFromOrigin:!1,toggleThumb:!0,allowMediaOverlap:!0})}),jQuery('#customize-thumbnails-gallery').justifiedGallery({captions:!1,lastRow:'hide',rowHeight:180,margins:5}).on('jg.complete',function(){window.lightGallery(document.getElementById('customize-thumbnails-gallery'),{animateThumb:!1,addClass:'lg-custom-thumbnails',appendThumbnailsTo:'.lg-outer',pager:!1,hash:!1,plugins:[lgZoom,lgAutoplay,lgFullscreen,lgThumbnail],allowMediaOverlap:!0})}),$galleryEventsDemo=jQuery('#gallery-events-demo'),galleryEventsDemo=$galleryEventsDemo[0],galleryEventsDemo&&(colours=['#6a7583','#1e304b','#315460','#080607'],galleryEventsDemo.addEventListener('lgBeforeSlide',function(a){var b=a.detail.index;document.querySelector('.lg-backdrop').style.backgroundColor=colours[b]}),$galleryEventsDemo.justifiedGallery({captions:!1,lastRow:'justify',rowHeight:180,margins:5}).on('jg.complete',function(){window.lightGallery(galleryEventsDemo,{zoom:!1,thumbnail:!1,addClass:'lg-events-demo-outer',rotate:!1,pager:!1,plugins:[],hash:!1,fullScreen:!1,download:!1})}));function customTransitions(a){jQuery('#gallery-transitions-demo').justifiedGallery({captions:!1,lastRow:'justify',rowHeight:180,margins:5}).on('jg.complete',function(){customTransitionsGallery=window.lightGallery(document.getElementById('gallery-transitions-demo'),{mode:a,zoom:!1,thumbnail:!1,rotate:!1,pager:!1,plugins:[],hash:!1,fullScreen:!1,download:!1})})}customTransitions('lg-slide'),jQuery('#select-trans').on('change',function(){customTransitionsGallery.destroy(),jQuery('#gallery-transitions-demo').justifiedGallery('destroy'),jQuery('#gallery-transitions-demo').off('jg.complete'),customTransitions(jQuery(this).val())});function initCustomEasing(a){jQuery('#gallery-custom-easing-demo').justifiedGallery({captions:!1,lastRow:'justify',rowHeight:180,margins:5}).on('jg.complete',function(){customEasingGallery=window.lightGallery(document.getElementById('gallery-custom-easing-demo'),{easing:a,zoom:!1,thumbnail:!1,rotate:!1,pager:!1,hash:!1,plugins:[],speed:1e3,fullScreen:!1,download:!1})})}initCustomEasing('cubic-bezier(0.680, -0.550, 0.265, 1.550)'),jQuery('#select-easing').on('change',function(){var a=jQuery(this).val();prompt('You can copy cubic-bezier from here',a),customEasingGallery.destroy(),jQuery('#gallery-custom-easing-demo').justifiedGallery('destroy'),jQuery('#gallery-custom-easing-demo').off('jg.complete'),initCustomEasing('cubic-bezier('+a+')')}),$lgGalleryMethodsDemo=document.getElementById('gallery-methods-demo'),$lgGalleryMethodsDemo&&($lgGalleryMethodsDemo.addEventListener('lgInit',function(){var b='',c='',a=document.querySelector('.lg-content');a.insertAdjacentHTML('beforeend',c),a.insertAdjacentHTML('beforeend',b),document.querySelector('.lg-next').addEventListener('click',function(){methodsInstance.goToNextSlide()}),document.querySelector('.lg-prev').addEventListener('click',function(){methodsInstance.goToPrevSlide()})}),jQuery('#gallery-methods-demo').justifiedGallery({captions:!1,lastRow:'justify',rowHeight:180,margins:5}).on('jg.complete',function(){methodsInstance=window.lightGallery($lgGalleryMethodsDemo,{zoom:!1,thumbnail:!1,rotate:!1,fullScreen:!1,plugins:[lgZoom],addClass:'lg-methods-demo',controls:!1,download:!1,pager:!1,hash:!1})})),$lgDemoUpdateSlides=jQuery('#gallery-update-slides-demo'),lgDemoUpdateSlides=$lgDemoUpdateSlides.get(0),updateSlidesGallery=null,slidesUpdated=!1,lgDemoUpdateSlides&&(lgDemoUpdateSlides.addEventListener('lgAfterClose',function(){slidesUpdated&&(setTimeout(function(){$lgDemoUpdateSlides.justifiedGallery('destroy'),$lgDemoUpdateSlides.off('jg.complete'),$('.lg-added-item').attr('src','https://images.unsplash.com/photo-1609342122563-a43ac8917a3a?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=240&q=100')},100),setTimeout(function(){$lgDemoUpdateSlides.justifiedGallery({captions:!1,lastRow:'center',rowHeight:180,margins:5}).on('jg.complete',function(){updateSlidesGallery.refresh()}),slidesUpdated=!1},200))}),lgDemoUpdateSlides.addEventListener('lgInit',function(b){var a=b.detail.instance,c='',d='';a.outer.find('.lg-toolbar').append(d),a.outer.find('.lg-toolbar').append(c),a.outer.find('#lg-add').on('click',function(){var b=[].concat(_toConsumableArray(a.galleryItems),[{src:'https://images.unsplash.com/photo-1609342122563-a43ac8917a3a?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=1600&q=80',thumb:'https://images.unsplash.com/photo-1609342122563-a43ac8917a3a?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=240&q=100',subHtml:'
    \n

    Photo by Brooke Cagle

    \n

    Description of the slide 1

    \n
    '}]);$lgDemoUpdateSlides.append('\n \n '),a.updateSlides(b,a.index),slidesUpdated=!0}),a.outer.find('#lg-delete').on('click',function(){var b=JSON.parse(JSON.stringify(a.galleryItems));b.shift(),a.updateSlides(b,1),$lgDemoUpdateSlides.children().first().remove(),slidesUpdated=!0})}),jG=$lgDemoUpdateSlides.justifiedGallery({captions:!1,lastRow:'center',rowHeight:180,margins:5}),jG.on('jg.complete',function(){updateSlidesGallery=window.lightGallery(lgDemoUpdateSlides,{addClass:'lg-update-slide-demo',controls:!1,pager:!1,hash:!1,plugins:[lgZoom,lgAutoplay,lgFullscreen,lgShare,lgThumbnail],download:!1})})),$dynamicGallery=jQuery('#dynamic-gallery-demo'),dynamicEl=[{src:'https://images.unsplash.com/photo-1609342122563-a43ac8917a3a?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=1400&q=80',responsive:'https://images.unsplash.com/photo-1609342122563-a43ac8917a3a?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=480&q=80 480, https://images.unsplash.com/photo-1609342122563-a43ac8917a3a?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=800&q=80 800',thumb:'https://images.unsplash.com/photo-1609342122563-a43ac8917a3a?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=240&q=80'},{src:'https://images.unsplash.com/photo-1505820013142-f86a3439c5b2?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=1400&q=80',responsive:'https://images.unsplash.com/photo-1505820013142-f86a3439c5b2?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=480&q=80 480, https://images.unsplash.com/photo-1505820013142-f86a3439c5b2?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=800&q=80 800',thumb:'https://images.unsplash.com/photo-1505820013142-f86a3439c5b2?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=240&q=80'},{src:'https://images.unsplash.com/photo-1477322524744-0eece9e79640?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1400&q=80',responsive:'https://images.unsplash.com/photo-1477322524744-0eece9e79640?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=480&q=80 480, https://images.unsplash.com/photo-1477322524744-0eece9e79640?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=800&q=80 800',thumb:'https://images.unsplash.com/photo-1477322524744-0eece9e79640?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80'},{src:'https://images.unsplash.com/photo-1469474968028-56623f02e42e?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1400&q=80',responsive:'https://images.unsplash.com/photo-1469474968028-56623f02e42e?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=480&q=80 480, https://images.unsplash.com/photo-1469474968028-56623f02e42e?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=800&q=80 800',thumb:'https://images.unsplash.com/photo-1469474968028-56623f02e42e?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80'}],dynamicGallery=window.lightGallery($dynamicGallery[0],{dynamic:!0,hash:!1,rotate:!1,plugins:[lgZoom,lgAutoplay,lgFullscreen,lgPager,lgRotate,lgShare,lgVideo],dynamicEl}),$dynamicGallery.on('click',function(){dynamicGallery.openGallery(2)}),$('#dynamic-gallery-demo-load-more').on('click',function(){var a=[{src:'https://images.unsplash.com/photo-1598911543663-37d77962beb1?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=1400&q=80',responsive:'https://images.unsplash.com/photo-1598911543663-37d77962beb1?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=480&q=80 480, https://images.unsplash.com/photo-1598911543663-37d77962beb1?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=800&q=80 800',thumb:'https://images.unsplash.com/photo-1598911543663-37d77962beb1?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=240&q=80'},{src:'https://images.unsplash.com/photo-1560885673-2cdc12600ec8?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=1400&q=80',responsive:'https://images.unsplash.com/photo-1560885673-2cdc12600ec8?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=480&q=80 480, https://images.unsplash.com/photo-1560885673-2cdc12600ec8?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=800&q=80 800',thumb:'https://images.unsplash.com/photo-1560885673-2cdc12600ec8?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=240&q=80'}],b=[].concat(dynamicEl,a);dynamicGallery.refresh(b),dynamicGallery.openGallery(4)}),window.lightGallery(document.getElementById('open-website'),{selector:'this',download:!1,mobileSettings:{controls:!0}}),window.lightGallery(document.getElementById('open-google-map'),{selector:'this',download:!1,mobileSettings:{controls:!0}}),window.lightGallery(document.getElementById('open-pdf'),{selector:'this',download:!1,mobileSettings:{controls:!0}}),jQuery('#gallery-videos-demo').justifiedGallery({captions:!1,lastRow:'justify',rowHeight:180,margins:5}).on('jg.complete',function(){window.lightGallery(document.getElementById('gallery-videos-demo'),{thumbnail:!1,pager:!1,plugins:[lgAutoplay,lgFullscreen,lgShare,lgThumbnail,lgVideo],hash:!1,preload:0})}),jQuery('#gallery-videojs-demo').justifiedGallery({captions:!1,lastRow:'justify',rowHeight:180,margins:5}).on('jg.complete',function(){window.lightGallery(document.getElementById('gallery-videojs-demo'),{pager:!1,hash:!1,preload:0,plugins:[lgAutoplay,lgFullscreen,lgShare,lgThumbnail,lgVideo],videojs:!0,videojsOptions:{muted:!0}})}),jQuery('#gallery-hash-demo').justifiedGallery({captions:!1,lastRow:'justify',rowHeight:180,margins:5}).on('jg.complete',function(){window.lightGallery(document.getElementById('gallery-hash-demo'),{thumbnail:!1,plugins:[lgHash],pager:!1,galleryId:1,customSlideName:!1})}),jQuery('#gallery-custom-hash-demo').justifiedGallery({captions:!1,lastRow:'justify',rowHeight:180,margins:5}).on('jg.complete',function(){window.lightGallery(document.getElementById('gallery-custom-hash-demo'),{thumbnail:!1,plugins:[lgZoom,lgHash,lgAutoplay,lgFullscreen,lgPager,lgRotate,lgShare,lgThumbnail,lgVideo],galleryId:2,pager:!1,customSlideName:!0})}),jQuery('#gallery-share-demo').justifiedGallery({captions:!1,lastRow:'justify',rowHeight:180,margins:5}).on('jg.complete',function(){window.lightGallery(document.getElementById('gallery-share-demo'),{thumbnail:!1,pager:!1,hash:!0,plugins:[lgZoom,lgShare,lgThumbnail,lgHash]})}),jQuery('#gallery-zoom-from-origin-demo').justifiedGallery({captions:!1,lastRow:'justify',rowHeight:180,margins:5}).on('jg.complete',function(){window.lightGallery(document.getElementById('gallery-zoom-from-origin-demo'),{thumbnail:!1,pager:!1,hash:!0,plugins:[lgZoom,lgShare,lgThumbnail,lgHash]})}),jQuery('#gallery-captions-demo').justifiedGallery({captions:!1,lastRow:'justify',rowHeight:180,margins:5}).on('jg.complete',function(){window.lightGallery(document.getElementById('gallery-captions-demo'),{thumbnail:!1,plugins:[lgZoom,lgShare],allowMediaOverlap:!0,pager:!0,hash:!0})}),jQuery('#gallery-animated-captions-demo').justifiedGallery({captions:!1,lastRow:'justify',rowHeight:180,margins:5}).on('jg.complete',function(){window.lightGallery(document.getElementById('gallery-animated-captions-demo'),{speed:500,allowMediaOverlap:!0,appendSubHtmlTo:'.lg-item',slideDelay:400})}),jQuery('#gallery-srcset-demo').justifiedGallery({captions:!1,lastRow:'justify',rowHeight:180,margins:5}).on('jg.complete',function(){window.lightGallery(document.getElementById('gallery-srcset-demo'),{thumbnail:!1,plugins:[lgZoom,lgShare],allowMediaOverlap:!0,pager:!0,hash:!0})}),jQuery('#gallery-picture-demo').justifiedGallery({captions:!1,lastRow:'justify',rowHeight:180,margins:5}).on('jg.complete',function(){window.lightGallery(document.getElementById('gallery-picture-demo'),{thumbnail:!1,plugins:[lgZoom,lgShare],allowMediaOverlap:!0,pager:!0,hash:!0})}),jQuery('#responsive-images-demo').justifiedGallery({captions:!1,lastRow:'justify',rowHeight:180,margins:5}).on('jg.complete',function(){window.lightGallery(document.getElementById('responsive-images-demo'),{thumbnail:!1,pager:!0,hash:!0,plugins:[lgAutoplay,lgThumbnail]})}),jQuery('#gallery-fb-comments-demo').justifiedGallery({captions:!1,lastRow:'justify',rowHeight:180,margins:5}).on('jg.complete',function(){window.lightGallery(document.getElementById('gallery-fb-comments-demo'),{thumbnail:!1,pager:!1,hash:!0,plugins:[lgZoom,lgComment,lgShare,lgThumbnail],commentBox:!0,disqusComments:!1,fbComments:!0})}),jQuery('#gallery-disqus-comments-demo').justifiedGallery({captions:!1,lastRow:'justify',rowHeight:180,margins:5}).on('jg.complete',function(){window.lightGallery(document.getElementById('gallery-disqus-comments-demo'),{thumbnail:!1,pager:!1,hash:!0,plugins:[lgComment,lgRotate],commentBox:!0,disqusComments:!0,fbComments:!1})}),jQuery('#gallery-mixed-content-demo').justifiedGallery({captions:!1,lastRow:'justify',rowHeight:180,margins:5}).on('jg.complete',function(){window.lightGallery(document.getElementById('gallery-mixed-content-demo'),{thumbnail:!1,pager:!1,hash:!0,plugins:[lgZoom,lgAutoplay,lgFullscreen,lgPager,lgRotate,lgShare,lgThumbnail,lgVideo]})}),jQuery('#gallery-mixed-content-all-demo').justifiedGallery({captions:!1,rowHeight:130,margins:5}).on('jg.complete',function(){window.lightGallery(document.getElementById('gallery-mixed-content-all-demo'),{thumbnail:!1,pager:!1,hash:!0,plugins:[lgZoom,lgAutoplay,lgFullscreen,lgPager,lgRotate,lgShare,lgThumbnail,lgVideo]})}),jQuery('#gallery-share-reddit-demo').justifiedGallery({captions:!1,lastRow:'justify',rowHeight:180,margins:5}).on('jg.complete',function(){window.lightGallery(document.getElementById('gallery-share-reddit-demo'),{thumbnail:!1,pager:!1,hash:!0,galleryId:2,plugins:[lgZoom,lgAutoplay,lgHash,lgFullscreen,lgShare,lgThumbnail],addClass:'lg-custom-share-demo',extraProps:['redditTitle'],additionalShareOptions:[{selector:'.lg-share-reddit',dropdownHTML:'
  • redditReddit
  • ',generateLink:function(a){var b=encodeURIComponent(window.location.href),c=a.redditTitle,d="//reddit.com/submit?url=".concat(b,"&title=").concat(c);return d}}]})}),lightGallery(document.getElementById('gallery-demo-super-customizable'),{pager:!1,hash:!1,mode:'lg-zoom-in-out',selector:'.gallery-item',addClass:'lightGallery-white-theme',plugins:[lgZoom,lgAutoplay,lgFullscreen,lgPager,lgRotate,lgShare,lgThumbnail,lgVideo],mobileSettings:{controls:!1,showCloseIcon:!1,download:!1,rotate:!1}}),$infiniteScrollingGallery=$('#infinite-scroll-gallery'),$('#infinite-scroll-gallery').length&&(infiniteScrollingGallery=lightGallery($infiniteScrollingGallery[0],{plugins:[lgThumbnail,lgZoom]}),images='\n \n \n \n \n \n \n \n \n \n \n \n ',$(window).on('scroll',function(){$(window).scrollTop()>=$(document).height()-$(window).height()-($(document).height()-($infiniteScrollingGallery.position().top+$infiniteScrollingGallery.outerHeight(!0)))&&($('#infinite-scroll-gallery').append(images),infiniteScrollingGallery.refresh())})),lightGallery(document.querySelector('.medium-zoom-demo'),{selector:'.blog-images',plugins:[lgMediumZoom]}),$lgSwiper=document.getElementById('lg-swipper'),$lgSwiper&&(swiper=new Swiper('.swiper',{navigation:{nextEl:'.swiper-button-next',prevEl:'.swiper-button-prev'},on:{init:function(){var a=lightGallery($lgSwiper);$lgSwiper.addEventListener('lgBeforeClose',function(){swiper.slideTo(a.index,0)})}}})) \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index c924ab8d..416def4f 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1 +1 @@ -https://www.lightgalleryjs.com/docs/getting-started/2022-06-13T10:30:37+05:30monthly0.5https://www.lightgalleryjs.com/demos/thumbnails/2022-02-27T11:59:27-05:00monthly0.5https://www.lightgalleryjs.com/docs/settings/2022-07-13T11:56:18+05:30monthly0.5https://www.lightgalleryjs.com/demos/video-gallery/2022-10-27T19:40:47+05:30monthly0.5https://www.lightgalleryjs.com/docs/events/2021-11-17T15:57:59+05:30monthly0.5https://www.lightgalleryjs.com/demos/share/2021-05-29T09:20:37+05:30monthly0.5https://www.lightgalleryjs.com/demos/swiper/2023-06-07T16:01:36+05:30monthly0.5https://www.lightgalleryjs.com/demos/inline/2021-10-11T15:48:17+05:30monthly0.5https://www.lightgalleryjs.com/docs/methods/2021-05-29T09:20:37+05:30monthly0.5https://www.lightgalleryjs.com/docs/dynamic-variables/2021-05-29T09:20:37+05:30monthly0.5https://www.lightgalleryjs.com/demos/hash/2021-05-29T09:20:37+05:30monthly0.5https://www.lightgalleryjs.com/docs/attributes/2021-05-29T09:20:37+05:30monthly0.5https://www.lightgalleryjs.com/demos/responsive/2021-05-29T09:20:37+05:30monthly0.5https://www.lightgalleryjs.com/docs/react/2022-02-14T19:17:33+03:30monthly0.5https://www.lightgalleryjs.com/demos/mixed-contents/2022-10-27T19:40:47+05:30monthly0.5https://www.lightgalleryjs.com/demos/iframe/2023-04-20T11:01:25+05:30monthly0.5https://www.lightgalleryjs.com/docs/vue/2022-01-24T14:34:19+05:30monthly0.5https://www.lightgalleryjs.com/demos/dynamic-mode/2021-05-29T09:20:37+05:30monthly0.5https://www.lightgalleryjs.com/docs/angular/2022-09-19T20:43:11+05:30monthly0.5https://www.lightgalleryjs.com/docs/license/2023-04-05T20:10:18+05:30monthly0.5https://www.lightgalleryjs.com/demos/update-slides/2021-05-29T09:20:37+05:30monthly0.5https://www.lightgalleryjs.com/demos/transitions/2022-10-01T12:30:37+05:30monthly0.5https://www.lightgalleryjs.com/demos/methods/2021-07-29T13:40:26+05:30monthly0.5https://www.lightgalleryjs.com/demos/html-markup/2021-05-29T09:20:37+05:30monthly0.5https://www.lightgalleryjs.com/demos/events/2021-05-29T09:20:37+05:30monthly0.5https://www.lightgalleryjs.com/demos/custom-easing/2021-05-29T09:20:37+05:30monthly0.5https://www.lightgalleryjs.com/demos/captions/2021-08-20T13:28:53+05:30monthly0.5https://www.lightgalleryjs.com/demos/comment-box/2021-05-29T09:20:37+05:30monthly0.5https://www.lightgalleryjs.com/demos/infinite-scrolling/2021-05-29T09:20:37+05:30monthly0.5https://www.lightgalleryjs.com/demos/medium-zoom/2021-05-29T09:20:37+05:30monthly0.5https://www.lightgalleryjs.com/docs/creating-plugins/2021-10-27T15:14:03+02:00monthly0.5https://www.lightgalleryjs.com/docs/custom-work/2021-09-07T13:19:04+05:30monthly0.5https://www.lightgalleryjs.com/docs/lg-query/2021-05-29T09:20:37+05:30monthly0.5https://www.lightgalleryjs.com/demos/zoom-from-origin/2023-04-20T14:30:07+05:30monthly0.5https://www.lightgalleryjs.com/demos/2023-06-07T16:01:36+05:30monthly0.5https://www.lightgalleryjs.com/docs/2023-04-05T20:10:18+05:30monthly0.5https://www.lightgalleryjs.com/2021-05-29T09:20:37+05:30monthly0.5https://www.lightgalleryjs.com/license/2023-04-05T20:12:53+05:30monthly0.5https://www.lightgalleryjs.com/wordpress/2022-01-29T13:54:33+05:30monthly0.5 \ No newline at end of file +https://www.lightgalleryjs.com/docs/getting-started/2022-06-13T10:30:37+05:30monthly0.5https://www.lightgalleryjs.com/demos/thumbnails/2023-06-25T10:39:09+05:30monthly0.5https://www.lightgalleryjs.com/docs/settings/2022-07-13T11:56:18+05:30monthly0.5https://www.lightgalleryjs.com/demos/video-gallery/2022-10-27T19:40:47+05:30monthly0.5https://www.lightgalleryjs.com/docs/events/2021-11-17T15:57:59+05:30monthly0.5https://www.lightgalleryjs.com/demos/share/2021-05-29T09:20:37+05:30monthly0.5https://www.lightgalleryjs.com/demos/swiper/2023-06-07T16:01:36+05:30monthly0.5https://www.lightgalleryjs.com/demos/inline/2021-10-11T15:48:17+05:30monthly0.5https://www.lightgalleryjs.com/docs/methods/2021-05-29T09:20:37+05:30monthly0.5https://www.lightgalleryjs.com/docs/dynamic-variables/2021-05-29T09:20:37+05:30monthly0.5https://www.lightgalleryjs.com/demos/hash/2021-05-29T09:20:37+05:30monthly0.5https://www.lightgalleryjs.com/docs/attributes/2021-05-29T09:20:37+05:30monthly0.5https://www.lightgalleryjs.com/demos/responsive/2021-05-29T09:20:37+05:30monthly0.5https://www.lightgalleryjs.com/docs/react/2022-02-14T19:17:33+03:30monthly0.5https://www.lightgalleryjs.com/demos/mixed-contents/2022-10-27T19:40:47+05:30monthly0.5https://www.lightgalleryjs.com/demos/iframe/2023-04-20T11:01:25+05:30monthly0.5https://www.lightgalleryjs.com/docs/vue/2022-01-24T14:34:19+05:30monthly0.5https://www.lightgalleryjs.com/demos/dynamic-mode/2021-05-29T09:20:37+05:30monthly0.5https://www.lightgalleryjs.com/docs/angular/2022-09-19T20:43:11+05:30monthly0.5https://www.lightgalleryjs.com/docs/license/2023-04-05T20:10:18+05:30monthly0.5https://www.lightgalleryjs.com/demos/update-slides/2021-05-29T09:20:37+05:30monthly0.5https://www.lightgalleryjs.com/demos/transitions/2022-10-01T12:30:37+05:30monthly0.5https://www.lightgalleryjs.com/demos/methods/2021-07-29T13:40:26+05:30monthly0.5https://www.lightgalleryjs.com/demos/html-markup/2021-05-29T09:20:37+05:30monthly0.5https://www.lightgalleryjs.com/demos/events/2021-05-29T09:20:37+05:30monthly0.5https://www.lightgalleryjs.com/demos/custom-easing/2021-05-29T09:20:37+05:30monthly0.5https://www.lightgalleryjs.com/demos/captions/2021-08-20T13:28:53+05:30monthly0.5https://www.lightgalleryjs.com/demos/comment-box/2021-05-29T09:20:37+05:30monthly0.5https://www.lightgalleryjs.com/demos/infinite-scrolling/2021-05-29T09:20:37+05:30monthly0.5https://www.lightgalleryjs.com/demos/medium-zoom/2021-05-29T09:20:37+05:30monthly0.5https://www.lightgalleryjs.com/docs/creating-plugins/2021-10-27T15:14:03+02:00monthly0.5https://www.lightgalleryjs.com/docs/custom-work/2021-09-07T13:19:04+05:30monthly0.5https://www.lightgalleryjs.com/docs/lg-query/2021-05-29T09:20:37+05:30monthly0.5https://www.lightgalleryjs.com/demos/zoom-from-origin/2023-04-20T14:30:07+05:30monthly0.5https://www.lightgalleryjs.com/demos/2023-06-25T10:39:09+05:30monthly0.5https://www.lightgalleryjs.com/docs/2023-04-05T20:10:18+05:30monthly0.5https://www.lightgalleryjs.com/2023-06-25T13:31:00+05:30monthly0.5https://www.lightgalleryjs.com/license/2023-04-05T20:12:53+05:30monthly0.5https://www.lightgalleryjs.com/wordpress/2022-01-29T13:54:33+05:30monthly0.5 \ No newline at end of file diff --git a/wordpress/index.html b/wordpress/index.html index ec513dbd..0421e1dc 100644 --- a/wordpress/index.html +++ b/wordpress/index.html @@ -5,7 +5,7 @@ - + @@ -398,6 +398,6 @@
    WebWhiz.ai
    - + \ No newline at end of file