diff --git a/404.html b/404.html index 3e5b308dc..71b874d60 100644 --- a/404.html +++ b/404.html @@ -5,7 +5,7 @@ - + @@ -87,12 +87,12 @@

Docs

@@ -107,7 +107,7 @@

Docs

@@ -147,7 +147,7 @@

Docs

@@ -155,7 +155,7 @@

Demos

@@ -180,7 +180,7 @@

Demos

@@ -190,7 +190,7 @@

Demos

@@ -200,7 +200,7 @@

Demos

@@ -225,12 +225,12 @@

Demos

@@ -255,12 +255,12 @@

Demos

@@ -285,7 +285,7 @@

Demos

@@ -295,7 +295,7 @@

Demos

@@ -315,7 +315,7 @@

Demos

@@ -339,7 +339,10 @@

Components

Angular + @@ -444,6 +447,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/blog/7-best-react-image-gallery-libraries/index.html b/blog/7-best-react-image-gallery-libraries/index.html index 9d78d9e32..24545779e 100644 --- a/blog/7-best-react-image-gallery-libraries/index.html +++ b/blog/7-best-react-image-gallery-libraries/index.html @@ -5,7 +5,7 @@ - + @@ -378,7 +378,10 @@

Components

Angular + @@ -483,6 +486,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/blog/index.html b/blog/index.html index 2eed0bccf..367aa899f 100644 --- a/blog/index.html +++ b/blog/index.html @@ -5,7 +5,7 @@ - + @@ -165,7 +165,10 @@

Components

Angular + @@ -270,6 +273,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/blog/top-6-javascript-lightbox-galleries./index.html b/blog/top-6-javascript-lightbox-galleries./index.html index 401af26bc..4632de008 100644 --- a/blog/top-6-javascript-lightbox-galleries./index.html +++ b/blog/top-6-javascript-lightbox-galleries./index.html @@ -5,7 +5,7 @@ - + @@ -346,7 +346,10 @@

Components

Angular + @@ -451,6 +454,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/bootstrap-image-carousel/index.html b/demos/bootstrap-image-carousel/index.html index aa61cfe3a..9480767de 100644 --- a/demos/bootstrap-image-carousel/index.html +++ b/demos/bootstrap-image-carousel/index.html @@ -5,7 +5,7 @@ - + @@ -255,7 +255,10 @@

Components

Angular + @@ -360,6 +363,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/bootstrap-image-gallery/index.html b/demos/bootstrap-image-gallery/index.html index 72a15cb4d..88896163c 100644 --- a/demos/bootstrap-image-gallery/index.html +++ b/demos/bootstrap-image-gallery/index.html @@ -5,7 +5,7 @@ - + @@ -223,7 +223,10 @@

Components

Angular + @@ -328,6 +331,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/bootstrap-video-carousel/index.html b/demos/bootstrap-video-carousel/index.html index c1749edaa..7e9d0168e 100644 --- a/demos/bootstrap-video-carousel/index.html +++ b/demos/bootstrap-video-carousel/index.html @@ -5,7 +5,7 @@ - + @@ -293,7 +293,10 @@

Components

Angular + @@ -401,6 +404,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/bootstrap-video-gallery/index.html b/demos/bootstrap-video-gallery/index.html index 35a49d845..fa286b84a 100644 --- a/demos/bootstrap-video-gallery/index.html +++ b/demos/bootstrap-video-gallery/index.html @@ -5,7 +5,7 @@ - + @@ -208,7 +208,10 @@

Components

Angular + @@ -316,6 +319,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/captions/index.html b/demos/captions/index.html index 8338eb399..fcb5dd0c4 100644 --- a/demos/captions/index.html +++ b/demos/captions/index.html @@ -5,7 +5,7 @@ - + @@ -367,7 +367,10 @@

Components

Angular + @@ -472,6 +475,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/carousel-gallery/index.html b/demos/carousel-gallery/index.html index 3d4d2a6e9..90f0182a4 100644 --- a/demos/carousel-gallery/index.html +++ b/demos/carousel-gallery/index.html @@ -5,7 +5,7 @@ - + @@ -226,7 +226,10 @@

Components

Angular + @@ -331,6 +334,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/comment-box/index.html b/demos/comment-box/index.html index 3cdfa4361..c80f42131 100644 --- a/demos/comment-box/index.html +++ b/demos/comment-box/index.html @@ -5,7 +5,7 @@ - + @@ -287,7 +287,10 @@

Components

Angular + @@ -392,6 +395,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/custom-easing/index.html b/demos/custom-easing/index.html index 1a71653e0..c233e47a1 100644 --- a/demos/custom-easing/index.html +++ b/demos/custom-easing/index.html @@ -5,7 +5,7 @@ - + @@ -197,7 +197,10 @@

Components

Angular + @@ -302,6 +305,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/dynamic-mode/index.html b/demos/dynamic-mode/index.html index b5e6e8287..23a10bf2b 100644 --- a/demos/dynamic-mode/index.html +++ b/demos/dynamic-mode/index.html @@ -5,7 +5,7 @@ - + @@ -276,7 +276,10 @@

Components

Angular + @@ -381,6 +384,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/events/index.html b/demos/events/index.html index e9bb0a0e1..d67db3b18 100644 --- a/demos/events/index.html +++ b/demos/events/index.html @@ -5,7 +5,7 @@ - + @@ -205,7 +205,10 @@

Components

Angular + @@ -310,6 +313,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/flickity-demo/index.html b/demos/flickity-demo/index.html index f0c1383b4..7de167e0a 100644 --- a/demos/flickity-demo/index.html +++ b/demos/flickity-demo/index.html @@ -5,7 +5,7 @@ - + @@ -244,7 +244,10 @@

Components

Angular + @@ -349,6 +352,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/hash/index.html b/demos/hash/index.html index 59a9d9ae1..d129cd1e8 100644 --- a/demos/hash/index.html +++ b/demos/hash/index.html @@ -5,7 +5,7 @@ - + @@ -238,7 +238,10 @@

Components

Angular + @@ -343,6 +346,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/html-markup/index.html b/demos/html-markup/index.html index 9d9f4ff83..517d0bb5a 100644 --- a/demos/html-markup/index.html +++ b/demos/html-markup/index.html @@ -5,7 +5,7 @@ - + @@ -207,7 +207,10 @@

Components

Angular + @@ -312,6 +315,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/iframe/index.html b/demos/iframe/index.html index 8d0398827..639e700bc 100644 --- a/demos/iframe/index.html +++ b/demos/iframe/index.html @@ -5,7 +5,7 @@ - + @@ -201,7 +201,10 @@

Components

Angular + @@ -306,6 +309,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/index.html b/demos/index.html index f2542b5d3..95763a467 100644 --- a/demos/index.html +++ b/demos/index.html @@ -5,7 +5,7 @@ - + @@ -270,7 +270,10 @@

Components

Angular + @@ -375,6 +378,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/infinite-scrolling/index.html b/demos/infinite-scrolling/index.html index ee45e1225..d4cd3b62d 100644 --- a/demos/infinite-scrolling/index.html +++ b/demos/infinite-scrolling/index.html @@ -5,7 +5,7 @@ - + @@ -242,7 +242,10 @@

Components

Angular + @@ -347,6 +350,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/inline/index.html b/demos/inline/index.html deleted file mode 100644 index 477107ef1..000000000 --- a/demos/inline/index.html +++ /dev/null @@ -1,419 +0,0 @@ - - - - - - - - - - - - - - - - - - - Inline Gallery - lightGallery - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- -
-

Inline Gallery

-

With lightGallery you can create both inline carousel slider 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

- - -
HTML
-
<div id="inline-gallery-container" class="inline-gallery-container"></div>
-
JavaScript
-
const lgContainer = document.getElementById('inline-gallery-container');
-const inlineGallery = lightGallery(lgContainer, {
-    container: lgContainer,
-    dynamic: true,
-    // Turn off hash plugin in case if you are using it
-    // as we don't want to change the url on slide change
-    hash: false,
-    // Do not allow users to close the gallery
-    closable: false,
-    // Add maximize icon to enlarge the gallery
-    showMaximizeIcon: true,
-    // Append caption inside the slide item
-    // to apply some animation for the captions (Optional)
-    appendSubHtmlTo: '.lg-item',
-    // Delay slide transition to complete captions animations
-    // before navigating to different slides (Optional)
-    // You can find caption animation demo on the captions demo page
-    slideDelay: 400,
-    dynamicEl: [
-        {
-            src: 'img/img1.jpg',
-            thumb: 'img/thumb1.jpg',
-            subHtml: `<div class="lightGallery-captions">
-                <h4>Caption 1</h4>
-                <p>Description of the slide 1</p>
-            </div>`,
-        },
-        {
-            src: 'img/img2.jpg',
-            thumb: 'img/thumb2.jpg',
-            subHtml: `<div class="lightGallery-captions">
-                <h4>Caption 2</h4>
-                <p>Description of the slide 2</p>
-            </div>`,
-        },
-        ...
-    ],
-});
-
-// Since we are using dynamic mode, we need to programmatically open lightGallery
-inlineGallery.openGallery();
-
CSS
-

Set height and width for the container as the inline automatically adopts the container size

-
.inline-gallery-container {
-    width: 100%;
-
-    // set 60% height
-    height: 0;
-    padding-bottom: 65%;
-}
-
- -

- - Edit this page on GitHub

- - -
-
-
- - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/demos/medium-zoom/index.html b/demos/medium-zoom/index.html index 7749dc6e7..a0f796532 100644 --- a/demos/medium-zoom/index.html +++ b/demos/medium-zoom/index.html @@ -5,7 +5,7 @@ - + @@ -275,7 +275,10 @@

Components

Angular + @@ -380,6 +383,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/methods/index.html b/demos/methods/index.html index cd9316834..f58625cdc 100644 --- a/demos/methods/index.html +++ b/demos/methods/index.html @@ -5,7 +5,7 @@ - + @@ -232,7 +232,10 @@

Components

Angular + @@ -337,6 +340,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/mixed-contents/index.html b/demos/mixed-contents/index.html index 6138c6130..fbb6508ea 100644 --- a/demos/mixed-contents/index.html +++ b/demos/mixed-contents/index.html @@ -5,7 +5,7 @@ - + @@ -256,7 +256,10 @@

Components

Angular + @@ -361,6 +364,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/owl-carousel-with-lightbox/index.html b/demos/owl-carousel-with-lightbox/index.html index d130b7a04..efd94f65f 100644 --- a/demos/owl-carousel-with-lightbox/index.html +++ b/demos/owl-carousel-with-lightbox/index.html @@ -5,7 +5,7 @@ - + @@ -251,7 +251,10 @@

Components

Angular + @@ -356,6 +359,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/react-carousel/index.html b/demos/react-carousel/index.html index 1baaee7f5..fd68bfcb2 100644 --- a/demos/react-carousel/index.html +++ b/demos/react-carousel/index.html @@ -5,7 +5,7 @@ - + @@ -224,7 +224,10 @@

Components

Angular + @@ -329,6 +332,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/react-image-gallery/index.html b/demos/react-image-gallery/index.html index 192396977..32783688f 100644 --- a/demos/react-image-gallery/index.html +++ b/demos/react-image-gallery/index.html @@ -5,7 +5,7 @@ - + @@ -244,7 +244,10 @@

Components

Angular + @@ -349,6 +352,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/react-video-carousel/index.html b/demos/react-video-carousel/index.html index a82757cfb..c72b56345 100644 --- a/demos/react-video-carousel/index.html +++ b/demos/react-video-carousel/index.html @@ -5,7 +5,7 @@ - + @@ -238,7 +238,10 @@

Components

Angular + @@ -346,6 +349,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/react-video-gallery/index.html b/demos/react-video-gallery/index.html index 9b4ded95b..d1e5e53c0 100644 --- a/demos/react-video-gallery/index.html +++ b/demos/react-video-gallery/index.html @@ -5,7 +5,7 @@ - + @@ -261,7 +261,10 @@

Components

Angular + @@ -369,6 +372,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/responsive/index.html b/demos/responsive/index.html index 07ecf9753..84e5286b7 100644 --- a/demos/responsive/index.html +++ b/demos/responsive/index.html @@ -5,7 +5,7 @@ - + @@ -330,7 +330,10 @@

Components

Angular + @@ -435,6 +438,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/share/index.html b/demos/share/index.html index 30de5e999..407f6add6 100644 --- a/demos/share/index.html +++ b/demos/share/index.html @@ -5,7 +5,7 @@ - + @@ -305,7 +305,10 @@

Components

Angular + @@ -410,6 +413,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/slick-carousel-demo/index.html b/demos/slick-carousel-demo/index.html index 22f0fd8d6..a5d15b09d 100644 --- a/demos/slick-carousel-demo/index.html +++ b/demos/slick-carousel-demo/index.html @@ -5,7 +5,7 @@ - + @@ -259,7 +259,10 @@

Components

Angular + @@ -364,6 +367,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/swiper/index.html b/demos/swiper/index.html index 0ee07a899..bdbc5bda7 100644 --- a/demos/swiper/index.html +++ b/demos/swiper/index.html @@ -5,7 +5,7 @@ - + @@ -245,7 +245,10 @@

Components

Angular + @@ -350,6 +353,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/thumbnails/index.html b/demos/thumbnails/index.html index 5cd97e841..6a2e776cf 100644 --- a/demos/thumbnails/index.html +++ b/demos/thumbnails/index.html @@ -5,7 +5,7 @@ - + @@ -521,7 +521,10 @@

Components

Angular + @@ -626,6 +629,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/transitions/index.html b/demos/transitions/index.html index b383f9a8a..5a00301f3 100644 --- a/demos/transitions/index.html +++ b/demos/transitions/index.html @@ -5,7 +5,7 @@ - + @@ -253,7 +253,10 @@

Components

Angular + @@ -358,6 +361,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/update-slides/index.html b/demos/update-slides/index.html index 0b4c643d8..ebda39ac2 100644 --- a/demos/update-slides/index.html +++ b/demos/update-slides/index.html @@ -5,7 +5,7 @@ - + @@ -276,7 +276,10 @@

Components

Angular + @@ -381,6 +384,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/video-carousel/index.html b/demos/video-carousel/index.html index c0bef7528..dd749cba8 100644 --- a/demos/video-carousel/index.html +++ b/demos/video-carousel/index.html @@ -5,7 +5,7 @@ - + @@ -226,7 +226,10 @@

Components

Angular + @@ -334,6 +337,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/demos/video-gallery/index.html b/demos/video-gallery/index.html index 7e3bc02d9..d16853a69 100644 --- a/demos/video-gallery/index.html +++ b/demos/video-gallery/index.html @@ -5,7 +5,7 @@ - + @@ -378,7 +378,10 @@

Components

Angular + @@ -486,6 +489,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 add183552..30dceb4d2 100644 --- a/demos/zoom-from-origin/index.html +++ b/demos/zoom-from-origin/index.html @@ -5,7 +5,7 @@ - + @@ -246,7 +246,10 @@

Components

Angular + @@ -351,6 +354,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/docs/angular-image-video-gallery/index.html b/docs/angular-image-video-gallery/index.html index 620771e0a..426ccb63b 100644 --- a/docs/angular-image-video-gallery/index.html +++ b/docs/angular-image-video-gallery/index.html @@ -5,7 +5,7 @@ - + @@ -739,7 +739,10 @@

Components

Angular + @@ -844,6 +847,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/docs/angular/index.html b/docs/angular/index.html deleted file mode 100644 index 3173ae7e2..000000000 --- a/docs/angular/index.html +++ /dev/null @@ -1,840 +0,0 @@ - - - - - - - - - - - - - - -lightGallery Angular - lightGallery - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-

lightGallery Angular

-

Full featured image and video gallery component for angular.

-

StackBlitz -Demo

-

Installation

-

Follow the below steps to use lightGallery angular component in your -application. Angular component is part of the main lightGallery package on NPM. -You can import it using the following way

-
    -
  • -

    Install lightGallery via NPM

    -

    npm install lightgallery

    -
  • -
  • -

    Import lightGallery module

    -
  • -
-
// For angular version 14
-import { LightgalleryModule } from 'lightgallery/angular';
-
-// lightGallery supports the last 4 major version of Angular,
-// if you are using older versions of angular, you can import the respective versions
-// For example, if you are using Angular version 13, you can import it using
-// import { LightgalleryModule } from 'lightgallery/angular/13';
-
-@NgModule({
-    imports: [LightgalleryModule],
-})
-export class AppModule {}
-

Since, version 2.2.0, lightGallery supports the last 4 major versions of Angular. -If you are using an older version of Angular, please choose the respective version.

-

For example, if you are using Angular version 13, you can import it by suffixing the version number as shown below

-
import { LightgalleryModule } from 'lightgallery/angular/13';
-
    -
  • import styles in styles.scss
  • -
-
@import '~lightgallery/scss/lightgallery';
-
    -
  • template
  • -
-
<lightgallery [settings]="settings" [onInit]="onInit">
-    <a href="img/img1.jpg">
-        <img alt="img1" src="img/thumb1.jpg" />
-    </a>
-    <a href="img/img1.jpg">
-        <img alt="img2" src="img/thumb1.jpg" />
-    </a>
-</lightgallery>
-

Inputs

-

All lightGallery settings can be passed to angular component via settings input. -Additionally, you can use lifecycle hook methods listed below to hook into -lightGalley component lifecycle. Almost every method passes a detail object -which holds useful plugin data

-

usage example

-
@Component({
-    selector: 'gallery',
-    template: `
-        <lightgallery [settings]="settings" [onBeforeSlide]="onBeforeSlide">
-            <a href="img/img1.jpg">
-                <img alt="img1" src="img/thumb1.jpg" />
-            </a>
-            <a href="img/img1.jpg">
-                <img alt="img2" src="img/thumb1.jpg" />
-            </a>
-        </lightgallery>
-    `,
-})
-export class AppComponent {
-    settings = {
-        counter: false,
-        plugins: [lgZoom],
-    };
-    onBeforeSlide = (detail: BeforeSlideDetail): void => {
-        const { index, prevIndex } = detail;
-        console.log(index, prevIndex);
-    };
-}
-
-
-

Name: onInit

-

Description: Called only once when lightGallery is initialized

-

Detail:

- - - - - - - - - - - -
NameTypeDescription
instanceLightGallery -lightGallery plugin instance -
-
-
-

Name: onBeforeOpen -

-

Description: Called immediately before opening the gallery

-
-
-

Name: onAfterOpen -

-

Description: Called immediately after opening the gallery

-
-
-

Name: onAfterAppendSlide -

-

Description: Called when the slide content has been inserted into it's slide container.

-

Detail:

- - - - - - - - - - - -
NameTypeDescription
indexnumber -Index of the slide -
-
-
-

Name: onAfterAppendSubHtml -

-

Description: Called when the sub-html content (ex : title/ description) has been appended into the slide.

-

Detail:

- - - - - - - - - - - -
NameTypeDescription
indexnumber -Index of the slide -
-
-
-

Name: onSlideItemLoad -

-

Description: Called once the media inside the slide has been completely loaded .

-

Detail:

- - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
delaynumber -For the first slide, lightGallery adds some delay for displaying the loaded slide item. -This delay is required for the transition effect when the slide item is displayed -Respect the delay when you use this event -
indexnumber -Index of the slide -
isFirstSlideboolean -
-
-
-

Name: onHasVideo -

-

Description: Called when lightGallery detects video slide

-

Detail:

- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
hasPosterboolean -True if video has poster -
html5VideoVideoSource -HTML5 video source if available -

-HTML5 video source = source: { -src: string; -type: string; -}[]; -attributes: HTMLVideoElement; -

-
indexnumber -Index of the slide, -
srcstring -Video source -
-
-
-

Name: onBeforeSlide

-

Description: Called immediately before each slide transition.

-

Detail:

- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
fromThumbboolean -true if slide function called via thumbnail click -
fromTouchboolean -true if slide function called via touch event or mouse drag -
indexnumber -Index of the slide -
prevIndexnumber -Index of the previous slide -
-
-
-

Name: onAfterSlide -

-

Description: Called immediately after each slide transition.

-

Detail:

- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
fromThumbboolean -true if slide function called via thumbnail click -
fromTouchboolean -true if slide function called via touch event or mouse drag -
indexnumber -Index of the slide -
prevIndexnumber -Index of the previous slide -
-
-
-

Name: onBeforeNextSlide -

-

Description: Called immediately before each "next" slide transition

-

Detail:

- - - - - - - - - - - - - - - - -
NameTypeDescription
fromTouchboolean -true if slide function called via touch event or mouse drag -
indexnumber -Index of the slide -
-
-
-

Name: onBeforePrevSlide -

-

Description: Called immediately before each "prev" slide transition

-

Detail:

- - - - - - - - - - - - - - - - -
NameTypeDescription
fromTouchboolean -true if slide function called via touch event or mouse drag -
indexnumber -Index of the slide -
-
-
-

Name: onPosterClick -

-

Description: Called when the video poster is clicked.

-
-
-

Name: onDragStart -

-

Description: Called when the drag event to move to different slide starts.

-
-
-

Name: onDragMove -

-

Description: Called periodically during the drag operation.

-
-
-

Name: onDragEnd -

-

Description: Called when the user has finished the drag operation

-
-
-

Name: onContainerResize -

-

Description: Called when the lightGallery container has been resized.

-

Detail:

- - - - - - - - - - - -
NameTypeDescription
indexnumber -Index of the slide -
-
-
-

Name: onBeforeClose -

-

Description: Called immediately before the start of the close process.

-
-
-

Name: onAfterClose -

-

Description: Called immediately once lightGallery is closed.

-

Detail:

- - - - - - - - - - - -
NameTypeDescription
instanceLightGallery -lightGallery plugin instance -
-
-
-

Name: onRotateLeft -

-

Description: Called when the image is rotated in anticlockwise direction

-

Detail:

- - - - - - - - - - - -
NameTypeDescription
indexnumber -Index of the slide -
-
-
-

Name: onRotateRight -

-

Description: Called when the image is rotated in clockwise direction

-

Detail:

- - - - - - - - - - - -
NameTypeDescription
indexnumber -Index of the slide -
-
-
-

Name: onFlipHorizontal -

-

Description: Called when the image is flipped horizontally

-

Detail:

- - - - - - - - - - - -
NameTypeDescription
indexnumber -Index of the slide -
-
-
-

Name: onFlipVertical -

-

Description: Called when the image is flipped vertically

-

Detail:

- - - - - - - - - - - -
NameTypeDescription
indexnumber -Index of the slide -
-
-
-

Updating slides

-

lightGallery does not update slides automatically due to performance reasons. -But you can easily update slides whenever needed by calling refresh method.

-

StackBlitz -Demo

-
@Component({
-    selector: 'my-app',
-    templateUrl: './app.component.html',
-    styleUrls: ['./app.component.css'],
-    encapsulation: ViewEncapsulation.None,
-})
-export class AppComponent {
-    private lightGallery!: LightGallery;
-    private needRefresh = false;
-    ngAfterViewChecked(): void {
-        if (this.needRefresh) {
-            this.lightGallery.refresh();
-            this.needRefresh = false;
-        }
-    }
-    title = 'angular-demo';
-    settings = {
-        counter: false,
-        plugins: [lgZoom],
-    };
-    items = [
-        {
-            id: '1',
-            size: '1400-800',
-            src: 'img-1.jpg',
-            thumb: 'thumb-1.jpg',
-        },
-        {
-            id: '2',
-            size: '1400-800',
-            src: 'img-2.jpg',
-            thumb: 'thumb-2.jpg',
-        },
-    ];
-    onInit = (detail: InitDetail): void => {
-        this.lightGallery = detail.instance;
-    };
-    addImage = () => {
-        this.items = [
-            ...this.items,
-            {
-                id: '5',
-                size: '1400-800',
-                src: 'img-5.jpg',
-                thumb: 'thumb-5.jpg',
-            },
-        ];
-        this.needRefresh = true;
-    };
-}
-
-

Edit this page on GitHub

- -
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/docs/attributes/index.html b/docs/attributes/index.html index f8271ce68..1fff6ebc0 100644 --- a/docs/attributes/index.html +++ b/docs/attributes/index.html @@ -5,7 +5,7 @@ - + @@ -538,7 +538,10 @@

Components

Angular + @@ -643,6 +646,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/docs/creating-plugins/index.html b/docs/creating-plugins/index.html index b2d669094..a4f8633cb 100644 --- a/docs/creating-plugins/index.html +++ b/docs/creating-plugins/index.html @@ -5,7 +5,7 @@ - + @@ -214,7 +214,10 @@

Components

Angular + @@ -319,6 +322,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/docs/custom-work/index.html b/docs/custom-work/index.html index 9b581fb07..ebc5f7495 100644 --- a/docs/custom-work/index.html +++ b/docs/custom-work/index.html @@ -5,7 +5,7 @@ - + @@ -145,7 +145,10 @@

Components

Angular + @@ -250,6 +253,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/docs/dynamic-variables/index.html b/docs/dynamic-variables/index.html index b8358f3c4..00e6a773e 100644 --- a/docs/dynamic-variables/index.html +++ b/docs/dynamic-variables/index.html @@ -5,7 +5,7 @@ - + @@ -435,7 +435,10 @@

Components

Angular + @@ -540,6 +543,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/docs/events/index.html b/docs/events/index.html index 4ebb28dc4..079e994dc 100644 --- a/docs/events/index.html +++ b/docs/events/index.html @@ -5,7 +5,7 @@ - + @@ -608,7 +608,10 @@

Components

Angular + @@ -713,6 +716,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/docs/getting-started/index.html b/docs/getting-started/index.html index a386f1f73..72fe2ac92 100644 --- a/docs/getting-started/index.html +++ b/docs/getting-started/index.html @@ -5,7 +5,7 @@ - + @@ -305,7 +305,10 @@

Components

Angular + @@ -410,6 +413,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 92b780888..3ee06c5f9 100644 --- a/docs/index.html +++ b/docs/index.html @@ -5,7 +5,7 @@ - + @@ -170,7 +170,10 @@

Components

Angular + @@ -275,6 +278,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/docs/lg-query/index.html b/docs/lg-query/index.html index ce5a33f2e..45a129d00 100644 --- a/docs/lg-query/index.html +++ b/docs/lg-query/index.html @@ -5,7 +5,7 @@ - + @@ -138,7 +138,10 @@

Components

Angular + @@ -243,6 +246,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/docs/license/index.html b/docs/license/index.html index 353eb8739..9350c52e6 100644 --- a/docs/license/index.html +++ b/docs/license/index.html @@ -5,7 +5,7 @@ - + @@ -163,7 +163,10 @@

Components

Angular + @@ -268,6 +271,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/docs/methods/index.html b/docs/methods/index.html index ef518ffdf..23c2d7571 100644 --- a/docs/methods/index.html +++ b/docs/methods/index.html @@ -5,7 +5,7 @@ - + @@ -348,7 +348,10 @@

Components

Angular + @@ -453,6 +456,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/docs/react-image-video-gallery/index.html b/docs/react-image-video-gallery/index.html index 7bb6c5fa3..a8d8abcc5 100644 --- a/docs/react-image-video-gallery/index.html +++ b/docs/react-image-video-gallery/index.html @@ -5,7 +5,7 @@ - + @@ -765,7 +765,10 @@

Components

Angular + @@ -870,6 +873,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/docs/react/index.html b/docs/react/index.html deleted file mode 100644 index e4112eb0c..000000000 --- a/docs/react/index.html +++ /dev/null @@ -1,866 +0,0 @@ - - - - - - - - - - - - - - -lightGallery React - lightGallery - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-

lightGallery React

-

Full featured image and video gallery component for react.

-

StackBlitz -Demo

-

Installation

-

Follow the below steps to use lightGallery react component in your application. -React component is part of the main lightGallery package on NPM. You can import -it using the following way

-
    -
  • -

    Install lightGallery via NPM

    -

    npm install lightgallery

    -
  • -
  • -

    Import react component and styles

    -
  • -
-
import LightGallery from 'lightgallery/react';
-
-// import styles
-import 'lightgallery/css/lightgallery.css';
-import 'lightgallery/css/lg-zoom.css';
-import 'lightgallery/css/lg-thumbnail.css';
-
-// If you want you can use SCSS instead of css
-import 'lightgallery/scss/lightgallery.scss';
-import 'lightgallery/scss/lg-zoom.scss';
-
-// import plugins if you need
-import lgThumbnail from 'lightgallery/plugins/thumbnail';
-import lgZoom from 'lightgallery/plugins/zoom';
-
-function Gallery() {
-    const onInit = () => {
-        console.log('lightGallery has been initialized');
-    };
-    return (
-        <div className="App">
-            <LightGallery
-                onInit={onInit}
-                speed={500}
-                plugins={[lgThumbnail, lgZoom]}
-            >
-                <a href="img/img1.jpg">
-                    <img alt="img1" src="img/thumb1.jpg" />
-                </a>
-                <a href="img/img2.jpg">
-                    <img alt="img2" src="img/thumb2.jpg" />
-                </a>
-                ...
-            </LightGallery>
-        </div>
-    );
-}
-

Props and methods

-

All lightGallery settings can be passed to react component as props. -Additionally, you can use lifecycle hook methods listed below to hook into -lightGalley component lifecycle. Almost every method passes a detail object -which holds useful plugin data. Also, you can pass additional classnames to the -lightGallery react wrapper element via elementClassNames prop

-

usage example

-
function Gallery() {
-    const onBeforeSlide = (detail) => {
-        const { index, prevIndex } = detail;
-        console.log(index, prevIndex);
-    };
-    return (
-        <div className="App">
-            <LightGallery
-                elementClassNames="custom-wrapper-class"
-                onBeforeSlide={onBeforeSlide}
-            >
-                <a href="img/img1.jpg">
-                    <img alt="img1" src="img/thumb1.jpg" />
-                </a>
-                ...
-            </LightGallery>
-        </div>
-    );
-}
-
-
-

Name: onInit

-

Description: Called only once when lightGallery is initialized

-

Detail:

- - - - - - - - - - - -
NameTypeDescription
instanceLightGallery -lightGallery plugin instance -
-
-
-

Name: onBeforeOpen -

-

Description: Called immediately before opening the gallery

-
-
-

Name: onAfterOpen -

-

Description: Called immediately after opening the gallery

-
-
-

Name: onAfterAppendSlide -

-

Description: Called when the slide content has been inserted into it's slide container.

-

Detail:

- - - - - - - - - - - -
NameTypeDescription
indexnumber -Index of the slide -
-
-
-

Name: onAfterAppendSubHtml -

-

Description: Called when the sub-html content (ex : title/ description) has been appended into the slide.

-

Detail:

- - - - - - - - - - - -
NameTypeDescription
indexnumber -Index of the slide -
-
-
-

Name: onSlideItemLoad -

-

Description: Called once the media inside the slide has been completely loaded .

-

Detail:

- - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
delaynumber -For the first slide, lightGallery adds some delay for displaying the loaded slide item. -This delay is required for the transition effect when the slide item is displayed -Respect the delay when you use this event -
indexnumber -Index of the slide -
isFirstSlideboolean -
-
-
-

Name: onHasVideo -

-

Description: Called when lightGallery detects video slide

-

Detail:

- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
hasPosterboolean -True if video has poster -
html5VideoVideoSource -HTML5 video source if available -

-HTML5 video source = source: { -src: string; -type: string; -}[]; -attributes: HTMLVideoElement; -

-
indexnumber -Index of the slide, -
srcstring -Video source -
-
-
-

Name: onBeforeSlide

-

Description: Called immediately before each slide transition.

-

Detail:

- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
fromThumbboolean -true if slide function called via thumbnail click -
fromTouchboolean -true if slide function called via touch event or mouse drag -
indexnumber -Index of the slide -
prevIndexnumber -Index of the previous slide -
-
-
-

Name: onAfterSlide -

-

Description: Called immediately after each slide transition.

-

Detail:

- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
fromThumbboolean -true if slide function called via thumbnail click -
fromTouchboolean -true if slide function called via touch event or mouse drag -
indexnumber -Index of the slide -
prevIndexnumber -Index of the previous slide -
-
-
-

Name: onBeforeNextSlide -

-

Description: Called immediately before each "next" slide transition

-

Detail:

- - - - - - - - - - - - - - - - -
NameTypeDescription
fromTouchboolean -true if slide function called via touch event or mouse drag -
indexnumber -Index of the slide -
-
-
-

Name: onBeforePrevSlide -

-

Description: Called immediately before each "prev" slide transition

-

Detail:

- - - - - - - - - - - - - - - - -
NameTypeDescription
fromTouchboolean -true if slide function called via touch event or mouse drag -
indexnumber -Index of the slide -
-
-
-

Name: onPosterClick -

-

Description: Called when the video poster is clicked.

-
-
-

Name: onDragStart -

-

Description: Called when the drag event to move to different slide starts.

-
-
-

Name: onDragMove -

-

Description: Called periodically during the drag operation.

-
-
-

Name: onDragEnd -

-

Description: Called when the user has finished the drag operation

-
-
-

Name: onContainerResize -

-

Description: Called when the lightGallery container has been resized.

-

Detail:

- - - - - - - - - - - -
NameTypeDescription
indexnumber -Index of the slide -
-
-
-

Name: onBeforeClose -

-

Description: Called immediately before the start of the close process.

-
-
-

Name: onAfterClose -

-

Description: Called immediately once lightGallery is closed.

-

Detail:

- - - - - - - - - - - -
NameTypeDescription
instanceLightGallery -lightGallery plugin instance -
-
-
-

Name: onRotateLeft -

-

Description: Called when the image is rotated in anticlockwise direction

-

Detail:

- - - - - - - - - - - -
NameTypeDescription
indexnumber -Index of the slide -
-
-
-

Name: onRotateRight -

-

Description: Called when the image is rotated in clockwise direction

-

Detail:

- - - - - - - - - - - -
NameTypeDescription
indexnumber -Index of the slide -
-
-
-

Name: onFlipHorizontal -

-

Description: Called when the image is flipped horizontally

-

Detail:

- - - - - - - - - - - -
NameTypeDescription
indexnumber -Index of the slide -
-
-
-

Name: onFlipVertical -

-

Description: Called when the image is flipped vertically

-

Detail:

- - - - - - - - - - - -
NameTypeDescription
indexnumber -Index of the slide -
-
-
-

Updating slides

-

lightGallery does not update slides automatically due to performance reasons. -But you can easily update slides whenever needed by calling refresh method.

-

StackBlitz -Demo

-
function App() {
-    const lightGallery = useRef<any>(null);
-    const [items, setItems] = useState([
-        {
-            id: '1',
-            size: '1400-800',
-            src: 'img-1.jpg',
-            thumb: 'thumb-1.jpg',
-        },
-        {
-            id: '2',
-            size: '1400-800',
-            src: 'img-2.jpg',
-            thumb: 'thumb-2.jpg',
-        },
-    ]);
-
-    const addItem = useCallback(() => {
-        setItems([
-            ...items,
-            {
-                id: '5',
-                size: '1400-800',
-                src: 'img-5.jpg',
-                thumb: 'thumb-5.jpg',
-            },
-            {
-                id: '6',
-                size: '1400-800',
-                src: 'img-6.jpg',
-                thumb: 'thumb-6.jpg',
-            },
-        ]);
-    }, []);
-
-    const onInit = useCallback((detail) => {
-        if (detail) {
-            lightGallery.current = detail.instance;
-        }
-    }, []);
-
-    const getItems = useCallback(() => {
-        return items.map((item) => {
-            return (
-                <div
-                    key={item.id}
-                    data-lg-size={item.size}
-                    className="gallery-item"
-                    data-src={item.src}
-                >
-                    <img className="img-responsive" src={item.thumb} />
-                </div>
-            );
-        });
-    }, [items]);
-
-    useEffect(() => {
-        lightGallery.current.refresh();
-    }, [items]);
-
-    return (
-        <div className="App">
-            <button onClick={addItem}>Add new item</button>
-            <LightGallery
-                plugins={[lgZoom]}
-                elementClassNames="custom-class-name"
-                onInit={onInit}
-            >
-                {getItems()}
-            </LightGallery>
-        </div>
-    );
-}
-
-

Edit this page on GitHub

- -
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/docs/settings/index.html b/docs/settings/index.html index 41e17b094..f10c541b3 100644 --- a/docs/settings/index.html +++ b/docs/settings/index.html @@ -5,7 +5,7 @@ - + @@ -2302,7 +2302,10 @@

Components

Angular + @@ -2407,6 +2410,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/docs/vue-image-video-gallery/index.html b/docs/vue-image-video-gallery/index.html index 229ab452c..23c041966 100644 --- a/docs/vue-image-video-gallery/index.html +++ b/docs/vue-image-video-gallery/index.html @@ -5,7 +5,7 @@ - + @@ -783,7 +783,10 @@

Components

Angular + @@ -888,6 +891,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/docs/vue/index.html b/docs/vue/index.html deleted file mode 100644 index 5294084c3..000000000 --- a/docs/vue/index.html +++ /dev/null @@ -1,884 +0,0 @@ - - - - - - - - - - - - - - -lightGallery Vue - lightGallery - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-

lightGallery Vue

-

Full featured image and video gallery component for vue.

- -

StackBlitz -Demo

-

Installation

-

Follow the below steps to use lightGallery vue component in your application. -Vue component is part of the main lightGallery package on NPM. You can import it -using the following way

-
    -
  • -

    Install lightGallery via NPM

    -

    npm install lightgallery

    -
  • -
  • -

    Import vue component and styles

    -
  • -
-
<template>
-    <lightgallery
-        :settings="{ speed: 500, plugins: plugins }"
-        :onInit="onInit"
-        :onBeforeSlide="onBeforeSlide"
-    >
-        <a href="img/img1.jpg">
-            <img alt="img1" src="img/thumb1.jpg" />
-        </a>
-        <a href="img/img2.jpg">
-            <img alt="img2" src="img/thumb2.jpg" />
-        </a>
-        ...
-    </lightgallery>
-</template>
-
-<script lang="ts">
-    import { Options, Vue } from 'vue-class-component';
-    import Lightgallery from 'lightgallery/vue';
-    import lgThumbnail from 'lightgallery/plugins/thumbnail';
-    import lgZoom from 'lightgallery/plugins/zoom';
-
-    // If you are using scss you can skip the css imports below and use scss instead
-    import styles from 'lightgallery/scss/lightgallery.scss';
-
-    @Options({
-        components: {
-            Lightgallery,
-        },
-        data: () => ({
-            plugins: [lgThumbnail, lgZoom],
-        }),
-        methods: {
-            onInit: () => {
-                console.log('lightGallery has been initialized');
-            },
-            onBeforeSlide: () => {
-                console.log('calling before slide');
-            },
-        },
-    })
-    export default class App extends Vue {}
-</script>
-<style lang="css" scoped>
-    @import 'lightgallery/css/lightgallery.css';
-    @import 'lightgallery/css/lg-thumbnail.css';
-    @import 'lightgallery/css/lg-zoom.css';
-</style>
-

Props and methods

-

All lightGallery settings can be passed to vue component via settings prop. -Additionally, you can use lifecycle hook methods listed below to hook into -lightGalley component lifecycle. Almost every method passes a detail object -which holds useful plugin data

-

usage example

-
<template>
-    <lightgallery
-        :onBeforeSlide="onBeforeSlide"
-    >
-        <a href="img/img1.jpg">
-            <img alt="img1" src="img/thumb1.jpg" />
-        </a>
-        <a href="img/img2.jpg">
-            <img alt="img2" src="img/thumb2.jpg" />
-        </a>
-        ...
-    </lightgallery>
-</template>
-@Options({
-    components: {
-        Lightgallery,
-    },
-    methods: {
-        onBeforeSlide: (detail) => {
-            const { index, prevIndex } = detail;
-            console.log(index, prevIndex);
-        },
-    },
-})
-export default class App extends Vue {}
-
-
-

Name: onInit

-

Description: Called only once when lightGallery is initialized

-

Detail:

- - - - - - - - - - - -
NameTypeDescription
instanceLightGallery -lightGallery plugin instance -
-
-
-

Name: onBeforeOpen -

-

Description: Called immediately before opening the gallery

-
-
-

Name: onAfterOpen -

-

Description: Called immediately after opening the gallery

-
-
-

Name: onAfterAppendSlide -

-

Description: Called when the slide content has been inserted into it's slide container.

-

Detail:

- - - - - - - - - - - -
NameTypeDescription
indexnumber -Index of the slide -
-
-
-

Name: onAfterAppendSubHtml -

-

Description: Called when the sub-html content (ex : title/ description) has been appended into the slide.

-

Detail:

- - - - - - - - - - - -
NameTypeDescription
indexnumber -Index of the slide -
-
-
-

Name: onSlideItemLoad -

-

Description: Called once the media inside the slide has been completely loaded .

-

Detail:

- - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
delaynumber -For the first slide, lightGallery adds some delay for displaying the loaded slide item. -This delay is required for the transition effect when the slide item is displayed -Respect the delay when you use this event -
indexnumber -Index of the slide -
isFirstSlideboolean -
-
-
-

Name: onHasVideo -

-

Description: Called when lightGallery detects video slide

-

Detail:

- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
hasPosterboolean -True if video has poster -
html5VideoVideoSource -HTML5 video source if available -

-HTML5 video source = source: { -src: string; -type: string; -}[]; -attributes: HTMLVideoElement; -

-
indexnumber -Index of the slide, -
srcstring -Video source -
-
-
-

Name: onBeforeSlide

-

Description: Called immediately before each slide transition.

-

Detail:

- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
fromThumbboolean -true if slide function called via thumbnail click -
fromTouchboolean -true if slide function called via touch event or mouse drag -
indexnumber -Index of the slide -
prevIndexnumber -Index of the previous slide -
-
-
-

Name: onAfterSlide -

-

Description: Called immediately after each slide transition.

-

Detail:

- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
fromThumbboolean -true if slide function called via thumbnail click -
fromTouchboolean -true if slide function called via touch event or mouse drag -
indexnumber -Index of the slide -
prevIndexnumber -Index of the previous slide -
-
-
-

Name: onBeforeNextSlide -

-

Description: Called immediately before each "next" slide transition

-

Detail:

- - - - - - - - - - - - - - - - -
NameTypeDescription
fromTouchboolean -true if slide function called via touch event or mouse drag -
indexnumber -Index of the slide -
-
-
-

Name: onBeforePrevSlide -

-

Description: Called immediately before each "prev" slide transition

-

Detail:

- - - - - - - - - - - - - - - - -
NameTypeDescription
fromTouchboolean -true if slide function called via touch event or mouse drag -
indexnumber -Index of the slide -
-
-
-

Name: onPosterClick -

-

Description: Called when the video poster is clicked.

-
-
-

Name: onDragStart -

-

Description: Called when the drag event to move to different slide starts.

-
-
-

Name: onDragMove -

-

Description: Called periodically during the drag operation.

-
-
-

Name: onDragEnd -

-

Description: Called when the user has finished the drag operation

-
-
-

Name: onContainerResize -

-

Description: Called when the lightGallery container has been resized.

-

Detail:

- - - - - - - - - - - -
NameTypeDescription
indexnumber -Index of the slide -
-
-
-

Name: onBeforeClose -

-

Description: Called immediately before the start of the close process.

-
-
-

Name: onAfterClose -

-

Description: Called immediately once lightGallery is closed.

-

Detail:

- - - - - - - - - - - -
NameTypeDescription
instanceLightGallery -lightGallery plugin instance -
-
-
-

Name: onRotateLeft -

-

Description: Called when the image is rotated in anticlockwise direction

-

Detail:

- - - - - - - - - - - -
NameTypeDescription
indexnumber -Index of the slide -
-
-
-

Name: onRotateRight -

-

Description: Called when the image is rotated in clockwise direction

-

Detail:

- - - - - - - - - - - -
NameTypeDescription
indexnumber -Index of the slide -
-
-
-

Name: onFlipHorizontal -

-

Description: Called when the image is flipped horizontally

-

Detail:

- - - - - - - - - - - -
NameTypeDescription
indexnumber -Index of the slide -
-
-
-

Name: onFlipVertical -

-

Description: Called when the image is flipped vertically

-

Detail:

- - - - - - - - - - - -
NameTypeDescription
indexnumber -Index of the slide -
-
-
-

Updating slides

-

lightGallery does not update slides automatically due to performance reasons. -But you can easily update slides whenever needed by calling refresh method.

-

StackBlitz -Demo

-
<template>
-    <button v-on:click="updateSlides">Add new image</button>
-    <lightgallery
-        :settings="{ speed: 500, plugins: plugins }"
-        :onInit="onInit"
-        :onBeforeSlide="onBeforeSlide"
-    >
-        <a
-            v-for="item in items"
-            :key="item.id"
-            :data-lg-size="item.size"
-            className="gallery-item"
-            :data-src="item.src"
-        >
-            <img className="img-responsive" :src="item.thumb" />
-        </a>
-    </lightgallery>
-</template>
-
-<script>
-import Lightgallery from 'lightgallery/vue';
-import lgZoom from 'lightgallery/plugins/zoom';
-let lightGallery: any = null;
-export default {
-    name: 'App',
-    components: {
-        Lightgallery,
-    },
-    watch: {
-        items(newVal, oldVal) {
-            this.$nextTick(() => {
-                lightGallery.refresh();
-            });
-        },
-    },
-    data: () => ({
-        plugins: [lgZoom],
-        items: [
-            {
-                id: '1',
-                size: '1400-800',
-                src: 'img-1.jpg',
-                thumb: 'thumb-1.jpg',
-            },
-            {
-                id: '2',
-                size: '1400-800',
-                src: 'img-2.jpg',
-                thumb: 'thumb-2.jpg',
-            },
-        ],
-    }),
-    methods: {
-        onInit: (detail) => {
-            lightGallery = detail.instance;
-        },
-        updateSlides: function () {
-            this.items = [
-                ...this.items,
-                {
-                    id: '5',
-                    size: '1400-800',
-                    src: 'img-5.jpg',
-                    thumb: 'thumb-5.jpg',
-                }
-            ];
-            lightGallery.refresh();
-        },
-    },
-};
-</script>
-
-
-

Edit this page on GitHub

- -
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/download-youtube-thumbnails/index.html b/download-youtube-thumbnails/index.html new file mode 100644 index 000000000..ba3264256 --- /dev/null +++ b/download-youtube-thumbnails/index.html @@ -0,0 +1,428 @@ + + + + + + + + + + + + + + +Download YouTube Thumbnails - lightGallery + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+

+Download YouTube Thumbnails +

+
+

+Simply paste the URL of the YouTube video, and instantly download its thumbnail in +various resolutions such as HD, SD, and more. +

+
+
+
+
+
+ +
+
+ +
+
+
+
+
+ + +
+
+
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+

About YouTube Thumbnail Downloader

+

For each YouTube video, YouTube generates multiple thumbnail sizes +including HD Image (1280x720), SD Image (640x480), Normal Image (480x360), Small Image +(320x180), and Extra Small Image (120x90).

+

To use these images on your website, simply copy the YouTube video +URL from your browser's address bar and paste it into our YouTube thumbnail grabber's input box. +We'll retrieve all the available thumbnails and display them with a download button. You can +then click on the desired image to save it to your computer or use the image directly via its +URL.

+
+
+
+
+
+
+
+
+
+
+
+
+

Frequently Asked Questions (FAQs)

+
+
+
+
+
+What is YouTube Thumbnail Downloader? +
+
+
+

+YouTube Thumbnail Downloader is a tool that allows you to download thumbnail images from YouTube +videos in various sizes. You simply need to provide the URL of the video, and the tool retrieves +the thumbnails for you. +

+
+
+
+How do I use the YouTube Thumbnail Downloader? +
+
+
+

+To use the downloader, copy the URL of the YouTube video from your browser's address bar, paste +it into the input box on our tool, and press the download button. The thumbnails will be +displayed, and you can download them by clicking on the desired resolution. +

+
+
+
+Which thumbnail sizes can I download? +
+
+
+

+You can download thumbnails in several resolutions including HD (1280x720), SD (640x480), Normal +(480x360), Small (320x180), and Extra Small (120x90). +

+
+
+
+Can I download YouTube video thumbnails in 4K resolution? +
+
+
+

+YouTube does not typically generate thumbnails in 4K resolution. The highest resolution +available for a YouTube thumbnail is usually 1280x720 pixels, which corresponds to HD (High +Definition). Thumbnails are primarily meant to give viewers a quick preview of video content, +and thus are not provided in the higher resolutions that actual videos might support, such as +4K. If you need higher-resolution images from a YouTube video, you would generally need to +capture them directly from the video itself when it is playing at your desired resolution. +

+
+
+
+Is it legal to use YouTube thumbnails? +
+
+
+

+Using YouTube thumbnails can be legal depending on the purpose and manner in which you use them. +For personal, educational, or other non-commercial purposes, it's generally permissible. +However, using thumbnails for commercial purposes may infringe on copyrights, especially if the +thumbnail contains recognizable copyrighted elements. If you plan to use thumbnails +commercially, it's best to obtain permission from the copyright holder or ensure that your usage +complies with fair use criteria. Consulting with a legal professional is recommended to navigate +these issues properly. +

+
+
+
+Is there a limit to how many thumbnails I can download? +
+
+
+

+There is no limit to the number of thumbnails you can download. Our tool is free to use, and you +can download as many thumbnails as you need. +

+
+
+
+Are there any costs associated with using the YouTube Thumbnail Downloader? +
+
+
+

+No, our YouTube Thumbnail Downloader is completely free to use. There are no hidden charges or +fees for downloading thumbnails. You can download thumbnails from any publicly accessible +YouTube video without any cost. +

+
+
+
+
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/download-youtube-thumbnails/index.xml b/download-youtube-thumbnails/index.xml new file mode 100644 index 000000000..1527dccb4 --- /dev/null +++ b/download-youtube-thumbnails/index.xml @@ -0,0 +1 @@ +Download YouTube Thumbnails onhttps://www.lightgalleryjs.com/download-youtube-thumbnails/Recent content in Download YouTube Thumbnails onHugo -- gohugo.ioen-USWed, 01 May 2024 08:48:57 +0000 \ No newline at end of file diff --git a/images/vector/mobile-optimized.svg b/images/vector/mobile-optimized.svg deleted file mode 100644 index 38790090e..000000000 --- a/images/vector/mobile-optimized.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/vector/modern.svg b/images/vector/modern.svg deleted file mode 100644 index 1a25f2c01..000000000 --- a/images/vector/modern.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/vector/modular.svg b/images/vector/modular.svg deleted file mode 100644 index ab932834f..000000000 --- a/images/vector/modular.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/index.html b/index.html index 5cf2f7236..bb124f8e2 100644 --- a/index.html +++ b/index.html @@ -5,7 +5,7 @@ - + @@ -513,7 +513,10 @@

Components

Angular + @@ -618,6 +621,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/index.xml b/index.xml index 829ce650e..fc0fed691 100644 --- a/index.xml +++ b/index.xml @@ -1 +1,2 @@ -lightGallery onhttps://www.lightgalleryjs.com/Recent content in lightGallery onHugo -- gohugo.ioen-USFri, 17 Apr 2020 12:18:10 +0000Demoshttps://www.lightgalleryjs.com/demos/Tue, 06 Oct 2020 08:48:57 +0000https://www.lightgalleryjs.com/demos/Docshttps://www.lightgalleryjs.com/docs/Tue, 06 Oct 2020 08:48:57 +0000https://www.lightgalleryjs.com/docs/bloghttps://www.lightgalleryjs.com/blog/Tue, 06 Oct 2020 08:48:23 +0000https://www.lightgalleryjs.com/blog/Pricinghttps://www.lightgalleryjs.com/license/Fri, 17 Apr 2020 12:18:10 +0000https://www.lightgalleryjs.com/license/Hobby $48 / lifetime For personal use. Purchase Now For one developer For one product Can't be used in a product for sale GitHub support only Lifetime free updates Team $118 / lifetime For small teams. Purchase Now For upto 8 developers For upto 5 products Can be used in a product for sale GitHub and email support Lifetime free updates Organization $188 / lifetime For large teams and organizations Purchase Now For unlimited developers For unlimited products Can be used in a product for sale GitHub, Email and Skype support Lifetime free updates Extended Commercial license If you want to include lightGallery as part of software developer kit (SDK), web application builder or website builder, downloadable or installable products like Wordpress themes, HTML templates,or something that produces copies that each use lightGallery, you need to choose the Extended Commercial license. \ No newline at end of file +lightGallery onhttps://www.lightgalleryjs.com/Recent content in lightGallery onHugo -- gohugo.ioen-USFri, 17 Apr 2020 12:18:10 +0000Download YouTube Thumbnailshttps://www.lightgalleryjs.com/download-youtube-thumbnails/Wed, 01 May 2024 08:48:57 +0000https://www.lightgalleryjs.com/download-youtube-thumbnails/Download YouTube Thumbnails Simply paste the URL of the YouTube video, and instantly download its thumbnail in various resolutions such as HD, SD, and more. Get Thumbnail Image HD Image (1280x720) Download SD Image (640x480) Download Normal Image (480x360) Download Normal Image (320x180) Download Normal Image (120x90) Download About YouTube Thumbnail Downloader For each YouTube video, YouTube generates multiple thumbnail sizes including HD Image (1280x720), SD Image (640x480), Normal Image (480x360), Small Image (320x180), and Extra Small Image (120x90).jQuery to javascript converterhttps://www.lightgalleryjs.com/jquery-to-js-converter/Wed, 01 May 2024 08:48:57 +0000https://www.lightgalleryjs.com/jquery-to-js-converter/jQuery to javascript converter Convert your jQuery scripts to efficient JavaScript directly in your browser. Receive reliable, chainable, modern JavaScript code instantly that can be used as a minimal utility library, while keeping your existing code untouched. +Generated javascript for all methods except Enter jQuery code clear fullscreen exit Convert to JavaScript JavaScript Output Copy fullscreen exit Why?Demoshttps://www.lightgalleryjs.com/demos/Tue, 06 Oct 2020 08:48:57 +0000https://www.lightgalleryjs.com/demos/Docshttps://www.lightgalleryjs.com/docs/Tue, 06 Oct 2020 08:48:57 +0000https://www.lightgalleryjs.com/docs/bloghttps://www.lightgalleryjs.com/blog/Tue, 06 Oct 2020 08:48:23 +0000https://www.lightgalleryjs.com/blog/Pricinghttps://www.lightgalleryjs.com/license/Fri, 17 Apr 2020 12:18:10 +0000https://www.lightgalleryjs.com/license/Hobby $48 / lifetime For personal use. Purchase Now For one developer For one product Can't be used in a product for sale GitHub support only Lifetime free updates Team $118 / lifetime For small teams. Purchase Now For upto 8 developers For upto 5 products Can be used in a product for sale GitHub and email support Lifetime free updates Organization $188 / lifetime For large teams and organizations Purchase Now For unlimited developers For unlimited products Can be used in a product for sale GitHub, Email and Skype support Lifetime free updates Extended Commercial license If you want to include lightGallery as part of software developer kit (SDK), web application builder or website builder, downloadable or installable products like Wordpress themes, HTML templates,or something that produces copies that each use lightGallery, you need to choose the Extended Commercial license. \ No newline at end of file diff --git a/jquery-to-js-converter/index.html b/jquery-to-js-converter/index.html new file mode 100644 index 000000000..ca8b34629 --- /dev/null +++ b/jquery-to-js-converter/index.html @@ -0,0 +1,984 @@ + + + + + + + + + + + + + + + +jQuery to javascript converter - lightGallery + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
jQuery to javascript converter
+

Convert your jQuery scripts to efficient JavaScript directly in your browser. Receive reliable, chainable, modern JavaScript code instantly that can be used as a minimal utility library, while keeping your existing code untouched.

+
+
+
+
+
+
+
+
Generated javascript for all methods except
+

+
+
+
+
+
+
+
+
Enter jQuery code
+
+
+
+clear +
+
+fullscreen +
+
+exit +
+
+
+
+
+
+
+
+ +
+
+
+ +
+
+
+
+
+
JavaScript Output
+
+
+
+Copy +
+
+fullscreen +
+
+exit +
+
+
+
+
+
+
+
+
+
+
+
+
+
+

Why?

+

+While jQuery has been a staple in web development, it often becomes more than necessary, with many projects using just a minor fraction of its functionality. Modern browsers now natively support many features that jQuery was once needed for. However, the thought of removing jQuery can be daunting due to the extensive changes required in the codebase.

+

jQuery to JavaScript converter makes it easy to transition from jQuery to vanilla JavaScript, allowing you to make the switch smoothly without extensive modifications to your existing code.

+
+
+
+
+
+
+
+

Frequently asked questions

+
+
+
+
+
+

+What does the jQuery to JavaScript Converter do? +

+

+This tool converts jQuery code into modern, efficient JavaScript. It allows you to replace jQuery with plain JavaScript while keeping your original code unchanged. +

+
+
+

+Is it necessary to modify my existing jQuery code after conversion? +

+

+No, you do not need to modify your existing code. The tool is designed to provide you with JavaScript that can directly replace jQuery, ensuring your existing code runs as expected without the jQuery library. +

+
+
+

+What browsers do the generated JavaScript methods support? +

+

+The generated JavaScript is compatible with all modern browsers, including Internet Explorer 11 and newer versions. This ensures broad usability across different user environments. +

+
+
+

+Do you support all jQuery methods? +

+

+We support the majority of jQuery methods. However, for certain functions like Ajax, we recommend using lightweight libraries instead. A list of all supported methods can be found on our website. +

+
+
+

+Do you have a VS Code extension? +

+

+Currently, we do not offer a VS Code extension. However, our library is open source, and contributions are welcome if you are interested in developing an extension or other features. +

+
+
+

+How does the conversion process work? +

+

+The process starts by converting your source code into an Abstract Syntax Tree (AST). We then traverse this AST, identify jQuery methods, and replace them with equivalent vanilla JavaScript methods from our tested library, ultimately generating the output. +

+
+
+

Can I use this tool for large projects?

+

+For converting multiple files efficiently, we recommend using our CLI tool. It supports batch processing of multiple files and generates the JavaScript output for each, streamlining the conversion process for larger projects. +

+
+
+
+
+
+
+
+
+
+

CLI Installation and Usage

+

Along with the web version, we offer a CLI (Command Line Interface) tool. This allows you to convert jQuery to JavaScript directly from your terminal, making it even easier to integrate the conversion process into your workflow and handle large-scale projects efficiently.

+

To get started, install the replace-jquery using npm:

+
npm install -g replace-jquery
+
    +
  • To convert jQuery methods in a specific file (sample.js) and output the vanilla JavaScript in another file (out.js), use:
  • +
+
replace-jquery src/sample.js out.js
+
    +
  • To apply conversions across multiple files matching a pattern (e.g., all JavaScript files in a directory), run:
  • +
+
replace-jquery "src/*.js" out.js
+
    +
  • To generate vanilla JavaScript alternatives for all available jQuery methods, execute:
  • +
+
replace-jquery --build-all out.js
+
    +
  • For building vanilla JavaScript alternatives only for specific jQuery methods, the following command can be used:
  • +
+
replace-jquery --methods "addClass, removeClass, attr" -o utils.js
+

Please note that, the utility functions generated by replace-jquery are not completely equivalent to jQuery methods in all scenarios. Please consider this as a starting point and validate before you adopt it. +

+
+
+
+
+
+
+

+

Basic Concepts and usage

+

The jQuery to JavaScript converter is designed to replicate the functionality of jQuery through generated vanilla JavaScript. Once you convert your code, the resulting output acts as your own utility library, mirroring jQuery’s behavior. The generated JavaScript methods are chainable and applicable across all matching elements, just like jQuery. After conversion, simply replace the jQuery dependency in your project with the newly created output. Please note that maintaining the generated code, should modifications be necessary, will be your responsibility.

+

Note: The below code is just to demonstrate the basics concepts and not covered all scenarios.

+

Suppose, you have the below jQuey code in your codebase

+
$(".vue").siblings().addClass("highlight");
+
<ul>
+  <li class="jquery">jQuery</li>
+  <li class="react">React</li>
+  <li class="vue">Vue.js</li>
+  <li class="angular">Angular</li>
+  <li class="lit">Lit</li>
+</ul>
+
.highlight {
+  background-color: red;
+  color: #fff;
+}
+

The generated output is shown below. It supports chainable methods similar to jQuery. You can rename the $utils alias to $ to more closely resemble jQuery syntax and replace the jQuery library with the code provided

+
export class Utils {
+  constructor(selector) {
+    this.elements = Utils.getSelector(selector);
+    this.element = this.get(0);
+    return this;
+  }
+
+  static getSelector(selector, context = document) {
+    if (typeof selector !== 'string') {
+      return selector;
+    }
+    if (isId(selector)) {
+      return document.getElementById(selector.substring(1))
+    }
+    return context.querySelectorAll(selector);
+  }
+
+  each(func) {
+    if (!this.elements) {
+      return this;
+    }
+    if (this.elements.length !== undefined) {
+      [].forEach.call(this.elements, func);
+    } else {
+      func(this.element, 0);
+    }
+    return this;
+  }
+
+  siblings() {
+    if (!this.element) {
+      return this;
+    }
+    const elements = [].filter.call(
+      this.element.parentNode.children,
+      (child) => child !== this.element
+    );
+    return new Utils(elements);
+  }
+
+  get(index) {
+    if (index !== undefined) {
+      return this.elements[index];
+    }
+    return this.elements;
+  }
+
+  addClass(classNames = '') {
+    this.each((el) => {
+      // IE doesn't support multiple arguments
+      classNames.split(' ').forEach((className) => {
+        el.classList.add(className);
+      });
+    });
+    return this;
+  }
+}
+
+export default function $utils(selector) {
+  return new Utils(selector);
+}
+

usage

+
$utils(".vue").siblings().addClass("highlight");
+

Demo - https://codepen.io/sachinchoolur/pen/oNWNdxE

+
+
+
+
+
+

List of available jQuery alternative methods

+

Below is a list of alternative methods in pure JavaScript that replace common jQuery functions. We have intentionally excluded functions like Ajax, recommending the use of more efficient libraries like axios or the native fetch API for such functionalities.

+
addClass
+

Adds the specified class(es) to each element in the set of matched elements.

+
addClass(classNames = '') {
+  this.each((el) => {
+    classNames.split(' ').forEach((className) => {
+      el.classList.add(className);
+    });
+  });
+  return this;
+}
+
// Usage
+$utils('ul li').addClass('myClass yourClass');
+
append
+

Insert content, specified by the parameter, to the end of each element in the set of matched elements.

+
append(html) {
+  this.each((el) => {
+    if (typeof html === 'string') {
+      el.insertAdjacentHTML('beforeend', html);
+    } else {
+      el.appendChild(html);
+    }
+  });
+  return this;
+}
+
attr
+

Get the value of an attribute for the first element in the set of matched elements or set one or more attributes for every matched element.

+
attr(name, value) {
+  if (value === undefined) {
+    if (!this.element) {
+      return '';
+    }
+    return this.element.getAttribute(name);
+  }
+  this.each((el) => {
+    el.setAttribute(name, value);
+  });
+  return this;
+}
+
children
+
children() {
+  return new Utils(this.element.children);
+}
+
closest
+
closest(selector) {
+  if (!this.element) {
+    return this;
+  }
+  const matchesSelector =
+    this.element.matches ||
+    this.element.webkitMatchesSelector ||
+    this.element.mozMatchesSelector ||
+    this.element.msMatchesSelector;
+
+  while (this.element) {
+    if (matchesSelector.call(this.element, selector)) {
+      return new Utils(this.element);
+    }
+    this.element = this.element.parentElement;
+  }
+  return this;
+}
+
css
+
css(css, value) {
+  if (value !== undefined) {
+    this.each((el) => {
+      Utils.setCss(el, css, value);
+    });
+    return this;
+  }
+  if (typeof css === 'object') {
+    for (const property in css) {
+      if (Object.prototype.hasOwnProperty.call(css, property)) {
+        this.each((el) => {
+          Utils.setCss(el, property, css[property]);
+        });
+      }
+    }
+    return this;
+  }
+  const cssProp = Utils.camelCase(css);
+  const property = Utils.styleSupport(cssProp);
+  return getComputedStyle(this.element)[property];
+}
+
data
+
data(name, value) {
+  return this.attr(`data-${name}`, value);
+}
+
each
+
each(func) {
+    if (!this.elements) {
+        return this;
+    }
+    if (this.elements.length !== undefined) {
+        [].slice.call(this.elements).forEach((el, index) => {
+            func.call(el, el, index);
+        });
+    } else {
+        func.call(this.element, this.element, 0);
+    }
+    return this;
+}
+
empty
+
empty() {
+  this.each((el) => {
+    el.innerHTML = '';
+  });
+  return this;
+}
+
eq
+
eq(index) {
+  return new Utils(this.elements[index]);
+}
+
find
+
find(selector) {
+  return new Utils(Utils.getSelector(selector, this.element));
+}
+
first
+
first() {
+  if (this.elements && this.elements.length !== undefined) {
+    return new Utils(this.elements[0]);
+  }
+  return new Utils(this.elements);
+}
+
get
+
get() {
+  return this.elements;
+}
+
hasClass
+
hasClass(className) {
+  if (!this.element) {
+    return false;
+  }
+  return this.element.classList.contains(className);
+}
+
height
+
height() {
+  if (!this.element) {
+    return 0;
+  }
+  const style = window.getComputedStyle(this.element, null);
+  return parseFloat(style.height.replace('px', ''));
+}
+
html
+
html(html) {
+  if (html === undefined) {
+    if (!this.element) {
+      return '';
+    }
+    return this.element.innerHTML;
+  }
+  this.each((el) => {
+    el.innerHTML = html;
+  });
+  return this;
+}
+
index
+
index() {
+  if (!this.element) return -1;
+  let i = 0;
+  do {
+    i++;
+  } while ((this.element = this.element.previousElementSibling));
+  return i;
+}
+
is
+
is(el) {
+  if (typeof el === 'string') {
+    return (
+      this.element.matches ||
+      this.element.matchesSelector ||
+      this.element.msMatchesSelector ||
+      this.element.mozMatchesSelector ||
+      this.element.webkitMatchesSelector ||
+      this.element.oMatchesSelector
+    ).call(this.element, el);
+  }
+  return this.element === (el.element || el);
+}
+
next
+
next() {
+  if (!this.element) {
+    return this;
+  }
+  return new Utils(this.element.nextElementSibling);
+}
+
nextAll
+
nextAll(filter) {
+  if (!this.element) {
+    return this;
+  }
+  const sibs = [];
+  let nextElem = this.element.parentNode.firstChild;
+  do {
+    if (nextElem.nodeType === 3) continue; // ignore text nodes
+    if (nextElem === this.element) continue; // ignore this.element of target
+    if (nextElem === this.element.nextElementSibling) {
+      if (!filter || filter(this.element)) {
+        sibs.push(nextElem);
+        this.element = nextElem;
+      }
+    }
+  } while ((nextElem = nextElem.nextSibling));
+  return new Utils(sibs);
+}
+
off
+
off(event) {
+  if (!this.elements) {
+    return this;
+  }
+  Object.keys(Utils.eventListeners).forEach((eventName) => {
+    if (Utils.isEventMatched(event, eventName)) {
+      Utils.eventListeners[eventName].forEach((listener) => {
+        this.each((el) => {
+          el.removeEventListener(
+            eventName.split('.')[0],
+            listener
+          );
+        });
+      });
+    }
+  });
+
+  return this;
+}
+
offset
+
offset() {
+  if (!this.element) {
+    return {
+      left: 0,
+      top: 0,
+    };
+  }
+  const box = this.element.getBoundingClientRect();
+  return {
+    top:
+      box.top +
+      window.pageYOffset -
+      document.documentElement.clientTop,
+    left:
+      box.left +
+      window.pageXOffset -
+      document.documentElement.clientLeft,
+  };
+}
+
offsetParent
+
offsetParent() {
+  if (!this.element) {
+    return this;
+  }
+  return new Utils(this.element.offsetParent);
+}
+
on
+
on(events, listener) {
+  if (!this.elements) {
+    return this;
+  }
+  events.split(' ').forEach((event) => {
+    if (!Array.isArray(Utils.eventListeners[event])) {
+      Utils.eventListeners[event] = [];
+    }
+    Utils.eventListeners[event].push(listener);
+    this.each((el) => {
+      el.addEventListener(event.split('.')[0], listener);
+    });
+  });
+
+  return this;
+}
+
one
+
one(event, listener) {
+  this.each((el) => {
+    new Utils(el).on(event, () => {
+      new Utils(el).off(event);
+      listener(event);
+    });
+  });
+  return this;
+}
+
outerHeight
+
outerHeight(margin) {
+  if (!this.element) {
+    return 0;
+  }
+  if (margin !== undefined) {
+    let height = this.element.offsetHeight;
+    const style = getComputedStyle(this.element);
+
+    height +=
+      parseInt(style.marginTop, 10) +
+      parseInt(style.marginBottom, 10);
+    return height;
+  }
+  return this.element.offsetHeight;
+}
+
outerWidth
+
outerWidth(margin) {
+  if (!this.element) {
+    return 0;
+  }
+  if (margin !== undefined) {
+    let width = this.element.offsetWidth;
+    const style = window.getComputedStyle(this.element);
+
+    width +=
+      parseInt(style.marginLeft, 10) +
+      parseInt(style.marginRight, 10);
+    return width;
+  }
+  return this.element.offsetWidth;
+}
+
parent
+
parent() {
+  return new Utils(this.element.parentElement);
+}
+
parentsUntil
+
parentsUntil(selector, filter) {
+  if (!this.element) {
+    return this;
+  }
+  const result = [];
+  const matchesSelector =
+    this.element.matches ||
+    this.element.webkitMatchesSelector ||
+    this.element.mozMatchesSelector ||
+    this.element.msMatchesSelector;
+
+  // match start from parent
+  let el = this.element.parentElement;
+  while (el && !matchesSelector.call(el, selector)) {
+    if (!filter) {
+      result.push(el);
+    } else if (matchesSelector.call(el, filter)) {
+      result.push(el);
+    }
+    el = el.parentElement;
+  }
+  return new Utils(result);
+}
+
position
+
position() {
+  return {
+    left: this.element.offsetLeft,
+    top: this.element.offsetTop,
+  };
+}
+
prepend
+
prepend(html) {
+  this.each((el) => {
+    if (typeof html === 'string') {
+      el.insertAdjacentHTML('afterbegin', html);
+    } else {
+      el.insertBefore(html, el.firstChild);
+    }
+  });
+  return this;
+}
+
prev
+
prev() {
+  if (!this.element) {
+    return this;
+  }
+  return new Utils(this.element.previousElementSibling);
+}
+
prevAll
+
prevAll(filter) {
+  if (!this.element) {
+    return this;
+  }
+  const sibs = [];
+  while ((this.element = this.element.previousSibling)) {
+    if (this.element.nodeType === 3) {
+      continue; // ignore text nodes
+    }
+    if (!filter || filter(this.element)) sibs.push(this.element);
+  }
+  return new Utils(sibs);
+}
+
remove
+
remove() {
+  this.each((el) => {
+    el.parentNode.removeChild(el);
+  });
+  return this;
+}
+
removeAttr
+
removeAttr(attributes) {
+  const attrs = attributes.split(' ');
+  this.each((el) => {
+    attrs.forEach((attr) => el.removeAttribute(attr));
+  });
+  return this;
+}
+
removeClass
+
removeClass(classNames) {
+  this.each((el) => {
+    // IE doesn't support multiple arguments
+    classNames.split(' ').forEach((className) => {
+      el.classList.remove(className);
+    });
+  });
+  return this;
+}
+
siblings
+
siblings() {
+  if (!this.element) {
+    return this;
+  }
+  const elements = Array.prototype.filter.call(
+    this.element.parentNode.children,
+    (child) => child !== this.element
+  );
+  return new Utils(elements);
+}
+
text
+
text(text) {
+  if (text === undefined) {
+    if (!this.element) {
+      return '';
+    }
+    return this.element.textContent;
+  }
+  this.each((el) => {
+    el.textContent = text;
+  });
+  return this;
+}
+
toggleClass
+
toggleClass(className) {
+  if (!this.element) {
+    return this;
+  }
+  this.element.classList.toggle(className);
+}
+
trigger
+
trigger(event, detail) {
+  if (!this.element) {
+    return this;
+  }
+  const eventName = event.split('.')[0];
+  const isNativeEvent =
+    typeof document.body[`on${eventName}`] !== 'undefined';
+  if (isNativeEvent) {
+    this.each((el) => {
+      el.dispatchEvent(new Event(eventName));
+    });
+    return this;
+  }
+  const customEvent = new CustomEvent(eventName, {
+    detail: detail || null,
+  });
+  this.each((el) => {
+    el.dispatchEvent(customEvent);
+  });
+  return this;
+}
+
unwrap
+
unwrap() {
+  this.each((el) => {
+    const elParentNode = el.parentNode;
+
+    if (elParentNode !== document.body) {
+      elParentNode.parentNode.insertBefore(el, elParentNode);
+      elParentNode.parentNode.removeChild(elParentNode);
+    }
+  });
+  return this;
+}
+
val
+
val(value) {
+  if (!this.element) {
+    return '';
+  }
+  if (value === undefined) {
+    return this.element.value;
+  }
+  this.element.value = value;
+}
+
width
+
width() {
+  if (!this.element) {
+    return 0;
+  }
+  const style = window.getComputedStyle(this.element, null);
+  return parseFloat(style.width.replace('px', ''));
+}
+
wrap
+
wrap(className) {
+  this.each((el) => {
+    const wrapper = document.createElement('div');
+    wrapper.className = className;
+    el.parentNode.insertBefore(wrapper, el);
+    wrapper.appendChild(el);
+  });
+  return this;
+}
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/jquery-to-js-converter/index.xml b/jquery-to-js-converter/index.xml new file mode 100644 index 000000000..661bc2b31 --- /dev/null +++ b/jquery-to-js-converter/index.xml @@ -0,0 +1 @@ +jQuery to javascript converter onhttps://www.lightgalleryjs.com/jquery-to-js-converter/Recent content in jQuery to javascript converter onHugo -- gohugo.ioen-USWed, 01 May 2024 08:48:57 +0000 \ No newline at end of file diff --git a/js/replaceJquery.js b/js/replaceJquery.js new file mode 100644 index 000000000..ffc1048e6 --- /dev/null +++ b/js/replaceJquery.js @@ -0,0 +1,176 @@ +"use strict"; + +var inputValue = ''; +var outputValue = ''; +var inputEditor = CodeMirror(document.getElementById('replace-jq-centre-convert-btn-input-container'), { + value: inputValue, + mode: 'javascript', + indentUnit: 2, + lineNumbers: true +}); +inputEditor.setSize('100%', '100%'); +var outputEditor = CodeMirror(document.getElementById('output-container'), { + value: outputValue, + mode: 'javascript', + indentUnit: 2, + lineNumbers: true +}); +var $wrap = document.getElementById('replace-jq-main'); +outputEditor.setSize('100%', '100%'); // clear button + +var clearButton = document.getElementById('replace-jq-centre-convert-btn-taskbar-clear-button'); +var clearBtnTooltip = document.getElementById('clearTooltip'); +clearButton.addEventListener('mouseover', function () { + clearBtnTooltip.style.visibility = 'visible'; + clearBtnTooltip.style.opacity = '1'; +}); +clearButton.addEventListener('mouseout', function () { + clearBtnTooltip.style.visibility = 'hidden'; + clearBtnTooltip.style.opacity = '0'; +}); +clearButton.addEventListener('click', function () { + inputEditor.setValue(''); + outputEditor.setValue(''); +}); // copy button + +var copyButton = document.getElementById('replace-jq-centre-convert-btn-taskbar-copy'); +var copyBtnTooltip = document.getElementById('myTooltip'); +copyButton.addEventListener('mouseover', function () { + copyBtnTooltip.style.visibility = 'visible'; + copyBtnTooltip.style.opacity = '1'; +}); +copyButton.addEventListener('mouseout', function () { + copyBtnTooltip.style.visibility = 'hidden'; + copyBtnTooltip.style.opacity = '0'; +}); +copyButton.addEventListener('click', function () { + var code = outputEditor.getValue(); + console.log('code:', code, navigator.clipboard); + navigator.clipboard.writeText(code).then(function () { + copyBtnTooltip.textContent = 'Copied!'; + setTimeout(function () { + copyBtnTooltip.textContent = 'Copy'; + }, 1500); + }).catch(function (error) { + console.error('Failed to copy code:', error); + copyBtnTooltip.textContent = 'Failed Copy!'; + setTimeout(function () { + copyBtnTooltip.textContent = 'Copy'; + }, 1500); + }); +}); //input textarea maximize/minimize function + +var fullscreenButton = document.getElementById('replace-jq-centre-convert-btn-taskbar-maximize-button'); +var inputEditerSection = document.getElementById('replace-jq-centre-convert-btn-editor-wrap'); +var exitFullscreenButton = document.getElementById('replace-jq-centre-convert-btn-taskbar-minimize'); +var maximizeBtnTooltip = document.getElementById('fullscreenTooltip'); +var exitBtnTooltip = document.getElementById('exitTooltip'); +exitFullscreenButton.addEventListener('mouseover', function () { + exitBtnTooltip.style.visibility = 'visible'; + exitBtnTooltip.style.opacity = '1'; +}); +exitFullscreenButton.addEventListener('mouseout', function () { + exitBtnTooltip.style.visibility = 'hidden'; + exitBtnTooltip.style.opacity = '0'; +}); +fullscreenButton.addEventListener('mouseover', function () { + maximizeBtnTooltip.style.visibility = 'visible'; + maximizeBtnTooltip.style.opacity = '1'; +}); +fullscreenButton.addEventListener('mouseout', function () { + maximizeBtnTooltip.style.visibility = 'hidden'; + maximizeBtnTooltip.style.opacity = '0'; +}); +fullscreenButton.addEventListener('click', function () { + // make textarea fullscreen + inputEditerSection.classList.add('fullscreen'); + document.getElementById('replace-jq-centre-convert-btn-input-container').style.height = '100vh'; + document.body.style.overflow = 'hidden'; // hide maximize button + + document.getElementById('replace-jq-centre-convert-btn-taskbar-maximize-button').style.display = 'none'; // show minimize button + + document.getElementById('replace-jq-centre-convert-btn-taskbar-minimize').style.display = 'block'; +}); +exitFullscreenButton.addEventListener('click', function () { + // make textarea fullscreen + inputEditerSection.classList.remove('fullscreen'); + document.getElementById('replace-jq-centre-convert-btn-input-container').style.height = '450px'; + document.body.style.overflow = 'auto'; // hide maximize button + + document.getElementById('replace-jq-centre-convert-btn-taskbar-minimize').style.display = 'none'; // show minimize button + + document.getElementById('replace-jq-centre-convert-btn-taskbar-maximize-button').style.display = 'block'; +}); //output textarea maximize/minimize function + +var outputFullscreenBtn = document.getElementById('replace-jq-centre-convert-btn-taskbar-output-maximize'); +var outputEditerSection = document.getElementById('output-text-function'); +var outputMinimizeBtn = document.getElementById('replace-jq-centre-convert-btn-taskbar-output-minimize'); +var maxBtnTooltip = document.getElementById('maxTooltip'); +var minBtnTooltip = document.getElementById('minTooltip'); +outputMinimizeBtn.addEventListener('mouseover', function () { + minBtnTooltip.style.visibility = 'visible'; + minBtnTooltip.style.opacity = '1'; +}); +outputMinimizeBtn.addEventListener('mouseout', function () { + minBtnTooltip.style.visibility = 'hidden'; + minBtnTooltip.style.opacity = '0'; +}); +outputFullscreenBtn.addEventListener('mouseover', function () { + maxBtnTooltip.style.visibility = 'visible'; + maxBtnTooltip.style.opacity = '1'; +}); +outputFullscreenBtn.addEventListener('mouseout', function () { + maxBtnTooltip.style.visibility = 'hidden'; + maxBtnTooltip.style.opacity = '0'; +}); +outputFullscreenBtn.addEventListener('click', function () { + // make textarea fullscreen + outputEditerSection.classList.add('fullscreen'); + document.getElementById('output-container').style.height = '100vh'; + document.body.style.overflow = 'hidden'; // hide maximize button + + document.getElementById('replace-jq-centre-convert-btn-taskbar-output-maximize').style.display = 'none'; // show minimize button + + document.getElementById('replace-jq-centre-convert-btn-taskbar-output-minimize').style.display = 'block'; +}); +outputMinimizeBtn.addEventListener('click', function () { + // make textarea fullscreen + outputEditerSection.classList.remove('fullscreen'); + document.getElementById('output-container').style.height = '450px'; + document.body.style.overflow = 'auto'; // hide maximize button + + document.getElementById('replace-jq-centre-convert-btn-taskbar-output-minimize').style.display = 'none'; // show minimize button + + document.getElementById('replace-jq-centre-convert-btn-taskbar-output-maximize').style.display = 'block'; +}); // convert button + +var mainConvertBtn = document.getElementById('replace-jq-main-convert-btn'); +var subConvertBtn = document.getElementById('replace-jq-centre-convert-btn-sub-convert-btn'); + +var convertTOJS = function convertTOJS() { + var inputValue = inputEditor.getValue(); + + if (!inputValue) { + return; + } + + ReplaceJquery(inputValue).then(function (output) { + console.log('output:', output); + outputEditor.setValue(output.formattedOutput); + + if (output.remainingMethods && output.remainingMethods.length) { + $wrap.classList.add('show-alert'); + document.getElementById('alert-box-remaining-methods').textContent = output.remainingMethods.join(', '); + } else { + $wrap.classList.remove('show-alert'); + } + }).catch(function (error) { + console.error('An error occurred:', error); + }); +}; + +mainConvertBtn.addEventListener('click', convertTOJS); +subConvertBtn.addEventListener('click', convertTOJS); +document.getElementById('alert-close-svg').addEventListener('click', function () { + $wrap.classList.remove('show-alert'); +}); diff --git a/js/replaceJquerySrc.js b/js/replaceJquerySrc.js new file mode 100644 index 000000000..d3e5dc6a8 --- /dev/null +++ b/js/replaceJquerySrc.js @@ -0,0 +1,4444 @@ +"use strict"; + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +!function () { + function e(e, t, i, s) { + Object.defineProperty(e, t, { + get: i, + set: s, + enumerable: !0, + configurable: !0 + }); + } + + var t, + i, + s = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : {}, + n = {}, + r = {}, + a = s.parcelRequiref6b1; + null == a && ((a = function a(e) { + if (e in n) return n[e].exports; + + if (e in r) { + var t = r[e]; + delete r[e]; + var i = { + id: e, + exports: {} + }; + return n[e] = i, t.call(i.exports, i, i.exports), i.exports; + } + + var s = Error("Cannot find module '" + e + "'"); + throw s.code = "MODULE_NOT_FOUND", s; + }).register = function (e, t) { + r[e] = t; + }, s.parcelRequiref6b1 = a); + var o = a.register; + + function h(e, t, i, s, n, r, a) { + try { + var o = e[r](a), + h = o.value; + } catch (e) { + i(e); + return; + } + + o.done ? t(h) : Promise.resolve(h).then(s, n); + } + + function p(e) { + return function () { + var t = this, + i = arguments; + return new Promise(function (s, n) { + var r = e.apply(t, i); + + function a(e) { + h(r, s, n, a, o, "next", e); + } + + function o(e) { + h(r, s, n, a, o, "throw", e); + } + + a(void 0); + }); + }; + } + + function l(e) { + return e && "undefined" != typeof Symbol && e.constructor === Symbol ? "symbol" : _typeof(e); + } + + function c(e, t) { + var i, + s, + n, + r, + a = { + label: 0, + sent: function sent() { + if (1 & n[0]) throw n[1]; + return n[1]; + }, + trys: [], + ops: [] + }; + return r = { + next: o(0), + throw: o(1), + return: o(2) + }, "function" == typeof Symbol && (r[Symbol.iterator] = function () { + return this; + }), r; + + function o(o) { + return function (h) { + return function (o) { + if (i) throw TypeError("Generator is already executing."); + + for (; r && (r = 0, o[0] && (a = 0)), a;) { + try { + if (i = 1, s && (n = 2 & o[0] ? s.return : o[0] ? s.throw || ((n = s.return) && n.call(s), 0) : s.next) && !(n = n.call(s, o[1])).done) return n; + + switch (s = 0, n && (o = [2 & o[0], n.value]), o[0]) { + case 0: + case 1: + n = o; + break; + + case 4: + return a.label++, { + value: o[1], + done: !1 + }; + + case 5: + a.label++, s = o[1], o = [0]; + continue; + + case 7: + o = a.ops.pop(), a.trys.pop(); + continue; + + default: + if (!(n = (n = a.trys).length > 0 && n[n.length - 1]) && (6 === o[0] || 2 === o[0])) { + a = 0; + continue; + } + + if (3 === o[0] && (!n || o[1] > n[0] && o[1] < n[3])) { + a.label = o[1]; + break; + } + + if (6 === o[0] && a.label < n[1]) { + a.label = n[1], n = o; + break; + } + + if (n && a.label < n[2]) { + a.label = n[2], a.ops.push(o); + break; + } + + n[2] && a.ops.pop(), a.trys.pop(); + continue; + } + + o = t.call(e, a); + } catch (e) { + o = [6, e], s = 0; + } finally { + i = n = 0; + } + } + + if (5 & o[0]) throw o[1]; + return { + value: o[0] ? o[1] : void 0, + done: !0 + }; + }([o, h]); + }; + } + } + + o("jVLb9", function (e, t) { + e.exports = "export class Utils {\n constructor(selector) {\n this.elements = Utils.getSelector(selector);\n this.element = this.get(0);\n return this;\n }\n\n /* $$ Template START $$ */\n\n each(func) {\n if (!this.elements.length) {\n return this;\n }\n this.elements.forEach((el, index) => {\n func.call(el, el, index);\n });\n return this;\n }\n\n prev() {\n if (!this.element) {\n return this;\n }\n return new Utils(this.element.previousElementSibling);\n }\n\n next() {\n if (!this.element) {\n return this;\n }\n return new Utils(this.element.nextElementSibling);\n }\n\n prevAll(filter) {\n if (!this.element) {\n return this;\n }\n const sibs = [];\n while ((this.element = this.element.previousSibling)) {\n if (this.element.nodeType === 3) {\n continue; // ignore text nodes\n }\n if (!filter || filter(this.element)) sibs.push(this.element);\n }\n return new Utils(sibs);\n }\n\n nextAll(filter) {\n if (!this.element) {\n return this;\n }\n const sibs = [];\n let nextElem = this.element.parentNode.firstChild;\n do {\n if (nextElem.nodeType === 3) continue; // ignore text nodes\n if (nextElem === this.element) continue; // ignore this.element of target\n if (nextElem === this.element.nextElementSibling) {\n if (!filter || filter(this.element)) {\n sibs.push(nextElem);\n this.element = nextElem;\n }\n }\n } while ((nextElem = nextElem.nextSibling));\n return new Utils(sibs);\n }\n\n closest(selector) {\n if (!this.element) {\n return this;\n }\n const matchesSelector =\n this.element.matches ||\n this.element.webkitMatchesSelector ||\n this.element.mozMatchesSelector ||\n this.element.msMatchesSelector;\n\n while (this.element) {\n if (matchesSelector.call(this.element, selector)) {\n return new Utils(this.element);\n }\n this.element = this.element.parentElement;\n }\n return this;\n }\n\n parentsUntil(selector, filter) {\n if (!this.element) {\n return this;\n }\n const result = [];\n const matchesSelector =\n this.element.matches ||\n this.element.webkitMatchesSelector ||\n this.element.mozMatchesSelector ||\n this.element.msMatchesSelector;\n\n // match start from parent\n let el = this.element.parentElement;\n while (el && !matchesSelector.call(el, selector)) {\n if (!filter) {\n result.push(el);\n } else if (matchesSelector.call(el, filter)) {\n result.push(el);\n }\n el = el.parentElement;\n }\n return new Utils(result);\n }\n\n val(value) {\n if (!this.element) {\n return '';\n }\n if (value === undefined) {\n return this.element.value;\n }\n this.element.value = value;\n }\n\n attr(name, value) {\n if (value === undefined) {\n if (!this.element) {\n return '';\n }\n return this.element.getAttribute(name);\n }\n this.each((el) => {\n el.setAttribute(name, value);\n });\n return this;\n }\n\n removeAttr(attributes) {\n const attrs = attributes.split(' ');\n this.each((el) => {\n attrs.forEach((attr) => el.removeAttribute(attr));\n });\n return this;\n }\n\n hasAttribute(attribute) {\n if (!this.element) {\n return false;\n }\n return this.element.hasAttribute(attribute);\n }\n\n data(name, value) {\n return this.attr('data-'+name, value);\n }\n\n css(css, value) {\n if (value !== undefined) {\n this.each((el) => {\n Utils.setCss(el, css, value);\n });\n return this;\n }\n if (typeof css === 'object') {\n for (const property in css) {\n if (Object.prototype.hasOwnProperty.call(css, property)) {\n this.each((el) => {\n Utils.setCss(el, property, css[property]);\n });\n }\n }\n return this;\n }\n const cssProp = Utils.camelCase(css);\n const property = Utils.styleSupport(cssProp);\n return getComputedStyle(this.element)[property];\n }\n\n addClass(classNames = '') {\n this.each((el) => {\n // IE doesn't support multiple arguments\n classNames.split(' ').forEach((className) => {\n el.classList.add(className);\n });\n });\n return this;\n }\n\n removeClass(classNames) {\n this.each((el) => {\n // IE doesn't support multiple arguments\n classNames.split(' ').forEach((className) => {\n el.classList.remove(className);\n });\n });\n return this;\n }\n\n hasClass(className) {\n if (!this.element) {\n return false;\n }\n return this.element.classList.contains(className);\n }\n\n toggleClass(className) {\n if (!this.element) {\n return this;\n }\n this.element.classList.toggle(className);\n }\n\n find(selector) {\n return new Utils(Utils.getSelector(selector, this.element));\n }\n\n first() {\n return new Utils(this.elements[0]);\n }\n\n eq(index) {\n return new Utils(this.elements[index]);\n }\n\n parent() {\n return new Utils(this.element.parentElement);\n }\n\n offsetParent() {\n if (!this.element) {\n return this;\n }\n return new Utils(this.element.offsetParent);\n }\n\n children() {\n return new Utils(this.element.children);\n }\n\n get(index) {\n if (index !== undefined) {\n return this.elements[index];\n }\n return this.elements;\n }\n\n siblings() {\n if (!this.element) {\n return this;\n }\n const elements = Array.prototype.filter.call(\n this.element.parentNode.children,\n (child) => child !== this.element\n );\n return new Utils(elements);\n }\n\n index() {\n if (!this.element) return -1;\n let i = 0;\n do {\n i++;\n } while ((this.element = this.element.previousElementSibling));\n return i;\n }\n\n wrap(className) {\n this.each((el) => {\n const wrapper = document.createElement('div');\n wrapper.className = className;\n el.parentNode.insertBefore(wrapper, el);\n wrapper.appendChild(el);\n });\n return this;\n }\n\n unwrap() {\n this.each((el) => {\n const elParentNode = el.parentNode;\n\n if (elParentNode !== document.body) {\n elParentNode.parentNode.insertBefore(el, elParentNode);\n elParentNode.parentNode.removeChild(elParentNode);\n }\n });\n return this;\n }\n\n on(events, listener) {\n events.split(' ').forEach((eventName) => {\n this.each((el) => {\n const tNEventName = Utils.setEventName(el, eventName);\n if (!Array.isArray(Utils.eventListeners[tNEventName])) {\n Utils.eventListeners[tNEventName] = [];\n }\n Utils.eventListeners[tNEventName].push(listener);\n\n // https://github.com/microsoft/TypeScript/issues/28357\n if (el) {\n el.addEventListener(eventName.split('.')[0], listener);\n }\n });\n });\n\n return this;\n }\n\n one(event, listener) {\n this.each((el) => {\n new Utils(el).on(event, () => {\n new Utils(el).off(event);\n listener(event);\n });\n });\n return this;\n }\n\n off(eventNames) {\n Object.keys(Utils.eventListeners).forEach((tNEventName) => {\n const currentEventName = Utils.getEventNameFromId(tNEventName);\n eventNames.split(' ').forEach((eventName) => {\n if (Utils.isEventMatched(eventName, currentEventName)) {\n this.each((el) => {\n if (\n Utils.getElementEventName(el, currentEventName) ===\n tNEventName\n ) {\n Utils.eventListeners[tNEventName].forEach(\n (listener) => {\n el.removeEventListener(\n currentEventName.split('.')[0],\n listener\n );\n }\n );\n delete Utils.eventListeners[tNEventName];\n }\n });\n }\n });\n });\n return this;\n }\n\n trigger(event, detail) {\n if (!this.element) {\n return this;\n }\n const eventName = event.split('.')[0];\n const isNativeEvent =\n typeof document.body['on'+eventName] !== 'undefined';\n if (isNativeEvent) {\n this.each((el) => {\n el.dispatchEvent(new Event(eventName));\n });\n return this;\n }\n const customEvent = new CustomEvent(eventName, {\n detail: detail || null,\n });\n this.each((el) => {\n el.dispatchEvent(customEvent);\n });\n return this;\n }\n\n html(html) {\n if (html === undefined) {\n if (!this.element) {\n return '';\n }\n return this.element.innerHTML;\n }\n this.each((el) => {\n el.innerHTML = html;\n });\n return this;\n }\n\n text(text) {\n if (text === undefined) {\n if (!this.element) {\n return '';\n }\n return this.element.textContent;\n }\n this.each((el) => {\n el.textContent = text;\n });\n return this;\n }\n\n hide() {\n this.each((el) => {\n el.style.display = 'none';\n });\n }\n\n show() {\n this.each((el) => {\n el.style.display = '';\n });\n }\n\n clone() {\n return new Utils(this.element.cloneNode(true));\n }\n\n append(html) {\n this.each((el) => {\n if (typeof html === 'string') {\n el.insertAdjacentHTML('beforeend', html);\n } else {\n el.appendChild(html);\n }\n });\n return this;\n }\n\n prepend(html) {\n this.each((el) => {\n if (typeof html === 'string') {\n el.insertAdjacentHTML('afterbegin', html);\n } else {\n el.insertBefore(html, el.firstChild);\n }\n });\n return this;\n }\n\n remove() {\n this.each((el) => {\n el.parentNode.removeChild(el);\n });\n return this;\n }\n\n empty() {\n this.each((el) => {\n el.innerHTML = '';\n });\n return this;\n }\n\n contains(child) {\n return this.element !== child && this.element.contains(child);\n }\n\n is(el) {\n if (typeof el === 'string') {\n return (\n this.element.matches ||\n this.element.matchesSelector ||\n this.element.msMatchesSelector ||\n this.element.mozMatchesSelector ||\n this.element.webkitMatchesSelector ||\n this.element.oMatchesSelector\n ).call(this.element, el);\n }\n return this.element === (el.element || el);\n }\n\n width() {\n if (!this.element) {\n return 0;\n }\n const style = window.getComputedStyle(this.element, null);\n return parseFloat(style.width.replace('px', ''));\n }\n\n // Outer Width With Margin if margin is true\n outerWidth(margin) {\n if (!this.element) {\n return 0;\n }\n if (margin !== undefined) {\n let width = this.element.offsetWidth;\n const style = window.getComputedStyle(this.element);\n\n width +=\n parseInt(style.marginLeft, 10) +\n parseInt(style.marginRight, 10);\n return width;\n }\n return this.element.offsetWidth;\n }\n\n height() {\n if (!this.element) {\n return 0;\n }\n const style = window.getComputedStyle(this.element, null);\n return parseFloat(style.height.replace('px', ''));\n }\n\n outerHeight(margin) {\n if (!this.element) {\n return 0;\n }\n if (margin !== undefined) {\n let height = this.element.offsetHeight;\n const style = getComputedStyle(this.element);\n\n height +=\n parseInt(style.marginTop, 10) +\n parseInt(style.marginBottom, 10);\n return height;\n }\n return this.element.offsetHeight;\n }\n\n offset() {\n if (!this.element) {\n return {\n left: 0,\n top: 0,\n };\n }\n const box = this.element.getBoundingClientRect();\n return {\n top:\n box.top +\n window.pageYOffset -\n document.documentElement.clientTop,\n left:\n box.left +\n window.pageXOffset -\n document.documentElement.clientLeft,\n };\n }\n\n position() {\n return {\n left: this.element.offsetLeft,\n top: this.element.offsetTop,\n };\n }\n\n static generateUUID() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n // eslint-disable-next-line no-bitwise\n const r = (Math.random() * 16) | 0;\n // eslint-disable-next-line no-bitwise\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n }\n\n static setEventName(el, eventName) {\n // Need to verify https://stackoverflow.com/questions/1915341/whats-wrong-with-adding-properties-to-dom-element-objects\n const elementUUId = el.eventEmitterUUID;\n const uuid = elementUUId || Utils.generateUUID();\n // eslint-disable-next-line no-param-reassign\n el.eventEmitterUUID = uuid;\n return Utils.getEventName(eventName, uuid);\n }\n\n static getElementEventName(el, eventName) {\n const elementUUId = el.eventEmitterUUID;\n /* istanbul ignore next */\n const uuid = elementUUId || Utils.generateUUID();\n // eslint-disable-next-line no-param-reassign\n el.eventEmitterUUID = uuid;\n return Utils.getEventName(eventName, uuid);\n }\n\n static getEventName(eventName, uuid) {\n return eventName+'__EVENT_EMITTER__'+uuid;\n }\n\n static getEventNameFromId(eventName) {\n return eventName.split('__EVENT_EMITTER__')[0];\n }\n\n static getSelector(selector, context) {\n if (selector && typeof selector !== 'string') {\n if (selector.length !== undefined) {\n return selector;\n }\n return [selector];\n }\n context = context || document;\n\n // For performance reasons, use getElementById\n // eslint-disable-next-line no-control-regex\n const idRegex = /^#(?:[\\w-]|\\\\.|[^\\x00-\\xa0])*$/;\n if (idRegex.test(selector)) {\n const el = document.getElementById(selector.substring(1));\n return el ? [el] : [];\n }\n return [].slice.call(context.querySelectorAll(selector) || []);\n }\n\n static styleSupport(prop) {\n let vendorProp;\n let supportedProp;\n const capProp = prop.charAt(0).toUpperCase() + prop.slice(1);\n const prefixes = ['Moz', 'Webkit', 'O', 'ms'];\n let div = document.createElement('div');\n\n if (prop in div.style) {\n supportedProp = prop;\n } else {\n for (let i = 0; i < prefixes.length; i++) {\n vendorProp = prefixes[i] + capProp;\n if (vendorProp in div.style) {\n supportedProp = vendorProp;\n break;\n }\n }\n }\n\n div = null;\n return supportedProp;\n }\n\n // https://gist.github.com/cballou/4007063\n static setCss(el, prop, value) {\n // prettier-ignore\n let cssProperty = Utils.camelCase(prop);\n cssProperty = Utils.styleSupport(cssProperty);\n el.style[cssProperty] = value;\n }\n\n static camelCase(text) {\n return text.replace(/-([a-z])/gi, (s, group1) => group1.toUpperCase());\n }\n\n static isEventMatched(event, eventName) {\n const eventNamespace = eventName.split('.');\n return event\n .split('.')\n .filter((e) => e)\n .every((e) => eventNamespace.indexOf(e) !== -1);\n }\n\n /* $$ Template END $$ */\n}\n\nUtils.eventListeners = {};\n\nexport default function $utils(selector) {\n return new Utils(selector);\n}\n"; + }), o("8NOO4", function (t, i) { + e(t.exports, "isIdentifierStart", function () { + return f; + }), e(t.exports, "isIdentifierChar", function () { + return m; + }), e(t.exports, "TokenType", function () { + return x; + }), e(t.exports, "keywordTypes", function () { + return b; + }), e(t.exports, "tokTypes", function () { + return S; + }), e(t.exports, "lineBreak", function () { + return k; + }), e(t.exports, "lineBreakG", function () { + return _; + }), e(t.exports, "isNewLine", function () { + return w; + }), e(t.exports, "nonASCIIwhitespace", function () { + return C; + }), e(t.exports, "Position", function () { + return O; + }), e(t.exports, "SourceLocation", function () { + return j; + }), e(t.exports, "getLineInfo", function () { + return R; + }), e(t.exports, "defaultOptions", function () { + return D; + }), e(t.exports, "Parser", function () { + return B; + }), e(t.exports, "Node", function () { + return ei; + }), e(t.exports, "TokContext", function () { + return er; + }), e(t.exports, "tokContexts", function () { + return ea; + }), e(t.exports, "Token", function () { + return eA; + }), e(t.exports, "version", function () { + return eL; + }), e(t.exports, "parse", function () { + return eV; + }), e(t.exports, "parseExpressionAt", function () { + return eO; + }), e(t.exports, "tokenizer", function () { + return ej; + }); + var s = { + 3: "abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile", + 5: "class enum extends super const export import", + 6: "enum", + strict: "implements interface let package private protected public static yield", + strictBind: "eval arguments" + }, + n = "break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this", + r = { + 5: n, + "5module": n + " export import", + 6: n + " const class extends export import super" + }, + a = /^in(stanceof)?$/, + o = "ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙՠ-ֈא-תׯ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࢠ-ࢴࢶ-ࣇऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഄ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄຆ-ຊຌ-ຣລວ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡸᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᲐ-ᲺᲽ-Ჿᳩ-ᳬᳮ-ᳳᳵᳶᳺᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆿㇰ-ㇿ㐀-䶿一-鿼ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞿꟂ-ꟊꟵ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꣾꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭩꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ", + h = "‌‍·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛࣓-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍୕-ୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఄా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ඁ-ඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ຼ່-ໍ໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜔ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠐-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᪿᫀᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭᳴᳷-᳹᷀-᷹᷻-᷿‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧ꠬ꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱ꣿ-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏0-9_", + p = RegExp("[" + o + "]"), + l = RegExp("[" + o + h + "]"); + o = h = null; + var c = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 157, 310, 10, 21, 11, 7, 153, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 349, 41, 7, 1, 79, 28, 11, 0, 9, 21, 107, 20, 28, 22, 13, 52, 76, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 85, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 159, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 230, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 35, 56, 264, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 190, 0, 80, 921, 103, 110, 18, 195, 2749, 1070, 4050, 582, 8634, 568, 8, 30, 114, 29, 19, 47, 17, 3, 32, 20, 6, 18, 689, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 43, 8, 8952, 286, 50, 2, 18, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 2357, 44, 11, 6, 17, 0, 370, 43, 1301, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42717, 35, 4148, 12, 221, 3, 5761, 15, 7472, 3104, 541, 1507, 4938], + u = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 370, 1, 154, 10, 176, 2, 54, 14, 32, 9, 16, 3, 46, 10, 54, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 161, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 193, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 84, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 406, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 19306, 9, 135, 4, 60, 6, 26, 9, 1014, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 5319, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 262, 6, 10, 9, 419, 13, 1495, 6, 110, 6, 6, 9, 4759, 9, 787719, 239]; + + function d(e, t) { + for (var i = 65536, s = 0; s < t.length; s += 2) { + if ((i += t[s]) > e) return !1; + if ((i += t[s + 1]) >= e) return !0; + } + } + + function f(e, t) { + return e < 65 ? 36 === e : e < 91 || (e < 97 ? 95 === e : e < 123 || (e <= 65535 ? e >= 170 && p.test(String.fromCharCode(e)) : !1 !== t && d(e, c))); + } + + function m(e, t) { + return e < 48 ? 36 === e : e < 58 || !(e < 65) && (e < 91 || (e < 97 ? 95 === e : e < 123 || (e <= 65535 ? e >= 170 && l.test(String.fromCharCode(e)) : !1 !== t && (d(e, c) || d(e, u))))); + } + + var x = function x(e, t) { + void 0 === t && (t = {}), this.label = e, this.keyword = t.keyword, this.beforeExpr = !!t.beforeExpr, this.startsExpr = !!t.startsExpr, this.isLoop = !!t.isLoop, this.isAssign = !!t.isAssign, this.prefix = !!t.prefix, this.postfix = !!t.postfix, this.binop = t.binop || null, this.updateContext = null; + }; + + function g(e, t) { + return new x(e, { + beforeExpr: !0, + binop: t + }); + } + + var y = { + beforeExpr: !0 + }, + v = { + startsExpr: !0 + }, + b = {}; + + function E(e, t) { + return void 0 === t && (t = {}), t.keyword = e, b[e] = new x(e, t); + } + + var S = { + num: new x("num", v), + regexp: new x("regexp", v), + string: new x("string", v), + name: new x("name", v), + eof: new x("eof"), + bracketL: new x("[", { + beforeExpr: !0, + startsExpr: !0 + }), + bracketR: new x("]"), + braceL: new x("{", { + beforeExpr: !0, + startsExpr: !0 + }), + braceR: new x("}"), + parenL: new x("(", { + beforeExpr: !0, + startsExpr: !0 + }), + parenR: new x(")"), + comma: new x(",", y), + semi: new x(";", y), + colon: new x(":", y), + dot: new x("."), + question: new x("?", y), + questionDot: new x("?."), + arrow: new x("=>", y), + template: new x("template"), + invalidTemplate: new x("invalidTemplate"), + ellipsis: new x("...", y), + backQuote: new x("`", v), + dollarBraceL: new x("${", { + beforeExpr: !0, + startsExpr: !0 + }), + eq: new x("=", { + beforeExpr: !0, + isAssign: !0 + }), + assign: new x("_=", { + beforeExpr: !0, + isAssign: !0 + }), + incDec: new x("++/--", { + prefix: !0, + postfix: !0, + startsExpr: !0 + }), + prefix: new x("!/~", { + beforeExpr: !0, + prefix: !0, + startsExpr: !0 + }), + logicalOR: g("||", 1), + logicalAND: g("&&", 2), + bitwiseOR: g("|", 3), + bitwiseXOR: g("^", 4), + bitwiseAND: g("&", 5), + equality: g("==/!=/===/!==", 6), + relational: g("/<=/>=", 7), + bitShift: g("<>/>>>", 8), + plusMin: new x("+/-", { + beforeExpr: !0, + binop: 9, + prefix: !0, + startsExpr: !0 + }), + modulo: g("%", 10), + star: g("*", 10), + slash: g("/", 10), + starstar: new x("**", { + beforeExpr: !0 + }), + coalesce: g("??", 1), + _break: E("break"), + _case: E("case", y), + _catch: E("catch"), + _continue: E("continue"), + _debugger: E("debugger"), + _default: E("default", y), + _do: E("do", { + isLoop: !0, + beforeExpr: !0 + }), + _else: E("else", y), + _finally: E("finally"), + _for: E("for", { + isLoop: !0 + }), + _function: E("function", v), + _if: E("if"), + _return: E("return", y), + _switch: E("switch"), + _throw: E("throw", y), + _try: E("try"), + _var: E("var"), + _const: E("const"), + _while: E("while", { + isLoop: !0 + }), + _with: E("with"), + _new: E("new", { + beforeExpr: !0, + startsExpr: !0 + }), + _this: E("this", v), + _super: E("super", v), + _class: E("class", v), + _extends: E("extends", y), + _export: E("export"), + _import: E("import", v), + _null: E("null", v), + _true: E("true", v), + _false: E("false", v), + _in: E("in", { + beforeExpr: !0, + binop: 7 + }), + _instanceof: E("instanceof", { + beforeExpr: !0, + binop: 7 + }), + _typeof: E("typeof", { + beforeExpr: !0, + prefix: !0, + startsExpr: !0 + }), + _void: E("void", { + beforeExpr: !0, + prefix: !0, + startsExpr: !0 + }), + _delete: E("delete", { + beforeExpr: !0, + prefix: !0, + startsExpr: !0 + }) + }, + k = /\r\n?|\n|\u2028|\u2029/, + _ = RegExp(k.source, "g"); + + function w(e, t) { + return 10 === e || 13 === e || !t && (8232 === e || 8233 === e); + } + + var C = /[\u1680\u2000-\u200a\u202f\u205f\u3000\ufeff]/, + A = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g, + T = Object.prototype, + N = T.hasOwnProperty, + I = T.toString; + + function P(e, t) { + return N.call(e, t); + } + + var L = Array.isArray || function (e) { + return "[object Array]" === I.call(e); + }; + + function V(e) { + return RegExp("^(?:" + e.replace(/ /g, "|") + ")$"); + } + + var O = function O(e, t) { + this.line = e, this.column = t; + }; + + O.prototype.offset = function (e) { + return new O(this.line, this.column + e); + }; + + var j = function j(e, t, i) { + this.start = t, this.end = i, null !== e.sourceFile && (this.source = e.sourceFile); + }; + + function R(e, t) { + for (var i = 1, s = 0;;) { + _.lastIndex = s; + + var n = _.exec(e); + + if (!n || !(n.index < t)) return new O(i, t - s); + ++i, s = n.index + n[0].length; + } + } + + var D = { + ecmaVersion: 10, + sourceType: "script", + onInsertedSemicolon: null, + onTrailingComma: null, + allowReserved: null, + allowReturnOutsideFunction: !1, + allowImportExportEverywhere: !1, + allowAwaitOutsideFunction: !1, + allowHashBang: !1, + locations: !1, + onToken: null, + onComment: null, + ranges: !1, + program: null, + sourceFile: null, + directSourceFile: null, + preserveParens: !1 + }; + + function M(e, t) { + return 2 | (e ? 4 : 0) | (t ? 8 : 0); + } + + var B = function B(e, t, i) { + this.options = e = function (e) { + var t, + i = {}; + + for (var s in D) { + i[s] = e && P(e, s) ? e[s] : D[s]; + } + + if (i.ecmaVersion >= 2015 && (i.ecmaVersion -= 2009), null == i.allowReserved && (i.allowReserved = i.ecmaVersion < 5), L(i.onToken)) { + var n = i.onToken; + + i.onToken = function (e) { + return n.push(e); + }; + } + + return L(i.onComment) && (i.onComment = (t = i.onComment, function (e, s, n, r, a, o) { + var h = { + type: e ? "Block" : "Line", + value: s, + start: n, + end: r + }; + i.locations && (h.loc = new j(this, a, o)), i.ranges && (h.range = [n, r]), t.push(h); + })), i; + }(e), this.sourceFile = e.sourceFile, this.keywords = V(r[e.ecmaVersion >= 6 ? 6 : "module" === e.sourceType ? "5module" : 5]); + var n = ""; + + if (!0 !== e.allowReserved) { + for (var a = e.ecmaVersion; !(n = s[a]); a--) { + ; + } + + "module" === e.sourceType && (n += " await"); + } + + this.reservedWords = V(n); + var o = (n ? n + " " : "") + s.strict; + this.reservedWordsStrict = V(o), this.reservedWordsStrictBind = V(o + " " + s.strictBind), this.input = String(t), this.containsEsc = !1, i ? (this.pos = i, this.lineStart = this.input.lastIndexOf("\n", i - 1) + 1, this.curLine = this.input.slice(0, this.lineStart).split(k).length) : (this.pos = this.lineStart = 0, this.curLine = 1), this.type = S.eof, this.value = null, this.start = this.end = this.pos, this.startLoc = this.endLoc = this.curPosition(), this.lastTokEndLoc = this.lastTokStartLoc = null, this.lastTokStart = this.lastTokEnd = this.pos, this.context = this.initialContext(), this.exprAllowed = !0, this.inModule = "module" === e.sourceType, this.strict = this.inModule || this.strictDirective(this.pos), this.potentialArrowAt = -1, this.yieldPos = this.awaitPos = this.awaitIdentPos = 0, this.labels = [], this.undefinedExports = {}, 0 === this.pos && e.allowHashBang && "#!" === this.input.slice(0, 2) && this.skipLineComment(2), this.scopeStack = [], this.enterScope(1), this.regexpState = null; + }, + U = { + inFunction: { + configurable: !0 + }, + inGenerator: { + configurable: !0 + }, + inAsync: { + configurable: !0 + }, + allowSuper: { + configurable: !0 + }, + allowDirectSuper: { + configurable: !0 + }, + treatFunctionsAsVar: { + configurable: !0 + } + }; + + B.prototype.parse = function () { + var e = this.options.program || this.startNode(); + return this.nextToken(), this.parseTopLevel(e); + }, U.inFunction.get = function () { + return (2 & this.currentVarScope().flags) > 0; + }, U.inGenerator.get = function () { + return (8 & this.currentVarScope().flags) > 0; + }, U.inAsync.get = function () { + return (4 & this.currentVarScope().flags) > 0; + }, U.allowSuper.get = function () { + return (64 & this.currentThisScope().flags) > 0; + }, U.allowDirectSuper.get = function () { + return (128 & this.currentThisScope().flags) > 0; + }, U.treatFunctionsAsVar.get = function () { + return this.treatFunctionsAsVarInScope(this.currentScope()); + }, B.prototype.inNonArrowFunction = function () { + return (2 & this.currentThisScope().flags) > 0; + }, B.extend = function () { + for (var e = [], t = arguments.length; t--;) { + e[t] = arguments[t]; + } + + for (var i = this, s = 0; s < e.length; s++) { + i = e[s](i); + } + + return i; + }, B.parse = function (e, t) { + return new this(t, e).parse(); + }, B.parseExpressionAt = function (e, t, i) { + var s = new this(i, e, t); + return s.nextToken(), s.parseExpression(); + }, B.tokenizer = function (e, t) { + return new this(t, e); + }, Object.defineProperties(B.prototype, U); + var F = B.prototype, + q = /^(?:'((?:\\.|[^'\\])*?)'|"((?:\\.|[^"\\])*?)")/; + + function X() { + this.shorthandAssign = this.trailingComma = this.parenthesizedAssign = this.parenthesizedBind = this.doubleProto = -1; + } + + F.strictDirective = function (e) { + for (;;) { + A.lastIndex = e, e += A.exec(this.input)[0].length; + var t = q.exec(this.input.slice(e)); + if (!t) return !1; + + if ("use strict" === (t[1] || t[2])) { + A.lastIndex = e + t[0].length; + var i = A.exec(this.input), + s = i.index + i[0].length, + n = this.input.charAt(s); + return ";" === n || "}" === n || k.test(i[0]) && !(/[(`.[+\-/*%<>=,?^&]/.test(n) || "!" === n && "=" === this.input.charAt(s + 1)); + } + + e += t[0].length, A.lastIndex = e, e += A.exec(this.input)[0].length, ";" === this.input[e] && e++; + } + }, F.eat = function (e) { + return this.type === e && (this.next(), !0); + }, F.isContextual = function (e) { + return this.type === S.name && this.value === e && !this.containsEsc; + }, F.eatContextual = function (e) { + return !!this.isContextual(e) && (this.next(), !0); + }, F.expectContextual = function (e) { + this.eatContextual(e) || this.unexpected(); + }, F.canInsertSemicolon = function () { + return this.type === S.eof || this.type === S.braceR || k.test(this.input.slice(this.lastTokEnd, this.start)); + }, F.insertSemicolon = function () { + if (this.canInsertSemicolon()) return this.options.onInsertedSemicolon && this.options.onInsertedSemicolon(this.lastTokEnd, this.lastTokEndLoc), !0; + }, F.semicolon = function () { + this.eat(S.semi) || this.insertSemicolon() || this.unexpected(); + }, F.afterTrailingComma = function (e, t) { + if (this.type === e) return this.options.onTrailingComma && this.options.onTrailingComma(this.lastTokStart, this.lastTokStartLoc), t || this.next(), !0; + }, F.expect = function (e) { + this.eat(e) || this.unexpected(); + }, F.unexpected = function (e) { + this.raise(null != e ? e : this.start, "Unexpected token"); + }, F.checkPatternErrors = function (e, t) { + if (e) { + e.trailingComma > -1 && this.raiseRecoverable(e.trailingComma, "Comma is not permitted after the rest element"); + var i = t ? e.parenthesizedAssign : e.parenthesizedBind; + i > -1 && this.raiseRecoverable(i, "Parenthesized pattern"); + } + }, F.checkExpressionErrors = function (e, t) { + if (!e) return !1; + var i = e.shorthandAssign, + s = e.doubleProto; + if (!t) return i >= 0 || s >= 0; + i >= 0 && this.raise(i, "Shorthand property assignments are valid only in destructuring patterns"), s >= 0 && this.raiseRecoverable(s, "Redefinition of __proto__ property"); + }, F.checkYieldAwaitInDefaultParams = function () { + this.yieldPos && (!this.awaitPos || this.yieldPos < this.awaitPos) && this.raise(this.yieldPos, "Yield expression cannot be a default value"), this.awaitPos && this.raise(this.awaitPos, "Await expression cannot be a default value"); + }, F.isSimpleAssignTarget = function (e) { + return "ParenthesizedExpression" === e.type ? this.isSimpleAssignTarget(e.expression) : "Identifier" === e.type || "MemberExpression" === e.type; + }; + var J = B.prototype; + + J.parseTopLevel = function (e) { + var t = {}; + + for (e.body || (e.body = []); this.type !== S.eof;) { + var i = this.parseStatement(null, !0, t); + e.body.push(i); + } + + if (this.inModule) for (var s = 0, n = Object.keys(this.undefinedExports); s < n.length; s += 1) { + var r = n[s]; + this.raiseRecoverable(this.undefinedExports[r].start, "Export '" + r + "' is not defined"); + } + return this.adaptDirectivePrologue(e.body), this.next(), e.sourceType = this.options.sourceType, this.finishNode(e, "Program"); + }; + + var W = { + kind: "loop" + }, + z = { + kind: "switch" + }; + J.isLet = function (e) { + if (this.options.ecmaVersion < 6 || !this.isContextual("let")) return !1; + A.lastIndex = this.pos; + var t = A.exec(this.input), + i = this.pos + t[0].length, + s = this.input.charCodeAt(i); + if (91 === s) return !0; + if (e) return !1; + if (123 === s) return !0; + + if (f(s, !0)) { + for (var n = i + 1; m(this.input.charCodeAt(n), !0);) { + ++n; + } + + var r = this.input.slice(i, n); + if (!a.test(r)) return !0; + } + + return !1; + }, J.isAsyncFunction = function () { + if (this.options.ecmaVersion < 8 || !this.isContextual("async")) return !1; + A.lastIndex = this.pos; + var e = A.exec(this.input), + t = this.pos + e[0].length; + return !k.test(this.input.slice(this.pos, t)) && "function" === this.input.slice(t, t + 8) && (t + 8 === this.input.length || !m(this.input.charAt(t + 8))); + }, J.parseStatement = function (e, t, i) { + var s, + n = this.type, + r = this.startNode(); + + switch (this.isLet(e) && (n = S._var, s = "let"), n) { + case S._break: + case S._continue: + return this.parseBreakContinueStatement(r, n.keyword); + + case S._debugger: + return this.parseDebuggerStatement(r); + + case S._do: + return this.parseDoStatement(r); + + case S._for: + return this.parseForStatement(r); + + case S._function: + return e && (this.strict || "if" !== e && "label" !== e) && this.options.ecmaVersion >= 6 && this.unexpected(), this.parseFunctionStatement(r, !1, !e); + + case S._class: + return e && this.unexpected(), this.parseClass(r, !0); + + case S._if: + return this.parseIfStatement(r); + + case S._return: + return this.parseReturnStatement(r); + + case S._switch: + return this.parseSwitchStatement(r); + + case S._throw: + return this.parseThrowStatement(r); + + case S._try: + return this.parseTryStatement(r); + + case S._const: + case S._var: + return s = s || this.value, e && "var" !== s && this.unexpected(), this.parseVarStatement(r, s); + + case S._while: + return this.parseWhileStatement(r); + + case S._with: + return this.parseWithStatement(r); + + case S.braceL: + return this.parseBlock(!0, r); + + case S.semi: + return this.parseEmptyStatement(r); + + case S._export: + case S._import: + if (this.options.ecmaVersion > 10 && n === S._import) { + A.lastIndex = this.pos; + var a = A.exec(this.input), + o = this.pos + a[0].length, + h = this.input.charCodeAt(o); + if (40 === h || 46 === h) return this.parseExpressionStatement(r, this.parseExpression()); + } + + return this.options.allowImportExportEverywhere || (t || this.raise(this.start, "'import' and 'export' may only appear at the top level"), this.inModule || this.raise(this.start, "'import' and 'export' may appear only with 'sourceType: module'")), n === S._import ? this.parseImport(r) : this.parseExport(r, i); + + default: + if (this.isAsyncFunction()) return e && this.unexpected(), this.next(), this.parseFunctionStatement(r, !0, !e); + var p = this.value, + l = this.parseExpression(); + if (n === S.name && "Identifier" === l.type && this.eat(S.colon)) return this.parseLabeledStatement(r, p, l, e); + return this.parseExpressionStatement(r, l); + } + }, J.parseBreakContinueStatement = function (e, t) { + var i = "break" === t; + this.next(), this.eat(S.semi) || this.insertSemicolon() ? e.label = null : this.type !== S.name ? this.unexpected() : (e.label = this.parseIdent(), this.semicolon()); + + for (var s = 0; s < this.labels.length; ++s) { + var n = this.labels[s]; + if ((null == e.label || n.name === e.label.name) && (null != n.kind && (i || "loop" === n.kind) || e.label && i)) break; + } + + return s === this.labels.length && this.raise(e.start, "Unsyntactic " + t), this.finishNode(e, i ? "BreakStatement" : "ContinueStatement"); + }, J.parseDebuggerStatement = function (e) { + return this.next(), this.semicolon(), this.finishNode(e, "DebuggerStatement"); + }, J.parseDoStatement = function (e) { + return this.next(), this.labels.push(W), e.body = this.parseStatement("do"), this.labels.pop(), this.expect(S._while), e.test = this.parseParenExpression(), this.options.ecmaVersion >= 6 ? this.eat(S.semi) : this.semicolon(), this.finishNode(e, "DoWhileStatement"); + }, J.parseForStatement = function (e) { + this.next(); + var t = this.options.ecmaVersion >= 9 && (this.inAsync || !this.inFunction && this.options.allowAwaitOutsideFunction) && this.eatContextual("await") ? this.lastTokStart : -1; + if (this.labels.push(W), this.enterScope(0), this.expect(S.parenL), this.type === S.semi) return t > -1 && this.unexpected(t), this.parseFor(e, null); + var i = this.isLet(); + + if (this.type === S._var || this.type === S._const || i) { + var s = this.startNode(), + n = i ? "let" : this.value; + return (this.next(), this.parseVar(s, !0, n), this.finishNode(s, "VariableDeclaration"), (this.type === S._in || this.options.ecmaVersion >= 6 && this.isContextual("of")) && 1 === s.declarations.length) ? (this.options.ecmaVersion >= 9 && (this.type === S._in ? t > -1 && this.unexpected(t) : e.await = t > -1), this.parseForIn(e, s)) : (t > -1 && this.unexpected(t), this.parseFor(e, s)); + } + + var r = new X(), + a = this.parseExpression(!0, r); + return this.type === S._in || this.options.ecmaVersion >= 6 && this.isContextual("of") ? (this.options.ecmaVersion >= 9 && (this.type === S._in ? t > -1 && this.unexpected(t) : e.await = t > -1), this.toAssignable(a, !1, r), this.checkLVal(a), this.parseForIn(e, a)) : (this.checkExpressionErrors(r, !0), t > -1 && this.unexpected(t), this.parseFor(e, a)); + }, J.parseFunctionStatement = function (e, t, i) { + return this.next(), this.parseFunction(e, G | (i ? 0 : Q), !1, t); + }, J.parseIfStatement = function (e) { + return this.next(), e.test = this.parseParenExpression(), e.consequent = this.parseStatement("if"), e.alternate = this.eat(S._else) ? this.parseStatement("if") : null, this.finishNode(e, "IfStatement"); + }, J.parseReturnStatement = function (e) { + return this.inFunction || this.options.allowReturnOutsideFunction || this.raise(this.start, "'return' outside of function"), this.next(), this.eat(S.semi) || this.insertSemicolon() ? e.argument = null : (e.argument = this.parseExpression(), this.semicolon()), this.finishNode(e, "ReturnStatement"); + }, J.parseSwitchStatement = function (e) { + this.next(), e.discriminant = this.parseParenExpression(), e.cases = [], this.expect(S.braceL), this.labels.push(z), this.enterScope(0); + + for (var t, i = !1; this.type !== S.braceR;) { + if (this.type === S._case || this.type === S._default) { + var s = this.type === S._case; + t && this.finishNode(t, "SwitchCase"), e.cases.push(t = this.startNode()), t.consequent = [], this.next(), s ? t.test = this.parseExpression() : (i && this.raiseRecoverable(this.lastTokStart, "Multiple default clauses"), i = !0, t.test = null), this.expect(S.colon); + } else t || this.unexpected(), t.consequent.push(this.parseStatement(null)); + } + + return this.exitScope(), t && this.finishNode(t, "SwitchCase"), this.next(), this.labels.pop(), this.finishNode(e, "SwitchStatement"); + }, J.parseThrowStatement = function (e) { + return this.next(), k.test(this.input.slice(this.lastTokEnd, this.start)) && this.raise(this.lastTokEnd, "Illegal newline after throw"), e.argument = this.parseExpression(), this.semicolon(), this.finishNode(e, "ThrowStatement"); + }; + var H = []; + J.parseTryStatement = function (e) { + if (this.next(), e.block = this.parseBlock(), e.handler = null, this.type === S._catch) { + var t = this.startNode(); + + if (this.next(), this.eat(S.parenL)) { + t.param = this.parseBindingAtom(); + var i = "Identifier" === t.param.type; + this.enterScope(i ? 32 : 0), this.checkLVal(t.param, i ? 4 : 2), this.expect(S.parenR); + } else this.options.ecmaVersion < 10 && this.unexpected(), t.param = null, this.enterScope(0); + + t.body = this.parseBlock(!1), this.exitScope(), e.handler = this.finishNode(t, "CatchClause"); + } + + return e.finalizer = this.eat(S._finally) ? this.parseBlock() : null, e.handler || e.finalizer || this.raise(e.start, "Missing catch or finally clause"), this.finishNode(e, "TryStatement"); + }, J.parseVarStatement = function (e, t) { + return this.next(), this.parseVar(e, !1, t), this.semicolon(), this.finishNode(e, "VariableDeclaration"); + }, J.parseWhileStatement = function (e) { + return this.next(), e.test = this.parseParenExpression(), this.labels.push(W), e.body = this.parseStatement("while"), this.labels.pop(), this.finishNode(e, "WhileStatement"); + }, J.parseWithStatement = function (e) { + return this.strict && this.raise(this.start, "'with' in strict mode"), this.next(), e.object = this.parseParenExpression(), e.body = this.parseStatement("with"), this.finishNode(e, "WithStatement"); + }, J.parseEmptyStatement = function (e) { + return this.next(), this.finishNode(e, "EmptyStatement"); + }, J.parseLabeledStatement = function (e, t, i, s) { + for (var n = 0, r = this.labels; n < r.length; n += 1) { + r[n].name === t && this.raise(i.start, "Label '" + t + "' is already declared"); + } + + for (var a = this.type.isLoop ? "loop" : this.type === S._switch ? "switch" : null, o = this.labels.length - 1; o >= 0; o--) { + var h = this.labels[o]; + if (h.statementStart === e.start) h.statementStart = this.start, h.kind = a;else break; + } + + return this.labels.push({ + name: t, + kind: a, + statementStart: this.start + }), e.body = this.parseStatement(s ? -1 === s.indexOf("label") ? s + "label" : s : "label"), this.labels.pop(), e.label = i, this.finishNode(e, "LabeledStatement"); + }, J.parseExpressionStatement = function (e, t) { + return e.expression = t, this.semicolon(), this.finishNode(e, "ExpressionStatement"); + }, J.parseBlock = function (e, t, i) { + for (void 0 === e && (e = !0), void 0 === t && (t = this.startNode()), t.body = [], this.expect(S.braceL), e && this.enterScope(0); this.type !== S.braceR;) { + var s = this.parseStatement(null); + t.body.push(s); + } + + return i && (this.strict = !1), this.next(), e && this.exitScope(), this.finishNode(t, "BlockStatement"); + }, J.parseFor = function (e, t) { + return e.init = t, this.expect(S.semi), e.test = this.type === S.semi ? null : this.parseExpression(), this.expect(S.semi), e.update = this.type === S.parenR ? null : this.parseExpression(), this.expect(S.parenR), e.body = this.parseStatement("for"), this.exitScope(), this.labels.pop(), this.finishNode(e, "ForStatement"); + }, J.parseForIn = function (e, t) { + var i = this.type === S._in; + return this.next(), "VariableDeclaration" === t.type && null != t.declarations[0].init && (!i || this.options.ecmaVersion < 8 || this.strict || "var" !== t.kind || "Identifier" !== t.declarations[0].id.type) ? this.raise(t.start, (i ? "for-in" : "for-of") + " loop variable declaration may not have an initializer") : "AssignmentPattern" === t.type && this.raise(t.start, "Invalid left-hand side in for-loop"), e.left = t, e.right = i ? this.parseExpression() : this.parseMaybeAssign(), this.expect(S.parenR), e.body = this.parseStatement("for"), this.exitScope(), this.labels.pop(), this.finishNode(e, i ? "ForInStatement" : "ForOfStatement"); + }, J.parseVar = function (e, t, i) { + for (e.declarations = [], e.kind = i;;) { + var s = this.startNode(); + if (this.parseVarId(s, i), this.eat(S.eq) ? s.init = this.parseMaybeAssign(t) : "const" !== i || this.type === S._in || this.options.ecmaVersion >= 6 && this.isContextual("of") ? "Identifier" === s.id.type || t && (this.type === S._in || this.isContextual("of")) ? s.init = null : this.raise(this.lastTokEnd, "Complex binding patterns require an initialization value") : this.unexpected(), e.declarations.push(this.finishNode(s, "VariableDeclarator")), !this.eat(S.comma)) break; + } + + return e; + }, J.parseVarId = function (e, t) { + e.id = this.parseBindingAtom(), this.checkLVal(e.id, "var" === t ? 1 : 2, !1); + }; + var G = 1, + Q = 2; + J.parseFunction = function (e, t, i, s) { + this.initFunction(e), (this.options.ecmaVersion >= 9 || this.options.ecmaVersion >= 6 && !s) && (this.type === S.star && t & Q && this.unexpected(), e.generator = this.eat(S.star)), this.options.ecmaVersion >= 8 && (e.async = !!s), t & G && (e.id = 4 & t && this.type !== S.name ? null : this.parseIdent(), e.id && !(t & Q) && this.checkLVal(e.id, this.strict || e.generator || e.async ? this.treatFunctionsAsVar ? 1 : 2 : 3)); + var n = this.yieldPos, + r = this.awaitPos, + a = this.awaitIdentPos; + return this.yieldPos = 0, this.awaitPos = 0, this.awaitIdentPos = 0, this.enterScope(M(e.async, e.generator)), t & G || (e.id = this.type === S.name ? this.parseIdent() : null), this.parseFunctionParams(e), this.parseFunctionBody(e, i, !1), this.yieldPos = n, this.awaitPos = r, this.awaitIdentPos = a, this.finishNode(e, t & G ? "FunctionDeclaration" : "FunctionExpression"); + }, J.parseFunctionParams = function (e) { + this.expect(S.parenL), e.params = this.parseBindingList(S.parenR, !1, this.options.ecmaVersion >= 8), this.checkYieldAwaitInDefaultParams(); + }, J.parseClass = function (e, t) { + this.next(); + var i = this.strict; + this.strict = !0, this.parseClassId(e, t), this.parseClassSuper(e); + var s = this.startNode(), + n = !1; + + for (s.body = [], this.expect(S.braceL); this.type !== S.braceR;) { + var r = this.parseClassElement(null !== e.superClass); + r && (s.body.push(r), "MethodDefinition" === r.type && "constructor" === r.kind && (n && this.raise(r.start, "Duplicate constructor in the same class"), n = !0)); + } + + return this.strict = i, this.next(), e.body = this.finishNode(s, "ClassBody"), this.finishNode(e, t ? "ClassDeclaration" : "ClassExpression"); + }, J.parseClassElement = function (e) { + var t = this; + if (this.eat(S.semi)) return null; + + var i = this.startNode(), + s = function s(e, _s) { + void 0 === _s && (_s = !1); + var n = t.start, + r = t.startLoc; + return !!t.eatContextual(e) && (!(t.type === S.parenL || _s && t.canInsertSemicolon()) || (i.key && t.unexpected(), i.computed = !1, i.key = t.startNodeAt(n, r), i.key.name = e, t.finishNode(i.key, "Identifier"), !1)); + }; + + i.kind = "method", i.static = s("static"); + var n = this.eat(S.star), + r = !1; + !n && (this.options.ecmaVersion >= 8 && s("async", !0) ? (r = !0, n = this.options.ecmaVersion >= 9 && this.eat(S.star)) : s("get") ? i.kind = "get" : s("set") && (i.kind = "set")), i.key || this.parsePropertyName(i); + var a = i.key, + o = !1; + return i.computed || i.static || ("Identifier" !== a.type || "constructor" !== a.name) && ("Literal" !== a.type || "constructor" !== a.value) ? i.static && "Identifier" === a.type && "prototype" === a.name && this.raise(a.start, "Classes may not have a static property named prototype") : ("method" !== i.kind && this.raise(a.start, "Constructor can't have get/set modifier"), n && this.raise(a.start, "Constructor can't be a generator"), r && this.raise(a.start, "Constructor can't be an async method"), i.kind = "constructor", o = e), this.parseClassMethod(i, n, r, o), "get" === i.kind && 0 !== i.value.params.length && this.raiseRecoverable(i.value.start, "getter should have no params"), "set" === i.kind && 1 !== i.value.params.length && this.raiseRecoverable(i.value.start, "setter should have exactly one param"), "set" === i.kind && "RestElement" === i.value.params[0].type && this.raiseRecoverable(i.value.params[0].start, "Setter cannot use rest params"), i; + }, J.parseClassMethod = function (e, t, i, s) { + return e.value = this.parseMethod(t, i, s), this.finishNode(e, "MethodDefinition"); + }, J.parseClassId = function (e, t) { + this.type === S.name ? (e.id = this.parseIdent(), t && this.checkLVal(e.id, 2, !1)) : (!0 === t && this.unexpected(), e.id = null); + }, J.parseClassSuper = function (e) { + e.superClass = this.eat(S._extends) ? this.parseExprSubscripts() : null; + }, J.parseExport = function (e, t) { + if (this.next(), this.eat(S.star)) return this.options.ecmaVersion >= 11 && (this.eatContextual("as") ? (e.exported = this.parseIdent(!0), this.checkExport(t, e.exported.name, this.lastTokStart)) : e.exported = null), this.expectContextual("from"), this.type !== S.string && this.unexpected(), e.source = this.parseExprAtom(), this.semicolon(), this.finishNode(e, "ExportAllDeclaration"); + + if (this.eat(S._default)) { + if (this.checkExport(t, "default", this.lastTokStart), this.type === S._function || (i = this.isAsyncFunction())) { + var i, + s = this.startNode(); + this.next(), i && this.next(), e.declaration = this.parseFunction(s, 4 | G, !1, i); + } else if (this.type === S._class) { + var n = this.startNode(); + e.declaration = this.parseClass(n, "nullableID"); + } else e.declaration = this.parseMaybeAssign(), this.semicolon(); + + return this.finishNode(e, "ExportDefaultDeclaration"); + } + + if (this.shouldParseExportStatement()) e.declaration = this.parseStatement(null), "VariableDeclaration" === e.declaration.type ? this.checkVariableExport(t, e.declaration.declarations) : this.checkExport(t, e.declaration.id.name, e.declaration.id.start), e.specifiers = [], e.source = null;else { + if (e.declaration = null, e.specifiers = this.parseExportSpecifiers(t), this.eatContextual("from")) this.type !== S.string && this.unexpected(), e.source = this.parseExprAtom();else { + for (var r = 0, a = e.specifiers; r < a.length; r += 1) { + var o = a[r]; + this.checkUnreserved(o.local), this.checkLocalExport(o.local); + } + + e.source = null; + } + this.semicolon(); + } + return this.finishNode(e, "ExportNamedDeclaration"); + }, J.checkExport = function (e, t, i) { + e && (P(e, t) && this.raiseRecoverable(i, "Duplicate export '" + t + "'"), e[t] = !0); + }, J.checkPatternExport = function (e, t) { + var i = t.type; + if ("Identifier" === i) this.checkExport(e, t.name, t.start);else if ("ObjectPattern" === i) for (var s = 0, n = t.properties; s < n.length; s += 1) { + var r = n[s]; + this.checkPatternExport(e, r); + } else if ("ArrayPattern" === i) for (var a = 0, o = t.elements; a < o.length; a += 1) { + var h = o[a]; + h && this.checkPatternExport(e, h); + } else "Property" === i ? this.checkPatternExport(e, t.value) : "AssignmentPattern" === i ? this.checkPatternExport(e, t.left) : "RestElement" === i ? this.checkPatternExport(e, t.argument) : "ParenthesizedExpression" === i && this.checkPatternExport(e, t.expression); + }, J.checkVariableExport = function (e, t) { + if (e) for (var i = 0; i < t.length; i += 1) { + var s = t[i]; + this.checkPatternExport(e, s.id); + } + }, J.shouldParseExportStatement = function () { + return "var" === this.type.keyword || "const" === this.type.keyword || "class" === this.type.keyword || "function" === this.type.keyword || this.isLet() || this.isAsyncFunction(); + }, J.parseExportSpecifiers = function (e) { + var t = [], + i = !0; + + for (this.expect(S.braceL); !this.eat(S.braceR);) { + if (i) i = !1;else if (this.expect(S.comma), this.afterTrailingComma(S.braceR)) break; + var s = this.startNode(); + s.local = this.parseIdent(!0), s.exported = this.eatContextual("as") ? this.parseIdent(!0) : s.local, this.checkExport(e, s.exported.name, s.exported.start), t.push(this.finishNode(s, "ExportSpecifier")); + } + + return t; + }, J.parseImport = function (e) { + return this.next(), this.type === S.string ? (e.specifiers = H, e.source = this.parseExprAtom()) : (e.specifiers = this.parseImportSpecifiers(), this.expectContextual("from"), e.source = this.type === S.string ? this.parseExprAtom() : this.unexpected()), this.semicolon(), this.finishNode(e, "ImportDeclaration"); + }, J.parseImportSpecifiers = function () { + var e = [], + t = !0; + + if (this.type === S.name) { + var i = this.startNode(); + if (i.local = this.parseIdent(), this.checkLVal(i.local, 2), e.push(this.finishNode(i, "ImportDefaultSpecifier")), !this.eat(S.comma)) return e; + } + + if (this.type === S.star) { + var s = this.startNode(); + return this.next(), this.expectContextual("as"), s.local = this.parseIdent(), this.checkLVal(s.local, 2), e.push(this.finishNode(s, "ImportNamespaceSpecifier")), e; + } + + for (this.expect(S.braceL); !this.eat(S.braceR);) { + if (t) t = !1;else if (this.expect(S.comma), this.afterTrailingComma(S.braceR)) break; + var n = this.startNode(); + n.imported = this.parseIdent(!0), this.eatContextual("as") ? n.local = this.parseIdent() : (this.checkUnreserved(n.imported), n.local = n.imported), this.checkLVal(n.local, 2), e.push(this.finishNode(n, "ImportSpecifier")); + } + + return e; + }, J.adaptDirectivePrologue = function (e) { + for (var t = 0; t < e.length && this.isDirectiveCandidate(e[t]); ++t) { + e[t].directive = e[t].expression.raw.slice(1, -1); + } + }, J.isDirectiveCandidate = function (e) { + return "ExpressionStatement" === e.type && "Literal" === e.expression.type && "string" == typeof e.expression.value && ('"' === this.input[e.start] || "'" === this.input[e.start]); + }; + var K = B.prototype; + K.toAssignable = function (e, t, i) { + if (this.options.ecmaVersion >= 6 && e) switch (e.type) { + case "Identifier": + this.inAsync && "await" === e.name && this.raise(e.start, "Cannot use 'await' as identifier inside an async function"); + break; + + case "ObjectPattern": + case "ArrayPattern": + case "RestElement": + break; + + case "ObjectExpression": + e.type = "ObjectPattern", i && this.checkPatternErrors(i, !0); + + for (var s = 0, n = e.properties; s < n.length; s += 1) { + var r = n[s]; + this.toAssignable(r, t), "RestElement" === r.type && ("ArrayPattern" === r.argument.type || "ObjectPattern" === r.argument.type) && this.raise(r.argument.start, "Unexpected token"); + } + + break; + + case "Property": + "init" !== e.kind && this.raise(e.key.start, "Object pattern can't contain getter or setter"), this.toAssignable(e.value, t); + break; + + case "ArrayExpression": + e.type = "ArrayPattern", i && this.checkPatternErrors(i, !0), this.toAssignableList(e.elements, t); + break; + + case "SpreadElement": + e.type = "RestElement", this.toAssignable(e.argument, t), "AssignmentPattern" === e.argument.type && this.raise(e.argument.start, "Rest elements cannot have a default value"); + break; + + case "AssignmentExpression": + "=" !== e.operator && this.raise(e.left.end, "Only '=' operator can be used for specifying default value."), e.type = "AssignmentPattern", delete e.operator, this.toAssignable(e.left, t); + + case "AssignmentPattern": + break; + + case "ParenthesizedExpression": + this.toAssignable(e.expression, t, i); + break; + + case "ChainExpression": + this.raiseRecoverable(e.start, "Optional chaining cannot appear in left-hand side"); + break; + + case "MemberExpression": + if (!t) break; + + default: + this.raise(e.start, "Assigning to rvalue"); + } else i && this.checkPatternErrors(i, !0); + return e; + }, K.toAssignableList = function (e, t) { + for (var i = e.length, s = 0; s < i; s++) { + var n = e[s]; + n && this.toAssignable(n, t); + } + + if (i) { + var r = e[i - 1]; + 6 === this.options.ecmaVersion && t && r && "RestElement" === r.type && "Identifier" !== r.argument.type && this.unexpected(r.argument.start); + } + + return e; + }, K.parseSpread = function (e) { + var t = this.startNode(); + return this.next(), t.argument = this.parseMaybeAssign(!1, e), this.finishNode(t, "SpreadElement"); + }, K.parseRestBinding = function () { + var e = this.startNode(); + return this.next(), 6 === this.options.ecmaVersion && this.type !== S.name && this.unexpected(), e.argument = this.parseBindingAtom(), this.finishNode(e, "RestElement"); + }, K.parseBindingAtom = function () { + if (this.options.ecmaVersion >= 6) switch (this.type) { + case S.bracketL: + var e = this.startNode(); + return this.next(), e.elements = this.parseBindingList(S.bracketR, !0, !0), this.finishNode(e, "ArrayPattern"); + + case S.braceL: + return this.parseObj(!0); + } + return this.parseIdent(); + }, K.parseBindingList = function (e, t, i) { + for (var s = [], n = !0; !this.eat(e);) { + if (n ? n = !1 : this.expect(S.comma), t && this.type === S.comma) s.push(null);else if (i && this.afterTrailingComma(e)) break;else if (this.type === S.ellipsis) { + var r = this.parseRestBinding(); + this.parseBindingListItem(r), s.push(r), this.type === S.comma && this.raise(this.start, "Comma is not permitted after the rest element"), this.expect(e); + break; + } else { + var a = this.parseMaybeDefault(this.start, this.startLoc); + this.parseBindingListItem(a), s.push(a); + } + } + + return s; + }, K.parseBindingListItem = function (e) { + return e; + }, K.parseMaybeDefault = function (e, t, i) { + if (i = i || this.parseBindingAtom(), this.options.ecmaVersion < 6 || !this.eat(S.eq)) return i; + var s = this.startNodeAt(e, t); + return s.left = i, s.right = this.parseMaybeAssign(), this.finishNode(s, "AssignmentPattern"); + }, K.checkLVal = function (e, t, i) { + switch (void 0 === t && (t = 0), e.type) { + case "Identifier": + 2 === t && "let" === e.name && this.raiseRecoverable(e.start, "let is disallowed as a lexically bound name"), this.strict && this.reservedWordsStrictBind.test(e.name) && this.raiseRecoverable(e.start, (t ? "Binding " : "Assigning to ") + e.name + " in strict mode"), i && (P(i, e.name) && this.raiseRecoverable(e.start, "Argument name clash"), i[e.name] = !0), 0 !== t && 5 !== t && this.declareName(e.name, t, e.start); + break; + + case "ChainExpression": + this.raiseRecoverable(e.start, "Optional chaining cannot appear in left-hand side"); + break; + + case "MemberExpression": + t && this.raiseRecoverable(e.start, "Binding member expression"); + break; + + case "ObjectPattern": + for (var s = 0, n = e.properties; s < n.length; s += 1) { + var r = n[s]; + this.checkLVal(r, t, i); + } + + break; + + case "Property": + this.checkLVal(e.value, t, i); + break; + + case "ArrayPattern": + for (var a = 0, o = e.elements; a < o.length; a += 1) { + var h = o[a]; + h && this.checkLVal(h, t, i); + } + + break; + + case "AssignmentPattern": + this.checkLVal(e.left, t, i); + break; + + case "RestElement": + this.checkLVal(e.argument, t, i); + break; + + case "ParenthesizedExpression": + this.checkLVal(e.expression, t, i); + break; + + default: + this.raise(e.start, (t ? "Binding" : "Assigning to") + " rvalue"); + } + }; + var $ = B.prototype; + $.checkPropClash = function (e, t, i) { + if ((!(this.options.ecmaVersion >= 9) || "SpreadElement" !== e.type) && (!(this.options.ecmaVersion >= 6) || !e.computed && !e.method && !e.shorthand)) { + var s, + n = e.key; + + switch (n.type) { + case "Identifier": + s = n.name; + break; + + case "Literal": + s = String(n.value); + break; + + default: + return; + } + + var r = e.kind; + + if (this.options.ecmaVersion >= 6) { + "__proto__" === s && "init" === r && (t.proto && (i ? i.doubleProto < 0 && (i.doubleProto = n.start) : this.raiseRecoverable(n.start, "Redefinition of __proto__ property")), t.proto = !0); + return; + } + + var a = t[s = "$" + s]; + a ? ("init" === r ? this.strict && a.init || a.get || a.set : a.init || a[r]) && this.raiseRecoverable(n.start, "Redefinition of property") : a = t[s] = { + init: !1, + get: !1, + set: !1 + }, a[r] = !0; + } + }, $.parseExpression = function (e, t) { + var i = this.start, + s = this.startLoc, + n = this.parseMaybeAssign(e, t); + + if (this.type === S.comma) { + var r = this.startNodeAt(i, s); + + for (r.expressions = [n]; this.eat(S.comma);) { + r.expressions.push(this.parseMaybeAssign(e, t)); + } + + return this.finishNode(r, "SequenceExpression"); + } + + return n; + }, $.parseMaybeAssign = function (e, t, i) { + if (this.isContextual("yield")) { + if (this.inGenerator) return this.parseYield(e); + this.exprAllowed = !1; + } + + var s = !1, + n = -1, + r = -1; + t ? (n = t.parenthesizedAssign, r = t.trailingComma, t.parenthesizedAssign = t.trailingComma = -1) : (t = new X(), s = !0); + var a = this.start, + o = this.startLoc; + (this.type === S.parenL || this.type === S.name) && (this.potentialArrowAt = this.start); + var h = this.parseMaybeConditional(e, t); + + if (i && (h = i.call(this, h, a, o)), this.type.isAssign) { + var p = this.startNodeAt(a, o); + return p.operator = this.value, p.left = this.type === S.eq ? this.toAssignable(h, !1, t) : h, s || (t.parenthesizedAssign = t.trailingComma = t.doubleProto = -1), t.shorthandAssign >= p.left.start && (t.shorthandAssign = -1), this.checkLVal(h), this.next(), p.right = this.parseMaybeAssign(e), this.finishNode(p, "AssignmentExpression"); + } + + return s && this.checkExpressionErrors(t, !0), n > -1 && (t.parenthesizedAssign = n), r > -1 && (t.trailingComma = r), h; + }, $.parseMaybeConditional = function (e, t) { + var i = this.start, + s = this.startLoc, + n = this.parseExprOps(e, t); + if (this.checkExpressionErrors(t)) return n; + + if (this.eat(S.question)) { + var r = this.startNodeAt(i, s); + return r.test = n, r.consequent = this.parseMaybeAssign(), this.expect(S.colon), r.alternate = this.parseMaybeAssign(e), this.finishNode(r, "ConditionalExpression"); + } + + return n; + }, $.parseExprOps = function (e, t) { + var i = this.start, + s = this.startLoc, + n = this.parseMaybeUnary(t, !1); + return this.checkExpressionErrors(t) ? n : n.start === i && "ArrowFunctionExpression" === n.type ? n : this.parseExprOp(n, i, s, -1, e); + }, $.parseExprOp = function (e, t, i, s, n) { + var r = this.type.binop; + + if (null != r && (!n || this.type !== S._in) && r > s) { + var a = this.type === S.logicalOR || this.type === S.logicalAND, + o = this.type === S.coalesce; + o && (r = S.logicalAND.binop); + var h = this.value; + this.next(); + var p = this.start, + l = this.startLoc, + c = this.parseExprOp(this.parseMaybeUnary(null, !1), p, l, r, n), + u = this.buildBinary(t, i, e, c, h, a || o); + return (a && this.type === S.coalesce || o && (this.type === S.logicalOR || this.type === S.logicalAND)) && this.raiseRecoverable(this.start, "Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses"), this.parseExprOp(u, t, i, s, n); + } + + return e; + }, $.buildBinary = function (e, t, i, s, n, r) { + var a = this.startNodeAt(e, t); + return a.left = i, a.operator = n, a.right = s, this.finishNode(a, r ? "LogicalExpression" : "BinaryExpression"); + }, $.parseMaybeUnary = function (e, t) { + var i, + s = this.start, + n = this.startLoc; + if (this.isContextual("await") && (this.inAsync || !this.inFunction && this.options.allowAwaitOutsideFunction)) i = this.parseAwait(), t = !0;else if (this.type.prefix) { + var r = this.startNode(), + a = this.type === S.incDec; + r.operator = this.value, r.prefix = !0, this.next(), r.argument = this.parseMaybeUnary(null, !0), this.checkExpressionErrors(e, !0), a ? this.checkLVal(r.argument) : this.strict && "delete" === r.operator && "Identifier" === r.argument.type ? this.raiseRecoverable(r.start, "Deleting local variable in strict mode") : t = !0, i = this.finishNode(r, a ? "UpdateExpression" : "UnaryExpression"); + } else { + if (i = this.parseExprSubscripts(e), this.checkExpressionErrors(e)) return i; + + for (; this.type.postfix && !this.canInsertSemicolon();) { + var o = this.startNodeAt(s, n); + o.operator = this.value, o.prefix = !1, o.argument = i, this.checkLVal(i), this.next(), i = this.finishNode(o, "UpdateExpression"); + } + } + return !t && this.eat(S.starstar) ? this.buildBinary(s, n, i, this.parseMaybeUnary(null, !1), "**", !1) : i; + }, $.parseExprSubscripts = function (e) { + var t = this.start, + i = this.startLoc, + s = this.parseExprAtom(e); + if ("ArrowFunctionExpression" === s.type && ")" !== this.input.slice(this.lastTokStart, this.lastTokEnd)) return s; + var n = this.parseSubscripts(s, t, i); + return e && "MemberExpression" === n.type && (e.parenthesizedAssign >= n.start && (e.parenthesizedAssign = -1), e.parenthesizedBind >= n.start && (e.parenthesizedBind = -1)), n; + }, $.parseSubscripts = function (e, t, i, s) { + for (var n = this.options.ecmaVersion >= 8 && "Identifier" === e.type && "async" === e.name && this.lastTokEnd === e.end && !this.canInsertSemicolon() && e.end - e.start == 5 && this.potentialArrowAt === e.start, r = !1;;) { + var a = this.parseSubscript(e, t, i, s, n, r); + + if (a.optional && (r = !0), a === e || "ArrowFunctionExpression" === a.type) { + if (r) { + var o = this.startNodeAt(t, i); + o.expression = a, a = this.finishNode(o, "ChainExpression"); + } + + return a; + } + + e = a; + } + }, $.parseSubscript = function (e, t, i, s, n, r) { + var a = this.options.ecmaVersion >= 11, + o = a && this.eat(S.questionDot); + s && o && this.raise(this.lastTokStart, "Optional chaining cannot appear in the callee of new expressions"); + var h = this.eat(S.bracketL); + + if (h || o && this.type !== S.parenL && this.type !== S.backQuote || this.eat(S.dot)) { + var p = this.startNodeAt(t, i); + p.object = e, p.property = h ? this.parseExpression() : this.parseIdent("never" !== this.options.allowReserved), p.computed = !!h, h && this.expect(S.bracketR), a && (p.optional = o), e = this.finishNode(p, "MemberExpression"); + } else if (!s && this.eat(S.parenL)) { + var l = new X(), + c = this.yieldPos, + u = this.awaitPos, + d = this.awaitIdentPos; + this.yieldPos = 0, this.awaitPos = 0, this.awaitIdentPos = 0; + var f = this.parseExprList(S.parenR, this.options.ecmaVersion >= 8, !1, l); + if (n && !o && !this.canInsertSemicolon() && this.eat(S.arrow)) return this.checkPatternErrors(l, !1), this.checkYieldAwaitInDefaultParams(), this.awaitIdentPos > 0 && this.raise(this.awaitIdentPos, "Cannot use 'await' as identifier inside an async function"), this.yieldPos = c, this.awaitPos = u, this.awaitIdentPos = d, this.parseArrowExpression(this.startNodeAt(t, i), f, !0); + this.checkExpressionErrors(l, !0), this.yieldPos = c || this.yieldPos, this.awaitPos = u || this.awaitPos, this.awaitIdentPos = d || this.awaitIdentPos; + var m = this.startNodeAt(t, i); + m.callee = e, m.arguments = f, a && (m.optional = o), e = this.finishNode(m, "CallExpression"); + } else if (this.type === S.backQuote) { + (o || r) && this.raise(this.start, "Optional chaining cannot appear in the tag of tagged template expressions"); + var x = this.startNodeAt(t, i); + x.tag = e, x.quasi = this.parseTemplate({ + isTagged: !0 + }), e = this.finishNode(x, "TaggedTemplateExpression"); + } + + return e; + }, $.parseExprAtom = function (e) { + this.type === S.slash && this.readRegexp(); + var t, + i = this.potentialArrowAt === this.start; + + switch (this.type) { + case S._super: + return this.allowSuper || this.raise(this.start, "'super' keyword outside a method"), t = this.startNode(), this.next(), this.type !== S.parenL || this.allowDirectSuper || this.raise(t.start, "super() call outside constructor of a subclass"), this.type !== S.dot && this.type !== S.bracketL && this.type !== S.parenL && this.unexpected(), this.finishNode(t, "Super"); + + case S._this: + return t = this.startNode(), this.next(), this.finishNode(t, "ThisExpression"); + + case S.name: + var s = this.start, + n = this.startLoc, + r = this.containsEsc, + a = this.parseIdent(!1); + if (this.options.ecmaVersion >= 8 && !r && "async" === a.name && !this.canInsertSemicolon() && this.eat(S._function)) return this.parseFunction(this.startNodeAt(s, n), 0, !1, !0); + + if (i && !this.canInsertSemicolon()) { + if (this.eat(S.arrow)) return this.parseArrowExpression(this.startNodeAt(s, n), [a], !1); + if (this.options.ecmaVersion >= 8 && "async" === a.name && this.type === S.name && !r) return a = this.parseIdent(!1), (this.canInsertSemicolon() || !this.eat(S.arrow)) && this.unexpected(), this.parseArrowExpression(this.startNodeAt(s, n), [a], !0); + } + + return a; + + case S.regexp: + var o = this.value; + return (t = this.parseLiteral(o.value)).regex = { + pattern: o.pattern, + flags: o.flags + }, t; + + case S.num: + case S.string: + return this.parseLiteral(this.value); + + case S._null: + case S._true: + case S._false: + return (t = this.startNode()).value = this.type === S._null ? null : this.type === S._true, t.raw = this.type.keyword, this.next(), this.finishNode(t, "Literal"); + + case S.parenL: + var h = this.start, + p = this.parseParenAndDistinguishExpression(i); + return e && (e.parenthesizedAssign < 0 && !this.isSimpleAssignTarget(p) && (e.parenthesizedAssign = h), e.parenthesizedBind < 0 && (e.parenthesizedBind = h)), p; + + case S.bracketL: + return t = this.startNode(), this.next(), t.elements = this.parseExprList(S.bracketR, !0, !0, e), this.finishNode(t, "ArrayExpression"); + + case S.braceL: + return this.parseObj(!1, e); + + case S._function: + return t = this.startNode(), this.next(), this.parseFunction(t, 0); + + case S._class: + return this.parseClass(this.startNode(), !1); + + case S._new: + return this.parseNew(); + + case S.backQuote: + return this.parseTemplate(); + + case S._import: + if (this.options.ecmaVersion >= 11) return this.parseExprImport(); + return this.unexpected(); + + default: + this.unexpected(); + } + }, $.parseExprImport = function () { + var e = this.startNode(); + this.containsEsc && this.raiseRecoverable(this.start, "Escape sequence in keyword import"); + var t = this.parseIdent(!0); + + switch (this.type) { + case S.parenL: + return this.parseDynamicImport(e); + + case S.dot: + return e.meta = t, this.parseImportMeta(e); + + default: + this.unexpected(); + } + }, $.parseDynamicImport = function (e) { + if (this.next(), e.source = this.parseMaybeAssign(), !this.eat(S.parenR)) { + var t = this.start; + this.eat(S.comma) && this.eat(S.parenR) ? this.raiseRecoverable(t, "Trailing comma is not allowed in import()") : this.unexpected(t); + } + + return this.finishNode(e, "ImportExpression"); + }, $.parseImportMeta = function (e) { + this.next(); + var t = this.containsEsc; + return e.property = this.parseIdent(!0), "meta" !== e.property.name && this.raiseRecoverable(e.property.start, "The only valid meta property for import is 'import.meta'"), t && this.raiseRecoverable(e.start, "'import.meta' must not contain escaped characters"), "module" !== this.options.sourceType && this.raiseRecoverable(e.start, "Cannot use 'import.meta' outside a module"), this.finishNode(e, "MetaProperty"); + }, $.parseLiteral = function (e) { + var t = this.startNode(); + return t.value = e, t.raw = this.input.slice(this.start, this.end), 110 === t.raw.charCodeAt(t.raw.length - 1) && (t.bigint = t.raw.slice(0, -1).replace(/_/g, "")), this.next(), this.finishNode(t, "Literal"); + }, $.parseParenExpression = function () { + this.expect(S.parenL); + var e = this.parseExpression(); + return this.expect(S.parenR), e; + }, $.parseParenAndDistinguishExpression = function (e) { + var t, + i = this.start, + s = this.startLoc, + n = this.options.ecmaVersion >= 8; + + if (this.options.ecmaVersion >= 6) { + this.next(); + var r, + a = this.start, + o = this.startLoc, + h = [], + p = !0, + l = !1, + c = new X(), + u = this.yieldPos, + d = this.awaitPos; + + for (this.yieldPos = 0, this.awaitPos = 0; this.type !== S.parenR;) { + if (p ? p = !1 : this.expect(S.comma), n && this.afterTrailingComma(S.parenR, !0)) { + l = !0; + break; + } + + if (this.type === S.ellipsis) { + r = this.start, h.push(this.parseParenItem(this.parseRestBinding())), this.type === S.comma && this.raise(this.start, "Comma is not permitted after the rest element"); + break; + } + + h.push(this.parseMaybeAssign(!1, c, this.parseParenItem)); + } + + var f = this.start, + m = this.startLoc; + if (this.expect(S.parenR), e && !this.canInsertSemicolon() && this.eat(S.arrow)) return this.checkPatternErrors(c, !1), this.checkYieldAwaitInDefaultParams(), this.yieldPos = u, this.awaitPos = d, this.parseParenArrowList(i, s, h); + (!h.length || l) && this.unexpected(this.lastTokStart), r && this.unexpected(r), this.checkExpressionErrors(c, !0), this.yieldPos = u || this.yieldPos, this.awaitPos = d || this.awaitPos, h.length > 1 ? ((t = this.startNodeAt(a, o)).expressions = h, this.finishNodeAt(t, "SequenceExpression", f, m)) : t = h[0]; + } else t = this.parseParenExpression(); + + if (!this.options.preserveParens) return t; + var x = this.startNodeAt(i, s); + return x.expression = t, this.finishNode(x, "ParenthesizedExpression"); + }, $.parseParenItem = function (e) { + return e; + }, $.parseParenArrowList = function (e, t, i) { + return this.parseArrowExpression(this.startNodeAt(e, t), i); + }; + var Y = []; + $.parseNew = function () { + this.containsEsc && this.raiseRecoverable(this.start, "Escape sequence in keyword new"); + var e = this.startNode(), + t = this.parseIdent(!0); + + if (this.options.ecmaVersion >= 6 && this.eat(S.dot)) { + e.meta = t; + var i = this.containsEsc; + return e.property = this.parseIdent(!0), "target" !== e.property.name && this.raiseRecoverable(e.property.start, "The only valid meta property for new is 'new.target'"), i && this.raiseRecoverable(e.start, "'new.target' must not contain escaped characters"), this.inNonArrowFunction() || this.raiseRecoverable(e.start, "'new.target' can only be used in functions"), this.finishNode(e, "MetaProperty"); + } + + var s = this.start, + n = this.startLoc, + r = this.type === S._import; + return e.callee = this.parseSubscripts(this.parseExprAtom(), s, n, !0), r && "ImportExpression" === e.callee.type && this.raise(s, "Cannot use new with import()"), this.eat(S.parenL) ? e.arguments = this.parseExprList(S.parenR, this.options.ecmaVersion >= 8, !1) : e.arguments = Y, this.finishNode(e, "NewExpression"); + }, $.parseTemplateElement = function (e) { + var t = e.isTagged, + i = this.startNode(); + return this.type === S.invalidTemplate ? (t || this.raiseRecoverable(this.start, "Bad escape sequence in untagged template literal"), i.value = { + raw: this.value, + cooked: null + }) : i.value = { + raw: this.input.slice(this.start, this.end).replace(/\r\n?/g, "\n"), + cooked: this.value + }, this.next(), i.tail = this.type === S.backQuote, this.finishNode(i, "TemplateElement"); + }, $.parseTemplate = function (e) { + void 0 === e && (e = {}); + var t = e.isTagged; + void 0 === t && (t = !1); + var i = this.startNode(); + this.next(), i.expressions = []; + var s = this.parseTemplateElement({ + isTagged: t + }); + + for (i.quasis = [s]; !s.tail;) { + this.type === S.eof && this.raise(this.pos, "Unterminated template literal"), this.expect(S.dollarBraceL), i.expressions.push(this.parseExpression()), this.expect(S.braceR), i.quasis.push(s = this.parseTemplateElement({ + isTagged: t + })); + } + + return this.next(), this.finishNode(i, "TemplateLiteral"); + }, $.isAsyncProp = function (e) { + return !e.computed && "Identifier" === e.key.type && "async" === e.key.name && (this.type === S.name || this.type === S.num || this.type === S.string || this.type === S.bracketL || this.type.keyword || this.options.ecmaVersion >= 9 && this.type === S.star) && !k.test(this.input.slice(this.lastTokEnd, this.start)); + }, $.parseObj = function (e, t) { + var i = this.startNode(), + s = !0, + n = {}; + + for (i.properties = [], this.next(); !this.eat(S.braceR);) { + if (s) s = !1;else if (this.expect(S.comma), this.options.ecmaVersion >= 5 && this.afterTrailingComma(S.braceR)) break; + var r = this.parseProperty(e, t); + e || this.checkPropClash(r, n, t), i.properties.push(r); + } + + return this.finishNode(i, e ? "ObjectPattern" : "ObjectExpression"); + }, $.parseProperty = function (e, t) { + var i, + s, + n, + r, + a = this.startNode(); + if (this.options.ecmaVersion >= 9 && this.eat(S.ellipsis)) return e ? (a.argument = this.parseIdent(!1), this.type === S.comma && this.raise(this.start, "Comma is not permitted after the rest element"), this.finishNode(a, "RestElement")) : (this.type === S.parenL && t && (t.parenthesizedAssign < 0 && (t.parenthesizedAssign = this.start), t.parenthesizedBind < 0 && (t.parenthesizedBind = this.start)), a.argument = this.parseMaybeAssign(!1, t), this.type === S.comma && t && t.trailingComma < 0 && (t.trailingComma = this.start), this.finishNode(a, "SpreadElement")); + this.options.ecmaVersion >= 6 && (a.method = !1, a.shorthand = !1, (e || t) && (n = this.start, r = this.startLoc), e || (i = this.eat(S.star))); + var o = this.containsEsc; + return this.parsePropertyName(a), !e && !o && this.options.ecmaVersion >= 8 && !i && this.isAsyncProp(a) ? (s = !0, i = this.options.ecmaVersion >= 9 && this.eat(S.star), this.parsePropertyName(a, t)) : s = !1, this.parsePropertyValue(a, e, i, s, n, r, t, o), this.finishNode(a, "Property"); + }, $.parsePropertyValue = function (e, t, i, s, n, r, a, o) { + if ((i || s) && this.type === S.colon && this.unexpected(), this.eat(S.colon)) e.value = t ? this.parseMaybeDefault(this.start, this.startLoc) : this.parseMaybeAssign(!1, a), e.kind = "init";else if (this.options.ecmaVersion >= 6 && this.type === S.parenL) t && this.unexpected(), e.kind = "init", e.method = !0, e.value = this.parseMethod(i, s);else if (t || o || !(this.options.ecmaVersion >= 5) || e.computed || "Identifier" !== e.key.type || "get" !== e.key.name && "set" !== e.key.name || this.type === S.comma || this.type === S.braceR || this.type === S.eq) this.options.ecmaVersion >= 6 && !e.computed && "Identifier" === e.key.type ? ((i || s) && this.unexpected(), this.checkUnreserved(e.key), "await" !== e.key.name || this.awaitIdentPos || (this.awaitIdentPos = n), e.kind = "init", t ? e.value = this.parseMaybeDefault(n, r, e.key) : this.type === S.eq && a ? (a.shorthandAssign < 0 && (a.shorthandAssign = this.start), e.value = this.parseMaybeDefault(n, r, e.key)) : e.value = e.key, e.shorthand = !0) : this.unexpected();else { + (i || s) && this.unexpected(), e.kind = e.key.name, this.parsePropertyName(e), e.value = this.parseMethod(!1); + var h = "get" === e.kind ? 0 : 1; + + if (e.value.params.length !== h) { + var p = e.value.start; + "get" === e.kind ? this.raiseRecoverable(p, "getter should have no params") : this.raiseRecoverable(p, "setter should have exactly one param"); + } else "set" === e.kind && "RestElement" === e.value.params[0].type && this.raiseRecoverable(e.value.params[0].start, "Setter cannot use rest params"); + } + }, $.parsePropertyName = function (e) { + if (this.options.ecmaVersion >= 6) { + if (this.eat(S.bracketL)) return e.computed = !0, e.key = this.parseMaybeAssign(), this.expect(S.bracketR), e.key; + e.computed = !1; + } + + return e.key = this.type === S.num || this.type === S.string ? this.parseExprAtom() : this.parseIdent("never" !== this.options.allowReserved); + }, $.initFunction = function (e) { + e.id = null, this.options.ecmaVersion >= 6 && (e.generator = e.expression = !1), this.options.ecmaVersion >= 8 && (e.async = !1); + }, $.parseMethod = function (e, t, i) { + var s = this.startNode(), + n = this.yieldPos, + r = this.awaitPos, + a = this.awaitIdentPos; + return this.initFunction(s), this.options.ecmaVersion >= 6 && (s.generator = e), this.options.ecmaVersion >= 8 && (s.async = !!t), this.yieldPos = 0, this.awaitPos = 0, this.awaitIdentPos = 0, this.enterScope(64 | M(t, s.generator) | (i ? 128 : 0)), this.expect(S.parenL), s.params = this.parseBindingList(S.parenR, !1, this.options.ecmaVersion >= 8), this.checkYieldAwaitInDefaultParams(), this.parseFunctionBody(s, !1, !0), this.yieldPos = n, this.awaitPos = r, this.awaitIdentPos = a, this.finishNode(s, "FunctionExpression"); + }, $.parseArrowExpression = function (e, t, i) { + var s = this.yieldPos, + n = this.awaitPos, + r = this.awaitIdentPos; + return this.enterScope(16 | M(i, !1)), this.initFunction(e), this.options.ecmaVersion >= 8 && (e.async = !!i), this.yieldPos = 0, this.awaitPos = 0, this.awaitIdentPos = 0, e.params = this.toAssignableList(t, !0), this.parseFunctionBody(e, !0, !1), this.yieldPos = s, this.awaitPos = n, this.awaitIdentPos = r, this.finishNode(e, "ArrowFunctionExpression"); + }, $.parseFunctionBody = function (e, t, i) { + var s = t && this.type !== S.braceL, + n = this.strict, + r = !1; + if (s) e.body = this.parseMaybeAssign(), e.expression = !0, this.checkParams(e, !1);else { + var a = this.options.ecmaVersion >= 7 && !this.isSimpleParamList(e.params); + (!n || a) && (r = this.strictDirective(this.end)) && a && this.raiseRecoverable(e.start, "Illegal 'use strict' directive in function with non-simple parameter list"); + var o = this.labels; + this.labels = [], r && (this.strict = !0), this.checkParams(e, !n && !r && !t && !i && this.isSimpleParamList(e.params)), this.strict && e.id && this.checkLVal(e.id, 5), e.body = this.parseBlock(!1, void 0, r && !n), e.expression = !1, this.adaptDirectivePrologue(e.body.body), this.labels = o; + } + this.exitScope(); + }, $.isSimpleParamList = function (e) { + for (var t = 0; t < e.length; t += 1) { + if ("Identifier" !== e[t].type) return !1; + } + + return !0; + }, $.checkParams = function (e, t) { + for (var i = {}, s = 0, n = e.params; s < n.length; s += 1) { + var r = n[s]; + this.checkLVal(r, 1, t ? null : i); + } + }, $.parseExprList = function (e, t, i, s) { + for (var n = [], r = !0; !this.eat(e);) { + if (r) r = !1;else if (this.expect(S.comma), t && this.afterTrailingComma(e)) break; + var a = void 0; + i && this.type === S.comma ? a = null : this.type === S.ellipsis ? (a = this.parseSpread(s), s && this.type === S.comma && s.trailingComma < 0 && (s.trailingComma = this.start)) : a = this.parseMaybeAssign(!1, s), n.push(a); + } + + return n; + }, $.checkUnreserved = function (e) { + var t = e.start, + i = e.end, + s = e.name; + this.inGenerator && "yield" === s && this.raiseRecoverable(t, "Cannot use 'yield' as identifier inside a generator"), this.inAsync && "await" === s && this.raiseRecoverable(t, "Cannot use 'await' as identifier inside an async function"), this.keywords.test(s) && this.raise(t, "Unexpected keyword '" + s + "'"), (!(this.options.ecmaVersion < 6) || -1 === this.input.slice(t, i).indexOf("\\")) && (this.strict ? this.reservedWordsStrict : this.reservedWords).test(s) && (this.inAsync || "await" !== s || this.raiseRecoverable(t, "Cannot use keyword 'await' outside an async function"), this.raiseRecoverable(t, "The keyword '" + s + "' is reserved")); + }, $.parseIdent = function (e, t) { + var i = this.startNode(); + return this.type === S.name ? i.name = this.value : this.type.keyword ? (i.name = this.type.keyword, ("class" === i.name || "function" === i.name) && (this.lastTokEnd !== this.lastTokStart + 1 || 46 !== this.input.charCodeAt(this.lastTokStart)) && this.context.pop()) : this.unexpected(), this.next(!!e), this.finishNode(i, "Identifier"), e || (this.checkUnreserved(i), "await" !== i.name || this.awaitIdentPos || (this.awaitIdentPos = i.start)), i; + }, $.parseYield = function (e) { + this.yieldPos || (this.yieldPos = this.start); + var t = this.startNode(); + return this.next(), this.type === S.semi || this.canInsertSemicolon() || this.type !== S.star && !this.type.startsExpr ? (t.delegate = !1, t.argument = null) : (t.delegate = this.eat(S.star), t.argument = this.parseMaybeAssign(e)), this.finishNode(t, "YieldExpression"); + }, $.parseAwait = function () { + this.awaitPos || (this.awaitPos = this.start); + var e = this.startNode(); + return this.next(), e.argument = this.parseMaybeUnary(null, !1), this.finishNode(e, "AwaitExpression"); + }; + var Z = B.prototype; + Z.raise = function (e, t) { + var i = R(this.input, e), + s = SyntaxError(t += " (" + i.line + ":" + i.column + ")"); + throw s.pos = e, s.loc = i, s.raisedAt = this.pos, s; + }, Z.raiseRecoverable = Z.raise, Z.curPosition = function () { + if (this.options.locations) return new O(this.curLine, this.pos - this.lineStart); + }; + + var ee = B.prototype, + et = function et(e) { + this.flags = e, this.var = [], this.lexical = [], this.functions = []; + }; + + ee.enterScope = function (e) { + this.scopeStack.push(new et(e)); + }, ee.exitScope = function () { + this.scopeStack.pop(); + }, ee.treatFunctionsAsVarInScope = function (e) { + return 2 & e.flags || !this.inModule && 1 & e.flags; + }, ee.declareName = function (e, t, i) { + var s = !1; + + if (2 === t) { + var n = this.currentScope(); + s = n.lexical.indexOf(e) > -1 || n.functions.indexOf(e) > -1 || n.var.indexOf(e) > -1, n.lexical.push(e), this.inModule && 1 & n.flags && delete this.undefinedExports[e]; + } else if (4 === t) this.currentScope().lexical.push(e);else if (3 === t) { + var r = this.currentScope(); + s = this.treatFunctionsAsVar ? r.lexical.indexOf(e) > -1 : r.lexical.indexOf(e) > -1 || r.var.indexOf(e) > -1, r.functions.push(e); + } else for (var a = this.scopeStack.length - 1; a >= 0; --a) { + var o = this.scopeStack[a]; + + if (o.lexical.indexOf(e) > -1 && !(32 & o.flags && o.lexical[0] === e) || !this.treatFunctionsAsVarInScope(o) && o.functions.indexOf(e) > -1) { + s = !0; + break; + } + + if (o.var.push(e), this.inModule && 1 & o.flags && delete this.undefinedExports[e], 3 & o.flags) break; + } + + s && this.raiseRecoverable(i, "Identifier '" + e + "' has already been declared"); + }, ee.checkLocalExport = function (e) { + -1 === this.scopeStack[0].lexical.indexOf(e.name) && -1 === this.scopeStack[0].var.indexOf(e.name) && (this.undefinedExports[e.name] = e); + }, ee.currentScope = function () { + return this.scopeStack[this.scopeStack.length - 1]; + }, ee.currentVarScope = function () { + for (var e = this.scopeStack.length - 1;; e--) { + var t = this.scopeStack[e]; + if (3 & t.flags) return t; + } + }, ee.currentThisScope = function () { + for (var e = this.scopeStack.length - 1;; e--) { + var t = this.scopeStack[e]; + if (3 & t.flags && !(16 & t.flags)) return t; + } + }; + + var ei = function ei(e, t, i) { + this.type = "", this.start = t, this.end = 0, e.options.locations && (this.loc = new j(e, i)), e.options.directSourceFile && (this.sourceFile = e.options.directSourceFile), e.options.ranges && (this.range = [t, 0]); + }, + es = B.prototype; + + function en(e, t, i, s) { + return e.type = t, e.end = i, this.options.locations && (e.loc.end = s), this.options.ranges && (e.range[1] = i), e; + } + + es.startNode = function () { + return new ei(this, this.start, this.startLoc); + }, es.startNodeAt = function (e, t) { + return new ei(this, e, t); + }, es.finishNode = function (e, t) { + return en.call(this, e, t, this.lastTokEnd, this.lastTokEndLoc); + }, es.finishNodeAt = function (e, t, i, s) { + return en.call(this, e, t, i, s); + }; + + var er = function er(e, t, i, s, n) { + this.token = e, this.isExpr = !!t, this.preserveSpace = !!i, this.override = s, this.generator = !!n; + }, + ea = { + b_stat: new er("{", !1), + b_expr: new er("{", !0), + b_tmpl: new er("${", !1), + p_stat: new er("(", !1), + p_expr: new er("(", !0), + q_tmpl: new er("`", !0, !0, function (e) { + return e.tryReadTemplateToken(); + }), + f_stat: new er("function", !1), + f_expr: new er("function", !0), + f_expr_gen: new er("function", !0, !1, null, !0), + f_gen: new er("function", !1, !1, null, !0) + }, + eo = B.prototype; + + eo.initialContext = function () { + return [ea.b_stat]; + }, eo.braceIsBlock = function (e) { + var t = this.curContext(); + return t === ea.f_expr || t === ea.f_stat || (e === S.colon && (t === ea.b_stat || t === ea.b_expr) ? !t.isExpr : e === S._return || e === S.name && this.exprAllowed ? k.test(this.input.slice(this.lastTokEnd, this.start)) : e === S._else || e === S.semi || e === S.eof || e === S.parenR || e === S.arrow || (e === S.braceL ? t === ea.b_stat : e !== S._var && e !== S._const && e !== S.name && !this.exprAllowed)); + }, eo.inGeneratorContext = function () { + for (var e = this.context.length - 1; e >= 1; e--) { + var t = this.context[e]; + if ("function" === t.token) return t.generator; + } + + return !1; + }, eo.updateContext = function (e) { + var t, + i = this.type; + i.keyword && e === S.dot ? this.exprAllowed = !1 : (t = i.updateContext) ? t.call(this, e) : this.exprAllowed = i.beforeExpr; + }, S.parenR.updateContext = S.braceR.updateContext = function () { + if (1 === this.context.length) { + this.exprAllowed = !0; + return; + } + + var e = this.context.pop(); + e === ea.b_stat && "function" === this.curContext().token && (e = this.context.pop()), this.exprAllowed = !e.isExpr; + }, S.braceL.updateContext = function (e) { + this.context.push(this.braceIsBlock(e) ? ea.b_stat : ea.b_expr), this.exprAllowed = !0; + }, S.dollarBraceL.updateContext = function () { + this.context.push(ea.b_tmpl), this.exprAllowed = !0; + }, S.parenL.updateContext = function (e) { + var t = e === S._if || e === S._for || e === S._with || e === S._while; + this.context.push(t ? ea.p_stat : ea.p_expr), this.exprAllowed = !0; + }, S.incDec.updateContext = function () {}, S._function.updateContext = S._class.updateContext = function (e) { + !e.beforeExpr || e === S.semi || e === S._else || e === S._return && k.test(this.input.slice(this.lastTokEnd, this.start)) || (e === S.colon || e === S.braceL) && this.curContext() === ea.b_stat ? this.context.push(ea.f_stat) : this.context.push(ea.f_expr), this.exprAllowed = !1; + }, S.backQuote.updateContext = function () { + this.curContext() === ea.q_tmpl ? this.context.pop() : this.context.push(ea.q_tmpl), this.exprAllowed = !1; + }, S.star.updateContext = function (e) { + if (e === S._function) { + var t = this.context.length - 1; + this.context[t] === ea.f_expr ? this.context[t] = ea.f_expr_gen : this.context[t] = ea.f_gen; + } + + this.exprAllowed = !0; + }, S.name.updateContext = function (e) { + var t = !1; + this.options.ecmaVersion >= 6 && e !== S.dot && ("of" === this.value && !this.exprAllowed || "yield" === this.value && this.inGeneratorContext()) && (t = !0), this.exprAllowed = t; + }; + var eh = "ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS", + ep = eh + " Extended_Pictographic", + el = { + 9: eh, + 10: ep, + 11: ep + }, + ec = "Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu", + eu = "Adlam Adlm Ahom Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb", + ed = eu + " Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd", + ef = { + 9: eu, + 10: ed, + 11: ed + " Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho" + }, + em = {}; + + function ex(e) { + var t = em[e] = { + binary: V(el[e] + " " + ec), + nonBinary: { + General_Category: V(ec), + Script: V(ef[e]) + } + }; + t.nonBinary.Script_Extensions = t.nonBinary.Script, t.nonBinary.gc = t.nonBinary.General_Category, t.nonBinary.sc = t.nonBinary.Script, t.nonBinary.scx = t.nonBinary.Script_Extensions; + } + + ex(9), ex(10), ex(11); + + var eg = B.prototype, + ey = function ey(e) { + this.parser = e, this.validFlags = "gim" + (e.options.ecmaVersion >= 6 ? "uy" : "") + (e.options.ecmaVersion >= 9 ? "s" : ""), this.unicodeProperties = em[e.options.ecmaVersion >= 11 ? 11 : e.options.ecmaVersion], this.source = "", this.flags = "", this.start = 0, this.switchU = !1, this.switchN = !1, this.pos = 0, this.lastIntValue = 0, this.lastStringValue = "", this.lastAssertionIsQuantifiable = !1, this.numCapturingParens = 0, this.maxBackReference = 0, this.groupNames = [], this.backReferenceNames = []; + }; + + function ev(e) { + return e <= 65535 ? String.fromCharCode(e) : String.fromCharCode(((e -= 65536) >> 10) + 55296, (1023 & e) + 56320); + } + + function eb(e) { + return 36 === e || e >= 40 && e <= 43 || 46 === e || 63 === e || e >= 91 && e <= 94 || e >= 123 && e <= 125; + } + + function eE(e) { + return e >= 65 && e <= 90 || e >= 97 && e <= 122; + } + + function eS(e) { + return eE(e) || 95 === e; + } + + function ek(e) { + return e >= 48 && e <= 57; + } + + function e_(e) { + return e >= 48 && e <= 57 || e >= 65 && e <= 70 || e >= 97 && e <= 102; + } + + function ew(e) { + return e >= 65 && e <= 70 ? 10 + (e - 65) : e >= 97 && e <= 102 ? 10 + (e - 97) : e - 48; + } + + function eC(e) { + return e >= 48 && e <= 55; + } + + ey.prototype.reset = function (e, t, i) { + var s = -1 !== i.indexOf("u"); + this.start = 0 | e, this.source = t + "", this.flags = i, this.switchU = s && this.parser.options.ecmaVersion >= 6, this.switchN = s && this.parser.options.ecmaVersion >= 9; + }, ey.prototype.raise = function (e) { + this.parser.raiseRecoverable(this.start, "Invalid regular expression: /" + this.source + "/: " + e); + }, ey.prototype.at = function (e, t) { + void 0 === t && (t = !1); + var i = this.source, + s = i.length; + if (e >= s) return -1; + var n = i.charCodeAt(e); + if (!(t || this.switchU) || n <= 55295 || n >= 57344 || e + 1 >= s) return n; + var r = i.charCodeAt(e + 1); + return r >= 56320 && r <= 57343 ? (n << 10) + r - 56613888 : n; + }, ey.prototype.nextIndex = function (e, t) { + void 0 === t && (t = !1); + var i = this.source, + s = i.length; + if (e >= s) return s; + var n, + r = i.charCodeAt(e); + return !(t || this.switchU) || r <= 55295 || r >= 57344 || e + 1 >= s || (n = i.charCodeAt(e + 1)) < 56320 || n > 57343 ? e + 1 : e + 2; + }, ey.prototype.current = function (e) { + return void 0 === e && (e = !1), this.at(this.pos, e); + }, ey.prototype.lookahead = function (e) { + return void 0 === e && (e = !1), this.at(this.nextIndex(this.pos, e), e); + }, ey.prototype.advance = function (e) { + void 0 === e && (e = !1), this.pos = this.nextIndex(this.pos, e); + }, ey.prototype.eat = function (e, t) { + return void 0 === t && (t = !1), this.current(t) === e && (this.advance(t), !0); + }, eg.validateRegExpFlags = function (e) { + for (var t = e.validFlags, i = e.flags, s = 0; s < i.length; s++) { + var n = i.charAt(s); + -1 === t.indexOf(n) && this.raise(e.start, "Invalid regular expression flag"), i.indexOf(n, s + 1) > -1 && this.raise(e.start, "Duplicate regular expression flag"); + } + }, eg.validateRegExpPattern = function (e) { + this.regexp_pattern(e), !e.switchN && this.options.ecmaVersion >= 9 && e.groupNames.length > 0 && (e.switchN = !0, this.regexp_pattern(e)); + }, eg.regexp_pattern = function (e) { + e.pos = 0, e.lastIntValue = 0, e.lastStringValue = "", e.lastAssertionIsQuantifiable = !1, e.numCapturingParens = 0, e.maxBackReference = 0, e.groupNames.length = 0, e.backReferenceNames.length = 0, this.regexp_disjunction(e), e.pos !== e.source.length && (e.eat(41) && e.raise("Unmatched ')'"), (e.eat(93) || e.eat(125)) && e.raise("Lone quantifier brackets")), e.maxBackReference > e.numCapturingParens && e.raise("Invalid escape"); + + for (var t = 0, i = e.backReferenceNames; t < i.length; t += 1) { + var s = i[t]; + -1 === e.groupNames.indexOf(s) && e.raise("Invalid named capture referenced"); + } + }, eg.regexp_disjunction = function (e) { + for (this.regexp_alternative(e); e.eat(124);) { + this.regexp_alternative(e); + } + + this.regexp_eatQuantifier(e, !0) && e.raise("Nothing to repeat"), e.eat(123) && e.raise("Lone quantifier brackets"); + }, eg.regexp_alternative = function (e) { + for (; e.pos < e.source.length && this.regexp_eatTerm(e);) { + ; + } + }, eg.regexp_eatTerm = function (e) { + return this.regexp_eatAssertion(e) ? (e.lastAssertionIsQuantifiable && this.regexp_eatQuantifier(e) && e.switchU && e.raise("Invalid quantifier"), !0) : (e.switchU ? !!this.regexp_eatAtom(e) : !!this.regexp_eatExtendedAtom(e)) && (this.regexp_eatQuantifier(e), !0); + }, eg.regexp_eatAssertion = function (e) { + var t = e.pos; + if (e.lastAssertionIsQuantifiable = !1, e.eat(94) || e.eat(36)) return !0; + + if (e.eat(92)) { + if (e.eat(66) || e.eat(98)) return !0; + e.pos = t; + } + + if (e.eat(40) && e.eat(63)) { + var i = !1; + if (this.options.ecmaVersion >= 9 && (i = e.eat(60)), e.eat(61) || e.eat(33)) return this.regexp_disjunction(e), e.eat(41) || e.raise("Unterminated group"), e.lastAssertionIsQuantifiable = !i, !0; + } + + return e.pos = t, !1; + }, eg.regexp_eatQuantifier = function (e, t) { + return void 0 === t && (t = !1), !!this.regexp_eatQuantifierPrefix(e, t) && (e.eat(63), !0); + }, eg.regexp_eatQuantifierPrefix = function (e, t) { + return e.eat(42) || e.eat(43) || e.eat(63) || this.regexp_eatBracedQuantifier(e, t); + }, eg.regexp_eatBracedQuantifier = function (e, t) { + var i = e.pos; + + if (e.eat(123)) { + var s = 0, + n = -1; + if (this.regexp_eatDecimalDigits(e) && (s = e.lastIntValue, e.eat(44) && this.regexp_eatDecimalDigits(e) && (n = e.lastIntValue), e.eat(125))) return -1 !== n && n < s && !t && e.raise("numbers out of order in {} quantifier"), !0; + e.switchU && !t && e.raise("Incomplete quantifier"), e.pos = i; + } + + return !1; + }, eg.regexp_eatAtom = function (e) { + return this.regexp_eatPatternCharacters(e) || e.eat(46) || this.regexp_eatReverseSolidusAtomEscape(e) || this.regexp_eatCharacterClass(e) || this.regexp_eatUncapturingGroup(e) || this.regexp_eatCapturingGroup(e); + }, eg.regexp_eatReverseSolidusAtomEscape = function (e) { + var t = e.pos; + + if (e.eat(92)) { + if (this.regexp_eatAtomEscape(e)) return !0; + e.pos = t; + } + + return !1; + }, eg.regexp_eatUncapturingGroup = function (e) { + var t = e.pos; + + if (e.eat(40)) { + if (e.eat(63) && e.eat(58)) { + if (this.regexp_disjunction(e), e.eat(41)) return !0; + e.raise("Unterminated group"); + } + + e.pos = t; + } + + return !1; + }, eg.regexp_eatCapturingGroup = function (e) { + if (e.eat(40)) { + if (this.options.ecmaVersion >= 9 ? this.regexp_groupSpecifier(e) : 63 === e.current() && e.raise("Invalid group"), this.regexp_disjunction(e), e.eat(41)) return e.numCapturingParens += 1, !0; + e.raise("Unterminated group"); + } + + return !1; + }, eg.regexp_eatExtendedAtom = function (e) { + return e.eat(46) || this.regexp_eatReverseSolidusAtomEscape(e) || this.regexp_eatCharacterClass(e) || this.regexp_eatUncapturingGroup(e) || this.regexp_eatCapturingGroup(e) || this.regexp_eatInvalidBracedQuantifier(e) || this.regexp_eatExtendedPatternCharacter(e); + }, eg.regexp_eatInvalidBracedQuantifier = function (e) { + return this.regexp_eatBracedQuantifier(e, !0) && e.raise("Nothing to repeat"), !1; + }, eg.regexp_eatSyntaxCharacter = function (e) { + var t = e.current(); + return !!eb(t) && (e.lastIntValue = t, e.advance(), !0); + }, eg.regexp_eatPatternCharacters = function (e) { + for (var t = e.pos, i = 0; -1 !== (i = e.current()) && !eb(i);) { + e.advance(); + } + + return e.pos !== t; + }, eg.regexp_eatExtendedPatternCharacter = function (e) { + var t = e.current(); + return -1 !== t && 36 !== t && (!(t >= 40) || !(t <= 43)) && 46 !== t && 63 !== t && 91 !== t && 94 !== t && 124 !== t && (e.advance(), !0); + }, eg.regexp_groupSpecifier = function (e) { + if (e.eat(63)) { + if (this.regexp_eatGroupName(e)) { + -1 !== e.groupNames.indexOf(e.lastStringValue) && e.raise("Duplicate capture group name"), e.groupNames.push(e.lastStringValue); + return; + } + + e.raise("Invalid group"); + } + }, eg.regexp_eatGroupName = function (e) { + if (e.lastStringValue = "", e.eat(60)) { + if (this.regexp_eatRegExpIdentifierName(e) && e.eat(62)) return !0; + e.raise("Invalid capture group name"); + } + + return !1; + }, eg.regexp_eatRegExpIdentifierName = function (e) { + if (e.lastStringValue = "", this.regexp_eatRegExpIdentifierStart(e)) { + for (e.lastStringValue += ev(e.lastIntValue); this.regexp_eatRegExpIdentifierPart(e);) { + e.lastStringValue += ev(e.lastIntValue); + } + + return !0; + } + + return !1; + }, eg.regexp_eatRegExpIdentifierStart = function (e) { + var t, + i = e.pos, + s = this.options.ecmaVersion >= 11, + n = e.current(s); + return (e.advance(s), 92 === n && this.regexp_eatRegExpUnicodeEscapeSequence(e, s) && (n = e.lastIntValue), f(t = n, !0) || 36 === t || 95 === t) ? (e.lastIntValue = n, !0) : (e.pos = i, !1); + }, eg.regexp_eatRegExpIdentifierPart = function (e) { + var t, + i = e.pos, + s = this.options.ecmaVersion >= 11, + n = e.current(s); + return (e.advance(s), 92 === n && this.regexp_eatRegExpUnicodeEscapeSequence(e, s) && (n = e.lastIntValue), m(t = n, !0) || 36 === t || 95 === t || 8204 === t || 8205 === t) ? (e.lastIntValue = n, !0) : (e.pos = i, !1); + }, eg.regexp_eatAtomEscape = function (e) { + return !!(this.regexp_eatBackReference(e) || this.regexp_eatCharacterClassEscape(e) || this.regexp_eatCharacterEscape(e) || e.switchN && this.regexp_eatKGroupName(e)) || (e.switchU && (99 === e.current() && e.raise("Invalid unicode escape"), e.raise("Invalid escape")), !1); + }, eg.regexp_eatBackReference = function (e) { + var t = e.pos; + + if (this.regexp_eatDecimalEscape(e)) { + var i = e.lastIntValue; + if (e.switchU) return i > e.maxBackReference && (e.maxBackReference = i), !0; + if (i <= e.numCapturingParens) return !0; + e.pos = t; + } + + return !1; + }, eg.regexp_eatKGroupName = function (e) { + if (e.eat(107)) { + if (this.regexp_eatGroupName(e)) return e.backReferenceNames.push(e.lastStringValue), !0; + e.raise("Invalid named reference"); + } + + return !1; + }, eg.regexp_eatCharacterEscape = function (e) { + return this.regexp_eatControlEscape(e) || this.regexp_eatCControlLetter(e) || this.regexp_eatZero(e) || this.regexp_eatHexEscapeSequence(e) || this.regexp_eatRegExpUnicodeEscapeSequence(e, !1) || !e.switchU && this.regexp_eatLegacyOctalEscapeSequence(e) || this.regexp_eatIdentityEscape(e); + }, eg.regexp_eatCControlLetter = function (e) { + var t = e.pos; + + if (e.eat(99)) { + if (this.regexp_eatControlLetter(e)) return !0; + e.pos = t; + } + + return !1; + }, eg.regexp_eatZero = function (e) { + return !(48 !== e.current() || ek(e.lookahead())) && (e.lastIntValue = 0, e.advance(), !0); + }, eg.regexp_eatControlEscape = function (e) { + var t = e.current(); + return 116 === t ? (e.lastIntValue = 9, e.advance(), !0) : 110 === t ? (e.lastIntValue = 10, e.advance(), !0) : 118 === t ? (e.lastIntValue = 11, e.advance(), !0) : 102 === t ? (e.lastIntValue = 12, e.advance(), !0) : 114 === t && (e.lastIntValue = 13, e.advance(), !0); + }, eg.regexp_eatControlLetter = function (e) { + var t = e.current(); + return !!eE(t) && (e.lastIntValue = t % 32, e.advance(), !0); + }, eg.regexp_eatRegExpUnicodeEscapeSequence = function (e, t) { + void 0 === t && (t = !1); + var i = e.pos, + s = t || e.switchU; + + if (e.eat(117)) { + if (this.regexp_eatFixedHexDigits(e, 4)) { + var n, + r = e.lastIntValue; + + if (s && r >= 55296 && r <= 56319) { + var a = e.pos; + + if (e.eat(92) && e.eat(117) && this.regexp_eatFixedHexDigits(e, 4)) { + var o = e.lastIntValue; + if (o >= 56320 && o <= 57343) return e.lastIntValue = (r - 55296) * 1024 + (o - 56320) + 65536, !0; + } + + e.pos = a, e.lastIntValue = r; + } + + return !0; + } + + if (s && e.eat(123) && this.regexp_eatHexDigits(e) && e.eat(125) && (n = e.lastIntValue) >= 0 && n <= 1114111) return !0; + s && e.raise("Invalid unicode escape"), e.pos = i; + } + + return !1; + }, eg.regexp_eatIdentityEscape = function (e) { + if (e.switchU) return !!this.regexp_eatSyntaxCharacter(e) || !!e.eat(47) && (e.lastIntValue = 47, !0); + var t = e.current(); + return 99 !== t && (!e.switchN || 107 !== t) && (e.lastIntValue = t, e.advance(), !0); + }, eg.regexp_eatDecimalEscape = function (e) { + e.lastIntValue = 0; + var t = e.current(); + + if (t >= 49 && t <= 57) { + do { + e.lastIntValue = 10 * e.lastIntValue + (t - 48), e.advance(); + } while ((t = e.current()) >= 48 && t <= 57); + + return !0; + } + + return !1; + }, eg.regexp_eatCharacterClassEscape = function (e) { + var t = e.current(); + if (100 === t || 68 === t || 115 === t || 83 === t || 119 === t || 87 === t) return e.lastIntValue = -1, e.advance(), !0; + + if (e.switchU && this.options.ecmaVersion >= 9 && (80 === t || 112 === t)) { + if (e.lastIntValue = -1, e.advance(), e.eat(123) && this.regexp_eatUnicodePropertyValueExpression(e) && e.eat(125)) return !0; + e.raise("Invalid property name"); + } + + return !1; + }, eg.regexp_eatUnicodePropertyValueExpression = function (e) { + var t = e.pos; + + if (this.regexp_eatUnicodePropertyName(e) && e.eat(61)) { + var i = e.lastStringValue; + + if (this.regexp_eatUnicodePropertyValue(e)) { + var s = e.lastStringValue; + return this.regexp_validateUnicodePropertyNameAndValue(e, i, s), !0; + } + } + + if (e.pos = t, this.regexp_eatLoneUnicodePropertyNameOrValue(e)) { + var n = e.lastStringValue; + return this.regexp_validateUnicodePropertyNameOrValue(e, n), !0; + } + + return !1; + }, eg.regexp_validateUnicodePropertyNameAndValue = function (e, t, i) { + P(e.unicodeProperties.nonBinary, t) || e.raise("Invalid property name"), e.unicodeProperties.nonBinary[t].test(i) || e.raise("Invalid property value"); + }, eg.regexp_validateUnicodePropertyNameOrValue = function (e, t) { + e.unicodeProperties.binary.test(t) || e.raise("Invalid property name"); + }, eg.regexp_eatUnicodePropertyName = function (e) { + var t = 0; + + for (e.lastStringValue = ""; eS(t = e.current());) { + e.lastStringValue += ev(t), e.advance(); + } + + return "" !== e.lastStringValue; + }, eg.regexp_eatUnicodePropertyValue = function (e) { + var t, + i = 0; + + for (e.lastStringValue = ""; eS(t = i = e.current()) || ek(t);) { + e.lastStringValue += ev(i), e.advance(); + } + + return "" !== e.lastStringValue; + }, eg.regexp_eatLoneUnicodePropertyNameOrValue = function (e) { + return this.regexp_eatUnicodePropertyValue(e); + }, eg.regexp_eatCharacterClass = function (e) { + if (e.eat(91)) { + if (e.eat(94), this.regexp_classRanges(e), e.eat(93)) return !0; + e.raise("Unterminated character class"); + } + + return !1; + }, eg.regexp_classRanges = function (e) { + for (; this.regexp_eatClassAtom(e);) { + var t = e.lastIntValue; + + if (e.eat(45) && this.regexp_eatClassAtom(e)) { + var i = e.lastIntValue; + e.switchU && (-1 === t || -1 === i) && e.raise("Invalid character class"), -1 !== t && -1 !== i && t > i && e.raise("Range out of order in character class"); + } + } + }, eg.regexp_eatClassAtom = function (e) { + var t = e.pos; + + if (e.eat(92)) { + if (this.regexp_eatClassEscape(e)) return !0; + + if (e.switchU) { + var i = e.current(); + (99 === i || eC(i)) && e.raise("Invalid class escape"), e.raise("Invalid escape"); + } + + e.pos = t; + } + + var s = e.current(); + return 93 !== s && (e.lastIntValue = s, e.advance(), !0); + }, eg.regexp_eatClassEscape = function (e) { + var t = e.pos; + if (e.eat(98)) return e.lastIntValue = 8, !0; + if (e.switchU && e.eat(45)) return e.lastIntValue = 45, !0; + + if (!e.switchU && e.eat(99)) { + if (this.regexp_eatClassControlLetter(e)) return !0; + e.pos = t; + } + + return this.regexp_eatCharacterClassEscape(e) || this.regexp_eatCharacterEscape(e); + }, eg.regexp_eatClassControlLetter = function (e) { + var t = e.current(); + return (!!ek(t) || 95 === t) && (e.lastIntValue = t % 32, e.advance(), !0); + }, eg.regexp_eatHexEscapeSequence = function (e) { + var t = e.pos; + + if (e.eat(120)) { + if (this.regexp_eatFixedHexDigits(e, 2)) return !0; + e.switchU && e.raise("Invalid escape"), e.pos = t; + } + + return !1; + }, eg.regexp_eatDecimalDigits = function (e) { + var t = e.pos, + i = 0; + + for (e.lastIntValue = 0; ek(i = e.current());) { + e.lastIntValue = 10 * e.lastIntValue + (i - 48), e.advance(); + } + + return e.pos !== t; + }, eg.regexp_eatHexDigits = function (e) { + var t = e.pos, + i = 0; + + for (e.lastIntValue = 0; e_(i = e.current());) { + e.lastIntValue = 16 * e.lastIntValue + ew(i), e.advance(); + } + + return e.pos !== t; + }, eg.regexp_eatLegacyOctalEscapeSequence = function (e) { + if (this.regexp_eatOctalDigit(e)) { + var t = e.lastIntValue; + + if (this.regexp_eatOctalDigit(e)) { + var i = e.lastIntValue; + t <= 3 && this.regexp_eatOctalDigit(e) ? e.lastIntValue = 64 * t + 8 * i + e.lastIntValue : e.lastIntValue = 8 * t + i; + } else e.lastIntValue = t; + + return !0; + } + + return !1; + }, eg.regexp_eatOctalDigit = function (e) { + var t = e.current(); + return eC(t) ? (e.lastIntValue = t - 48, e.advance(), !0) : (e.lastIntValue = 0, !1); + }, eg.regexp_eatFixedHexDigits = function (e, t) { + var i = e.pos; + e.lastIntValue = 0; + + for (var s = 0; s < t; ++s) { + var n = e.current(); + if (!e_(n)) return e.pos = i, !1; + e.lastIntValue = 16 * e.lastIntValue + ew(n), e.advance(); + } + + return !0; + }; + + var eA = function eA(e) { + this.type = e.type, this.value = e.value, this.start = e.start, this.end = e.end, e.options.locations && (this.loc = new j(e, e.startLoc, e.endLoc)), e.options.ranges && (this.range = [e.start, e.end]); + }, + eT = B.prototype; + + function eN(e) { + return "function" != typeof BigInt ? null : BigInt(e.replace(/_/g, "")); + } + + function eI(e) { + return e <= 65535 ? String.fromCharCode(e) : String.fromCharCode(((e -= 65536) >> 10) + 55296, (1023 & e) + 56320); + } + + eT.next = function (e) { + !e && this.type.keyword && this.containsEsc && this.raiseRecoverable(this.start, "Escape sequence in keyword " + this.type.keyword), this.options.onToken && this.options.onToken(new eA(this)), this.lastTokEnd = this.end, this.lastTokStart = this.start, this.lastTokEndLoc = this.endLoc, this.lastTokStartLoc = this.startLoc, this.nextToken(); + }, eT.getToken = function () { + return this.next(), new eA(this); + }, "undefined" != typeof Symbol && (eT[Symbol.iterator] = function () { + var e = this; + return { + next: function next() { + var t = e.getToken(); + return { + done: t.type === S.eof, + value: t + }; + } + }; + }), eT.curContext = function () { + return this.context[this.context.length - 1]; + }, eT.nextToken = function () { + var e = this.curContext(); + return (e && e.preserveSpace || this.skipSpace(), this.start = this.pos, this.options.locations && (this.startLoc = this.curPosition()), this.pos >= this.input.length) ? this.finishToken(S.eof) : e.override ? e.override(this) : void this.readToken(this.fullCharCodeAtPos()); + }, eT.readToken = function (e) { + return f(e, this.options.ecmaVersion >= 6) || 92 === e ? this.readWord() : this.getTokenFromCode(e); + }, eT.fullCharCodeAtPos = function () { + var e = this.input.charCodeAt(this.pos); + return e <= 55295 || e >= 57344 ? e : (e << 10) + this.input.charCodeAt(this.pos + 1) - 56613888; + }, eT.skipBlockComment = function () { + var e, + t = this.options.onComment && this.curPosition(), + i = this.pos, + s = this.input.indexOf("*/", this.pos += 2); + if (-1 === s && this.raise(this.pos - 2, "Unterminated comment"), this.pos = s + 2, this.options.locations) for (_.lastIndex = i; (e = _.exec(this.input)) && e.index < this.pos;) { + ++this.curLine, this.lineStart = e.index + e[0].length; + } + this.options.onComment && this.options.onComment(!0, this.input.slice(i + 2, s), i, this.pos, t, this.curPosition()); + }, eT.skipLineComment = function (e) { + for (var t = this.pos, i = this.options.onComment && this.curPosition(), s = this.input.charCodeAt(this.pos += e); this.pos < this.input.length && !w(s);) { + s = this.input.charCodeAt(++this.pos); + } + + this.options.onComment && this.options.onComment(!1, this.input.slice(t + e, this.pos), t, this.pos, i, this.curPosition()); + }, eT.skipSpace = function () { + e: for (; this.pos < this.input.length;) { + var e = this.input.charCodeAt(this.pos); + + switch (e) { + case 32: + case 160: + ++this.pos; + break; + + case 13: + 10 === this.input.charCodeAt(this.pos + 1) && ++this.pos; + + case 10: + case 8232: + case 8233: + ++this.pos, this.options.locations && (++this.curLine, this.lineStart = this.pos); + break; + + case 47: + switch (this.input.charCodeAt(this.pos + 1)) { + case 42: + this.skipBlockComment(); + break; + + case 47: + this.skipLineComment(2); + break; + + default: + break e; + } + + break; + + default: + if (e > 8 && e < 14 || e >= 5760 && C.test(String.fromCharCode(e))) ++this.pos;else break e; + } + } + }, eT.finishToken = function (e, t) { + this.end = this.pos, this.options.locations && (this.endLoc = this.curPosition()); + var i = this.type; + this.type = e, this.value = t, this.updateContext(i); + }, eT.readToken_dot = function () { + var e = this.input.charCodeAt(this.pos + 1); + if (e >= 48 && e <= 57) return this.readNumber(!0); + var t = this.input.charCodeAt(this.pos + 2); + return this.options.ecmaVersion >= 6 && 46 === e && 46 === t ? (this.pos += 3, this.finishToken(S.ellipsis)) : (++this.pos, this.finishToken(S.dot)); + }, eT.readToken_slash = function () { + var e = this.input.charCodeAt(this.pos + 1); + return this.exprAllowed ? (++this.pos, this.readRegexp()) : 61 === e ? this.finishOp(S.assign, 2) : this.finishOp(S.slash, 1); + }, eT.readToken_mult_modulo_exp = function (e) { + var t = this.input.charCodeAt(this.pos + 1), + i = 1, + s = 42 === e ? S.star : S.modulo; + return (this.options.ecmaVersion >= 7 && 42 === e && 42 === t && (++i, s = S.starstar, t = this.input.charCodeAt(this.pos + 2)), 61 === t) ? this.finishOp(S.assign, i + 1) : this.finishOp(s, i); + }, eT.readToken_pipe_amp = function (e) { + var t = this.input.charCodeAt(this.pos + 1); + return t === e ? this.options.ecmaVersion >= 12 && 61 === this.input.charCodeAt(this.pos + 2) ? this.finishOp(S.assign, 3) : this.finishOp(124 === e ? S.logicalOR : S.logicalAND, 2) : 61 === t ? this.finishOp(S.assign, 2) : this.finishOp(124 === e ? S.bitwiseOR : S.bitwiseAND, 1); + }, eT.readToken_caret = function () { + return 61 === this.input.charCodeAt(this.pos + 1) ? this.finishOp(S.assign, 2) : this.finishOp(S.bitwiseXOR, 1); + }, eT.readToken_plus_min = function (e) { + var t = this.input.charCodeAt(this.pos + 1); + return t === e ? 45 === t && !this.inModule && 62 === this.input.charCodeAt(this.pos + 2) && (0 === this.lastTokEnd || k.test(this.input.slice(this.lastTokEnd, this.pos))) ? (this.skipLineComment(3), this.skipSpace(), this.nextToken()) : this.finishOp(S.incDec, 2) : 61 === t ? this.finishOp(S.assign, 2) : this.finishOp(S.plusMin, 1); + }, eT.readToken_lt_gt = function (e) { + var t = this.input.charCodeAt(this.pos + 1), + i = 1; + return t === e ? (i = 62 === e && 62 === this.input.charCodeAt(this.pos + 2) ? 3 : 2, 61 === this.input.charCodeAt(this.pos + i)) ? this.finishOp(S.assign, i + 1) : this.finishOp(S.bitShift, i) : 33 !== t || 60 !== e || this.inModule || 45 !== this.input.charCodeAt(this.pos + 2) || 45 !== this.input.charCodeAt(this.pos + 3) ? (61 === t && (i = 2), this.finishOp(S.relational, i)) : (this.skipLineComment(4), this.skipSpace(), this.nextToken()); + }, eT.readToken_eq_excl = function (e) { + var t = this.input.charCodeAt(this.pos + 1); + return 61 === t ? this.finishOp(S.equality, 61 === this.input.charCodeAt(this.pos + 2) ? 3 : 2) : 61 === e && 62 === t && this.options.ecmaVersion >= 6 ? (this.pos += 2, this.finishToken(S.arrow)) : this.finishOp(61 === e ? S.eq : S.prefix, 1); + }, eT.readToken_question = function () { + var e = this.options.ecmaVersion; + + if (e >= 11) { + var t = this.input.charCodeAt(this.pos + 1); + + if (46 === t) { + var i = this.input.charCodeAt(this.pos + 2); + if (i < 48 || i > 57) return this.finishOp(S.questionDot, 2); + } + + if (63 === t) return e >= 12 && 61 === this.input.charCodeAt(this.pos + 2) ? this.finishOp(S.assign, 3) : this.finishOp(S.coalesce, 2); + } + + return this.finishOp(S.question, 1); + }, eT.getTokenFromCode = function (e) { + switch (e) { + case 46: + return this.readToken_dot(); + + case 40: + return ++this.pos, this.finishToken(S.parenL); + + case 41: + return ++this.pos, this.finishToken(S.parenR); + + case 59: + return ++this.pos, this.finishToken(S.semi); + + case 44: + return ++this.pos, this.finishToken(S.comma); + + case 91: + return ++this.pos, this.finishToken(S.bracketL); + + case 93: + return ++this.pos, this.finishToken(S.bracketR); + + case 123: + return ++this.pos, this.finishToken(S.braceL); + + case 125: + return ++this.pos, this.finishToken(S.braceR); + + case 58: + return ++this.pos, this.finishToken(S.colon); + + case 96: + if (this.options.ecmaVersion < 6) break; + return ++this.pos, this.finishToken(S.backQuote); + + case 48: + var t = this.input.charCodeAt(this.pos + 1); + if (120 === t || 88 === t) return this.readRadixNumber(16); + + if (this.options.ecmaVersion >= 6) { + if (111 === t || 79 === t) return this.readRadixNumber(8); + if (98 === t || 66 === t) return this.readRadixNumber(2); + } + + case 49: + case 50: + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + return this.readNumber(!1); + + case 34: + case 39: + return this.readString(e); + + case 47: + return this.readToken_slash(); + + case 37: + case 42: + return this.readToken_mult_modulo_exp(e); + + case 124: + case 38: + return this.readToken_pipe_amp(e); + + case 94: + return this.readToken_caret(); + + case 43: + case 45: + return this.readToken_plus_min(e); + + case 60: + case 62: + return this.readToken_lt_gt(e); + + case 61: + case 33: + return this.readToken_eq_excl(e); + + case 63: + return this.readToken_question(); + + case 126: + return this.finishOp(S.prefix, 1); + } + + this.raise(this.pos, "Unexpected character '" + eI(e) + "'"); + }, eT.finishOp = function (e, t) { + var i = this.input.slice(this.pos, this.pos + t); + return this.pos += t, this.finishToken(e, i); + }, eT.readRegexp = function () { + for (var e, t, i = this.pos;;) { + this.pos >= this.input.length && this.raise(i, "Unterminated regular expression"); + var s = this.input.charAt(this.pos); + if (k.test(s) && this.raise(i, "Unterminated regular expression"), e) e = !1;else { + if ("[" === s) t = !0;else if ("]" === s && t) t = !1;else if ("/" === s && !t) break; + e = "\\" === s; + } + ++this.pos; + } + + var n = this.input.slice(i, this.pos); + ++this.pos; + var r = this.pos, + a = this.readWord1(); + this.containsEsc && this.unexpected(r); + var o = this.regexpState || (this.regexpState = new ey(this)); + o.reset(i, n, a), this.validateRegExpFlags(o), this.validateRegExpPattern(o); + var h = null; + + try { + h = new RegExp(n, a); + } catch (e) {} + + return this.finishToken(S.regexp, { + pattern: n, + flags: a, + value: h + }); + }, eT.readInt = function (e, t, i) { + for (var s = this.options.ecmaVersion >= 12 && void 0 === t, n = i && 48 === this.input.charCodeAt(this.pos), r = this.pos, a = 0, o = 0, h = 0, p = null == t ? 1 / 0 : t; h < p; ++h, ++this.pos) { + var l = this.input.charCodeAt(this.pos), + c = void 0; + + if (s && 95 === l) { + n && this.raiseRecoverable(this.pos, "Numeric separator is not allowed in legacy octal numeric literals"), 95 === o && this.raiseRecoverable(this.pos, "Numeric separator must be exactly one underscore"), 0 === h && this.raiseRecoverable(this.pos, "Numeric separator is not allowed at the first of digits"), o = l; + continue; + } + + if ((c = l >= 97 ? l - 97 + 10 : l >= 65 ? l - 65 + 10 : l >= 48 && l <= 57 ? l - 48 : 1 / 0) >= e) break; + o = l, a = a * e + c; + } + + return (s && 95 === o && this.raiseRecoverable(this.pos - 1, "Numeric separator is not allowed at the last of digits"), this.pos === r || null != t && this.pos - r !== t) ? null : a; + }, eT.readRadixNumber = function (e) { + var t = this.pos; + this.pos += 2; + var i = this.readInt(e); + return null == i && this.raise(this.start + 2, "Expected number in radix " + e), this.options.ecmaVersion >= 11 && 110 === this.input.charCodeAt(this.pos) ? (i = eN(this.input.slice(t, this.pos)), ++this.pos) : f(this.fullCharCodeAtPos()) && this.raise(this.pos, "Identifier directly after number"), this.finishToken(S.num, i); + }, eT.readNumber = function (e) { + var t, + i = this.pos; + e || null !== this.readInt(10, void 0, !0) || this.raise(i, "Invalid number"); + var s = this.pos - i >= 2 && 48 === this.input.charCodeAt(i); + s && this.strict && this.raise(i, "Invalid number"); + var n = this.input.charCodeAt(this.pos); + + if (!s && !e && this.options.ecmaVersion >= 11 && 110 === n) { + var r = eN(this.input.slice(i, this.pos)); + return ++this.pos, f(this.fullCharCodeAtPos()) && this.raise(this.pos, "Identifier directly after number"), this.finishToken(S.num, r); + } + + s && /[89]/.test(this.input.slice(i, this.pos)) && (s = !1), 46 !== n || s || (++this.pos, this.readInt(10), n = this.input.charCodeAt(this.pos)), 69 !== n && 101 !== n || s || ((43 === (n = this.input.charCodeAt(++this.pos)) || 45 === n) && ++this.pos, null === this.readInt(10) && this.raise(i, "Invalid number")), f(this.fullCharCodeAtPos()) && this.raise(this.pos, "Identifier directly after number"); + var a = (t = this.input.slice(i, this.pos), s ? parseInt(t, 8) : parseFloat(t.replace(/_/g, ""))); + return this.finishToken(S.num, a); + }, eT.readCodePoint = function () { + var e; + + if (123 === this.input.charCodeAt(this.pos)) { + this.options.ecmaVersion < 6 && this.unexpected(); + var t = ++this.pos; + e = this.readHexChar(this.input.indexOf("}", this.pos) - this.pos), ++this.pos, e > 1114111 && this.invalidStringToken(t, "Code point out of bounds"); + } else e = this.readHexChar(4); + + return e; + }, eT.readString = function (e) { + for (var t = "", i = ++this.pos;;) { + this.pos >= this.input.length && this.raise(this.start, "Unterminated string constant"); + var s = this.input.charCodeAt(this.pos); + if (s === e) break; + 92 === s ? (t += this.input.slice(i, this.pos) + this.readEscapedChar(!1), i = this.pos) : (w(s, this.options.ecmaVersion >= 10) && this.raise(this.start, "Unterminated string constant"), ++this.pos); + } + + return t += this.input.slice(i, this.pos++), this.finishToken(S.string, t); + }; + var eP = {}; + eT.tryReadTemplateToken = function () { + this.inTemplateElement = !0; + + try { + this.readTmplToken(); + } catch (e) { + if (e === eP) this.readInvalidTemplateToken();else throw e; + } + + this.inTemplateElement = !1; + }, eT.invalidStringToken = function (e, t) { + if (this.inTemplateElement && this.options.ecmaVersion >= 9) throw eP; + this.raise(e, t); + }, eT.readTmplToken = function () { + for (var e = "", t = this.pos;;) { + this.pos >= this.input.length && this.raise(this.start, "Unterminated template"); + var i = this.input.charCodeAt(this.pos); + + if (96 === i || 36 === i && 123 === this.input.charCodeAt(this.pos + 1)) { + if (this.pos === this.start && (this.type === S.template || this.type === S.invalidTemplate)) { + if (36 === i) return this.pos += 2, this.finishToken(S.dollarBraceL); + return ++this.pos, this.finishToken(S.backQuote); + } + + return e += this.input.slice(t, this.pos), this.finishToken(S.template, e); + } + + if (92 === i) e += this.input.slice(t, this.pos) + this.readEscapedChar(!0), t = this.pos;else if (w(i)) { + switch (e += this.input.slice(t, this.pos), ++this.pos, i) { + case 13: + 10 === this.input.charCodeAt(this.pos) && ++this.pos; + + case 10: + e += "\n"; + break; + + default: + e += String.fromCharCode(i); + } + + this.options.locations && (++this.curLine, this.lineStart = this.pos), t = this.pos; + } else ++this.pos; + } + }, eT.readInvalidTemplateToken = function () { + for (; this.pos < this.input.length; this.pos++) { + switch (this.input[this.pos]) { + case "\\": + ++this.pos; + break; + + case "$": + if ("{" !== this.input[this.pos + 1]) break; + + case "`": + return this.finishToken(S.invalidTemplate, this.input.slice(this.start, this.pos)); + } + } + + this.raise(this.start, "Unterminated template"); + }, eT.readEscapedChar = function (e) { + var t = this.input.charCodeAt(++this.pos); + + switch (++this.pos, t) { + case 110: + return "\n"; + + case 114: + return "\r"; + + case 120: + return String.fromCharCode(this.readHexChar(2)); + + case 117: + return eI(this.readCodePoint()); + + case 116: + return " "; + + case 98: + return "\b"; + + case 118: + return "\v"; + + case 102: + return "\f"; + + case 13: + 10 === this.input.charCodeAt(this.pos) && ++this.pos; + + case 10: + return this.options.locations && (this.lineStart = this.pos, ++this.curLine), ""; + + case 56: + case 57: + if (e) { + var i = this.pos - 1; + return this.invalidStringToken(i, "Invalid escape sequence in template string"), null; + } + + default: + if (t >= 48 && t <= 55) { + var s = this.input.substr(this.pos - 1, 3).match(/^[0-7]+/)[0], + n = parseInt(s, 8); + return n > 255 && (n = parseInt(s = s.slice(0, -1), 8)), this.pos += s.length - 1, t = this.input.charCodeAt(this.pos), ("0" !== s || 56 === t || 57 === t) && (this.strict || e) && this.invalidStringToken(this.pos - 1 - s.length, e ? "Octal literal in template string" : "Octal literal in strict mode"), String.fromCharCode(n); + } + + if (w(t)) return ""; + return String.fromCharCode(t); + } + }, eT.readHexChar = function (e) { + var t = this.pos, + i = this.readInt(16, e); + return null === i && this.invalidStringToken(t, "Bad character escape sequence"), i; + }, eT.readWord1 = function () { + this.containsEsc = !1; + + for (var e = "", t = !0, i = this.pos, s = this.options.ecmaVersion >= 6; this.pos < this.input.length;) { + var n = this.fullCharCodeAtPos(); + if (m(n, s)) this.pos += n <= 65535 ? 1 : 2;else if (92 === n) { + this.containsEsc = !0, e += this.input.slice(i, this.pos); + var r = this.pos; + 117 !== this.input.charCodeAt(++this.pos) && this.invalidStringToken(this.pos, "Expecting Unicode escape sequence \\uXXXX"), ++this.pos; + var a = this.readCodePoint(); + (t ? f : m)(a, s) || this.invalidStringToken(r, "Invalid Unicode escape"), e += eI(a), i = this.pos; + } else break; + t = !1; + } + + return e + this.input.slice(i, this.pos); + }, eT.readWord = function () { + var e = this.readWord1(), + t = S.name; + return this.keywords.test(e) && (t = b[e]), this.finishToken(t, e); + }; + var eL = "7.4.1"; + + function eV(e, t) { + return B.parse(e, t); + } + + function eO(e, t, i) { + return B.parseExpressionAt(e, t, i); + } + + function ej(e, t) { + return B.tokenizer(e, t); + } + + B.acorn = { + Parser: B, + version: eL, + defaultOptions: D, + Position: O, + SourceLocation: j, + getLineInfo: R, + Node: ei, + TokenType: x, + tokTypes: S, + keywordTypes: b, + TokContext: er, + tokContexts: ea, + isIdentifierChar: m, + isIdentifierStart: f, + Token: eA, + isNewLine: w, + lineBreak: k, + lineBreakG: _, + nonASCIIwhitespace: C + }; + }), o("80lpX", function (e, t) { + e.exports = JSON.parse('{"name":"espree","description":"An Esprima-compatible JavaScript parser built on Acorn","author":"Nicholas C. Zakas ","homepage":"https://github.com/eslint/espree","main":"espree.js","version":"7.3.1","files":["lib","espree.js"],"engines":{"node":"^10.12.0 || >=12.0.0"},"repository":"eslint/espree","bugs":{"url":"http://github.com/eslint/espree.git"},"license":"BSD-2-Clause","dependencies":{"acorn":"^7.4.0","acorn-jsx":"^5.3.1","eslint-visitor-keys":"^1.3.0"},"devDependencies":{"browserify":"^16.5.0","chai":"^4.2.0","eslint":"^6.0.1","eslint-config-eslint":"^5.0.1","eslint-plugin-node":"^9.1.0","eslint-release":"^1.0.0","esprima":"latest","esprima-fb":"^8001.2001.0-dev-harmony-fb","json-diff":"^0.5.4","leche":"^2.3.0","mocha":"^6.2.0","nyc":"^14.1.1","regenerate":"^1.4.0","shelljs":"^0.3.0","shelljs-nodecli":"^0.1.1","unicode-6.3.0":"^0.7.5"},"keywords":["ast","ecmascript","javascript","parser","syntax","acorn"],"scripts":{"generate-regex":"node tools/generate-identifier-regex.js","test":"npm run-script lint && node Makefile.js test","lint":"node Makefile.js lint","fixlint":"node Makefile.js lint --fix","sync-docs":"node Makefile.js docs","browserify":"node Makefile.js browserify","generate-release":"eslint-generate-release","generate-alpharelease":"eslint-generate-prerelease alpha","generate-betarelease":"eslint-generate-prerelease beta","generate-rcrelease":"eslint-generate-prerelease rc","publish-release":"eslint-publish-release"}}'); + }), o("a8cff", function (e, t) { + var i = a("jkWpo"), + s = Object.freeze(Object.keys(i)), + n = !0, + r = !1, + o = void 0; + + try { + for (var h, p = s[Symbol.iterator](); !(n = (h = p.next()).done); n = !0) { + var l = h.value; + Object.freeze(i[l]); + } + } catch (e) { + r = !0, o = e; + } finally { + try { + n || null == p.return || p.return(); + } finally { + if (r) throw o; + } + } + + Object.freeze(i); + var c = new Set(["parent", "leadingComments", "trailingComments"]); + + function u(e) { + return !c.has(e) && "_" !== e[0]; + } + + e.exports = Object.freeze({ + KEYS: i, + getKeys: function getKeys(e) { + return Object.keys(e).filter(u); + }, + unionWith: function unionWith(e) { + var t = Object.assign({}, i), + s = !0, + n = !1, + r = void 0; + + try { + for (var a, o = Object.keys(e)[Symbol.iterator](); !(s = (a = o.next()).done); s = !0) { + var h = a.value; + + if (t.hasOwnProperty(h)) { + var p = new Set(e[h]), + l = !0, + c = !1, + u = void 0; + + try { + for (var d, f = t[h][Symbol.iterator](); !(l = (d = f.next()).done); l = !0) { + var m = d.value; + p.add(m); + } + } catch (e) { + c = !0, u = e; + } finally { + try { + l || null == f.return || f.return(); + } finally { + if (c) throw u; + } + } + + t[h] = Object.freeze(Array.from(p)); + } else t[h] = Object.freeze(Array.from(e[h])); + } + } catch (e) { + n = !0, r = e; + } finally { + try { + s || null == o.return || o.return(); + } finally { + if (n) throw r; + } + } + + return Object.freeze(t); + } + }); + }), o("jkWpo", function (e, t) { + e.exports = JSON.parse('{"AssignmentExpression":["left","right"],"AssignmentPattern":["left","right"],"ArrayExpression":["elements"],"ArrayPattern":["elements"],"ArrowFunctionExpression":["params","body"],"AwaitExpression":["argument"],"BlockStatement":["body"],"BinaryExpression":["left","right"],"BreakStatement":["label"],"CallExpression":["callee","arguments"],"CatchClause":["param","body"],"ChainExpression":["expression"],"ClassBody":["body"],"ClassDeclaration":["id","superClass","body"],"ClassExpression":["id","superClass","body"],"ConditionalExpression":["test","consequent","alternate"],"ContinueStatement":["label"],"DebuggerStatement":[],"DoWhileStatement":["body","test"],"EmptyStatement":[],"ExportAllDeclaration":["exported","source"],"ExportDefaultDeclaration":["declaration"],"ExportNamedDeclaration":["declaration","specifiers","source"],"ExportSpecifier":["exported","local"],"ExpressionStatement":["expression"],"ExperimentalRestProperty":["argument"],"ExperimentalSpreadProperty":["argument"],"ForStatement":["init","test","update","body"],"ForInStatement":["left","right","body"],"ForOfStatement":["left","right","body"],"FunctionDeclaration":["id","params","body"],"FunctionExpression":["id","params","body"],"Identifier":[],"IfStatement":["test","consequent","alternate"],"ImportDeclaration":["specifiers","source"],"ImportDefaultSpecifier":["local"],"ImportExpression":["source"],"ImportNamespaceSpecifier":["local"],"ImportSpecifier":["imported","local"],"JSXAttribute":["name","value"],"JSXClosingElement":["name"],"JSXElement":["openingElement","children","closingElement"],"JSXEmptyExpression":[],"JSXExpressionContainer":["expression"],"JSXIdentifier":[],"JSXMemberExpression":["object","property"],"JSXNamespacedName":["namespace","name"],"JSXOpeningElement":["name","attributes"],"JSXSpreadAttribute":["argument"],"JSXText":[],"JSXFragment":["openingFragment","children","closingFragment"],"Literal":[],"LabeledStatement":["label","body"],"LogicalExpression":["left","right"],"MemberExpression":["object","property"],"MetaProperty":["meta","property"],"MethodDefinition":["key","value"],"NewExpression":["callee","arguments"],"ObjectExpression":["properties"],"ObjectPattern":["properties"],"Program":["body"],"Property":["key","value"],"RestElement":["argument"],"ReturnStatement":["argument"],"SequenceExpression":["expressions"],"SpreadElement":["argument"],"Super":[],"SwitchStatement":["discriminant","cases"],"SwitchCase":["test","consequent"],"TaggedTemplateExpression":["tag","quasi"],"TemplateElement":[],"TemplateLiteral":["quasis","expressions"],"ThisExpression":[],"ThrowStatement":["argument"],"TryStatement":["block","handler","finalizer"],"UnaryExpression":["argument"],"UpdateExpression":["argument"],"VariableDeclaration":["declarations"],"VariableDeclarator":["id","init"],"WhileStatement":["test","body"],"WithStatement":["object","body"],"YieldExpression":["argument"]}'); + }), o("4rf7n", function (e, t) { + e.exports = JSON.parse('{"name":"estraverse","description":"ECMAScript JS AST traversal functions","homepage":"https://github.com/estools/estraverse","main":"estraverse.js","version":"4.3.0","engines":{"node":">=4.0"},"maintainers":[{"name":"Yusuke Suzuki","email":"utatane.tea@gmail.com","web":"http://github.com/Constellation"}],"repository":{"type":"git","url":"http://github.com/estools/estraverse.git"},"devDependencies":{"babel-preset-env":"^1.6.1","babel-register":"^6.3.13","chai":"^2.1.1","espree":"^1.11.0","gulp":"^3.8.10","gulp-bump":"^0.2.2","gulp-filter":"^2.0.0","gulp-git":"^1.0.1","gulp-tag-version":"^1.3.0","jshint":"^2.5.6","mocha":"^2.1.0"},"license":"BSD-2-Clause","scripts":{"test":"npm run-script lint && npm run-script unit-test","lint":"jshint estraverse.js","unit-test":"mocha --compilers js:babel-register"}}'); + }), "function" == typeof SuppressedError && SuppressedError; + var u = (t = a("jVLb9")) && t.__esModule ? t : { + default: t + }, + d = {}; + + function f(e, t) { + (null == t || t > e.length) && (t = e.length); + + for (var i = 0, s = Array(t); i < t; i++) { + s[i] = e[i]; + } + + return s; + } + + function m(e) { + return function (e) { + if (Array.isArray(e)) return f(e); + }(e) || function (e) { + if ("undefined" != typeof Symbol && null != e[Symbol.iterator] || null != e["@@iterator"]) return Array.from(e); + }(e) || function (e, t) { + if (e) { + if ("string" == typeof e) return f(e, void 0); + var i = Object.prototype.toString.call(e).slice(8, -1); + if ("Object" === i && e.constructor && (i = e.constructor.name), "Map" === i || "Set" === i) return Array.from(i); + if ("Arguments" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)) return f(e, void 0); + } + }(e) || function () { + throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + }(); + } + + var x = a("8NOO4"), + g = {}; + + function y(e, t) { + if (!(e instanceof t)) throw TypeError("Cannot call a class as a function"); + } + + function v(e, t) { + for (var i = 0; i < t.length; i++) { + var s = t[i]; + s.enumerable = s.enumerable || !1, s.configurable = !0, "value" in s && (s.writable = !0), Object.defineProperty(e, s.key, s); + } + } + + function b(e, t, i) { + return t && v(e.prototype, t), i && v(e, i), e; + } + + function E(e) { + return (E = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) { + return e.__proto__ || Object.getPrototypeOf(e); + })(e); + } + + function S(e, t, i) { + return (S = "undefined" != typeof Reflect && Reflect.get ? Reflect.get : function (e, t, i) { + var s = function (e, t) { + for (; !Object.prototype.hasOwnProperty.call(e, t) && null !== (e = E(e));) { + ; + } + + return e; + }(e, t); + + if (s) { + var n = Object.getOwnPropertyDescriptor(s, t); + return n.get ? n.get.call(i || e) : n.value; + } + })(e, t, i || e); + } + + function k(e, t) { + return (k = Object.setPrototypeOf || function (e, t) { + return e.__proto__ = t, e; + })(e, t); + } + + function _(e, t) { + if ("function" != typeof t && null !== t) throw TypeError("Super expression must either be null or a function"); + e.prototype = Object.create(t && t.prototype, { + constructor: { + value: e, + writable: !0, + configurable: !0 + } + }), t && k(e, t); + } + + function w(e) { + var t = function () { + if ("undefined" == typeof Reflect || !Reflect.construct || Reflect.construct.sham) return !1; + if ("function" == typeof Proxy) return !0; + + try { + return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})), !0; + } catch (e) { + return !1; + } + }(); + + return function () { + var i, + s = E(e); + return i = t ? Reflect.construct(s, arguments, E(this).constructor) : s.apply(this, arguments), i && ("object" === l(i) || "function" == typeof i) ? i : function (e) { + if (void 0 === e) throw ReferenceError("this hasn't been initialised - super() hasn't been called"); + return e; + }(this); + }; + } + + var C = {}; + C = { + quot: '"', + amp: "&", + apos: "'", + lt: "<", + gt: ">", + nbsp: " ", + iexcl: "¡", + cent: "¢", + pound: "£", + curren: "¤", + yen: "¥", + brvbar: "¦", + sect: "§", + uml: "¨", + copy: "©", + ordf: "ª", + laquo: "«", + not: "¬", + shy: "­", + reg: "®", + macr: "¯", + deg: "°", + plusmn: "±", + sup2: "²", + sup3: "³", + acute: "´", + micro: "µ", + para: "¶", + middot: "·", + cedil: "¸", + sup1: "¹", + ordm: "º", + raquo: "»", + frac14: "¼", + frac12: "½", + frac34: "¾", + iquest: "¿", + Agrave: "À", + Aacute: "Á", + Acirc: "Â", + Atilde: "Ã", + Auml: "Ä", + Aring: "Å", + AElig: "Æ", + Ccedil: "Ç", + Egrave: "È", + Eacute: "É", + Ecirc: "Ê", + Euml: "Ë", + Igrave: "Ì", + Iacute: "Í", + Icirc: "Î", + Iuml: "Ï", + ETH: "Ð", + Ntilde: "Ñ", + Ograve: "Ò", + Oacute: "Ó", + Ocirc: "Ô", + Otilde: "Õ", + Ouml: "Ö", + times: "×", + Oslash: "Ø", + Ugrave: "Ù", + Uacute: "Ú", + Ucirc: "Û", + Uuml: "Ü", + Yacute: "Ý", + THORN: "Þ", + szlig: "ß", + agrave: "à", + aacute: "á", + acirc: "â", + atilde: "ã", + auml: "ä", + aring: "å", + aelig: "æ", + ccedil: "ç", + egrave: "è", + eacute: "é", + ecirc: "ê", + euml: "ë", + igrave: "ì", + iacute: "í", + icirc: "î", + iuml: "ï", + eth: "ð", + ntilde: "ñ", + ograve: "ò", + oacute: "ó", + ocirc: "ô", + otilde: "õ", + ouml: "ö", + divide: "÷", + oslash: "ø", + ugrave: "ù", + uacute: "ú", + ucirc: "û", + uuml: "ü", + yacute: "ý", + thorn: "þ", + yuml: "ÿ", + OElig: "Œ", + oelig: "œ", + Scaron: "Š", + scaron: "š", + Yuml: "Ÿ", + fnof: "ƒ", + circ: "ˆ", + tilde: "˜", + Alpha: "Α", + Beta: "Β", + Gamma: "Γ", + Delta: "Δ", + Epsilon: "Ε", + Zeta: "Ζ", + Eta: "Η", + Theta: "Θ", + Iota: "Ι", + Kappa: "Κ", + Lambda: "Λ", + Mu: "Μ", + Nu: "Ν", + Xi: "Ξ", + Omicron: "Ο", + Pi: "Π", + Rho: "Ρ", + Sigma: "Σ", + Tau: "Τ", + Upsilon: "Υ", + Phi: "Φ", + Chi: "Χ", + Psi: "Ψ", + Omega: "Ω", + alpha: "α", + beta: "β", + gamma: "γ", + delta: "δ", + epsilon: "ε", + zeta: "ζ", + eta: "η", + theta: "θ", + iota: "ι", + kappa: "κ", + lambda: "λ", + mu: "μ", + nu: "ν", + xi: "ξ", + omicron: "ο", + pi: "π", + rho: "ρ", + sigmaf: "ς", + sigma: "σ", + tau: "τ", + upsilon: "υ", + phi: "φ", + chi: "χ", + psi: "ψ", + omega: "ω", + thetasym: "ϑ", + upsih: "ϒ", + piv: "ϖ", + ensp: " ", + emsp: " ", + thinsp: " ", + zwnj: "‌", + zwj: "‍", + lrm: "‎", + rlm: "‏", + ndash: "–", + mdash: "—", + lsquo: "‘", + rsquo: "’", + sbquo: "‚", + ldquo: "“", + rdquo: "”", + bdquo: "„", + dagger: "†", + Dagger: "‡", + bull: "•", + hellip: "…", + permil: "‰", + prime: "′", + Prime: "″", + lsaquo: "‹", + rsaquo: "›", + oline: "‾", + frasl: "⁄", + euro: "€", + image: "ℑ", + weierp: "℘", + real: "ℜ", + trade: "™", + alefsym: "ℵ", + larr: "←", + uarr: "↑", + rarr: "→", + darr: "↓", + harr: "↔", + crarr: "↵", + lArr: "⇐", + uArr: "⇑", + rArr: "⇒", + dArr: "⇓", + hArr: "⇔", + forall: "∀", + part: "∂", + exist: "∃", + empty: "∅", + nabla: "∇", + isin: "∈", + notin: "∉", + ni: "∋", + prod: "∏", + sum: "∑", + minus: "−", + lowast: "∗", + radic: "√", + prop: "∝", + infin: "∞", + ang: "∠", + and: "∧", + or: "∨", + cap: "∩", + cup: "∪", + int: "∫", + there4: "∴", + sim: "∼", + cong: "≅", + asymp: "≈", + ne: "≠", + equiv: "≡", + le: "≤", + ge: "≥", + sub: "⊂", + sup: "⊃", + nsub: "⊄", + sube: "⊆", + supe: "⊇", + oplus: "⊕", + otimes: "⊗", + perp: "⊥", + sdot: "⋅", + lceil: "⌈", + rceil: "⌉", + lfloor: "⌊", + rfloor: "⌋", + lang: "〈", + rang: "〉", + loz: "◊", + spades: "♠", + clubs: "♣", + hearts: "♥", + diams: "♦" + }; + var A = /^[\da-fA-F]+$/, + T = /^\d+$/, + N = new WeakMap(); + + function I(e) { + e = e.Parser.acorn || e; + var t = N.get(e); + + if (!t) { + var i = e.tokTypes, + s = e.TokContext, + n = e.TokenType, + r = new s("...", !0, !0), + h = { + jsxName: new n("jsxName"), + jsxText: new n("jsxText", { + beforeExpr: !0 + }), + jsxTagStart: new n("jsxTagStart", { + startsExpr: !0 + }), + jsxTagEnd: new n("jsxTagEnd") + }; + h.jsxTagStart.updateContext = function () { + this.context.push(o), this.context.push(r), this.exprAllowed = !1; + }, h.jsxTagEnd.updateContext = function (e) { + var t = this.context.pop(); + t === r && e === i.slash || t === a ? (this.context.pop(), this.exprAllowed = this.curContext() === o) : this.exprAllowed = !0; + }, t = { + tokContexts: { + tc_oTag: r, + tc_cTag: a, + tc_expr: o + }, + tokTypes: h + }, N.set(e, t); + } + + return t; + } + + function P(e) { + return e ? "JSXIdentifier" === e.type ? e.name : "JSXNamespacedName" === e.type ? e.namespace.name + ":" + e.name.name : "JSXMemberExpression" === e.type ? P(e.object) + "." + P(e.property) : void 0 : e; + } + + Object.defineProperty(g = function g(e) { + return e = e || {}, function (t) { + var i, s, n, r, o, h, p, l, c, u, d, f; + return i = { + allowNamespaces: !1 !== e.allowNamespaces, + allowNamespacedObjects: !!e.allowNamespacedObjects + }, n = I(s = t.acorn || a("8NOO4")), r = s.tokTypes, o = n.tokTypes, h = s.tokContexts, p = n.tokContexts.tc_oTag, l = n.tokContexts.tc_cTag, c = n.tokContexts.tc_expr, u = s.isNewLine, d = s.isIdentifierStart, f = s.isIdentifierChar, function (e) { + _(s, e); + + var t = w(s); + + function s() { + return y(this, s), t.apply(this, arguments); + } + + return b(s, [{ + key: "jsx_readToken", + value: function value() { + for (var e = "", t = this.pos;;) { + this.pos >= this.input.length && this.raise(this.start, "Unterminated JSX contents"); + var i = this.input.charCodeAt(this.pos); + + switch (i) { + case 60: + case 123: + if (this.pos === this.start) { + if (60 === i && this.exprAllowed) return ++this.pos, this.finishToken(o.jsxTagStart); + return this.getTokenFromCode(i); + } + + return e += this.input.slice(t, this.pos), this.finishToken(o.jsxText, e); + + case 38: + e += this.input.slice(t, this.pos) + this.jsx_readEntity(), t = this.pos; + break; + + case 62: + case 125: + this.raise(this.pos, "Unexpected token `" + this.input[this.pos] + "`. Did you mean `" + (62 === i ? ">" : "}") + '` or `{"' + this.input[this.pos] + '"}`?'); + + default: + u(i) ? (e += this.input.slice(t, this.pos) + this.jsx_readNewLine(!0), t = this.pos) : ++this.pos; + } + } + } + }, { + key: "jsx_readNewLine", + value: function value(e) { + var t, + i = this.input.charCodeAt(this.pos); + return ++this.pos, 13 === i && 10 === this.input.charCodeAt(this.pos) ? (++this.pos, t = e ? "\n" : "\r\n") : t = String.fromCharCode(i), this.options.locations && (++this.curLine, this.lineStart = this.pos), t; + } + }, { + key: "jsx_readString", + value: function value(e) { + for (var t = "", i = ++this.pos;;) { + this.pos >= this.input.length && this.raise(this.start, "Unterminated string constant"); + var s = this.input.charCodeAt(this.pos); + if (s === e) break; + 38 === s ? (t += this.input.slice(i, this.pos) + this.jsx_readEntity(), i = this.pos) : u(s) ? (t += this.input.slice(i, this.pos) + this.jsx_readNewLine(!1), i = this.pos) : ++this.pos; + } + + return t += this.input.slice(i, this.pos++), this.finishToken(r.string, t); + } + }, { + key: "jsx_readEntity", + value: function value() { + var e, + t = "", + i = 0, + s = this.input[this.pos]; + "&" !== s && this.raise(this.pos, "Entity must start with an ampersand"); + + for (var n = ++this.pos; this.pos < this.input.length && i++ < 10;) { + if (";" === (s = this.input[this.pos++])) { + "#" === t[0] ? "x" === t[1] ? (t = t.substr(2), A.test(t) && (e = String.fromCharCode(parseInt(t, 16)))) : (t = t.substr(1), T.test(t) && (e = String.fromCharCode(parseInt(t, 10)))) : e = C[t]; + break; + } + + t += s; + } + + return e || (this.pos = n, "&"); + } + }, { + key: "jsx_readWord", + value: function value() { + var e, + t = this.pos; + + do { + e = this.input.charCodeAt(++this.pos); + } while (f(e) || 45 === e); + + return this.finishToken(o.jsxName, this.input.slice(t, this.pos)); + } + }, { + key: "jsx_parseIdentifier", + value: function value() { + var e = this.startNode(); + return this.type === o.jsxName ? e.name = this.value : this.type.keyword ? e.name = this.type.keyword : this.unexpected(), this.next(), this.finishNode(e, "JSXIdentifier"); + } + }, { + key: "jsx_parseNamespacedName", + value: function value() { + var e = this.start, + t = this.startLoc, + s = this.jsx_parseIdentifier(); + if (!i.allowNamespaces || !this.eat(r.colon)) return s; + var n = this.startNodeAt(e, t); + return n.namespace = s, n.name = this.jsx_parseIdentifier(), this.finishNode(n, "JSXNamespacedName"); + } + }, { + key: "jsx_parseElementName", + value: function value() { + if (this.type === o.jsxTagEnd) return ""; + var e = this.start, + t = this.startLoc, + s = this.jsx_parseNamespacedName(); + + for (this.type !== r.dot || "JSXNamespacedName" !== s.type || i.allowNamespacedObjects || this.unexpected(); this.eat(r.dot);) { + var n = this.startNodeAt(e, t); + n.object = s, n.property = this.jsx_parseIdentifier(), s = this.finishNode(n, "JSXMemberExpression"); + } + + return s; + } + }, { + key: "jsx_parseAttributeValue", + value: function value() { + switch (this.type) { + case r.braceL: + var e = this.jsx_parseExpressionContainer(); + return "JSXEmptyExpression" === e.expression.type && this.raise(e.start, "JSX attributes must only be assigned a non-empty expression"), e; + + case o.jsxTagStart: + case r.string: + return this.parseExprAtom(); + + default: + this.raise(this.start, "JSX value should be either an expression or a quoted JSX text"); + } + } + }, { + key: "jsx_parseEmptyExpression", + value: function value() { + var e = this.startNodeAt(this.lastTokEnd, this.lastTokEndLoc); + return this.finishNodeAt(e, "JSXEmptyExpression", this.start, this.startLoc); + } + }, { + key: "jsx_parseExpressionContainer", + value: function value() { + var e = this.startNode(); + return this.next(), e.expression = this.type === r.braceR ? this.jsx_parseEmptyExpression() : this.parseExpression(), this.expect(r.braceR), this.finishNode(e, "JSXExpressionContainer"); + } + }, { + key: "jsx_parseAttribute", + value: function value() { + var e = this.startNode(); + return this.eat(r.braceL) ? (this.expect(r.ellipsis), e.argument = this.parseMaybeAssign(), this.expect(r.braceR), this.finishNode(e, "JSXSpreadAttribute")) : (e.name = this.jsx_parseNamespacedName(), e.value = this.eat(r.eq) ? this.jsx_parseAttributeValue() : null, this.finishNode(e, "JSXAttribute")); + } + }, { + key: "jsx_parseOpeningElementAt", + value: function value(e, t) { + var i = this.startNodeAt(e, t); + i.attributes = []; + var s = this.jsx_parseElementName(); + + for (s && (i.name = s); this.type !== r.slash && this.type !== o.jsxTagEnd;) { + i.attributes.push(this.jsx_parseAttribute()); + } + + return i.selfClosing = this.eat(r.slash), this.expect(o.jsxTagEnd), this.finishNode(i, s ? "JSXOpeningElement" : "JSXOpeningFragment"); + } + }, { + key: "jsx_parseClosingElementAt", + value: function value(e, t) { + var i = this.startNodeAt(e, t), + s = this.jsx_parseElementName(); + return s && (i.name = s), this.expect(o.jsxTagEnd), this.finishNode(i, s ? "JSXClosingElement" : "JSXClosingFragment"); + } + }, { + key: "jsx_parseElementAt", + value: function value(e, t) { + var i = this.startNodeAt(e, t), + s = [], + n = this.jsx_parseOpeningElementAt(e, t), + a = null; + + if (!n.selfClosing) { + t: for (;;) { + switch (this.type) { + case o.jsxTagStart: + if (e = this.start, t = this.startLoc, this.next(), this.eat(r.slash)) { + a = this.jsx_parseClosingElementAt(e, t); + break t; + } + + s.push(this.jsx_parseElementAt(e, t)); + break; + + case o.jsxText: + s.push(this.parseExprAtom()); + break; + + case r.braceL: + s.push(this.jsx_parseExpressionContainer()); + break; + + default: + this.unexpected(); + } + } + + P(a.name) !== P(n.name) && this.raise(a.start, "Expected corresponding JSX closing tag for <" + P(n.name) + ">"); + } + + var h = n.name ? "Element" : "Fragment"; + return i["opening" + h] = n, i["closing" + h] = a, i.children = s, this.type === r.relational && "<" === this.value && this.raise(this.start, "Adjacent JSX elements must be wrapped in an enclosing tag"), this.finishNode(i, "JSX" + h); + } + }, { + key: "jsx_parseText", + value: function value() { + var e = this.parseLiteral(this.value); + return e.type = "JSXText", e; + } + }, { + key: "jsx_parseElement", + value: function value() { + var e = this.start, + t = this.startLoc; + return this.next(), this.jsx_parseElementAt(e, t); + } + }, { + key: "parseExprAtom", + value: function value(e) { + return this.type === o.jsxText ? this.jsx_parseText() : this.type === o.jsxTagStart ? this.jsx_parseElement() : S(E(s.prototype), "parseExprAtom", this).call(this, e); + } + }, { + key: "readToken", + value: function value(e) { + var t = this.curContext(); + if (t === c) return this.jsx_readToken(); + + if (t === p || t === l) { + if (d(e)) return this.jsx_readWord(); + if (62 == e) return ++this.pos, this.finishToken(o.jsxTagEnd); + if ((34 === e || 39 === e) && t == p) return this.jsx_readString(e); + } + + return 60 === e && this.exprAllowed && 33 !== this.input.charCodeAt(this.pos + 1) ? (++this.pos, this.finishToken(o.jsxTagStart)) : S(E(s.prototype), "readToken", this).call(this, e); + } + }, { + key: "updateContext", + value: function value(e) { + if (this.type == r.braceL) { + var t = this.curContext(); + t == p ? this.context.push(h.b_expr) : t == c ? this.context.push(h.b_tmpl) : S(E(s.prototype), "updateContext", this).call(this, e), this.exprAllowed = !0; + } else { + if (this.type !== r.slash || e !== o.jsxTagStart) return S(E(s.prototype), "updateContext", this).call(this, e); + this.context.length -= 2, this.context.push(l), this.exprAllowed = !1; + } + } + }], [{ + key: "acornJsx", + get: function get() { + return n; + } + }]), s; + }(t); + }; + }, "tokTypes", { + get: function get() { + return I(a("8NOO4")).tokTypes; + }, + configurable: !0, + enumerable: !0 + }); + var L = {}; + L = { + AssignmentExpression: "AssignmentExpression", + AssignmentPattern: "AssignmentPattern", + ArrayExpression: "ArrayExpression", + ArrayPattern: "ArrayPattern", + ArrowFunctionExpression: "ArrowFunctionExpression", + AwaitExpression: "AwaitExpression", + BlockStatement: "BlockStatement", + BinaryExpression: "BinaryExpression", + BreakStatement: "BreakStatement", + CallExpression: "CallExpression", + CatchClause: "CatchClause", + ClassBody: "ClassBody", + ClassDeclaration: "ClassDeclaration", + ClassExpression: "ClassExpression", + ConditionalExpression: "ConditionalExpression", + ContinueStatement: "ContinueStatement", + DoWhileStatement: "DoWhileStatement", + DebuggerStatement: "DebuggerStatement", + EmptyStatement: "EmptyStatement", + ExpressionStatement: "ExpressionStatement", + ForStatement: "ForStatement", + ForInStatement: "ForInStatement", + ForOfStatement: "ForOfStatement", + FunctionDeclaration: "FunctionDeclaration", + FunctionExpression: "FunctionExpression", + Identifier: "Identifier", + IfStatement: "IfStatement", + Literal: "Literal", + LabeledStatement: "LabeledStatement", + LogicalExpression: "LogicalExpression", + MemberExpression: "MemberExpression", + MetaProperty: "MetaProperty", + MethodDefinition: "MethodDefinition", + NewExpression: "NewExpression", + ObjectExpression: "ObjectExpression", + ObjectPattern: "ObjectPattern", + Program: "Program", + Property: "Property", + RestElement: "RestElement", + ReturnStatement: "ReturnStatement", + SequenceExpression: "SequenceExpression", + SpreadElement: "SpreadElement", + Super: "Super", + SwitchCase: "SwitchCase", + SwitchStatement: "SwitchStatement", + TaggedTemplateExpression: "TaggedTemplateExpression", + TemplateElement: "TemplateElement", + TemplateLiteral: "TemplateLiteral", + ThisExpression: "ThisExpression", + ThrowStatement: "ThrowStatement", + TryStatement: "TryStatement", + UnaryExpression: "UnaryExpression", + UpdateExpression: "UpdateExpression", + VariableDeclaration: "VariableDeclaration", + VariableDeclarator: "VariableDeclarator", + WhileStatement: "WhileStatement", + WithStatement: "WithStatement", + YieldExpression: "YieldExpression", + JSXIdentifier: "JSXIdentifier", + JSXNamespacedName: "JSXNamespacedName", + JSXMemberExpression: "JSXMemberExpression", + JSXEmptyExpression: "JSXEmptyExpression", + JSXExpressionContainer: "JSXExpressionContainer", + JSXElement: "JSXElement", + JSXClosingElement: "JSXClosingElement", + JSXOpeningElement: "JSXOpeningElement", + JSXAttribute: "JSXAttribute", + JSXSpreadAttribute: "JSXSpreadAttribute", + JSXText: "JSXText", + ExportDefaultDeclaration: "ExportDefaultDeclaration", + ExportNamedDeclaration: "ExportNamedDeclaration", + ExportAllDeclaration: "ExportAllDeclaration", + ExportSpecifier: "ExportSpecifier", + ImportDeclaration: "ImportDeclaration", + ImportSpecifier: "ImportSpecifier", + ImportDefaultSpecifier: "ImportDefaultSpecifier", + ImportNamespaceSpecifier: "ImportNamespaceSpecifier" + }; + var V = {}, + O = {}, + j = { + Boolean: "Boolean", + Identifier: "Identifier", + Keyword: "Keyword", + Null: "Null", + Numeric: "Numeric", + Punctuator: "Punctuator", + String: "String", + RegularExpression: "RegularExpression", + Template: "Template", + JSXIdentifier: "JSXIdentifier", + JSXText: "JSXText" + }; + + function R(e, t) { + this._acornTokTypes = e, this._tokens = [], this._curlyBrace = null, this._code = t; + } + + R.prototype = { + constructor: R, + translate: function translate(e, t) { + var i = e.type, + s = this._acornTokTypes; + if (i === s.name) e.type = j.Identifier, "static" === e.value && (e.type = j.Keyword), t.ecmaVersion > 5 && ("yield" === e.value || "let" === e.value) && (e.type = j.Keyword);else if (i === s.semi || i === s.comma || i === s.parenL || i === s.parenR || i === s.braceL || i === s.braceR || i === s.dot || i === s.bracketL || i === s.colon || i === s.question || i === s.bracketR || i === s.ellipsis || i === s.arrow || i === s.jsxTagStart || i === s.incDec || i === s.starstar || i === s.jsxTagEnd || i === s.prefix || i === s.questionDot || i.binop && !i.keyword || i.isAssign) e.type = j.Punctuator, e.value = this._code.slice(e.start, e.end);else if (i === s.jsxName) e.type = j.JSXIdentifier;else if ("jsxText" === i.label || i === s.jsxAttrValueToken) e.type = j.JSXText;else if (i.keyword) "true" === i.keyword || "false" === i.keyword ? e.type = j.Boolean : "null" === i.keyword ? e.type = j.Null : e.type = j.Keyword;else if (i === s.num) e.type = j.Numeric, e.value = this._code.slice(e.start, e.end);else if (i === s.string) t.jsxAttrValueToken ? (t.jsxAttrValueToken = !1, e.type = j.JSXText) : e.type = j.String, e.value = this._code.slice(e.start, e.end);else if (i === s.regexp) { + e.type = j.RegularExpression; + var n = e.value; + e.regex = { + flags: n.flags, + pattern: n.pattern + }, e.value = "/".concat(n.pattern, "/").concat(n.flags); + } + return e; + }, + onToken: function onToken(e, t) { + var i = this, + s = this._acornTokTypes, + n = t.tokens, + r = this._tokens; + + function a() { + var e, t, s, r, a; + n.push((e = i._tokens, t = i._code, s = e[0], r = e[e.length - 1], a = { + type: j.Template, + value: t.slice(s.start, r.end) + }, s.loc && (a.loc = { + start: s.loc.start, + end: r.loc.end + }), s.range && (a.start = s.range[0], a.end = r.range[1], a.range = [a.start, a.end]), a)), i._tokens = []; + } + + if (e.type === s.eof) { + this._curlyBrace && n.push(this.translate(this._curlyBrace, t)); + return; + } + + if (e.type === s.backQuote) { + this._curlyBrace && (n.push(this.translate(this._curlyBrace, t)), this._curlyBrace = null), r.push(e), r.length > 1 && a(); + return; + } + + if (e.type === s.dollarBraceL) { + r.push(e), a(); + return; + } + + if (e.type === s.braceR) { + this._curlyBrace && n.push(this.translate(this._curlyBrace, t)), this._curlyBrace = e; + return; + } + + if (e.type === s.template || e.type === s.invalidTemplate) { + this._curlyBrace && (r.push(this._curlyBrace), this._curlyBrace = null), r.push(e); + return; + } + + this._curlyBrace && (n.push(this.translate(this._curlyBrace, t)), this._curlyBrace = null), n.push(this.translate(e, t)); + } + }, O = R; + var D = {}, + M = [3, 5, 6, 7, 8, 9, 10, 11, 12], + B = (D = { + normalizeOptions: function normalizeOptions(e) { + var t = function () { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 5; + if ("number" != typeof e) throw Error("ecmaVersion must be a number. Received value of type ".concat(void 0 === e ? "undefined" : l(e), " instead.")); + var t = e; + if (t >= 2015 && (t -= 2009), !M.includes(t)) throw Error("Invalid ecmaVersion."); + return t; + }(e.ecmaVersion), + i = function () { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "script"; + if ("script" === e || "module" === e) return e; + throw Error("Invalid sourceType."); + }(e.sourceType), + s = !0 === e.range, + n = !0 === e.loc; + + if ("module" === i && t < 6) throw Error("sourceType 'module' is not supported when ecmaVersion < 2015. Consider adding `{ ecmaVersion: 2015 }` to the parser options."); + return Object.assign({}, e, { + ecmaVersion: t, + sourceType: i, + ranges: s, + locations: n + }); + }, + getLatestEcmaVersion: function getLatestEcmaVersion() { + return M[M.length - 1]; + }, + getSupportedEcmaVersions: function getSupportedEcmaVersions() { + return m(M); + } + }).normalizeOptions, + U = Symbol("espree's internal state"), + F = Symbol("espree's esprimaFinishNode"); + + V = function V() { + return function (e) { + var t = Object.assign({}, e.acorn.tokTypes); + return e.acornJsx && Object.assign(t, e.acornJsx.tokTypes), function (i) { + _(n, i); + + var s = w(n); + + function n(e, i) { + y(this, n), ("object" != _typeof(e) || null === e) && (e = {}), "string" == typeof i || i instanceof String || (i = String(i)); + var r, + a = B(e), + o = a.ecmaFeatures || {}, + h = !0 === a.tokens ? new O(t, i) : null; + return (r = s.call(this, { + ecmaVersion: a.ecmaVersion, + sourceType: a.sourceType, + ranges: a.ranges, + locations: a.locations, + allowReturnOutsideFunction: !!o.globalReturn, + onToken: function onToken(e) { + h && h.onToken(e, r[U]), e.type !== t.eof && (r[U].lastToken = e); + }, + onComment: function onComment(e, t, i, s, n, a) { + if (r[U].comments) { + var o, + h = (o = { + type: e ? "Block" : "Line", + value: t + }, "number" == typeof i && (o.start = i, o.end = s, o.range = [i, s]), "object" == _typeof(n) && (o.loc = { + start: n, + end: a + }), o); + r[U].comments.push(h); + } + } + }, i))[U] = { + tokens: h ? [] : null, + comments: !0 === a.comment ? [] : null, + impliedStrict: !0 === o.impliedStrict && r.options.ecmaVersion >= 5, + ecmaVersion: r.options.ecmaVersion, + jsxAttrValueToken: !1, + lastToken: null + }, r; + } + + return b(n, [{ + key: "tokenize", + value: function value() { + do { + this.next(); + } while (this.type !== t.eof); + + this.next(); + var e = this[U], + i = e.tokens; + return e.comments && (i.comments = e.comments), i; + } + }, { + key: "finishNode", + value: function value() { + for (var e, t = arguments.length, i = Array(t), s = 0; s < t; s++) { + i[s] = arguments[s]; + } + + var r = (e = S(E(n.prototype), "finishNode", this)).call.apply(e, [this].concat(m(i))); + return this[F](r); + } + }, { + key: "finishNodeAt", + value: function value() { + for (var e, t = arguments.length, i = Array(t), s = 0; s < t; s++) { + i[s] = arguments[s]; + } + + var r = (e = S(E(n.prototype), "finishNodeAt", this)).call.apply(e, [this].concat(m(i))); + return this[F](r); + } + }, { + key: "parse", + value: function value() { + var e = this[U], + t = S(E(n.prototype), "parse", this).call(this); + return t.sourceType = this.options.sourceType, e.comments && (t.comments = e.comments), e.tokens && (t.tokens = e.tokens), t.range && (t.range[0] = t.body.length ? t.body[0].range[0] : t.range[0], t.range[1] = e.lastToken ? e.lastToken.range[1] : t.range[1]), t.loc && (t.loc.start = t.body.length ? t.body[0].loc.start : t.loc.start, t.loc.end = e.lastToken ? e.lastToken.loc.end : t.loc.end), t; + } + }, { + key: "parseTopLevel", + value: function value(e) { + return this[U].impliedStrict && (this.strict = !0), S(E(n.prototype), "parseTopLevel", this).call(this, e); + } + }, { + key: "raise", + value: function value(t, i) { + var s = e.acorn.getLineInfo(this.input, t), + n = SyntaxError(i); + throw n.index = t, n.lineNumber = s.line, n.column = s.column + 1, n; + } + }, { + key: "raiseRecoverable", + value: function value(e, t) { + this.raise(e, t); + } + }, { + key: "unexpected", + value: function value(e) { + var t = "Unexpected token"; + + if (null != e) { + if (this.pos = e, this.options.locations) for (; this.pos < this.lineStart;) { + this.lineStart = this.input.lastIndexOf("\n", this.lineStart - 2) + 1, --this.curLine; + } + this.nextToken(); + } + + this.end > this.start && (t += " ".concat(this.input.slice(this.start, this.end))), this.raise(this.start, t); + } + }, { + key: "jsx_readString", + value: function value(e) { + var i = S(E(n.prototype), "jsx_readString", this).call(this, e); + return this.type === t.string && (this[U].jsxAttrValueToken = !0), i; + } + }, { + key: F, + value: function value(e) { + if ("TemplateElement" === e.type) { + var t = "${" === this.input.slice(e.end, e.end + 2); + e.range && (e.range[0]--, e.range[1] += t ? 2 : 1), e.loc && (e.loc.start.column--, e.loc.end.column += t ? 2 : 1); + } + + return e.type.indexOf("Function") > -1 && !e.generator && (e.generator = !1), e; + } + }]), n; + }(e); + }; + }; + + var q = D.getLatestEcmaVersion, + X = D.getSupportedEcmaVersions, + J = { + _regular: null, + _jsx: null, + + get regular() { + return null === this._regular && (this._regular = x.Parser.extend(V())), this._regular; + }, + + get jsx() { + return null === this._jsx && (this._jsx = x.Parser.extend(g(), V())), this._jsx; + }, + + get: function get(e) { + return e && e.ecmaFeatures && e.ecmaFeatures.jsx ? this.jsx : this.regular; + } + }; + a("80lpX").version, i = function i(e, t) { + return new (J.get(t))(t, e).parse(); + }, function () { + var e, + t = {}; + + for (e in "function" == typeof Object.create && (t = Object.create(null)), L) { + Object.hasOwnProperty.call(L, e) && (t[e] = L[e]); + } + + "function" == typeof Object.freeze && Object.freeze(t); + }(), a("a8cff").KEYS, q(), X(); + var W = {}; + !function e(t) { + var i, s, n, r, o, h; + + function p(e) { + var t, + i, + s = {}; + + for (t in e) { + e.hasOwnProperty(t) && ("object" == _typeof(i = e[t]) && null !== i ? s[t] = p(i) : s[t] = i); + } + + return s; + } + + function l(e, t) { + this.parent = e, this.key = t; + } + + function c(e, t, i, s) { + this.node = e, this.path = t, this.wrap = i, this.ref = s; + } + + function u() {} + + function d(e) { + return null != e && "object" == _typeof(e) && "string" == typeof e.type; + } + + function f(e, t) { + return (e === i.ObjectExpression || e === i.ObjectPattern) && "properties" === t; + } + + function m(e, t) { + return new u().traverse(e, t); + } + + return i = { + AssignmentExpression: "AssignmentExpression", + AssignmentPattern: "AssignmentPattern", + ArrayExpression: "ArrayExpression", + ArrayPattern: "ArrayPattern", + ArrowFunctionExpression: "ArrowFunctionExpression", + AwaitExpression: "AwaitExpression", + BlockStatement: "BlockStatement", + BinaryExpression: "BinaryExpression", + BreakStatement: "BreakStatement", + CallExpression: "CallExpression", + CatchClause: "CatchClause", + ClassBody: "ClassBody", + ClassDeclaration: "ClassDeclaration", + ClassExpression: "ClassExpression", + ComprehensionBlock: "ComprehensionBlock", + ComprehensionExpression: "ComprehensionExpression", + ConditionalExpression: "ConditionalExpression", + ContinueStatement: "ContinueStatement", + DebuggerStatement: "DebuggerStatement", + DirectiveStatement: "DirectiveStatement", + DoWhileStatement: "DoWhileStatement", + EmptyStatement: "EmptyStatement", + ExportAllDeclaration: "ExportAllDeclaration", + ExportDefaultDeclaration: "ExportDefaultDeclaration", + ExportNamedDeclaration: "ExportNamedDeclaration", + ExportSpecifier: "ExportSpecifier", + ExpressionStatement: "ExpressionStatement", + ForStatement: "ForStatement", + ForInStatement: "ForInStatement", + ForOfStatement: "ForOfStatement", + FunctionDeclaration: "FunctionDeclaration", + FunctionExpression: "FunctionExpression", + GeneratorExpression: "GeneratorExpression", + Identifier: "Identifier", + IfStatement: "IfStatement", + ImportExpression: "ImportExpression", + ImportDeclaration: "ImportDeclaration", + ImportDefaultSpecifier: "ImportDefaultSpecifier", + ImportNamespaceSpecifier: "ImportNamespaceSpecifier", + ImportSpecifier: "ImportSpecifier", + Literal: "Literal", + LabeledStatement: "LabeledStatement", + LogicalExpression: "LogicalExpression", + MemberExpression: "MemberExpression", + MetaProperty: "MetaProperty", + MethodDefinition: "MethodDefinition", + ModuleSpecifier: "ModuleSpecifier", + NewExpression: "NewExpression", + ObjectExpression: "ObjectExpression", + ObjectPattern: "ObjectPattern", + Program: "Program", + Property: "Property", + RestElement: "RestElement", + ReturnStatement: "ReturnStatement", + SequenceExpression: "SequenceExpression", + SpreadElement: "SpreadElement", + Super: "Super", + SwitchStatement: "SwitchStatement", + SwitchCase: "SwitchCase", + TaggedTemplateExpression: "TaggedTemplateExpression", + TemplateElement: "TemplateElement", + TemplateLiteral: "TemplateLiteral", + ThisExpression: "ThisExpression", + ThrowStatement: "ThrowStatement", + TryStatement: "TryStatement", + UnaryExpression: "UnaryExpression", + UpdateExpression: "UpdateExpression", + VariableDeclaration: "VariableDeclaration", + VariableDeclarator: "VariableDeclarator", + WhileStatement: "WhileStatement", + WithStatement: "WithStatement", + YieldExpression: "YieldExpression" + }, n = { + AssignmentExpression: ["left", "right"], + AssignmentPattern: ["left", "right"], + ArrayExpression: ["elements"], + ArrayPattern: ["elements"], + ArrowFunctionExpression: ["params", "body"], + AwaitExpression: ["argument"], + BlockStatement: ["body"], + BinaryExpression: ["left", "right"], + BreakStatement: ["label"], + CallExpression: ["callee", "arguments"], + CatchClause: ["param", "body"], + ClassBody: ["body"], + ClassDeclaration: ["id", "superClass", "body"], + ClassExpression: ["id", "superClass", "body"], + ComprehensionBlock: ["left", "right"], + ComprehensionExpression: ["blocks", "filter", "body"], + ConditionalExpression: ["test", "consequent", "alternate"], + ContinueStatement: ["label"], + DebuggerStatement: [], + DirectiveStatement: [], + DoWhileStatement: ["body", "test"], + EmptyStatement: [], + ExportAllDeclaration: ["source"], + ExportDefaultDeclaration: ["declaration"], + ExportNamedDeclaration: ["declaration", "specifiers", "source"], + ExportSpecifier: ["exported", "local"], + ExpressionStatement: ["expression"], + ForStatement: ["init", "test", "update", "body"], + ForInStatement: ["left", "right", "body"], + ForOfStatement: ["left", "right", "body"], + FunctionDeclaration: ["id", "params", "body"], + FunctionExpression: ["id", "params", "body"], + GeneratorExpression: ["blocks", "filter", "body"], + Identifier: [], + IfStatement: ["test", "consequent", "alternate"], + ImportExpression: ["source"], + ImportDeclaration: ["specifiers", "source"], + ImportDefaultSpecifier: ["local"], + ImportNamespaceSpecifier: ["local"], + ImportSpecifier: ["imported", "local"], + Literal: [], + LabeledStatement: ["label", "body"], + LogicalExpression: ["left", "right"], + MemberExpression: ["object", "property"], + MetaProperty: ["meta", "property"], + MethodDefinition: ["key", "value"], + ModuleSpecifier: [], + NewExpression: ["callee", "arguments"], + ObjectExpression: ["properties"], + ObjectPattern: ["properties"], + Program: ["body"], + Property: ["key", "value"], + RestElement: ["argument"], + ReturnStatement: ["argument"], + SequenceExpression: ["expressions"], + SpreadElement: ["argument"], + Super: [], + SwitchStatement: ["discriminant", "cases"], + SwitchCase: ["test", "consequent"], + TaggedTemplateExpression: ["tag", "quasi"], + TemplateElement: [], + TemplateLiteral: ["quasis", "expressions"], + ThisExpression: [], + ThrowStatement: ["argument"], + TryStatement: ["block", "handler", "finalizer"], + UnaryExpression: ["argument"], + UpdateExpression: ["argument"], + VariableDeclaration: ["declarations"], + VariableDeclarator: ["id", "init"], + WhileStatement: ["test", "body"], + WithStatement: ["object", "body"], + YieldExpression: ["argument"] + }, s = { + Break: r = {}, + Skip: o = {}, + Remove: h = {} + }, l.prototype.replace = function (e) { + this.parent[this.key] = e; + }, l.prototype.remove = function () { + return Array.isArray(this.parent) ? (this.parent.splice(this.key, 1), !0) : (this.replace(null), !1); + }, u.prototype.path = function () { + var e, t, i, s, n; + + function r(e, t) { + if (Array.isArray(t)) for (i = 0, s = t.length; i < s; ++i) { + e.push(t[i]); + } else e.push(t); + } + + if (!this.__current.path) return null; + + for (e = 2, n = [], t = this.__leavelist.length; e < t; ++e) { + r(n, this.__leavelist[e].path); + } + + return r(n, this.__current.path), n; + }, u.prototype.type = function () { + return this.current().type || this.__current.wrap; + }, u.prototype.parents = function () { + var e, t, i; + + for (e = 1, i = [], t = this.__leavelist.length; e < t; ++e) { + i.push(this.__leavelist[e].node); + } + + return i; + }, u.prototype.current = function () { + return this.__current.node; + }, u.prototype.__execute = function (e, t) { + var i, s; + return s = void 0, i = this.__current, this.__current = t, this.__state = null, e && (s = e.call(this, t.node, this.__leavelist[this.__leavelist.length - 1].node)), this.__current = i, s; + }, u.prototype.notify = function (e) { + this.__state = e; + }, u.prototype.skip = function () { + this.notify(o); + }, u.prototype.break = function () { + this.notify(r); + }, u.prototype.remove = function () { + this.notify(h); + }, u.prototype.__initialize = function (e, t) { + this.visitor = t, this.root = e, this.__worklist = [], this.__leavelist = [], this.__current = null, this.__state = null, this.__fallback = null, "iteration" === t.fallback ? this.__fallback = Object.keys : "function" == typeof t.fallback && (this.__fallback = t.fallback), this.__keys = n, t.keys && (this.__keys = Object.assign(Object.create(this.__keys), t.keys)); + }, u.prototype.traverse = function (e, t) { + var i, s, n, a, h, p, l, u, m, x, g, y; + + for (this.__initialize(e, t), y = {}, i = this.__worklist, s = this.__leavelist, i.push(new c(e, null, null, null)), s.push(new c(null, null, null, null)); i.length;) { + if ((n = i.pop()) === y) { + if (n = s.pop(), p = this.__execute(t.leave, n), this.__state === r || p === r) return; + continue; + } + + if (n.node) { + if (p = this.__execute(t.enter, n), this.__state === r || p === r) return; + if (i.push(y), s.push(n), this.__state === o || p === o) continue; + + if (h = (a = n.node).type || n.wrap, !(x = this.__keys[h])) { + if (this.__fallback) x = this.__fallback(a);else throw Error("Unknown node type " + h + "."); + } + + for (u = x.length; (u -= 1) >= 0;) { + if (g = a[l = x[u]]) { + if (Array.isArray(g)) { + for (m = g.length; (m -= 1) >= 0;) { + if (g[m]) { + if (f(h, x[u])) n = new c(g[m], [l, m], "Property", null);else { + if (!d(g[m])) continue; + n = new c(g[m], [l, m], null, null); + } + i.push(n); + } + } + } else d(g) && i.push(new c(g, l, null, null)); + } + } + } + } + }, u.prototype.replace = function (e, t) { + var i, s, n, a, p, u, m, x, g, y, v, b, E; + + function S(e) { + var t, s, n, r; + + if (e.ref.remove()) { + for (s = e.ref.key, r = e.ref.parent, t = i.length; t--;) { + if ((n = i[t]).ref && n.ref.parent === r) { + if (n.ref.key < s) break; + --n.ref.key; + } + } + } + } + + for (this.__initialize(e, t), v = {}, i = this.__worklist, s = this.__leavelist, b = { + root: e + }, u = new c(e, null, null, new l(b, "root")), i.push(u), s.push(u); i.length;) { + if ((u = i.pop()) === v) { + if (u = s.pop(), void 0 !== (p = this.__execute(t.leave, u)) && p !== r && p !== o && p !== h && u.ref.replace(p), (this.__state === h || p === h) && S(u), this.__state === r || p === r) return b.root; + continue; + } + + if (void 0 !== (p = this.__execute(t.enter, u)) && p !== r && p !== o && p !== h && (u.ref.replace(p), u.node = p), (this.__state === h || p === h) && (S(u), u.node = null), this.__state === r || p === r) break; + + if ((n = u.node) && (i.push(v), s.push(u), this.__state !== o && p !== o)) { + if (a = n.type || u.wrap, !(g = this.__keys[a])) { + if (this.__fallback) g = this.__fallback(n);else throw Error("Unknown node type " + a + "."); + } + + for (m = g.length; (m -= 1) >= 0;) { + if (y = n[E = g[m]]) { + if (Array.isArray(y)) { + for (x = y.length; (x -= 1) >= 0;) { + if (y[x]) { + if (f(a, g[m])) u = new c(y[x], [E, x], "Property", new l(y, x));else { + if (!d(y[x])) continue; + u = new c(y[x], [E, x], null, new l(y, x)); + } + i.push(u); + } + } + } else d(y) && i.push(new c(y, E, null, new l(n, E))); + } + } + } + } + + return b.root; + }, t.version = a("4rf7n").version, t.Syntax = i, t.traverse = m, t.replace = function (e, t) { + return new u().replace(e, t); + }, t.attachComments = function (e, t, i) { + var n, + r, + a, + o, + h = []; + if (!e.range) throw Error("attachComments needs range information"); + + if (!i.length) { + if (t.length) { + for (a = 0, r = t.length; a < r; a += 1) { + (n = p(t[a])).extendedRange = [0, e.range[0]], h.push(n); + } + + e.leadingComments = h; + } + + return e; + } + + for (a = 0, r = t.length; a < r; a += 1) { + h.push(function (e, t) { + var i; + return i = function (e, t) { + var i, s, n, r; + + for (s = e.length, n = 0; s;) { + t(e[r = n + (i = s >>> 1)]) ? s = i : (n = r + 1, s -= i + 1); + } + + return n; + }(t, function t(t) { + return t.range[0] > e.range[0]; + }), e.extendedRange = [e.range[0], e.range[1]], i !== t.length && (e.extendedRange[1] = t[i].range[0]), (i -= 1) >= 0 && (e.extendedRange[0] = t[i].range[1]), e; + }(p(t[a]), i)); + } + + return o = 0, m(e, { + enter: function enter(e) { + for (var t; o < h.length && !((t = h[o]).extendedRange[1] > e.range[0]);) { + t.extendedRange[1] === e.range[0] ? (e.leadingComments || (e.leadingComments = []), e.leadingComments.push(t), h.splice(o, 1)) : o += 1; + } + + return o === h.length ? s.Break : h[o].extendedRange[0] > e.range[1] ? s.Skip : void 0; + } + }), o = 0, m(e, { + leave: function leave(e) { + for (var t; o < h.length && (t = h[o], !(e.range[1] < t.extendedRange[0]));) { + e.range[1] === t.extendedRange[0] ? (e.trailingComments || (e.trailingComments = []), e.trailingComments.push(t), h.splice(o, 1)) : o += 1; + } + + return o === h.length ? s.Break : h[o].extendedRange[0] > e.range[1] ? s.Skip : void 0; + } + }), e; + }, t.VisitorKeys = n, t.VisitorOption = s, t.Controller = u, t.cloneEnvironment = function () { + return e({}); + }, t; + }(W); + var z = {}; + + function H(e) { + for (; e;) { + switch (e.type) { + case "CallExpression": + e = e.callee; + break; + + case "MemberExpression": + if ("ThisExpression" === e.object.type) return e.property; + e = e.object; + break; + + case "Identifier": + return e; + + default: + return null; + } + } + } + + function G(e) { + var t = H(e); + return t && RegExp("^\\$.").test(t && t.name) || ["$", "jQuery"].includes(t && t.name); + } + + function Q(e) { + return i(e, { + ecmaVersion: 2021, + sourceType: "module", + comment: !0 + }); + } + + function K(e, t, i, s, n, r) { + return $.apply(this, arguments); + } + + function $() { + return ($ = p(function (e, t, i, s, n, r) { + var a, o, h, p, l, u; + return c(this, function (c) { + switch (c.label) { + case 0: + if (a = Q(n + t + r), o = [], W.traverse(a, { + enter: function enter(e) { + if (e.callee && "MemberExpression" === e.callee.type) { + var t = e.callee.property.name; + ("ThisExpression" === e.callee.object.type || "Identifier" === e.callee.object.type) && 0 > i.indexOf(t) && o.push(e.callee.property.name); + } + } + }), h = m(new Set(o)), p = "", h.forEach(function (t) { + s[t] && s[t].range && (p += e.substring(s[t].range.start, s[t].range.end)); + }), l = m(i).concat(m(h)), !h.length) return [3, 2]; + return [4, K(e, t + p, l, s, n, r)]; + + case 1: + u = c.sent(), p += u.methodsData, l = m(l).concat([u.allMethods]), c.label = 2; + + case 2: + return [2, { + methodsData: p, + allMethods: l + }]; + } + }); + })).apply(this, arguments); + } + + z = ["add", "addBack", "addClass", "after", "ajax", "ajaxComplete", "ajaxError", "ajaxPrefilter", "ajaxSend", "ajaxSetup", "ajaxStart", "ajaxStop", "ajaxSuccess", "ajaxTransport", "animate", "append", "appendTo", "attr", "attr", "before", "bind", "blur", "camelCase", "change", "children", "cleanData", "clearQueue", "click", "clone", "clone", "closest", "constructor", "contains", "contents", "contextmenu", "css", "css", "data", "data", "dblclick", "delay", "delegate", "dequeue", "dequeue", "detach", "each", "each", "empty", "end", "eq", "error", "escapeSelector", "even", "extend", "extend", "fadeIn", "fadeOut", "fadeTo", "fadeToggle", "filter", "filter", "find", "find", "finish", "first", "focus", "focusin", "focusout", "fx", "get", "get", "getJSON", "getScript", "globalEval", "grep", "has", "hasClass", "hasData", "height", "hide", "holdReady", "hover", "html", "htmlPrefilter", "inArray", "index", "init", "innerHeight", "innerWidth", "insertAfter", "insertBefore", "is", "isArray", "isEmptyObject", "isFunction", "isNumeric", "isPlainObject", "isWindow", "isXMLDoc", "keydown", "keypress", "keyup", "last", "load", "makeArray", "map", "map", "merge", "mousedown", "mouseenter", "mouseleave", "mousemove", "mouseout", "mouseover", "mouseup", "next", "nextAll", "nextUntil", "noConflict", "nodeName", "noop", "not", "now", "odd", "off", "offset", "offsetParent", "on", "one", "outerHeight", "outerWidth", "param", "parent", "parents", "parentsUntil", "parseHTML", "parseJSON", "parseXML", "position", "post", "prepend", "prependTo", "prev", "prevAll", "prevUntil", "promise", "prop", "prop", "proxy", "push", "pushStack", "queue", "queue", "ready", "ready", "readyException", "remove", "removeAttr", "removeAttr", "removeClass", "removeData", "removeData", "removeEvent", "removeProp", "replaceAll", "replaceWith", "resize", "scroll", "scrollLeft", "scrollTop", "select", "serialize", "serializeArray", "show", "siblings", "slice", "slideDown", "slideToggle", "slideUp", "sort", "speed", "splice", "stop", "style", "submit", "text", "text", "toArray", "toggle", "toggleClass", "trigger", "triggerHandler", "trim", "type", "unbind", "undelegate", "unique", "uniqueSort", "unwrap", "val", "when", "width", "wrap", "wrapAll", "wrapInner"]; + + var Y = function Y(e, t) { + var i = { + start: 0, + end: 0 + }; + return t.comments.forEach(function (e) { + "Block" === e.type && (e.value.includes("$$ Template START $$") ? i.start = e.start : e.value.includes("$$ Template END $$") && (i.end = e.end)); + }), { + outputStart: e.substring(0, i.start), + outputEnd: e.substring(i.end, e.length) + }; + }; + + function Z() { + return (Z = p(function (e, t) { + var i, s, n, r, a, o, h, p; + return c(this, function (l) { + switch (l.label) { + case 0: + return i = {}, s = Q(t), W.traverse(s, { + enter: function enter(e) { + if ("MethodDefinition" === e.type) return i[e.key.name] = { + name: e.key.name, + range: { + start: e.start, + end: e.end + } + }, W.VisitorOption.Skip; + } + }), n = [], r = "", e.forEach(function (e) { + i[e] ? r += t.substring(i[e].range.start, i[e].range.end) : n.push(e); + }), o = (a = Y(t, s)).outputStart, h = a.outputEnd, [4, K(t, r, e, i, o, h)]; + + case 1: + return p = l.sent(), [2, { + data: o + r + p.methodsData + h, + remainingMethods: n + }]; + } + }); + })).apply(this, arguments); + } + + function ee() { + return (ee = p(function (e) { + var t, i, s, n, r; + return c(this, function (a) { + return t = Q(e), i = [], W.traverse(t, { + enter: function enter(e) { + e.callee && "MemberExpression" === e.callee.type && G(e) && i.push(e.callee.property.name); + } + }), s = new Set(i), n = new Set(z), r = new Set(m(s).filter(function (e) { + return n.has(e); + })), [2, m(r)]; + }); + })).apply(this, arguments); + } + + function et() { + return (et = p(function (e) { + var t, i; + return c(this, function (s) { + switch (s.label) { + case 0: + return console.log("alljQueryMethods", e), [4, d.getJQueryMethodsFromSource(e)]; + + case 1: + return console.log("methods333333333", t = s.sent()), console.log("methodsFilesssssData", u.default), [4, d.generateAlternativeMethods(t, u.default)]; + + case 2: + return console.log("generatedMethods", i = s.sent()), [4, prettier.format(i.data, { + parser: "babel", + tabWidth: 4, + plugins: prettierPlugins, + singleQuote: !0 + })]; + + case 3: + return [2, { + formattedOutput: s.sent(), + methodsFound: t, + remainingMethods: i.remainingMethods + }]; + } + }); + })).apply(this, arguments); + } + + d = { + traverse: H, + isjQuery: G, + getAST: Q, + generateAlternativeMethods: function generateAlternativeMethods(e, t) { + return Z.apply(this, arguments); + }, + getJQueryMethodsFromSource: function getJQueryMethodsFromSource(e) { + return ee.apply(this, arguments); + } + }, window.ReplaceJquery = function (e) { + return et.apply(this, arguments); + }; +}(); diff --git a/license/index.html b/license/index.html index 772e3e514..cef9604d3 100644 --- a/license/index.html +++ b/license/index.html @@ -5,7 +5,7 @@ - + @@ -275,7 +275,10 @@

Components

Angular + @@ -381,6 +384,6 @@
WebWhiz.ai
- + \ No newline at end of file diff --git a/main.276e5a37c026edfe22a7853950de9606b97188240325a3a90ca23b45406174e1a19e062bee215cebfa9bdf9db4afca39e2aa0bb6e217337cbcd00e38523e9ce5.css b/main.276e5a37c026edfe22a7853950de9606b97188240325a3a90ca23b45406174e1a19e062bee215cebfa9bdf9db4afca39e2aa0bb6e217337cbcd00e38523e9ce5.css deleted file mode 100644 index 5cba86e31..000000000 --- a/main.276e5a37c026edfe22a7853950de9606b97188240325a3a90ca23b45406174e1a19e062bee215cebfa9bdf9db4afca39e2aa0bb6e217337cbcd00e38523e9ce5.css +++ /dev/null @@ -1,11 +0,0 @@ -/*! - * 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,strong{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)}.row-cols-1>*{flex:0 0 auto;width:100%}.col-4{flex:0 0 auto;width:33.33333333%}@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){.row-cols-lg-2>*{flex:0 0 auto;width:50%}.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-6{flex:0 0 auto;width:50%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}}.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}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}@-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}.visually-hidden{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.d-block{display:block !important}.d-grid{display:grid !important}.d-flex{display:flex !important}.d-none{display:none !important}.border{border:1px solid #dee2e6 !important}.w-100{width:100% !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.align-self-center{align-self:center !important}.mx-0{margin-right:0 !important;margin-left:0 !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}.mb-3{margin-bottom:1rem !important}.mb-4{margin-bottom:1.5rem !important}.ms-auto{margin-left:auto !important}.p-1{padding:.25rem !important}.px-0{padding-right:0 !important;padding-left:0 !important}.px-2{padding-right:.5rem !important;padding-left:.5rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.text-center{text-align:center !important}.text-body{color:#333 !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){.order-lg-0{order:0 !important}.order-lg-1{order:1 !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}.demo-btns-container{display:flex;align-items:center;justify-content:center;gap:10px;margin:1rem 0 2rem 0}.demo-btns-container.dynamic-mode-demo{display:inline-flex;margin:0 10px 0 10px}.demo-btn{text-align:center;font-size:14px}.demo-btn svg{width:18px;margin-right:5px}.demo-btn a{display:flex;align-items:center}.demo-btn-stackblits svg{margin-right:3px}.demo-btn+.demo-btn{margin-left:10px}.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}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-start),.active.carousel-item-end{transform:translateX(100%)}.carousel-item-prev:not(.carousel-item-end),.active.carousel-item-start{transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity 0.15s ease}@media (prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity 0.6s ease}@media (prefers-reduced-motion: reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-prev-icon,.carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators li{background-color:#333}.carousel-dark .carousel-caption{color:#333}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;color:#5b6373}@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}.trusted-by .contents-list-item svg{max-width:110px;max-height:36px}@media (min-width: 768px){.trusted-by .contents-list-item{padding:1.5rem}}.trusted-by h2,.trusted-by .h2{font-size:18px;margin:0 0px 36px 0;color:inherit}@media (min-width: 768px){.trusted-by h2,.trusted-by .h2{font-size:24px}}.trusted-by.trusted-by-blue{color:#2d477c}.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}.lg-item .lightGallery-captions h4,.lg-item .lightGallery-captions .h4{transform:translate3d(60px, 0, 0px)}.lg-item .lightGallery-captions p{transform:translate3d(-60px, 0, 0px)}.lg-item .lightGallery-captions h4,.lg-item .lightGallery-captions .h4,.lg-item .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}.carousel-control-prev,.carousel-control-next{background-color:transparent;box-shadow:none;border:none}.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{width:100%;height:100%;position:absolute !important}.swiper-lg-wrap{width:1200px;height:0;padding-bottom:65%;position:relative;max-width:100%}#bootstrap-gallery-carousel.carousel .lg-item{display:flex;justify-content:center;align-items:center;height:100%}#bootstrap-gallery-carousel.carousel .lg-item img{width:unset !important;height:500px}#bootstrap-gallery-carousel.carousel .carousel-item .lg-item img{height:600px}#bootstrap-video-carousel.carousel .lg-item{display:flex;justify-content:center;align-items:center;height:100%}#bootstrap-video-carousel.carousel .lg-item img{width:unset !important;height:500px}#bootstrap-video-carousel.carousel .carousel-item .lg-item img{height:600px}#slick-carousel-gallery-demo img{height:500px}#slick-carousel-gallery-demo .slick-track{gap:10px;display:flex}#slick-carousel-gallery-demo .slick-prev,#slick-carousel-gallery-demo .slick-next{padding:10px;position:absolute;top:50%;z-index:1;cursor:pointer;zoom:2}#slick-carousel-gallery-demo .slick-prev{left:-8px}#slick-carousel-gallery-demo .slick-next{right:12px}#flickity-carousel-gallery-demo .flickity-slider{gap:10px;display:flex}#flickity-carousel-gallery-demo .flickity-slider .lg-item img{height:600px}#masonry-gallery-demo{margin:0 auto}#masonry-gallery-demo:after{content:'';display:block;clear:both}#masonry-gallery-demo .grid-sizer,#masonry-gallery-demo .lg-item{width:33.33%}#masonry-gallery-demo .lg-item{float:left;margin-bottom:10px}#masonry-gallery-demo .lg-item img{display:block;max-width:100%}#owl-carousel-gallery-demo .owl-carousel-item img{height:500px}.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}.dynamic-mode-images{position:relative;width:100%;height:auto}.btn-dynamic{color:#333;background-color:white;padding:5px 10px;position:absolute;bottom:15px;right:15px;font-size:14px;z-index:99}.blog-wrap{padding:100px 0 0 0;font-family:'Inter';font-style:normal;font-weight:400;font-size:18px;line-height:32px;color:#1A202C}@media (min-width: 768px){.blog-wrap{padding:100px 75px}}.blog-wrap .docs-hero-image{margin-bottom:60px}.blog-wrap .figure{display:inline-block;margin:1rem 0}@media (min-width: 768px){.blog-wrap .figure{margin:2rem -80px}}.blog-wrap .docs-hero-image{display:block}@media (min-width: 768px){.blog-wrap .docs-hero-image{margin-left:-120px;margin-right:-120px}}.blog-wrap .blog-header{margin-top:40px;margin-bottom:60px;max-width:700px}.blog-wrap .blog-header h1,.blog-wrap .blog-header .h1{font-style:normal;font-weight:700;font-size:36px;line-height:48px;margin:5px 0 24px 0;letter-spacing:0.01em;color:#1A202C}.blog-wrap .blog-header .blog-tags{display:inline-block;margin-right:8px}.blog-contributors .blog-contributors-list{font-weight:400;font-size:14px;line-height:20px;color:#718096}.blog-contributors .contributor-image img{max-width:36px;border-radius:4px;margin-right:8px}.blog-meta{font-family:'Inter';font-style:normal;font-weight:400;font-size:14px;line-height:16px;color:rgba(0,0,0,0.64)}.blog-meta strong{color:#000}.blog-list{padding-top:120px;padding-bottom:60px}.blog-list .blog-list-item+.blog-list-item{border-top:1px solid #e2e2ef;padding-top:48px;margin-top:48px}.blog-list .docs-hero-image{margin-bottom:24px;display:block}.blog-list .blog-meta{margin-bottom:24px}.blog-list .stretched-link:after{content:none}.blog-list h2,.blog-list .h2{margin:0 0 16px 0;font-style:normal;font-weight:700;font-size:34px;line-height:1.2;letter-spacing:0.01em;color:#1A202C}.blog-list .blog-body{font-family:'Inter';font-style:normal;font-weight:400;font-size:16px;line-height:24px;color:#4A5568}.blog-list .blog-contributors{margin-top:16px}.blog-text{color:#ffffff;font-size:12px;line-height:16px;display:flex;align-items:center}.blog-text:hover{color:#ffffff;text-decoration:none}.blog-text span{background-color:#805AD5;border-radius:6px;padding:4px 10px} diff --git a/main.2ae50898617c1120e5bfa38da879ce83d79a77b1988ca2128407d90e3ba26db48b439b6d8d21b57b84a1074f6e29ff3ba7ddcb6fdfa023d33767ebee3667240d.js b/main.2ae50898617c1120e5bfa38da879ce83d79a77b1988ca2128407d90e3ba26db48b439b6d8d21b57b84a1074f6e29ff3ba7ddcb6fdfa023d33767ebee3667240d.js deleted file mode 100644 index c4df1e1eb..000000000 --- a/main.2ae50898617c1120e5bfa38da879ce83d79a77b1988ca2128407d90e3ba26db48b439b6d8d21b57b84a1074f6e29ff3ba7ddcb6fdfa023d33767ebee3667240d.js +++ /dev/null @@ -1,7394 +0,0 @@ -/*! 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 0e;e++){var i=h[e];t[i]=0}return t}function n(t){var e=getComputedStyle(t);return e||a("Style returned "+e+". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1"),e}function o(){if(!d){d=!0;var e=document.createElement("div");e.style.width="200px",e.style.padding="1px 2px 3px 4px",e.style.borderStyle="solid",e.style.borderWidth="1px 2px 3px 4px",e.style.boxSizing="border-box";var i=document.body||document.documentElement;i.appendChild(e);var o=n(e);s=200==Math.round(t(o.width)),r.isBoxSizeOuter=s,i.removeChild(e)}}function r(e){if(o(),"string"==typeof e&&(e=document.querySelector(e)),e&&"object"==typeof e&&e.nodeType){var r=n(e);if("none"==r.display)return i();var a={};a.width=e.offsetWidth,a.height=e.offsetHeight;for(var d=a.isBorderBox="border-box"==r.boxSizing,l=0;u>l;l++){var c=h[l],f=r[c],m=parseFloat(f);a[c]=isNaN(m)?0:m}var p=a.paddingLeft+a.paddingRight,g=a.paddingTop+a.paddingBottom,y=a.marginLeft+a.marginRight,v=a.marginTop+a.marginBottom,_=a.borderLeftWidth+a.borderRightWidth,z=a.borderTopWidth+a.borderBottomWidth,E=d&&s,b=t(r.width);b!==!1&&(a.width=b+(E?0:p+_));var x=t(r.height);return x!==!1&&(a.height=x+(E?0:g+z)),a.innerWidth=a.width-(p+_),a.innerHeight=a.height-(g+z),a.outerWidth=a.width+y,a.outerHeight=a.height+v,a}}var s,a="undefined"==typeof console?e:function(t){console.error(t)},h=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],u=h.length,d=!1;return r}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("desandro-matches-selector/matches-selector",e):"object"==typeof module&&module.exports?module.exports=e():t.matchesSelector=e()}(window,function(){"use strict";var t=function(){var t=window.Element.prototype;if(t.matches)return"matches";if(t.matchesSelector)return"matchesSelector";for(var e=["webkit","moz","ms","o"],i=0;is?"round":"floor";r=Math[a](r),this.cols=Math.max(r,1)},n.getContainerWidth=function(){var t=this._getOption("fitWidth"),i=t?this.element.parentNode:this.element,n=e(i);this.containerWidth=n&&n.innerWidth},n._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth%this.columnWidth,i=e&&1>e?"round":"ceil",n=Math[i](t.size.outerWidth/this.columnWidth);n=Math.min(n,this.cols);for(var o=this.options.horizontalOrder?"_getHorizontalColPosition":"_getTopColPosition",r=this[o](n,t),s={x:this.columnWidth*r.col,y:r.y},a=r.y+t.size.outerHeight,h=n+r.col,u=r.col;h>u;u++)this.colYs[u]=a;return s},n._getTopColPosition=function(t){var e=this._getTopColGroup(t),i=Math.min.apply(Math,e);return{col:e.indexOf(i),y:i}},n._getTopColGroup=function(t){if(2>t)return this.colYs;for(var e=[],i=this.cols+1-t,n=0;i>n;n++)e[n]=this._getColGroupY(n,t);return e},n._getColGroupY=function(t,e){if(2>e)return this.colYs[t];var i=this.colYs.slice(t,t+e);return Math.max.apply(Math,i)},n._getHorizontalColPosition=function(t,e){var i=this.horizontalColIndex%this.cols,n=t>1&&i+t>this.cols;i=n?0:i;var o=e.size.outerWidth&&e.size.outerHeight;return this.horizontalColIndex=o?i+t:this.horizontalColIndex,{col:i,y:this._getColGroupY(i,t)}},n._manageStamp=function(t){var i=e(t),n=this._getElementOffset(t),o=this._getOption("originLeft"),r=o?n.left:n.right,s=r+i.outerWidth,a=Math.floor(r/this.columnWidth);a=Math.max(0,a);var h=Math.floor(s/this.columnWidth);h-=s%this.columnWidth?0:1,h=Math.min(this.cols-1,h);for(var u=this._getOption("originTop"),d=(u?n.top:n.bottom)+i.outerHeight,l=a;h>=l;l++)this.colYs[l]=Math.max(d,this.colYs[l])},n._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var t={height:this.maxY};return this._getOption("fitWidth")&&(t.width=this._getContainerFitWidth()),t},n._getContainerFitWidth=function(){for(var t=0,e=this.cols;--e&&0===this.colYs[e];)t++;return(this.cols-t)*this.columnWidth-this.gutter},n.needsResizeLayout=function(){var t=this.containerWidth;return this.getContainerWidth(),t!=this.containerWidth},i}); - -; -/*! - * imagesLoaded PACKAGED v4.1.4 - * JavaScript is all like "You images are done yet or what?" - * MIT License - */ - -/** - * EvEmitter v1.1.0 - * Lil' event emitter - * MIT License - */ - -/* jshint unused: true, undef: true, strict: true */ - -( function( global, factory ) { - // universal module definition - /* jshint strict: false */ /* globals define, module, window */ - if ( typeof define == 'function' && define.amd ) { - // AMD - RequireJS - define( 'ev-emitter/ev-emitter',factory ); - } else if ( typeof module == 'object' && module.exports ) { - // CommonJS - Browserify, Webpack - module.exports = factory(); - } else { - // Browser globals - global.EvEmitter = factory(); - } - - }( typeof window != 'undefined' ? window : this, function() { - - - - function EvEmitter() {} - - var proto = EvEmitter.prototype; - - proto.on = function( eventName, listener ) { - if ( !eventName || !listener ) { - return; - } - // set events hash - var events = this._events = this._events || {}; - // set listeners array - var listeners = events[ eventName ] = events[ eventName ] || []; - // only add once - if ( listeners.indexOf( listener ) == -1 ) { - listeners.push( listener ); - } - - return this; - }; - - proto.once = function( eventName, listener ) { - if ( !eventName || !listener ) { - return; - } - // add event - this.on( eventName, listener ); - // set once flag - // set onceEvents hash - var onceEvents = this._onceEvents = this._onceEvents || {}; - // set onceListeners object - var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {}; - // set flag - onceListeners[ listener ] = true; - - return this; - }; - - proto.off = function( eventName, listener ) { - var listeners = this._events && this._events[ eventName ]; - if ( !listeners || !listeners.length ) { - return; - } - var index = listeners.indexOf( listener ); - if ( index != -1 ) { - listeners.splice( index, 1 ); - } - - return this; - }; - - proto.emitEvent = function( eventName, args ) { - var listeners = this._events && this._events[ eventName ]; - if ( !listeners || !listeners.length ) { - return; - } - // copy over to avoid interference if .off() in listener - listeners = listeners.slice(0); - args = args || []; - // once stuff - var onceListeners = this._onceEvents && this._onceEvents[ eventName ]; - - for ( var i=0; i < listeners.length; i++ ) { - var listener = listeners[i] - var isOnce = onceListeners && onceListeners[ listener ]; - if ( isOnce ) { - // remove listener - // remove before trigger to prevent recursion - this.off( eventName, listener ); - // unset once flag - delete onceListeners[ listener ]; - } - // trigger listener - listener.apply( this, args ); - } - - return this; - }; - - proto.allOff = function() { - delete this._events; - delete this._onceEvents; - }; - - return EvEmitter; - - })); - - /*! - * imagesLoaded v4.1.4 - * JavaScript is all like "You images are done yet or what?" - * MIT License - */ - - ( function( window, factory ) { 'use strict'; - // universal module definition - - /*global define: false, module: false, require: false */ - - if ( typeof define == 'function' && define.amd ) { - // AMD - define( [ - 'ev-emitter/ev-emitter' - ], function( EvEmitter ) { - return factory( window, EvEmitter ); - }); - } else if ( typeof module == 'object' && module.exports ) { - // CommonJS - module.exports = factory( - window, - require('ev-emitter') - ); - } else { - // browser global - window.imagesLoaded = factory( - window, - window.EvEmitter - ); - } - - })( typeof window !== 'undefined' ? window : this, - - // -------------------------- factory -------------------------- // - - function factory( window, EvEmitter ) { - - - - var $ = window.jQuery; - var console = window.console; - - // -------------------------- helpers -------------------------- // - - // extend objects - function extend( a, b ) { - for ( var prop in b ) { - a[ prop ] = b[ prop ]; - } - return a; - } - - var arraySlice = Array.prototype.slice; - - // turn element or nodeList into an array - function makeArray( obj ) { - if ( Array.isArray( obj ) ) { - // use object if already an array - return obj; - } - - var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number'; - if ( isArrayLike ) { - // convert nodeList to array - return arraySlice.call( obj ); - } - - // array of single index - return [ obj ]; - } - - // -------------------------- imagesLoaded -------------------------- // - - /** - * @param {Array, Element, NodeList, String} elem - * @param {Object or Function} options - if function, use as callback - * @param {Function} onAlways - callback function - */ - function ImagesLoaded( elem, options, onAlways ) { - // coerce ImagesLoaded() without new, to be new ImagesLoaded() - if ( !( this instanceof ImagesLoaded ) ) { - return new ImagesLoaded( elem, options, onAlways ); - } - // use elem as selector string - var queryElem = elem; - if ( typeof elem == 'string' ) { - queryElem = document.querySelectorAll( elem ); - } - // bail if bad element - if ( !queryElem ) { - console.error( 'Bad element for imagesLoaded ' + ( queryElem || elem ) ); - return; - } - - this.elements = makeArray( queryElem ); - this.options = extend( {}, this.options ); - // shift arguments if no options set - if ( typeof options == 'function' ) { - onAlways = options; - } else { - extend( this.options, options ); - } - - if ( onAlways ) { - this.on( 'always', onAlways ); - } - - this.getImages(); - - if ( $ ) { - // add jQuery Deferred object - this.jqDeferred = new $.Deferred(); - } - - // HACK check async to allow time to bind listeners - setTimeout( this.check.bind( this ) ); - } - - ImagesLoaded.prototype = Object.create( EvEmitter.prototype ); - - ImagesLoaded.prototype.options = {}; - - ImagesLoaded.prototype.getImages = function() { - this.images = []; - - // filter & find items if we have an item selector - this.elements.forEach( this.addElementImages, this ); - }; - - /** - * @param {Node} element - */ - ImagesLoaded.prototype.addElementImages = function( elem ) { - // filter siblings - if ( elem.nodeName == 'IMG' ) { - this.addImage( elem ); - } - // get background image on element - if ( this.options.background === true ) { - this.addElementBackgroundImages( elem ); - } - - // find children - // no non-element nodes, #143 - var nodeType = elem.nodeType; - if ( !nodeType || !elementNodeTypes[ nodeType ] ) { - return; - } - var childImgs = elem.querySelectorAll('img'); - // concat childElems to filterFound array - for ( var i=0; i < childImgs.length; i++ ) { - var img = childImgs[i]; - this.addImage( img ); - } - - // get child background images - if ( typeof this.options.background == 'string' ) { - var children = elem.querySelectorAll( this.options.background ); - for ( i=0; i < children.length; i++ ) { - var child = children[i]; - this.addElementBackgroundImages( child ); - } - } - }; - - var elementNodeTypes = { - 1: true, - 9: true, - 11: true - }; - - ImagesLoaded.prototype.addElementBackgroundImages = function( elem ) { - var style = getComputedStyle( elem ); - if ( !style ) { - // Firefox returns null if in a hidden iframe https://bugzil.la/548397 - return; - } - // get url inside url("...") - var reURL = /url\((['"])?(.*?)\1\)/gi; - var matches = reURL.exec( style.backgroundImage ); - while ( matches !== null ) { - var url = matches && matches[2]; - if ( url ) { - this.addBackground( url, elem ); - } - matches = reURL.exec( style.backgroundImage ); - } - }; - - /** - * @param {Image} img - */ - ImagesLoaded.prototype.addImage = function( img ) { - var loadingImage = new LoadingImage( img ); - this.images.push( loadingImage ); - }; - - ImagesLoaded.prototype.addBackground = function( url, elem ) { - var background = new Background( url, elem ); - this.images.push( background ); - }; - - ImagesLoaded.prototype.check = function() { - var _this = this; - this.progressedCount = 0; - this.hasAnyBroken = false; - // complete if no images - if ( !this.images.length ) { - this.complete(); - return; - } - - function onProgress( image, elem, message ) { - // HACK - Chrome triggers event before object properties have changed. #83 - setTimeout( function() { - _this.progress( image, elem, message ); - }); - } - - this.images.forEach( function( loadingImage ) { - loadingImage.once( 'progress', onProgress ); - loadingImage.check(); - }); - }; - - ImagesLoaded.prototype.progress = function( image, elem, message ) { - this.progressedCount++; - this.hasAnyBroken = this.hasAnyBroken || !image.isLoaded; - // progress event - this.emitEvent( 'progress', [ this, image, elem ] ); - if ( this.jqDeferred && this.jqDeferred.notify ) { - this.jqDeferred.notify( this, image ); - } - // check if completed - if ( this.progressedCount == this.images.length ) { - this.complete(); - } - - if ( this.options.debug && console ) { - console.log( 'progress: ' + message, image, elem ); - } - }; - - ImagesLoaded.prototype.complete = function() { - var eventName = this.hasAnyBroken ? 'fail' : 'done'; - this.isComplete = true; - this.emitEvent( eventName, [ this ] ); - this.emitEvent( 'always', [ this ] ); - if ( this.jqDeferred ) { - var jqMethod = this.hasAnyBroken ? 'reject' : 'resolve'; - this.jqDeferred[ jqMethod ]( this ); - } - }; - - // -------------------------- -------------------------- // - - function LoadingImage( img ) { - this.img = img; - } - - LoadingImage.prototype = Object.create( EvEmitter.prototype ); - - LoadingImage.prototype.check = function() { - // If complete is true and browser supports natural sizes, - // try to check for image status manually. - var isComplete = this.getIsImageComplete(); - if ( isComplete ) { - // report based on naturalWidth - this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' ); - return; - } - - // If none of the checks above matched, simulate loading on detached element. - this.proxyImage = new Image(); - this.proxyImage.addEventListener( 'load', this ); - this.proxyImage.addEventListener( 'error', this ); - // bind to image as well for Firefox. #191 - this.img.addEventListener( 'load', this ); - this.img.addEventListener( 'error', this ); - this.proxyImage.src = this.img.src; - }; - - LoadingImage.prototype.getIsImageComplete = function() { - // check for non-zero, non-undefined naturalWidth - // fixes Safari+InfiniteScroll+Masonry bug infinite-scroll#671 - return this.img.complete && this.img.naturalWidth; - }; - - LoadingImage.prototype.confirm = function( isLoaded, message ) { - this.isLoaded = isLoaded; - this.emitEvent( 'progress', [ this, this.img, message ] ); - }; - - // ----- events ----- // - - // trigger specified handler for event type - LoadingImage.prototype.handleEvent = function( event ) { - var method = 'on' + event.type; - if ( this[ method ] ) { - this[ method ]( event ); - } - }; - - LoadingImage.prototype.onload = function() { - this.confirm( true, 'onload' ); - this.unbindEvents(); - }; - - LoadingImage.prototype.onerror = function() { - this.confirm( false, 'onerror' ); - this.unbindEvents(); - }; - - LoadingImage.prototype.unbindEvents = function() { - this.proxyImage.removeEventListener( 'load', this ); - this.proxyImage.removeEventListener( 'error', this ); - this.img.removeEventListener( 'load', this ); - this.img.removeEventListener( 'error', this ); - }; - - // -------------------------- Background -------------------------- // - - function Background( url, element ) { - this.url = url; - this.element = element; - this.img = new Image(); - } - - // inherit LoadingImage prototype - Background.prototype = Object.create( LoadingImage.prototype ); - - Background.prototype.check = function() { - this.img.addEventListener( 'load', this ); - this.img.addEventListener( 'error', this ); - this.img.src = this.url; - // check if image is already complete - var isComplete = this.getIsImageComplete(); - if ( isComplete ) { - this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' ); - this.unbindEvents(); - } - }; - - Background.prototype.unbindEvents = function() { - this.img.removeEventListener( 'load', this ); - this.img.removeEventListener( 'error', this ); - }; - - Background.prototype.confirm = function( isLoaded, message ) { - this.isLoaded = isLoaded; - this.emitEvent( 'progress', [ this, this.element, message ] ); - }; - - // -------------------------- jQuery -------------------------- // - - ImagesLoaded.makeJQueryPlugin = function( jQuery ) { - jQuery = jQuery || window.jQuery; - if ( !jQuery ) { - return; - } - // set local variable - $ = jQuery; - // $().imagesLoaded() - $.fn.imagesLoaded = function( options, callback ) { - var instance = new ImagesLoaded( this, options, callback ); - return instance.jqDeferred.promise( $(this) ); - }; - }; - // try making plugin - ImagesLoaded.makeJQueryPlugin(); - - // -------------------------- -------------------------- // - - return ImagesLoaded; - - }); - -; -/** - * Swiper 9.4.1 - * Most modern mobile touch slider and framework with hardware accelerated transitions - * https://swiperjs.com - * - * Copyright 2014-2023 Vladimir Kharlampidi - * - * Released under the MIT License - * - * Released on: June 13, 2023 - */ - -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).Swiper=t()}(this,(function(){"use strict";function e(e){return null!==e&&"object"==typeof e&&"constructor"in e&&e.constructor===Object}function t(s,a){void 0===s&&(s={}),void 0===a&&(a={}),Object.keys(a).forEach((i=>{void 0===s[i]?s[i]=a[i]:e(a[i])&&e(s[i])&&Object.keys(a[i]).length>0&&t(s[i],a[i])}))}const s={body:{},addEventListener(){},removeEventListener(){},activeElement:{blur(){},nodeName:""},querySelector:()=>null,querySelectorAll:()=>[],getElementById:()=>null,createEvent:()=>({initEvent(){}}),createElement:()=>({children:[],childNodes:[],style:{},setAttribute(){},getElementsByTagName:()=>[]}),createElementNS:()=>({}),importNode:()=>null,location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}};function a(){const e="undefined"!=typeof document?document:{};return t(e,s),e}const i={document:s,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState(){},pushState(){},go(){},back(){}},CustomEvent:function(){return this},addEventListener(){},removeEventListener(){},getComputedStyle:()=>({getPropertyValue:()=>""}),Image(){},Date(){},screen:{},setTimeout(){},clearTimeout(){},matchMedia:()=>({}),requestAnimationFrame:e=>"undefined"==typeof setTimeout?(e(),null):setTimeout(e,0),cancelAnimationFrame(e){"undefined"!=typeof setTimeout&&clearTimeout(e)}};function r(){const e="undefined"!=typeof window?window:{};return t(e,i),e}function n(e,t){return void 0===t&&(t=0),setTimeout(e,t)}function l(){return Date.now()}function o(e,t){void 0===t&&(t="x");const s=r();let a,i,n;const l=function(e){const t=r();let s;return t.getComputedStyle&&(s=t.getComputedStyle(e,null)),!s&&e.currentStyle&&(s=e.currentStyle),s||(s=e.style),s}(e);return s.WebKitCSSMatrix?(i=l.transform||l.webkitTransform,i.split(",").length>6&&(i=i.split(", ").map((e=>e.replace(",","."))).join(", ")),n=new s.WebKitCSSMatrix("none"===i?"":i)):(n=l.MozTransform||l.OTransform||l.MsTransform||l.msTransform||l.transform||l.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),a=n.toString().split(",")),"x"===t&&(i=s.WebKitCSSMatrix?n.m41:16===a.length?parseFloat(a[12]):parseFloat(a[4])),"y"===t&&(i=s.WebKitCSSMatrix?n.m42:16===a.length?parseFloat(a[13]):parseFloat(a[5])),i||0}function d(e){return"object"==typeof e&&null!==e&&e.constructor&&"Object"===Object.prototype.toString.call(e).slice(8,-1)}function c(e){return"undefined"!=typeof window&&void 0!==window.HTMLElement?e instanceof HTMLElement:e&&(1===e.nodeType||11===e.nodeType)}function p(){const e=Object(arguments.length<=0?void 0:arguments[0]),t=["__proto__","constructor","prototype"];for(let s=1;st.indexOf(e)<0));for(let t=0,i=s.length;tn?"next":"prev",p=(e,t)=>"next"===c&&e>=t||"prev"===c&&e<=t,u=()=>{l=(new Date).getTime(),null===o&&(o=l);const e=Math.max(Math.min((l-o)/d,1),0),r=.5-Math.cos(e*Math.PI)/2;let c=n+r*(s-n);if(p(c,s)&&(c=s),t.wrapperEl.scrollTo({[a]:c}),p(c,s))return t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.scrollSnapType="",setTimeout((()=>{t.wrapperEl.style.overflow="",t.wrapperEl.scrollTo({[a]:c})})),void i.cancelAnimationFrame(t.cssModeFrameID);t.cssModeFrameID=i.requestAnimationFrame(u)};u()}function h(e){return e.querySelector(".swiper-slide-transform")||e.shadowEl&&e.shadowEl.querySelector(".swiper-slide-transform")||e}function f(e,t){return void 0===t&&(t=""),[...e.children].filter((e=>e.matches(t)))}function g(e,t){void 0===t&&(t=[]);const s=document.createElement(e);return s.classList.add(...Array.isArray(t)?t:[t]),s}function v(e){const t=r(),s=a(),i=e.getBoundingClientRect(),n=s.body,l=e.clientTop||n.clientTop||0,o=e.clientLeft||n.clientLeft||0,d=e===t?t.scrollY:e.scrollTop,c=e===t?t.scrollX:e.scrollLeft;return{top:i.top+d-l,left:i.left+c-o}}function w(e,t){return r().getComputedStyle(e,null).getPropertyValue(t)}function b(e){let t,s=e;if(s){for(t=0;null!==(s=s.previousSibling);)1===s.nodeType&&(t+=1);return t}}function y(e,t){const s=[];let a=e.parentElement;for(;a;)t?a.matches(t)&&s.push(a):s.push(a),a=a.parentElement;return s}function E(e,t){t&&e.addEventListener("transitionend",(function s(a){a.target===e&&(t.call(e,a),e.removeEventListener("transitionend",s))}))}function x(e,t,s){const a=r();return s?e["width"===t?"offsetWidth":"offsetHeight"]+parseFloat(a.getComputedStyle(e,null).getPropertyValue("width"===t?"margin-right":"margin-top"))+parseFloat(a.getComputedStyle(e,null).getPropertyValue("width"===t?"margin-left":"margin-bottom")):e.offsetWidth}let S,T,M;function C(){return S||(S=function(){const e=r(),t=a();return{smoothScroll:t.documentElement&&t.documentElement.style&&"scrollBehavior"in t.documentElement.style,touch:!!("ontouchstart"in e||e.DocumentTouch&&t instanceof e.DocumentTouch)}}()),S}function P(e){return void 0===e&&(e={}),T||(T=function(e){let{userAgent:t}=void 0===e?{}:e;const s=C(),a=r(),i=a.navigator.platform,n=t||a.navigator.userAgent,l={ios:!1,android:!1},o=a.screen.width,d=a.screen.height,c=n.match(/(Android);?[\s\/]+([\d.]+)?/);let p=n.match(/(iPad).*OS\s([\d_]+)/);const u=n.match(/(iPod)(.*OS\s([\d_]+))?/),m=!p&&n.match(/(iPhone\sOS|iOS)\s([\d_]+)/),h="Win32"===i;let f="MacIntel"===i;return!p&&f&&s.touch&&["1024x1366","1366x1024","834x1194","1194x834","834x1112","1112x834","768x1024","1024x768","820x1180","1180x820","810x1080","1080x810"].indexOf(`${o}x${d}`)>=0&&(p=n.match(/(Version)\/([\d.]+)/),p||(p=[0,1,"13_0_0"]),f=!1),c&&!h&&(l.os="android",l.android=!0),(p||m||u)&&(l.os="ios",l.ios=!0),l}(e)),T}function L(){return M||(M=function(){const e=r();let t=!1;function s(){const t=e.navigator.userAgent.toLowerCase();return t.indexOf("safari")>=0&&t.indexOf("chrome")<0&&t.indexOf("android")<0}if(s()){const s=String(e.navigator.userAgent);if(s.includes("Version/")){const[e,a]=s.split("Version/")[1].split(" ")[0].split(".").map((e=>Number(e)));t=e<16||16===e&&a<2}}return{isSafari:t||s(),needPerspectiveFix:t,isWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(e.navigator.userAgent)}}()),M}var z={on(e,t,s){const a=this;if(!a.eventsListeners||a.destroyed)return a;if("function"!=typeof t)return a;const i=s?"unshift":"push";return e.split(" ").forEach((e=>{a.eventsListeners[e]||(a.eventsListeners[e]=[]),a.eventsListeners[e][i](t)})),a},once(e,t,s){const a=this;if(!a.eventsListeners||a.destroyed)return a;if("function"!=typeof t)return a;function i(){a.off(e,i),i.__emitterProxy&&delete i.__emitterProxy;for(var s=arguments.length,r=new Array(s),n=0;n=0&&t.eventsAnyListeners.splice(s,1),t},off(e,t){const s=this;return!s.eventsListeners||s.destroyed?s:s.eventsListeners?(e.split(" ").forEach((e=>{void 0===t?s.eventsListeners[e]=[]:s.eventsListeners[e]&&s.eventsListeners[e].forEach(((a,i)=>{(a===t||a.__emitterProxy&&a.__emitterProxy===t)&&s.eventsListeners[e].splice(i,1)}))})),s):s},emit(){const e=this;if(!e.eventsListeners||e.destroyed)return e;if(!e.eventsListeners)return e;let t,s,a;for(var i=arguments.length,r=new Array(i),n=0;n{e.eventsAnyListeners&&e.eventsAnyListeners.length&&e.eventsAnyListeners.forEach((e=>{e.apply(a,[t,...s])})),e.eventsListeners&&e.eventsListeners[t]&&e.eventsListeners[t].forEach((e=>{e.apply(a,s)}))})),e}};const A=(e,t)=>{if(!e||e.destroyed||!e.params)return;const s=t.closest(e.isElement?"swiper-slide":`.${e.params.slideClass}`);if(s){const t=s.querySelector(`.${e.params.lazyPreloaderClass}`);t&&t.remove()}},$=(e,t)=>{if(!e.slides[t])return;const s=e.slides[t].querySelector('[loading="lazy"]');s&&s.removeAttribute("loading")},I=e=>{if(!e||e.destroyed||!e.params)return;let t=e.params.lazyPreloadPrevNext;const s=e.slides.length;if(!s||!t||t<0)return;t=Math.min(t,s);const a="auto"===e.params.slidesPerView?e.slidesPerViewDynamic():Math.ceil(e.params.slidesPerView),i=e.activeIndex;if(e.params.grid&&e.params.grid.rows>1){const s=i,r=[s-t];return r.push(...Array.from({length:t}).map(((e,t)=>s+a+t))),void e.slides.forEach(((t,s)=>{r.includes(t.column)&&$(e,s)}))}const r=i+a-1;if(e.params.rewind||e.params.loop)for(let a=i-t;a<=r+t;a+=1){const t=(a%s+s)%s;(tr)&&$(e,t)}else for(let a=Math.max(i-t,0);a<=Math.min(r+t,s-1);a+=1)a!==i&&(a>r||a=0?T=parseFloat(T.replace("%",""))/100*n:"string"==typeof T&&(T=parseFloat(T)),e.virtualSize=-T,p.forEach((e=>{l?e.style.marginLeft="":e.style.marginRight="",e.style.marginBottom="",e.style.marginTop=""})),a.centeredSlides&&a.cssMode&&(u(i,"--swiper-centered-offset-before",""),u(i,"--swiper-centered-offset-after",""));const L=a.grid&&a.grid.rows>1&&e.grid;let z;L&&e.grid.initSlides(m);const A="auto"===a.slidesPerView&&a.breakpoints&&Object.keys(a.breakpoints).filter((e=>void 0!==a.breakpoints[e].slidesPerView)).length>0;for(let i=0;i1&&h.push(e.virtualSize-n)}if(d&&a.loop){const t=v[0]+T;if(a.slidesPerGroup>1){const s=Math.ceil((e.virtual.slidesBefore+e.virtual.slidesAfter)/a.slidesPerGroup),i=t*a.slidesPerGroup;for(let e=0;e!(a.cssMode&&!a.loop)||t!==p.length-1)).forEach((e=>{e.style[s]=`${T}px`}))}if(a.centeredSlides&&a.centeredSlidesBounds){let e=0;v.forEach((t=>{e+=t+(T||0)})),e-=T;const t=e-n;h=h.map((e=>e<=0?-b:e>t?t+y:e))}if(a.centerInsufficientSlides){let e=0;if(v.forEach((t=>{e+=t+(T||0)})),e-=T,e{h[s]=e-t})),g.forEach(((e,s)=>{g[s]=e+t}))}}if(Object.assign(e,{slides:p,snapGrid:h,slidesGrid:g,slidesSizesGrid:v}),a.centeredSlides&&a.cssMode&&!a.centeredSlidesBounds){u(i,"--swiper-centered-offset-before",-h[0]+"px"),u(i,"--swiper-centered-offset-after",e.size/2-v[v.length-1]/2+"px");const t=-e.snapGrid[0],s=-e.slidesGrid[0];e.snapGrid=e.snapGrid.map((e=>e+t)),e.slidesGrid=e.slidesGrid.map((e=>e+s))}if(m!==c&&e.emit("slidesLengthChange"),h.length!==E&&(e.params.watchOverflow&&e.checkOverflow(),e.emit("snapGridLengthChange")),g.length!==S&&e.emit("slidesGridLengthChange"),a.watchSlidesProgress&&e.updateSlidesOffset(),!(d||a.cssMode||"slide"!==a.effect&&"fade"!==a.effect)){const t=`${a.containerModifierClass}backface-hidden`,s=e.el.classList.contains(t);m<=a.maxBackfaceHiddenSlides?s||e.el.classList.add(t):s&&e.el.classList.remove(t)}},updateAutoHeight:function(e){const t=this,s=[],a=t.virtual&&t.params.virtual.enabled;let i,r=0;"number"==typeof e?t.setTransition(e):!0===e&&t.setTransition(t.params.speed);const n=e=>a?t.slides[t.getSlideIndexByData(e)]:t.slides[e];if("auto"!==t.params.slidesPerView&&t.params.slidesPerView>1)if(t.params.centeredSlides)(t.visibleSlides||[]).forEach((e=>{s.push(e)}));else for(i=0;it.slides.length&&!a)break;s.push(n(e))}else s.push(n(t.activeIndex));for(i=0;ir?e:r}(r||0===r)&&(t.wrapperEl.style.height=`${r}px`)},updateSlidesOffset:function(){const e=this,t=e.slides,s=e.isElement?e.isHorizontal()?e.wrapperEl.offsetLeft:e.wrapperEl.offsetTop:0;for(let a=0;a{e.classList.remove(s.slideVisibleClass)})),t.visibleSlidesIndexes=[],t.visibleSlides=[];let l=s.spaceBetween;"string"==typeof l&&l.indexOf("%")>=0?l=parseFloat(l.replace("%",""))/100*t.size:"string"==typeof l&&(l=parseFloat(l));for(let e=0;e=0&&u1&&m<=t.size||u<=0&&m>=t.size)&&(t.visibleSlides.push(o),t.visibleSlidesIndexes.push(e),a[e].classList.add(s.slideVisibleClass)),o.progress=i?-c:c,o.originalProgress=i?-p:p}},updateProgress:function(e){const t=this;if(void 0===e){const s=t.rtlTranslate?-1:1;e=t&&t.translate&&t.translate*s||0}const s=t.params,a=t.maxTranslate()-t.minTranslate();let{progress:i,isBeginning:r,isEnd:n,progressLoop:l}=t;const o=r,d=n;if(0===a)i=0,r=!0,n=!0;else{i=(e-t.minTranslate())/a;const s=Math.abs(e-t.minTranslate())<1,l=Math.abs(e-t.maxTranslate())<1;r=s||i<=0,n=l||i>=1,s&&(i=0),l&&(i=1)}if(s.loop){const s=t.getSlideIndexByData(0),a=t.getSlideIndexByData(t.slides.length-1),i=t.slidesGrid[s],r=t.slidesGrid[a],n=t.slidesGrid[t.slidesGrid.length-1],o=Math.abs(e);l=o>=i?(o-i)/n:(o+n-r)/n,l>1&&(l-=1)}Object.assign(t,{progress:i,progressLoop:l,isBeginning:r,isEnd:n}),(s.watchSlidesProgress||s.centeredSlides&&s.autoHeight)&&t.updateSlidesProgress(e),r&&!o&&t.emit("reachBeginning toEdge"),n&&!d&&t.emit("reachEnd toEdge"),(o&&!r||d&&!n)&&t.emit("fromEdge"),t.emit("progress",i)},updateSlidesClasses:function(){const e=this,{slides:t,params:s,slidesEl:a,activeIndex:i}=e,r=e.virtual&&s.virtual.enabled,n=e=>f(a,`.${s.slideClass}${e}, swiper-slide${e}`)[0];let l;if(t.forEach((e=>{e.classList.remove(s.slideActiveClass,s.slideNextClass,s.slidePrevClass)})),r)if(s.loop){let t=i-e.virtual.slidesBefore;t<0&&(t=e.virtual.slides.length+t),t>=e.virtual.slides.length&&(t-=e.virtual.slides.length),l=n(`[data-swiper-slide-index="${t}"]`)}else l=n(`[data-swiper-slide-index="${i}"]`);else l=t[i];if(l){l.classList.add(s.slideActiveClass);let e=function(e,t){const s=[];for(;e.nextElementSibling;){const a=e.nextElementSibling;t?a.matches(t)&&s.push(a):s.push(a),e=a}return s}(l,`.${s.slideClass}, swiper-slide`)[0];s.loop&&!e&&(e=t[0]),e&&e.classList.add(s.slideNextClass);let a=function(e,t){const s=[];for(;e.previousElementSibling;){const a=e.previousElementSibling;t?a.matches(t)&&s.push(a):s.push(a),e=a}return s}(l,`.${s.slideClass}, swiper-slide`)[0];s.loop&&0===!a&&(a=t[t.length-1]),a&&a.classList.add(s.slidePrevClass)}e.emitSlidesClasses()},updateActiveIndex:function(e){const t=this,s=t.rtlTranslate?t.translate:-t.translate,{snapGrid:a,params:i,activeIndex:r,realIndex:n,snapIndex:l}=t;let o,d=e;const c=e=>{let s=e-t.virtual.slidesBefore;return s<0&&(s=t.virtual.slides.length+s),s>=t.virtual.slides.length&&(s-=t.virtual.slides.length),s};if(void 0===d&&(d=function(e){const{slidesGrid:t,params:s}=e,a=e.rtlTranslate?e.translate:-e.translate;let i;for(let e=0;e=t[e]&&a=t[e]&&a=t[e]&&(i=e);return s.normalizeSlideIndex&&(i<0||void 0===i)&&(i=0),i}(t)),a.indexOf(s)>=0)o=a.indexOf(s);else{const e=Math.min(i.slidesPerGroupSkip,d);o=e+Math.floor((d-e)/i.slidesPerGroup)}if(o>=a.length&&(o=a.length-1),d===r)return o!==l&&(t.snapIndex=o,t.emit("snapIndexChange")),void(t.params.loop&&t.virtual&&t.params.virtual.enabled&&(t.realIndex=c(d)));let p;p=t.virtual&&i.virtual.enabled&&i.loop?c(d):t.slides[d]?parseInt(t.slides[d].getAttribute("data-swiper-slide-index")||d,10):d,Object.assign(t,{previousSnapIndex:l,snapIndex:o,previousRealIndex:n,realIndex:p,previousIndex:r,activeIndex:d}),t.initialized&&I(t),t.emit("activeIndexChange"),t.emit("snapIndexChange"),n!==p&&t.emit("realIndexChange"),(t.initialized||t.params.runCallbacksOnInit)&&t.emit("slideChange")},updateClickedSlide:function(e){const t=this,s=t.params,a=e.closest(`.${s.slideClass}, swiper-slide`);let i,r=!1;if(a)for(let e=0;eo?o:a&&en?"next":r=o.length&&(v=o.length-1);const w=-o[v];if(l.normalizeSlideIndex)for(let e=0;e=s&&t=s&&t=s&&(n=e)}if(r.initialized&&n!==p){if(!r.allowSlideNext&&(u?w>r.translate&&w>r.minTranslate():wr.translate&&w>r.maxTranslate()&&(p||0)!==n)return!1}let b;if(n!==(c||0)&&s&&r.emit("beforeSlideChangeStart"),r.updateProgress(w),b=n>p?"next":n0?(r._cssModeVirtualInitialSet=!0,requestAnimationFrame((()=>{h[e?"scrollLeft":"scrollTop"]=s}))):h[e?"scrollLeft":"scrollTop"]=s,t&&requestAnimationFrame((()=>{r.wrapperEl.style.scrollSnapType="",r._immediateVirtual=!1}))}else{if(!r.support.smoothScroll)return m({swiper:r,targetPosition:s,side:e?"left":"top"}),!0;h.scrollTo({[e?"left":"top"]:s,behavior:"smooth"})}return!0}return r.setTransition(t),r.setTranslate(w),r.updateActiveIndex(n),r.updateSlidesClasses(),r.emit("beforeTransitionStart",t,a),r.transitionStart(s,b),0===t?r.transitionEnd(s,b):r.animating||(r.animating=!0,r.onSlideToWrapperTransitionEnd||(r.onSlideToWrapperTransitionEnd=function(e){r&&!r.destroyed&&e.target===this&&(r.wrapperEl.removeEventListener("transitionend",r.onSlideToWrapperTransitionEnd),r.onSlideToWrapperTransitionEnd=null,delete r.onSlideToWrapperTransitionEnd,r.transitionEnd(s,b))}),r.wrapperEl.addEventListener("transitionend",r.onSlideToWrapperTransitionEnd)),!0},slideToLoop:function(e,t,s,a){if(void 0===e&&(e=0),void 0===t&&(t=this.params.speed),void 0===s&&(s=!0),"string"==typeof e){e=parseInt(e,10)}const i=this;let r=e;return i.params.loop&&(i.virtual&&i.params.virtual.enabled?r+=i.virtual.slidesBefore:r=i.getSlideIndexByData(r)),i.slideTo(r,t,s,a)},slideNext:function(e,t,s){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);const a=this,{enabled:i,params:r,animating:n}=a;if(!i)return a;let l=r.slidesPerGroup;"auto"===r.slidesPerView&&1===r.slidesPerGroup&&r.slidesPerGroupAuto&&(l=Math.max(a.slidesPerViewDynamic("current",!0),1));const o=a.activeIndexp(e)));let h=r[m.indexOf(u)-1];if(void 0===h&&i.cssMode){let e;r.forEach(((t,s)=>{u>=t&&(e=s)})),void 0!==e&&(h=r[e>0?e-1:e])}let f=0;if(void 0!==h&&(f=n.indexOf(h),f<0&&(f=a.activeIndex-1),"auto"===i.slidesPerView&&1===i.slidesPerGroup&&i.slidesPerGroupAuto&&(f=f-a.slidesPerViewDynamic("previous",!0)+1,f=Math.max(f,0))),i.rewind&&a.isBeginning){const i=a.params.virtual&&a.params.virtual.enabled&&a.virtual?a.virtual.slides.length-1:a.slides.length-1;return a.slideTo(i,e,t,s)}return a.slideTo(f,e,t,s)},slideReset:function(e,t,s){return void 0===e&&(e=this.params.speed),void 0===t&&(t=!0),this.slideTo(this.activeIndex,e,t,s)},slideToClosest:function(e,t,s,a){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0),void 0===a&&(a=.5);const i=this;let r=i.activeIndex;const n=Math.min(i.params.slidesPerGroupSkip,r),l=n+Math.floor((r-n)/i.params.slidesPerGroup),o=i.rtlTranslate?i.translate:-i.translate;if(o>=i.snapGrid[l]){const e=i.snapGrid[l];o-e>(i.snapGrid[l+1]-e)*a&&(r+=i.params.slidesPerGroup)}else{const e=i.snapGrid[l-1];o-e<=(i.snapGrid[l]-e)*a&&(r-=i.params.slidesPerGroup)}return r=Math.max(r,0),r=Math.min(r,i.slidesGrid.length-1),i.slideTo(r,e,t,s)},slideToClickedSlide:function(){const e=this,{params:t,slidesEl:s}=e,a="auto"===t.slidesPerView?e.slidesPerViewDynamic():t.slidesPerView;let i,r=e.clickedIndex;const l=e.isElement?"swiper-slide":`.${t.slideClass}`;if(t.loop){if(e.animating)return;i=parseInt(e.clickedSlide.getAttribute("data-swiper-slide-index"),10),t.centeredSlides?re.slides.length-e.loopedSlides+a/2?(e.loopFix(),r=e.getSlideIndex(f(s,`${l}[data-swiper-slide-index="${i}"]`)[0]),n((()=>{e.slideTo(r)}))):e.slideTo(r):r>e.slides.length-a?(e.loopFix(),r=e.getSlideIndex(f(s,`${l}[data-swiper-slide-index="${i}"]`)[0]),n((()=>{e.slideTo(r)}))):e.slideTo(r)}else e.slideTo(r)}};var H={loopCreate:function(e){const t=this,{params:s,slidesEl:a}=t;if(!s.loop||t.virtual&&t.params.virtual.enabled)return;f(a,`.${s.slideClass}, swiper-slide`).forEach(((e,t)=>{e.setAttribute("data-swiper-slide-index",t)})),t.loopFix({slideRealIndex:e,direction:s.centeredSlides?void 0:"next"})},loopFix:function(e){let{slideRealIndex:t,slideTo:s=!0,direction:a,setTranslate:i,activeSlideIndex:r,byController:n,byMousewheel:l}=void 0===e?{}:e;const o=this;if(!o.params.loop)return;o.emit("beforeLoopFix");const{slides:d,allowSlidePrev:c,allowSlideNext:p,slidesEl:u,params:m}=o;if(o.allowSlidePrev=!0,o.allowSlideNext=!0,o.virtual&&m.virtual.enabled)return s&&(m.centeredSlides||0!==o.snapIndex?m.centeredSlides&&o.snapIndexe.classList.contains(m.slideActiveClass)))[0]):w=r;const b="next"===a||!a,y="prev"===a||!a;let E=0,x=0;if(ro.slides.length-2*f){x=Math.max(r-(o.slides.length-2*f),m.slidesPerGroup);for(let e=0;e{o.slides[e].swiperLoopMoveDOM=!0,u.prepend(o.slides[e]),o.slides[e].swiperLoopMoveDOM=!1})),b&&v.forEach((e=>{o.slides[e].swiperLoopMoveDOM=!0,u.append(o.slides[e]),o.slides[e].swiperLoopMoveDOM=!1})),o.recalcSlides(),"auto"===m.slidesPerView&&o.updateSlides(),m.watchSlidesProgress&&o.updateSlidesOffset(),s)if(g.length>0&&y)if(void 0===t){const e=o.slidesGrid[w],t=o.slidesGrid[w+E]-e;l?o.setTranslate(o.translate-t):(o.slideTo(w+E,0,!1,!0),i&&(o.touches[o.isHorizontal()?"startX":"startY"]+=t))}else i&&o.slideToLoop(t,0,!1,!0);else if(v.length>0&&b)if(void 0===t){const e=o.slidesGrid[w],t=o.slidesGrid[w-x]-e;l?o.setTranslate(o.translate-t):(o.slideTo(w-x,0,!1,!0),i&&(o.touches[o.isHorizontal()?"startX":"startY"]+=t))}else o.slideToLoop(t,0,!1,!0);if(o.allowSlidePrev=c,o.allowSlideNext=p,o.controller&&o.controller.control&&!n){const e={slideRealIndex:t,slideTo:!1,direction:a,setTranslate:i,activeSlideIndex:r,byController:!0};Array.isArray(o.controller.control)?o.controller.control.forEach((t=>{!t.destroyed&&t.params.loop&&t.loopFix(e)})):o.controller.control instanceof o.constructor&&o.controller.control.params.loop&&o.controller.control.loopFix(e)}o.emit("loopFix")},loopDestroy:function(){const e=this,{params:t,slidesEl:s}=e;if(!t.loop||e.virtual&&e.params.virtual.enabled)return;e.recalcSlides();const a=[];e.slides.forEach((e=>{const t=void 0===e.swiperSlideIndex?1*e.getAttribute("data-swiper-slide-index"):e.swiperSlideIndex;a[t]=e})),e.slides.forEach((e=>{e.removeAttribute("data-swiper-slide-index")})),a.forEach((e=>{s.append(e)})),e.recalcSlides(),e.slideTo(e.realIndex,0)}};function X(e){const t=this,s=a(),i=r(),n=t.touchEventsData;n.evCache.push(e);const{params:o,touches:d,enabled:c}=t;if(!c)return;if(!o.simulateTouch&&"mouse"===e.pointerType)return;if(t.animating&&o.preventInteractionOnTransition)return;!t.animating&&o.cssMode&&o.loop&&t.loopFix();let p=e;p.originalEvent&&(p=p.originalEvent);let u=p.target;if("wrapper"===o.touchEventsTarget&&!t.wrapperEl.contains(u))return;if("which"in p&&3===p.which)return;if("button"in p&&p.button>0)return;if(n.isTouched&&n.isMoved)return;const m=!!o.noSwipingClass&&""!==o.noSwipingClass,h=e.composedPath?e.composedPath():e.path;m&&p.target&&p.target.shadowRoot&&h&&(u=h[0]);const f=o.noSwipingSelector?o.noSwipingSelector:`.${o.noSwipingClass}`,g=!(!p.target||!p.target.shadowRoot);if(o.noSwiping&&(g?function(e,t){return void 0===t&&(t=this),function t(s){if(!s||s===a()||s===r())return null;s.assignedSlot&&(s=s.assignedSlot);const i=s.closest(e);return i||s.getRootNode?i||t(s.getRootNode().host):null}(t)}(f,u):u.closest(f)))return void(t.allowClick=!0);if(o.swipeHandler&&!u.closest(o.swipeHandler))return;d.currentX=p.pageX,d.currentY=p.pageY;const v=d.currentX,w=d.currentY,b=o.edgeSwipeDetection||o.iOSEdgeSwipeDetection,y=o.edgeSwipeThreshold||o.iOSEdgeSwipeThreshold;if(b&&(v<=y||v>=i.innerWidth-y)){if("prevent"!==b)return;e.preventDefault()}Object.assign(n,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),d.startX=v,d.startY=w,n.touchStartTime=l(),t.allowClick=!0,t.updateSize(),t.swipeDirection=void 0,o.threshold>0&&(n.allowThresholdMove=!1);let E=!0;u.matches(n.focusableElements)&&(E=!1,"SELECT"===u.nodeName&&(n.isTouched=!1)),s.activeElement&&s.activeElement.matches(n.focusableElements)&&s.activeElement!==u&&s.activeElement.blur();const x=E&&t.allowTouchMove&&o.touchStartPreventDefault;!o.touchStartForcePreventDefault&&!x||u.isContentEditable||p.preventDefault(),o.freeMode&&o.freeMode.enabled&&t.freeMode&&t.animating&&!o.cssMode&&t.freeMode.onTouchStart(),t.emit("touchStart",p)}function Y(e){const t=a(),s=this,i=s.touchEventsData,{params:r,touches:n,rtlTranslate:o,enabled:d}=s;if(!d)return;if(!r.simulateTouch&&"mouse"===e.pointerType)return;let c=e;if(c.originalEvent&&(c=c.originalEvent),!i.isTouched)return void(i.startMoving&&i.isScrolling&&s.emit("touchMoveOpposite",c));const p=i.evCache.findIndex((e=>e.pointerId===c.pointerId));p>=0&&(i.evCache[p]=c);const u=i.evCache.length>1?i.evCache[0]:c,m=u.pageX,h=u.pageY;if(c.preventedByNestedSwiper)return n.startX=m,void(n.startY=h);if(!s.allowTouchMove)return c.target.matches(i.focusableElements)||(s.allowClick=!1),void(i.isTouched&&(Object.assign(n,{startX:m,startY:h,prevX:s.touches.currentX,prevY:s.touches.currentY,currentX:m,currentY:h}),i.touchStartTime=l()));if(r.touchReleaseOnEdges&&!r.loop)if(s.isVertical()){if(hn.startY&&s.translate>=s.minTranslate())return i.isTouched=!1,void(i.isMoved=!1)}else if(mn.startX&&s.translate>=s.minTranslate())return;if(t.activeElement&&c.target===t.activeElement&&c.target.matches(i.focusableElements))return i.isMoved=!0,void(s.allowClick=!1);if(i.allowTouchCallbacks&&s.emit("touchMove",c),c.targetTouches&&c.targetTouches.length>1)return;n.currentX=m,n.currentY=h;const f=n.currentX-n.startX,g=n.currentY-n.startY;if(s.params.threshold&&Math.sqrt(f**2+g**2)=25&&(e=180*Math.atan2(Math.abs(g),Math.abs(f))/Math.PI,i.isScrolling=s.isHorizontal()?e>r.touchAngle:90-e>r.touchAngle)}if(i.isScrolling&&s.emit("touchMoveOpposite",c),void 0===i.startMoving&&(n.currentX===n.startX&&n.currentY===n.startY||(i.startMoving=!0)),i.isScrolling||s.zoom&&s.params.zoom&&s.params.zoom.enabled&&i.evCache.length>1)return void(i.isTouched=!1);if(!i.startMoving)return;s.allowClick=!1,!r.cssMode&&c.cancelable&&c.preventDefault(),r.touchMoveStopPropagation&&!r.nested&&c.stopPropagation();let v=s.isHorizontal()?f:g,w=s.isHorizontal()?n.currentX-n.previousX:n.currentY-n.previousY;r.oneWayMovement&&(v=Math.abs(v)*(o?1:-1),w=Math.abs(w)*(o?1:-1)),n.diff=v,v*=r.touchRatio,o&&(v=-v,w=-w);const b=s.touchesDirection;s.swipeDirection=v>0?"prev":"next",s.touchesDirection=w>0?"prev":"next";const y=s.params.loop&&!r.cssMode;if(!i.isMoved){if(y&&s.loopFix({direction:s.swipeDirection}),i.startTranslate=s.getTranslate(),s.setTransition(0),s.animating){const e=new window.CustomEvent("transitionend",{bubbles:!0,cancelable:!0});s.wrapperEl.dispatchEvent(e)}i.allowMomentumBounce=!1,!r.grabCursor||!0!==s.allowSlideNext&&!0!==s.allowSlidePrev||s.setGrabCursor(!0),s.emit("sliderFirstMove",c)}let E;i.isMoved&&b!==s.touchesDirection&&y&&Math.abs(v)>=1&&(s.loopFix({direction:s.swipeDirection,setTranslate:!0}),E=!0),s.emit("sliderMove",c),i.isMoved=!0,i.currentTranslate=v+i.startTranslate;let x=!0,S=r.resistanceRatio;if(r.touchReleaseOnEdges&&(S=0),v>0?(y&&!E&&i.currentTranslate>(r.centeredSlides?s.minTranslate()-s.size/2:s.minTranslate())&&s.loopFix({direction:"prev",setTranslate:!0,activeSlideIndex:0}),i.currentTranslate>s.minTranslate()&&(x=!1,r.resistance&&(i.currentTranslate=s.minTranslate()-1+(-s.minTranslate()+i.startTranslate+v)**S))):v<0&&(y&&!E&&i.currentTranslate<(r.centeredSlides?s.maxTranslate()+s.size/2:s.maxTranslate())&&s.loopFix({direction:"next",setTranslate:!0,activeSlideIndex:s.slides.length-("auto"===r.slidesPerView?s.slidesPerViewDynamic():Math.ceil(parseFloat(r.slidesPerView,10)))}),i.currentTranslatei.startTranslate&&(i.currentTranslate=i.startTranslate),s.allowSlidePrev||s.allowSlideNext||(i.currentTranslate=i.startTranslate),r.threshold>0){if(!(Math.abs(v)>r.threshold||i.allowThresholdMove))return void(i.currentTranslate=i.startTranslate);if(!i.allowThresholdMove)return i.allowThresholdMove=!0,n.startX=n.currentX,n.startY=n.currentY,i.currentTranslate=i.startTranslate,void(n.diff=s.isHorizontal()?n.currentX-n.startX:n.currentY-n.startY)}r.followFinger&&!r.cssMode&&((r.freeMode&&r.freeMode.enabled&&s.freeMode||r.watchSlidesProgress)&&(s.updateActiveIndex(),s.updateSlidesClasses()),r.freeMode&&r.freeMode.enabled&&s.freeMode&&s.freeMode.onTouchMove(),s.updateProgress(i.currentTranslate),s.setTranslate(i.currentTranslate))}function B(e){const t=this,s=t.touchEventsData,a=s.evCache.findIndex((t=>t.pointerId===e.pointerId));if(a>=0&&s.evCache.splice(a,1),["pointercancel","pointerout","pointerleave"].includes(e.type)){if(!("pointercancel"===e.type&&(t.browser.isSafari||t.browser.isWebView)))return}const{params:i,touches:r,rtlTranslate:o,slidesGrid:d,enabled:c}=t;if(!c)return;if(!i.simulateTouch&&"mouse"===e.pointerType)return;let p=e;if(p.originalEvent&&(p=p.originalEvent),s.allowTouchCallbacks&&t.emit("touchEnd",p),s.allowTouchCallbacks=!1,!s.isTouched)return s.isMoved&&i.grabCursor&&t.setGrabCursor(!1),s.isMoved=!1,void(s.startMoving=!1);i.grabCursor&&s.isMoved&&s.isTouched&&(!0===t.allowSlideNext||!0===t.allowSlidePrev)&&t.setGrabCursor(!1);const u=l(),m=u-s.touchStartTime;if(t.allowClick){const e=p.path||p.composedPath&&p.composedPath();t.updateClickedSlide(e&&e[0]||p.target),t.emit("tap click",p),m<300&&u-s.lastClickTime<300&&t.emit("doubleTap doubleClick",p)}if(s.lastClickTime=l(),n((()=>{t.destroyed||(t.allowClick=!0)})),!s.isTouched||!s.isMoved||!t.swipeDirection||0===r.diff||s.currentTranslate===s.startTranslate)return s.isTouched=!1,s.isMoved=!1,void(s.startMoving=!1);let h;if(s.isTouched=!1,s.isMoved=!1,s.startMoving=!1,h=i.followFinger?o?t.translate:-t.translate:-s.currentTranslate,i.cssMode)return;if(i.freeMode&&i.freeMode.enabled)return void t.freeMode.onTouchEnd({currentPos:h});let f=0,g=t.slidesSizesGrid[0];for(let e=0;e=d[e]&&h=d[e]&&(f=e,g=d[d.length-1]-d[d.length-2])}let v=null,w=null;i.rewind&&(t.isBeginning?w=i.virtual&&i.virtual.enabled&&t.virtual?t.virtual.slides.length-1:t.slides.length-1:t.isEnd&&(v=0));const b=(h-d[f])/g,y=fi.longSwipesMs){if(!i.longSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&(b>=i.longSwipesRatio?t.slideTo(i.rewind&&t.isEnd?v:f+y):t.slideTo(f)),"prev"===t.swipeDirection&&(b>1-i.longSwipesRatio?t.slideTo(f+y):null!==w&&b<0&&Math.abs(b)>i.longSwipesRatio?t.slideTo(w):t.slideTo(f))}else{if(!i.shortSwipes)return void t.slideTo(t.activeIndex);t.navigation&&(p.target===t.navigation.nextEl||p.target===t.navigation.prevEl)?p.target===t.navigation.nextEl?t.slideTo(f+y):t.slideTo(f):("next"===t.swipeDirection&&t.slideTo(null!==v?v:f+y),"prev"===t.swipeDirection&&t.slideTo(null!==w?w:f))}}function N(){const e=this,{params:t,el:s}=e;if(s&&0===s.offsetWidth)return;t.breakpoints&&e.setBreakpoint();const{allowSlideNext:a,allowSlidePrev:i,snapGrid:r}=e,n=e.virtual&&e.params.virtual.enabled;e.allowSlideNext=!0,e.allowSlidePrev=!0,e.updateSize(),e.updateSlides(),e.updateSlidesClasses();const l=n&&t.loop;!("auto"===t.slidesPerView||t.slidesPerView>1)||!e.isEnd||e.isBeginning||e.params.centeredSlides||l?e.params.loop&&!n?e.slideToLoop(e.realIndex,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0):e.slideTo(e.slides.length-1,0,!1,!0),e.autoplay&&e.autoplay.running&&e.autoplay.paused&&(clearTimeout(e.autoplay.resizeTimeout),e.autoplay.resizeTimeout=setTimeout((()=>{e.autoplay&&e.autoplay.running&&e.autoplay.paused&&e.autoplay.resume()}),500)),e.allowSlidePrev=i,e.allowSlideNext=a,e.params.watchOverflow&&r!==e.snapGrid&&e.checkOverflow()}function q(e){const t=this;t.enabled&&(t.allowClick||(t.params.preventClicks&&e.preventDefault(),t.params.preventClicksPropagation&&t.animating&&(e.stopPropagation(),e.stopImmediatePropagation())))}function R(){const e=this,{wrapperEl:t,rtlTranslate:s,enabled:a}=e;if(!a)return;let i;e.previousTranslate=e.translate,e.isHorizontal()?e.translate=-t.scrollLeft:e.translate=-t.scrollTop,0===e.translate&&(e.translate=0),e.updateActiveIndex(),e.updateSlidesClasses();const r=e.maxTranslate()-e.minTranslate();i=0===r?0:(e.translate-e.minTranslate())/r,i!==e.progress&&e.updateProgress(s?-e.translate:e.translate),e.emit("setTranslate",e.translate,!1)}function F(e){const t=this;A(t,e.target),t.params.cssMode||"auto"!==t.params.slidesPerView&&!t.params.autoHeight||t.update()}let _=!1;function V(){}const j=(e,t)=>{const s=a(),{params:i,el:r,wrapperEl:n,device:l}=e,o=!!i.nested,d="on"===t?"addEventListener":"removeEventListener",c=t;r[d]("pointerdown",e.onTouchStart,{passive:!1}),s[d]("pointermove",e.onTouchMove,{passive:!1,capture:o}),s[d]("pointerup",e.onTouchEnd,{passive:!0}),s[d]("pointercancel",e.onTouchEnd,{passive:!0}),s[d]("pointerout",e.onTouchEnd,{passive:!0}),s[d]("pointerleave",e.onTouchEnd,{passive:!0}),(i.preventClicks||i.preventClicksPropagation)&&r[d]("click",e.onClick,!0),i.cssMode&&n[d]("scroll",e.onScroll),i.updateOnWindowResize?e[c](l.ios||l.android?"resize orientationchange observerUpdate":"resize observerUpdate",N,!0):e[c]("observerUpdate",N,!0),r[d]("load",e.onLoad,{capture:!0})};const W=(e,t)=>e.grid&&t.grid&&t.grid.rows>1;var U={init:!0,direction:"horizontal",oneWayMovement:!1,touchEventsTarget:"wrapper",initialSlide:0,speed:300,cssMode:!1,updateOnWindowResize:!0,resizeObserver:!0,nested:!1,createElements:!1,enabled:!0,focusableElements:"input, select, option, textarea, button, video, label",width:null,height:null,preventInteractionOnTransition:!1,userAgent:null,url:null,edgeSwipeDetection:!1,edgeSwipeThreshold:20,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",breakpoints:void 0,breakpointsBase:"window",spaceBetween:0,slidesPerView:1,slidesPerGroup:1,slidesPerGroupSkip:0,slidesPerGroupAuto:!1,centeredSlides:!1,centeredSlidesBounds:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,normalizeSlideIndex:!0,centerInsufficientSlides:!1,watchOverflow:!0,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,allowTouchMove:!0,threshold:5,touchMoveStopPropagation:!1,touchStartPreventDefault:!0,touchStartForcePreventDefault:!1,touchReleaseOnEdges:!1,uniqueNavElements:!0,resistance:!0,resistanceRatio:.85,watchSlidesProgress:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,loop:!1,loopedSlides:null,loopPreventsSliding:!0,rewind:!1,allowSlidePrev:!0,allowSlideNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",noSwipingSelector:null,passiveListeners:!0,maxBackfaceHiddenSlides:10,containerModifierClass:"swiper-",slideClass:"swiper-slide",slideActiveClass:"swiper-slide-active",slideVisibleClass:"swiper-slide-visible",slideNextClass:"swiper-slide-next",slidePrevClass:"swiper-slide-prev",wrapperClass:"swiper-wrapper",lazyPreloaderClass:"swiper-lazy-preloader",lazyPreloadPrevNext:0,runCallbacksOnInit:!0,_emitClasses:!1};function K(e,t){return function(s){void 0===s&&(s={});const a=Object.keys(s)[0],i=s[a];"object"==typeof i&&null!==i?(["navigation","pagination","scrollbar"].indexOf(a)>=0&&!0===e[a]&&(e[a]={auto:!0}),a in e&&"enabled"in i?(!0===e[a]&&(e[a]={enabled:!0}),"object"!=typeof e[a]||"enabled"in e[a]||(e[a].enabled=!0),e[a]||(e[a]={enabled:!1}),p(t,s)):p(t,s)):p(t,s)}}const Z={eventsEmitter:z,update:k,translate:O,transition:{setTransition:function(e,t){const s=this;s.params.cssMode||(s.wrapperEl.style.transitionDuration=`${e}ms`),s.emit("setTransition",e,t)},transitionStart:function(e,t){void 0===e&&(e=!0);const s=this,{params:a}=s;a.cssMode||(a.autoHeight&&s.updateAutoHeight(),D({swiper:s,runCallbacks:e,direction:t,step:"Start"}))},transitionEnd:function(e,t){void 0===e&&(e=!0);const s=this,{params:a}=s;s.animating=!1,a.cssMode||(s.setTransition(0),D({swiper:s,runCallbacks:e,direction:t,step:"End"}))}},slide:G,loop:H,grabCursor:{setGrabCursor:function(e){const t=this;if(!t.params.simulateTouch||t.params.watchOverflow&&t.isLocked||t.params.cssMode)return;const s="container"===t.params.touchEventsTarget?t.el:t.wrapperEl;t.isElement&&(t.__preventObserver__=!0),s.style.cursor="move",s.style.cursor=e?"grabbing":"grab",t.isElement&&requestAnimationFrame((()=>{t.__preventObserver__=!1}))},unsetGrabCursor:function(){const e=this;e.params.watchOverflow&&e.isLocked||e.params.cssMode||(e.isElement&&(e.__preventObserver__=!0),e["container"===e.params.touchEventsTarget?"el":"wrapperEl"].style.cursor="",e.isElement&&requestAnimationFrame((()=>{e.__preventObserver__=!1})))}},events:{attachEvents:function(){const e=this,t=a(),{params:s}=e;e.onTouchStart=X.bind(e),e.onTouchMove=Y.bind(e),e.onTouchEnd=B.bind(e),s.cssMode&&(e.onScroll=R.bind(e)),e.onClick=q.bind(e),e.onLoad=F.bind(e),_||(t.addEventListener("touchstart",V),_=!0),j(e,"on")},detachEvents:function(){j(this,"off")}},breakpoints:{setBreakpoint:function(){const e=this,{realIndex:t,initialized:s,params:a,el:i}=e,r=a.breakpoints;if(!r||r&&0===Object.keys(r).length)return;const n=e.getBreakpoint(r,e.params.breakpointsBase,e.el);if(!n||e.currentBreakpoint===n)return;const l=(n in r?r[n]:void 0)||e.originalParams,o=W(e,a),d=W(e,l),c=a.enabled;o&&!d?(i.classList.remove(`${a.containerModifierClass}grid`,`${a.containerModifierClass}grid-column`),e.emitContainerClasses()):!o&&d&&(i.classList.add(`${a.containerModifierClass}grid`),(l.grid.fill&&"column"===l.grid.fill||!l.grid.fill&&"column"===a.grid.fill)&&i.classList.add(`${a.containerModifierClass}grid-column`),e.emitContainerClasses()),["navigation","pagination","scrollbar"].forEach((t=>{if(void 0===l[t])return;const s=a[t]&&a[t].enabled,i=l[t]&&l[t].enabled;s&&!i&&e[t].disable(),!s&&i&&e[t].enable()}));const u=l.direction&&l.direction!==a.direction,m=a.loop&&(l.slidesPerView!==a.slidesPerView||u);u&&s&&e.changeDirection(),p(e.params,l);const h=e.params.enabled;Object.assign(e,{allowTouchMove:e.params.allowTouchMove,allowSlideNext:e.params.allowSlideNext,allowSlidePrev:e.params.allowSlidePrev}),c&&!h?e.disable():!c&&h&&e.enable(),e.currentBreakpoint=n,e.emit("_beforeBreakpoint",l),m&&s&&(e.loopDestroy(),e.loopCreate(t),e.updateSlides()),e.emit("breakpoint",l)},getBreakpoint:function(e,t,s){if(void 0===t&&(t="window"),!e||"container"===t&&!s)return;let a=!1;const i=r(),n="window"===t?i.innerHeight:s.clientHeight,l=Object.keys(e).map((e=>{if("string"==typeof e&&0===e.indexOf("@")){const t=parseFloat(e.substr(1));return{value:n*t,point:e}}return{value:e,point:e}}));l.sort(((e,t)=>parseInt(e.value,10)-parseInt(t.value,10)));for(let e=0;es}else e.isLocked=1===e.snapGrid.length;!0===s.allowSlideNext&&(e.allowSlideNext=!e.isLocked),!0===s.allowSlidePrev&&(e.allowSlidePrev=!e.isLocked),t&&t!==e.isLocked&&(e.isEnd=!1),t!==e.isLocked&&e.emit(e.isLocked?"lock":"unlock")}},classes:{addClasses:function(){const e=this,{classNames:t,params:s,rtl:a,el:i,device:r}=e,n=function(e,t){const s=[];return e.forEach((e=>{"object"==typeof e?Object.keys(e).forEach((a=>{e[a]&&s.push(t+a)})):"string"==typeof e&&s.push(t+e)})),s}(["initialized",s.direction,{"free-mode":e.params.freeMode&&s.freeMode.enabled},{autoheight:s.autoHeight},{rtl:a},{grid:s.grid&&s.grid.rows>1},{"grid-column":s.grid&&s.grid.rows>1&&"column"===s.grid.fill},{android:r.android},{ios:r.ios},{"css-mode":s.cssMode},{centered:s.cssMode&&s.centeredSlides},{"watch-progress":s.watchSlidesProgress}],s.containerModifierClass);t.push(...n),i.classList.add(...t),e.emitContainerClasses()},removeClasses:function(){const{el:e,classNames:t}=this;e.classList.remove(...t),this.emitContainerClasses()}}},Q={};class J{constructor(){let e,t;for(var s=arguments.length,i=new Array(s),r=0;r1){const e=[];return n.querySelectorAll(t.el).forEach((s=>{const a=p({},t,{el:s});e.push(new J(a))})),e}const l=this;l.__swiper__=!0,l.support=C(),l.device=P({userAgent:t.userAgent}),l.browser=L(),l.eventsListeners={},l.eventsAnyListeners=[],l.modules=[...l.__modules__],t.modules&&Array.isArray(t.modules)&&l.modules.push(...t.modules);const o={};l.modules.forEach((e=>{e({params:t,swiper:l,extendParams:K(t,o),on:l.on.bind(l),once:l.once.bind(l),off:l.off.bind(l),emit:l.emit.bind(l)})}));const d=p({},U,o);return l.params=p({},d,Q,t),l.originalParams=p({},l.params),l.passedParams=p({},t),l.params&&l.params.on&&Object.keys(l.params.on).forEach((e=>{l.on(e,l.params.on[e])})),l.params&&l.params.onAny&&l.onAny(l.params.onAny),Object.assign(l,{enabled:l.params.enabled,el:e,classNames:[],slides:[],slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal:()=>"horizontal"===l.params.direction,isVertical:()=>"vertical"===l.params.direction,activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,previousTranslate:0,progress:0,velocity:0,animating:!1,cssOverflowAdjustment(){return Math.trunc(this.translate/2**23)*2**23},allowSlideNext:l.params.allowSlideNext,allowSlidePrev:l.params.allowSlidePrev,touchEventsData:{isTouched:void 0,isMoved:void 0,allowTouchCallbacks:void 0,touchStartTime:void 0,isScrolling:void 0,currentTranslate:void 0,startTranslate:void 0,allowThresholdMove:void 0,focusableElements:l.params.focusableElements,lastClickTime:0,clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,startMoving:void 0,evCache:[]},allowClick:!0,allowTouchMove:l.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),l.emit("_swiper"),l.params.init&&l.init(),l}getSlideIndex(e){const{slidesEl:t,params:s}=this,a=b(f(t,`.${s.slideClass}, swiper-slide`)[0]);return b(e)-a}getSlideIndexByData(e){return this.getSlideIndex(this.slides.filter((t=>1*t.getAttribute("data-swiper-slide-index")===e))[0])}recalcSlides(){const{slidesEl:e,params:t}=this;this.slides=f(e,`.${t.slideClass}, swiper-slide`)}enable(){const e=this;e.enabled||(e.enabled=!0,e.params.grabCursor&&e.setGrabCursor(),e.emit("enable"))}disable(){const e=this;e.enabled&&(e.enabled=!1,e.params.grabCursor&&e.unsetGrabCursor(),e.emit("disable"))}setProgress(e,t){const s=this;e=Math.min(Math.max(e,0),1);const a=s.minTranslate(),i=(s.maxTranslate()-a)*e+a;s.translateTo(i,void 0===t?0:t),s.updateActiveIndex(),s.updateSlidesClasses()}emitContainerClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const t=e.el.className.split(" ").filter((t=>0===t.indexOf("swiper")||0===t.indexOf(e.params.containerModifierClass)));e.emit("_containerClasses",t.join(" "))}getSlideClasses(e){const t=this;return t.destroyed?"":e.className.split(" ").filter((e=>0===e.indexOf("swiper-slide")||0===e.indexOf(t.params.slideClass))).join(" ")}emitSlidesClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const t=[];e.slides.forEach((s=>{const a=e.getSlideClasses(s);t.push({slideEl:s,classNames:a}),e.emit("_slideClass",s,a)})),e.emit("_slideClasses",t)}slidesPerViewDynamic(e,t){void 0===e&&(e="current"),void 0===t&&(t=!1);const{params:s,slides:a,slidesGrid:i,slidesSizesGrid:r,size:n,activeIndex:l}=this;let o=1;if(s.centeredSlides){let e,t=a[l]?a[l].swiperSlideSize:0;for(let s=l+1;sn&&(e=!0));for(let s=l-1;s>=0;s-=1)a[s]&&!e&&(t+=a[s].swiperSlideSize,o+=1,t>n&&(e=!0))}else if("current"===e)for(let e=l+1;e=0;e-=1){i[l]-i[e]{t.complete&&A(e,t)})),e.updateSize(),e.updateSlides(),e.updateProgress(),e.updateSlidesClasses(),s.freeMode&&s.freeMode.enabled&&!s.cssMode)a(),s.autoHeight&&e.updateAutoHeight();else{if(("auto"===s.slidesPerView||s.slidesPerView>1)&&e.isEnd&&!s.centeredSlides){const t=e.virtual&&s.virtual.enabled?e.virtual.slides:e.slides;i=e.slideTo(t.length-1,0,!1,!0)}else i=e.slideTo(e.activeIndex,0,!1,!0);i||a()}s.watchOverflow&&t!==e.snapGrid&&e.checkOverflow(),e.emit("update")}changeDirection(e,t){void 0===t&&(t=!0);const s=this,a=s.params.direction;return e||(e="horizontal"===a?"vertical":"horizontal"),e===a||"horizontal"!==e&&"vertical"!==e||(s.el.classList.remove(`${s.params.containerModifierClass}${a}`),s.el.classList.add(`${s.params.containerModifierClass}${e}`),s.emitContainerClasses(),s.params.direction=e,s.slides.forEach((t=>{"vertical"===e?t.style.width="":t.style.height=""})),s.emit("changeDirection"),t&&s.update()),s}changeLanguageDirection(e){const t=this;t.rtl&&"rtl"===e||!t.rtl&&"ltr"===e||(t.rtl="rtl"===e,t.rtlTranslate="horizontal"===t.params.direction&&t.rtl,t.rtl?(t.el.classList.add(`${t.params.containerModifierClass}rtl`),t.el.dir="rtl"):(t.el.classList.remove(`${t.params.containerModifierClass}rtl`),t.el.dir="ltr"),t.update())}mount(e){const t=this;if(t.mounted)return!0;let s=e||t.params.el;if("string"==typeof s&&(s=document.querySelector(s)),!s)return!1;s.swiper=t,s.shadowEl&&(t.isElement=!0);const a=()=>`.${(t.params.wrapperClass||"").trim().split(" ").join(".")}`;let i=(()=>{if(s&&s.shadowRoot&&s.shadowRoot.querySelector){return s.shadowRoot.querySelector(a())}return f(s,a())[0]})();return!i&&t.params.createElements&&(i=g("div",t.params.wrapperClass),s.append(i),f(s,`.${t.params.slideClass}`).forEach((e=>{i.append(e)}))),Object.assign(t,{el:s,wrapperEl:i,slidesEl:t.isElement?s:i,mounted:!0,rtl:"rtl"===s.dir.toLowerCase()||"rtl"===w(s,"direction"),rtlTranslate:"horizontal"===t.params.direction&&("rtl"===s.dir.toLowerCase()||"rtl"===w(s,"direction")),wrongRTL:"-webkit-box"===w(i,"display")}),!0}init(e){const t=this;if(t.initialized)return t;return!1===t.mount(e)||(t.emit("beforeInit"),t.params.breakpoints&&t.setBreakpoint(),t.addClasses(),t.updateSize(),t.updateSlides(),t.params.watchOverflow&&t.checkOverflow(),t.params.grabCursor&&t.enabled&&t.setGrabCursor(),t.params.loop&&t.virtual&&t.params.virtual.enabled?t.slideTo(t.params.initialSlide+t.virtual.slidesBefore,0,t.params.runCallbacksOnInit,!1,!0):t.slideTo(t.params.initialSlide,0,t.params.runCallbacksOnInit,!1,!0),t.params.loop&&t.loopCreate(),t.attachEvents(),[...t.el.querySelectorAll('[loading="lazy"]')].forEach((e=>{e.complete?A(t,e):e.addEventListener("load",(e=>{A(t,e.target)}))})),I(t),t.initialized=!0,I(t),t.emit("init"),t.emit("afterInit")),t}destroy(e,t){void 0===e&&(e=!0),void 0===t&&(t=!0);const s=this,{params:a,el:i,wrapperEl:r,slides:n}=s;return void 0===s.params||s.destroyed||(s.emit("beforeDestroy"),s.initialized=!1,s.detachEvents(),a.loop&&s.loopDestroy(),t&&(s.removeClasses(),i.removeAttribute("style"),r.removeAttribute("style"),n&&n.length&&n.forEach((e=>{e.classList.remove(a.slideVisibleClass,a.slideActiveClass,a.slideNextClass,a.slidePrevClass),e.removeAttribute("style"),e.removeAttribute("data-swiper-slide-index")}))),s.emit("destroy"),Object.keys(s.eventsListeners).forEach((e=>{s.off(e)})),!1!==e&&(s.el.swiper=null,function(e){const t=e;Object.keys(t).forEach((e=>{try{t[e]=null}catch(e){}try{delete t[e]}catch(e){}}))}(s)),s.destroyed=!0),null}static extendDefaults(e){p(Q,e)}static get extendedDefaults(){return Q}static get defaults(){return U}static installModule(e){J.prototype.__modules__||(J.prototype.__modules__=[]);const t=J.prototype.__modules__;"function"==typeof e&&t.indexOf(e)<0&&t.push(e)}static use(e){return Array.isArray(e)?(e.forEach((e=>J.installModule(e))),J):(J.installModule(e),J)}}function ee(e,t,s,a){return e.params.createElements&&Object.keys(a).forEach((i=>{if(!s[i]&&!0===s.auto){let r=f(e.el,`.${a[i]}`)[0];r||(r=g("div",a[i]),r.className=a[i],e.el.append(r)),s[i]=r,t[i]=r}})),s}function te(e){return void 0===e&&(e=""),`.${e.trim().replace(/([\.:!+\/])/g,"\\$1").replace(/ /g,".")}`}function se(e){const t=this,{params:s,slidesEl:a}=t;s.loop&&t.loopDestroy();const i=e=>{if("string"==typeof e){const t=document.createElement("div");t.innerHTML=e,a.append(t.children[0]),t.innerHTML=""}else a.append(e)};if("object"==typeof e&&"length"in e)for(let t=0;t{if("string"==typeof e){const t=document.createElement("div");t.innerHTML=e,i.prepend(t.children[0]),t.innerHTML=""}else i.prepend(e)};if("object"==typeof e&&"length"in e){for(let t=0;t=l)return void s.appendSlide(t);let o=n>e?n+1:n;const d=[];for(let t=l-1;t>=e;t-=1){const e=s.slides[t];e.remove(),d.unshift(e)}if("object"==typeof t&&"length"in t){for(let e=0;ee?n+t.length:n}else r.append(t);for(let e=0;e{if(s.params.effect!==t)return;s.classNames.push(`${s.params.containerModifierClass}${t}`),l&&l()&&s.classNames.push(`${s.params.containerModifierClass}3d`);const e=n?n():{};Object.assign(s.params,e),Object.assign(s.originalParams,e)})),a("setTranslate",(()=>{s.params.effect===t&&i()})),a("setTransition",((e,a)=>{s.params.effect===t&&r(a)})),a("transitionEnd",(()=>{if(s.params.effect===t&&o){if(!d||!d().slideShadows)return;s.slides.forEach((e=>{e.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((e=>e.remove()))})),o()}})),a("virtualUpdate",(()=>{s.params.effect===t&&(s.slides.length||(c=!0),requestAnimationFrame((()=>{c&&s.slides&&s.slides.length&&(i(),c=!1)})))}))}function oe(e,t){const s=h(t);return s!==t&&(s.style.backfaceVisibility="hidden",s.style["-webkit-backface-visibility"]="hidden"),s}function de(e){let{swiper:t,duration:s,transformElements:a,allSlides:i}=e;const{activeIndex:r}=t;if(t.params.virtualTranslate&&0!==s){let e,s=!1;e=i?a:a.filter((e=>{const s=e.classList.contains("swiper-slide-transform")?(e=>{if(!e.parentElement)return t.slides.filter((t=>t.shadowEl&&t.shadowEl===e.parentNode))[0];return e.parentElement})(e):e;return t.getSlideIndex(s)===r})),e.forEach((e=>{E(e,(()=>{if(s)return;if(!t||t.destroyed)return;s=!0,t.animating=!1;const e=new window.CustomEvent("transitionend",{bubbles:!0,cancelable:!0});t.wrapperEl.dispatchEvent(e)}))}))}}function ce(e,t,s){const a="swiper-slide-shadow"+(s?`-${s}`:""),i=h(t);let r=i.querySelector(`.${a}`);return r||(r=g("div","swiper-slide-shadow"+(s?`-${s}`:"")),i.append(r)),r}Object.keys(Z).forEach((e=>{Object.keys(Z[e]).forEach((t=>{J.prototype[t]=Z[e][t]}))})),J.use([function(e){let{swiper:t,on:s,emit:a}=e;const i=r();let n=null,l=null;const o=()=>{t&&!t.destroyed&&t.initialized&&(a("beforeResize"),a("resize"))},d=()=>{t&&!t.destroyed&&t.initialized&&a("orientationchange")};s("init",(()=>{t.params.resizeObserver&&void 0!==i.ResizeObserver?t&&!t.destroyed&&t.initialized&&(n=new ResizeObserver((e=>{l=i.requestAnimationFrame((()=>{const{width:s,height:a}=t;let i=s,r=a;e.forEach((e=>{let{contentBoxSize:s,contentRect:a,target:n}=e;n&&n!==t.el||(i=a?a.width:(s[0]||s).inlineSize,r=a?a.height:(s[0]||s).blockSize)})),i===s&&r===a||o()}))})),n.observe(t.el)):(i.addEventListener("resize",o),i.addEventListener("orientationchange",d))})),s("destroy",(()=>{l&&i.cancelAnimationFrame(l),n&&n.unobserve&&t.el&&(n.unobserve(t.el),n=null),i.removeEventListener("resize",o),i.removeEventListener("orientationchange",d)}))},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const n=[],l=r(),o=function(e,s){void 0===s&&(s={});const a=new(l.MutationObserver||l.WebkitMutationObserver)((e=>{if(t.__preventObserver__)return;if(1===e.length)return void i("observerUpdate",e[0]);const s=function(){i("observerUpdate",e[0])};l.requestAnimationFrame?l.requestAnimationFrame(s):l.setTimeout(s,0)}));a.observe(e,{attributes:void 0===s.attributes||s.attributes,childList:void 0===s.childList||s.childList,characterData:void 0===s.characterData||s.characterData}),n.push(a)};s({observer:!1,observeParents:!1,observeSlideChildren:!1}),a("init",(()=>{if(t.params.observer){if(t.params.observeParents){const e=y(t.el);for(let t=0;t{n.forEach((e=>{e.disconnect()})),n.splice(0,n.length)}))}]);const pe=[function(e){let t,{swiper:s,extendParams:i,on:r,emit:n}=e;i({virtual:{enabled:!1,slides:[],cache:!0,renderSlide:null,renderExternal:null,renderExternalUpdate:!0,addSlidesBefore:0,addSlidesAfter:0}});const l=a();s.virtual={cache:{},from:void 0,to:void 0,slides:[],offset:0,slidesGrid:[]};const o=l.createElement("div");function d(e,t){const a=s.params.virtual;if(a.cache&&s.virtual.cache[t])return s.virtual.cache[t];let i;return a.renderSlide?(i=a.renderSlide.call(s,e,t),"string"==typeof i&&(o.innerHTML=i,i=o.children[0])):i=s.isElement?g("swiper-slide"):g("div",s.params.slideClass),i.setAttribute("data-swiper-slide-index",t),a.renderSlide||(i.innerHTML=e),a.cache&&(s.virtual.cache[t]=i),i}function c(e){const{slidesPerView:t,slidesPerGroup:a,centeredSlides:i,loop:r}=s.params,{addSlidesBefore:l,addSlidesAfter:o}=s.params.virtual,{from:c,to:p,slides:u,slidesGrid:m,offset:h}=s.virtual;s.params.cssMode||s.updateActiveIndex();const g=s.activeIndex||0;let v,w,b;v=s.rtlTranslate?"right":s.isHorizontal()?"left":"top",i?(w=Math.floor(t/2)+a+o,b=Math.floor(t/2)+a+l):(w=t+(a-1)+o,b=(r?t:a)+l);let y=g-b,E=g+w;r||(y=Math.max(y,0),E=Math.min(E,u.length-1));let x=(s.slidesGrid[y]||0)-(s.slidesGrid[0]||0);function S(){s.updateSlides(),s.updateProgress(),s.updateSlidesClasses(),n("virtualUpdate")}if(r&&g>=b?(y-=b,i||(x+=s.slidesGrid[0])):r&&g{e.style[v]=x-Math.abs(s.cssOverflowAdjustment())+"px"})),s.updateProgress(),void n("virtualUpdate");if(s.params.virtual.renderExternal)return s.params.virtual.renderExternal.call(s,{offset:x,from:y,to:E,slides:function(){const e=[];for(let t=y;t<=E;t+=1)e.push(u[t]);return e}()}),void(s.params.virtual.renderExternalUpdate?S():n("virtualUpdate"));const T=[],M=[],C=e=>{let t=e;return e<0?t=u.length+e:t>=u.length&&(t-=u.length),t};if(e)s.slidesEl.querySelectorAll(`.${s.params.slideClass}, swiper-slide`).forEach((e=>{e.remove()}));else for(let e=c;e<=p;e+=1)if(eE){const t=C(e);s.slidesEl.querySelectorAll(`.${s.params.slideClass}[data-swiper-slide-index="${t}"], swiper-slide[data-swiper-slide-index="${t}"]`).forEach((e=>{e.remove()}))}const P=r?-u.length:0,L=r?2*u.length:u.length;for(let t=P;t=y&&t<=E){const s=C(t);void 0===p||e?M.push(s):(t>p&&M.push(s),t{s.slidesEl.append(d(u[e],e))})),r)for(let e=T.length-1;e>=0;e-=1){const t=T[e];s.slidesEl.prepend(d(u[t],t))}else T.sort(((e,t)=>t-e)),T.forEach((e=>{s.slidesEl.prepend(d(u[e],e))}));f(s.slidesEl,".swiper-slide, swiper-slide").forEach((e=>{e.style[v]=x-Math.abs(s.cssOverflowAdjustment())+"px"})),S()}r("beforeInit",(()=>{if(!s.params.virtual.enabled)return;let e;if(void 0===s.passedParams.virtual.slides){const t=[...s.slidesEl.children].filter((e=>e.matches(`.${s.params.slideClass}, swiper-slide`)));t&&t.length&&(s.virtual.slides=[...t],e=!0,t.forEach(((e,t)=>{e.setAttribute("data-swiper-slide-index",t),s.virtual.cache[t]=e,e.remove()})))}e||(s.virtual.slides=s.params.virtual.slides),s.classNames.push(`${s.params.containerModifierClass}virtual`),s.params.watchSlidesProgress=!0,s.originalParams.watchSlidesProgress=!0,s.params.initialSlide||c()})),r("setTranslate",(()=>{s.params.virtual.enabled&&(s.params.cssMode&&!s._immediateVirtual?(clearTimeout(t),t=setTimeout((()=>{c()}),100)):c())})),r("init update resize",(()=>{s.params.virtual.enabled&&s.params.cssMode&&u(s.wrapperEl,"--swiper-virtual-size",`${s.virtualSize}px`)})),Object.assign(s.virtual,{appendSlide:function(e){if("object"==typeof e&&"length"in e)for(let t=0;t{const a=e[s],r=a.getAttribute("data-swiper-slide-index");r&&a.setAttribute("data-swiper-slide-index",parseInt(r,10)+i),t[parseInt(s,10)+i]=a})),s.virtual.cache=t}c(!0),s.slideTo(a,0)},removeSlide:function(e){if(null==e)return;let t=s.activeIndex;if(Array.isArray(e))for(let a=e.length-1;a>=0;a-=1)s.virtual.slides.splice(e[a],1),s.params.virtual.cache&&delete s.virtual.cache[e[a]],e[a]0&&0===y(t.el,`.${t.params.slideActiveClass}`).length)return;const a=t.el,i=a.clientWidth,r=a.clientHeight,n=o.innerWidth,l=o.innerHeight,d=v(a);s&&(d.left-=a.scrollLeft);const c=[[d.left,d.top],[d.left+i,d.top],[d.left,d.top+r],[d.left+i,d.top+r]];for(let t=0;t=0&&s[0]<=n&&s[1]>=0&&s[1]<=l){if(0===s[0]&&0===s[1])continue;e=!0}}if(!e)return}t.isHorizontal()?((d||c||p||u)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),((c||u)&&!s||(d||p)&&s)&&t.slideNext(),((d||p)&&!s||(c||u)&&s)&&t.slidePrev()):((d||c||m||h)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),(c||h)&&t.slideNext(),(d||m)&&t.slidePrev()),n("keyPress",i)}}function c(){t.keyboard.enabled||(l.addEventListener("keydown",d),t.keyboard.enabled=!0)}function p(){t.keyboard.enabled&&(l.removeEventListener("keydown",d),t.keyboard.enabled=!1)}t.keyboard={enabled:!1},s({keyboard:{enabled:!1,onlyInViewport:!0,pageUpDown:!0}}),i("init",(()=>{t.params.keyboard.enabled&&c()})),i("destroy",(()=>{t.keyboard.enabled&&p()})),Object.assign(t.keyboard,{enable:c,disable:p})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const o=r();let d;s({mousewheel:{enabled:!1,releaseOnEdges:!1,invert:!1,forceToAxis:!1,sensitivity:1,eventsTarget:"container",thresholdDelta:null,thresholdTime:null,noMousewheelClass:"swiper-no-mousewheel"}}),t.mousewheel={enabled:!1};let c,p=l();const u=[];function m(){t.enabled&&(t.mouseEntered=!0)}function h(){t.enabled&&(t.mouseEntered=!1)}function f(e){return!(t.params.mousewheel.thresholdDelta&&e.delta=6&&l()-p<60||(e.direction<0?t.isEnd&&!t.params.loop||t.animating||(t.slideNext(),i("scroll",e.raw)):t.isBeginning&&!t.params.loop||t.animating||(t.slidePrev(),i("scroll",e.raw)),p=(new o.Date).getTime(),!1)))}function g(e){let s=e,a=!0;if(!t.enabled)return;if(e.target.closest(`.${t.params.mousewheel.noMousewheelClass}`))return;const r=t.params.mousewheel;t.params.cssMode&&s.preventDefault();let o=t.el;"container"!==t.params.mousewheel.eventsTarget&&(o=document.querySelector(t.params.mousewheel.eventsTarget));const p=o&&o.contains(s.target);if(!t.mouseEntered&&!p&&!r.releaseOnEdges)return!0;s.originalEvent&&(s=s.originalEvent);let m=0;const h=t.rtlTranslate?-1:1,g=function(e){let t=0,s=0,a=0,i=0;return"detail"in e&&(s=e.detail),"wheelDelta"in e&&(s=-e.wheelDelta/120),"wheelDeltaY"in e&&(s=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=s,s=0),a=10*t,i=10*s,"deltaY"in e&&(i=e.deltaY),"deltaX"in e&&(a=e.deltaX),e.shiftKey&&!a&&(a=i,i=0),(a||i)&&e.deltaMode&&(1===e.deltaMode?(a*=40,i*=40):(a*=800,i*=800)),a&&!t&&(t=a<1?-1:1),i&&!s&&(s=i<1?-1:1),{spinX:t,spinY:s,pixelX:a,pixelY:i}}(s);if(r.forceToAxis)if(t.isHorizontal()){if(!(Math.abs(g.pixelX)>Math.abs(g.pixelY)))return!0;m=-g.pixelX*h}else{if(!(Math.abs(g.pixelY)>Math.abs(g.pixelX)))return!0;m=-g.pixelY}else m=Math.abs(g.pixelX)>Math.abs(g.pixelY)?-g.pixelX*h:-g.pixelY;if(0===m)return!0;r.invert&&(m=-m);let v=t.getTranslate()+m*r.sensitivity;if(v>=t.minTranslate()&&(v=t.minTranslate()),v<=t.maxTranslate()&&(v=t.maxTranslate()),a=!!t.params.loop||!(v===t.minTranslate()||v===t.maxTranslate()),a&&t.params.nested&&s.stopPropagation(),t.params.freeMode&&t.params.freeMode.enabled){const e={time:l(),delta:Math.abs(m),direction:Math.sign(m)},a=c&&e.time=t.minTranslate()&&(l=t.minTranslate()),l<=t.maxTranslate()&&(l=t.maxTranslate()),t.setTransition(0),t.setTranslate(l),t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses(),(!o&&t.isBeginning||!p&&t.isEnd)&&t.updateSlidesClasses(),t.params.loop&&t.loopFix({direction:e.direction<0?"next":"prev",byMousewheel:!0}),t.params.freeMode.sticky){clearTimeout(d),d=void 0,u.length>=15&&u.shift();const s=u.length?u[u.length-1]:void 0,a=u[0];if(u.push(e),s&&(e.delta>s.delta||e.direction!==s.direction))u.splice(0);else if(u.length>=15&&e.time-a.time<500&&a.delta-e.delta>=1&&e.delta<=6){const s=m>0?.8:.2;c=e,u.splice(0),d=n((()=>{t.slideToClosest(t.params.speed,!0,void 0,s)}),0)}d||(d=n((()=>{c=e,u.splice(0),t.slideToClosest(t.params.speed,!0,void 0,.5)}),500))}if(a||i("scroll",s),t.params.autoplay&&t.params.autoplayDisableOnInteraction&&t.autoplay.stop(),l===t.minTranslate()||l===t.maxTranslate())return!0}}else{const s={time:l(),delta:Math.abs(m),direction:Math.sign(m),raw:e};u.length>=2&&u.shift();const a=u.length?u[u.length-1]:void 0;if(u.push(s),a?(s.direction!==a.direction||s.delta>a.delta||s.time>a.time+150)&&f(s):f(s),function(e){const s=t.params.mousewheel;if(e.direction<0){if(t.isEnd&&!t.params.loop&&s.releaseOnEdges)return!0}else if(t.isBeginning&&!t.params.loop&&s.releaseOnEdges)return!0;return!1}(s))return!0}return s.preventDefault?s.preventDefault():s.returnValue=!1,!1}function v(e){let s=t.el;"container"!==t.params.mousewheel.eventsTarget&&(s=document.querySelector(t.params.mousewheel.eventsTarget)),s[e]("mouseenter",m),s[e]("mouseleave",h),s[e]("wheel",g)}function w(){return t.params.cssMode?(t.wrapperEl.removeEventListener("wheel",g),!0):!t.mousewheel.enabled&&(v("addEventListener"),t.mousewheel.enabled=!0,!0)}function b(){return t.params.cssMode?(t.wrapperEl.addEventListener(event,g),!0):!!t.mousewheel.enabled&&(v("removeEventListener"),t.mousewheel.enabled=!1,!0)}a("init",(()=>{!t.params.mousewheel.enabled&&t.params.cssMode&&b(),t.params.mousewheel.enabled&&w()})),a("destroy",(()=>{t.params.cssMode&&w(),t.mousewheel.enabled&&b()})),Object.assign(t.mousewheel,{enable:w,disable:b})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;s({navigation:{nextEl:null,prevEl:null,hideOnClick:!1,disabledClass:"swiper-button-disabled",hiddenClass:"swiper-button-hidden",lockClass:"swiper-button-lock",navigationDisabledClass:"swiper-navigation-disabled"}}),t.navigation={nextEl:null,prevEl:null};const r=e=>(Array.isArray(e)||(e=[e].filter((e=>!!e))),e);function n(e){let s;return e&&"string"==typeof e&&t.isElement&&(s=t.el.shadowRoot.querySelector(e),s)?s:(e&&("string"==typeof e&&(s=[...document.querySelectorAll(e)]),t.params.uniqueNavElements&&"string"==typeof e&&s.length>1&&1===t.el.querySelectorAll(e).length&&(s=t.el.querySelector(e))),e&&!s?e:s)}function l(e,s){const a=t.params.navigation;(e=r(e)).forEach((e=>{e&&(e.classList[s?"add":"remove"](...a.disabledClass.split(" ")),"BUTTON"===e.tagName&&(e.disabled=s),t.params.watchOverflow&&t.enabled&&e.classList[t.isLocked?"add":"remove"](a.lockClass))}))}function o(){const{nextEl:e,prevEl:s}=t.navigation;if(t.params.loop)return l(s,!1),void l(e,!1);l(s,t.isBeginning&&!t.params.rewind),l(e,t.isEnd&&!t.params.rewind)}function d(e){e.preventDefault(),(!t.isBeginning||t.params.loop||t.params.rewind)&&(t.slidePrev(),i("navigationPrev"))}function c(e){e.preventDefault(),(!t.isEnd||t.params.loop||t.params.rewind)&&(t.slideNext(),i("navigationNext"))}function p(){const e=t.params.navigation;if(t.params.navigation=ee(t,t.originalParams.navigation,t.params.navigation,{nextEl:"swiper-button-next",prevEl:"swiper-button-prev"}),!e.nextEl&&!e.prevEl)return;let s=n(e.nextEl),a=n(e.prevEl);Object.assign(t.navigation,{nextEl:s,prevEl:a}),s=r(s),a=r(a);const i=(s,a)=>{s&&s.addEventListener("click","next"===a?c:d),!t.enabled&&s&&s.classList.add(...e.lockClass.split(" "))};s.forEach((e=>i(e,"next"))),a.forEach((e=>i(e,"prev")))}function u(){let{nextEl:e,prevEl:s}=t.navigation;e=r(e),s=r(s);const a=(e,s)=>{e.removeEventListener("click","next"===s?c:d),e.classList.remove(...t.params.navigation.disabledClass.split(" "))};e.forEach((e=>a(e,"next"))),s.forEach((e=>a(e,"prev")))}a("init",(()=>{!1===t.params.navigation.enabled?m():(p(),o())})),a("toEdge fromEdge lock unlock",(()=>{o()})),a("destroy",(()=>{u()})),a("enable disable",(()=>{let{nextEl:e,prevEl:s}=t.navigation;e=r(e),s=r(s),[...e,...s].filter((e=>!!e)).forEach((e=>e.classList[t.enabled?"remove":"add"](t.params.navigation.lockClass)))})),a("click",((e,s)=>{let{nextEl:a,prevEl:n}=t.navigation;a=r(a),n=r(n);const l=s.target;if(t.params.navigation.hideOnClick&&!n.includes(l)&&!a.includes(l)){if(t.pagination&&t.params.pagination&&t.params.pagination.clickable&&(t.pagination.el===l||t.pagination.el.contains(l)))return;let e;a.length?e=a[0].classList.contains(t.params.navigation.hiddenClass):n.length&&(e=n[0].classList.contains(t.params.navigation.hiddenClass)),i(!0===e?"navigationShow":"navigationHide"),[...a,...n].filter((e=>!!e)).forEach((e=>e.classList.toggle(t.params.navigation.hiddenClass)))}}));const m=()=>{t.el.classList.add(...t.params.navigation.navigationDisabledClass.split(" ")),u()};Object.assign(t.navigation,{enable:()=>{t.el.classList.remove(...t.params.navigation.navigationDisabledClass.split(" ")),p(),o()},disable:m,update:o,init:p,destroy:u})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const r="swiper-pagination";let n;s({pagination:{el:null,bulletElement:"span",clickable:!1,hideOnClick:!1,renderBullet:null,renderProgressbar:null,renderFraction:null,renderCustom:null,progressbarOpposite:!1,type:"bullets",dynamicBullets:!1,dynamicMainBullets:1,formatFractionCurrent:e=>e,formatFractionTotal:e=>e,bulletClass:`${r}-bullet`,bulletActiveClass:`${r}-bullet-active`,modifierClass:`${r}-`,currentClass:`${r}-current`,totalClass:`${r}-total`,hiddenClass:`${r}-hidden`,progressbarFillClass:`${r}-progressbar-fill`,progressbarOppositeClass:`${r}-progressbar-opposite`,clickableClass:`${r}-clickable`,lockClass:`${r}-lock`,horizontalClass:`${r}-horizontal`,verticalClass:`${r}-vertical`,paginationDisabledClass:`${r}-disabled`}}),t.pagination={el:null,bullets:[]};let l=0;const o=e=>(Array.isArray(e)||(e=[e].filter((e=>!!e))),e);function d(){return!t.params.pagination.el||!t.pagination.el||Array.isArray(t.pagination.el)&&0===t.pagination.el.length}function c(e,s){const{bulletActiveClass:a}=t.params.pagination;e&&(e=e[("prev"===s?"previous":"next")+"ElementSibling"])&&(e.classList.add(`${a}-${s}`),(e=e[("prev"===s?"previous":"next")+"ElementSibling"])&&e.classList.add(`${a}-${s}-${s}`))}function p(e){const s=e.target.closest(te(t.params.pagination.bulletClass));if(!s)return;e.preventDefault();const a=b(s)*t.params.slidesPerGroup;if(t.params.loop){if(t.realIndex===a)return;const e=t.getSlideIndexByData(a),s=t.getSlideIndexByData(t.realIndex);e>t.slides.length-t.loopedSlides&&t.loopFix({direction:e>s?"next":"prev",activeSlideIndex:e,slideTo:!1}),t.slideToLoop(a)}else t.slideTo(a)}function u(){const e=t.rtl,s=t.params.pagination;if(d())return;let a,r,p=t.pagination.el;p=o(p);const u=t.virtual&&t.params.virtual.enabled?t.virtual.slides.length:t.slides.length,m=t.params.loop?Math.ceil(u/t.params.slidesPerGroup):t.snapGrid.length;if(t.params.loop?(r=t.previousRealIndex||0,a=t.params.slidesPerGroup>1?Math.floor(t.realIndex/t.params.slidesPerGroup):t.realIndex):void 0!==t.snapIndex?(a=t.snapIndex,r=t.previousSnapIndex):(r=t.previousIndex||0,a=t.activeIndex||0),"bullets"===s.type&&t.pagination.bullets&&t.pagination.bullets.length>0){const i=t.pagination.bullets;let o,d,u;if(s.dynamicBullets&&(n=x(i[0],t.isHorizontal()?"width":"height",!0),p.forEach((e=>{e.style[t.isHorizontal()?"width":"height"]=n*(s.dynamicMainBullets+4)+"px"})),s.dynamicMainBullets>1&&void 0!==r&&(l+=a-(r||0),l>s.dynamicMainBullets-1?l=s.dynamicMainBullets-1:l<0&&(l=0)),o=Math.max(a-l,0),d=o+(Math.min(i.length,s.dynamicMainBullets)-1),u=(d+o)/2),i.forEach((e=>{const t=[...["","-next","-next-next","-prev","-prev-prev","-main"].map((e=>`${s.bulletActiveClass}${e}`))].map((e=>"string"==typeof e&&e.includes(" ")?e.split(" "):e)).flat();e.classList.remove(...t)})),p.length>1)i.forEach((e=>{const i=b(e);i===a?e.classList.add(...s.bulletActiveClass.split(" ")):t.isElement&&e.setAttribute("part","bullet"),s.dynamicBullets&&(i>=o&&i<=d&&e.classList.add(...`${s.bulletActiveClass}-main`.split(" ")),i===o&&c(e,"prev"),i===d&&c(e,"next"))}));else{const e=i[a];if(e&&e.classList.add(...s.bulletActiveClass.split(" ")),t.isElement&&i.forEach(((e,t)=>{e.setAttribute("part",t===a?"bullet-active":"bullet")})),s.dynamicBullets){const e=i[o],t=i[d];for(let e=o;e<=d;e+=1)i[e]&&i[e].classList.add(...`${s.bulletActiveClass}-main`.split(" "));c(e,"prev"),c(t,"next")}}if(s.dynamicBullets){const a=Math.min(i.length,s.dynamicMainBullets+4),r=(n*a-n)/2-u*n,l=e?"right":"left";i.forEach((e=>{e.style[t.isHorizontal()?l:"top"]=`${r}px`}))}}p.forEach(((e,r)=>{if("fraction"===s.type&&(e.querySelectorAll(te(s.currentClass)).forEach((e=>{e.textContent=s.formatFractionCurrent(a+1)})),e.querySelectorAll(te(s.totalClass)).forEach((e=>{e.textContent=s.formatFractionTotal(m)}))),"progressbar"===s.type){let i;i=s.progressbarOpposite?t.isHorizontal()?"vertical":"horizontal":t.isHorizontal()?"horizontal":"vertical";const r=(a+1)/m;let n=1,l=1;"horizontal"===i?n=r:l=r,e.querySelectorAll(te(s.progressbarFillClass)).forEach((e=>{e.style.transform=`translate3d(0,0,0) scaleX(${n}) scaleY(${l})`,e.style.transitionDuration=`${t.params.speed}ms`}))}"custom"===s.type&&s.renderCustom?(e.innerHTML=s.renderCustom(t,a+1,m),0===r&&i("paginationRender",e)):(0===r&&i("paginationRender",e),i("paginationUpdate",e)),t.params.watchOverflow&&t.enabled&&e.classList[t.isLocked?"add":"remove"](s.lockClass)}))}function m(){const e=t.params.pagination;if(d())return;const s=t.virtual&&t.params.virtual.enabled?t.virtual.slides.length:t.slides.length;let a=t.pagination.el;a=o(a);let r="";if("bullets"===e.type){let a=t.params.loop?Math.ceil(s/t.params.slidesPerGroup):t.snapGrid.length;t.params.freeMode&&t.params.freeMode.enabled&&a>s&&(a=s);for(let s=0;s`}"fraction"===e.type&&(r=e.renderFraction?e.renderFraction.call(t,e.currentClass,e.totalClass):` / `),"progressbar"===e.type&&(r=e.renderProgressbar?e.renderProgressbar.call(t,e.progressbarFillClass):``),t.pagination.bullets=[],a.forEach((s=>{"custom"!==e.type&&(s.innerHTML=r||""),"bullets"===e.type&&t.pagination.bullets.push(...s.querySelectorAll(te(e.bulletClass)))})),"custom"!==e.type&&i("paginationRender",a[0])}function h(){t.params.pagination=ee(t,t.originalParams.pagination,t.params.pagination,{el:"swiper-pagination"});const e=t.params.pagination;if(!e.el)return;let s;"string"==typeof e.el&&t.isElement&&(s=t.el.shadowRoot.querySelector(e.el)),s||"string"!=typeof e.el||(s=[...document.querySelectorAll(e.el)]),s||(s=e.el),s&&0!==s.length&&(t.params.uniqueNavElements&&"string"==typeof e.el&&Array.isArray(s)&&s.length>1&&(s=[...t.el.querySelectorAll(e.el)],s.length>1&&(s=s.filter((e=>y(e,".swiper")[0]===t.el))[0])),Array.isArray(s)&&1===s.length&&(s=s[0]),Object.assign(t.pagination,{el:s}),s=o(s),s.forEach((s=>{"bullets"===e.type&&e.clickable&&s.classList.add(e.clickableClass),s.classList.add(e.modifierClass+e.type),s.classList.add(t.isHorizontal()?e.horizontalClass:e.verticalClass),"bullets"===e.type&&e.dynamicBullets&&(s.classList.add(`${e.modifierClass}${e.type}-dynamic`),l=0,e.dynamicMainBullets<1&&(e.dynamicMainBullets=1)),"progressbar"===e.type&&e.progressbarOpposite&&s.classList.add(e.progressbarOppositeClass),e.clickable&&s.addEventListener("click",p),t.enabled||s.classList.add(e.lockClass)})))}function f(){const e=t.params.pagination;if(d())return;let s=t.pagination.el;s&&(s=o(s),s.forEach((s=>{s.classList.remove(e.hiddenClass),s.classList.remove(e.modifierClass+e.type),s.classList.remove(t.isHorizontal()?e.horizontalClass:e.verticalClass),e.clickable&&s.removeEventListener("click",p)}))),t.pagination.bullets&&t.pagination.bullets.forEach((t=>t.classList.remove(...e.bulletActiveClass.split(" "))))}a("changeDirection",(()=>{if(!t.pagination||!t.pagination.el)return;const e=t.params.pagination;let{el:s}=t.pagination;s=o(s),s.forEach((s=>{s.classList.remove(e.horizontalClass,e.verticalClass),s.classList.add(t.isHorizontal()?e.horizontalClass:e.verticalClass)}))})),a("init",(()=>{!1===t.params.pagination.enabled?g():(h(),m(),u())})),a("activeIndexChange",(()=>{void 0===t.snapIndex&&u()})),a("snapIndexChange",(()=>{u()})),a("snapGridLengthChange",(()=>{m(),u()})),a("destroy",(()=>{f()})),a("enable disable",(()=>{let{el:e}=t.pagination;e&&(e=o(e),e.forEach((e=>e.classList[t.enabled?"remove":"add"](t.params.pagination.lockClass))))})),a("lock unlock",(()=>{u()})),a("click",((e,s)=>{const a=s.target;let{el:r}=t.pagination;if(Array.isArray(r)||(r=[r].filter((e=>!!e))),t.params.pagination.el&&t.params.pagination.hideOnClick&&r&&r.length>0&&!a.classList.contains(t.params.pagination.bulletClass)){if(t.navigation&&(t.navigation.nextEl&&a===t.navigation.nextEl||t.navigation.prevEl&&a===t.navigation.prevEl))return;const e=r[0].classList.contains(t.params.pagination.hiddenClass);i(!0===e?"paginationShow":"paginationHide"),r.forEach((e=>e.classList.toggle(t.params.pagination.hiddenClass)))}}));const g=()=>{t.el.classList.add(t.params.pagination.paginationDisabledClass);let{el:e}=t.pagination;e&&(e=o(e),e.forEach((e=>e.classList.add(t.params.pagination.paginationDisabledClass)))),f()};Object.assign(t.pagination,{enable:()=>{t.el.classList.remove(t.params.pagination.paginationDisabledClass);let{el:e}=t.pagination;e&&(e=o(e),e.forEach((e=>e.classList.remove(t.params.pagination.paginationDisabledClass)))),h(),m(),u()},disable:g,render:m,update:u,init:h,destroy:f})},function(e){let{swiper:t,extendParams:s,on:i,emit:r}=e;const l=a();let o,d,c,p,u=!1,m=null,h=null;function f(){if(!t.params.scrollbar.el||!t.scrollbar.el)return;const{scrollbar:e,rtlTranslate:s}=t,{dragEl:a,el:i}=e,r=t.params.scrollbar,n=t.params.loop?t.progressLoop:t.progress;let l=d,o=(c-d)*n;s?(o=-o,o>0?(l=d-o,o=0):-o+d>c&&(l=c+o)):o<0?(l=d+o,o=0):o+d>c&&(l=c-o),t.isHorizontal()?(a.style.transform=`translate3d(${o}px, 0, 0)`,a.style.width=`${l}px`):(a.style.transform=`translate3d(0px, ${o}px, 0)`,a.style.height=`${l}px`),r.hide&&(clearTimeout(m),i.style.opacity=1,m=setTimeout((()=>{i.style.opacity=0,i.style.transitionDuration="400ms"}),1e3))}function w(){if(!t.params.scrollbar.el||!t.scrollbar.el)return;const{scrollbar:e}=t,{dragEl:s,el:a}=e;s.style.width="",s.style.height="",c=t.isHorizontal()?a.offsetWidth:a.offsetHeight,p=t.size/(t.virtualSize+t.params.slidesOffsetBefore-(t.params.centeredSlides?t.snapGrid[0]:0)),d="auto"===t.params.scrollbar.dragSize?c*p:parseInt(t.params.scrollbar.dragSize,10),t.isHorizontal()?s.style.width=`${d}px`:s.style.height=`${d}px`,a.style.display=p>=1?"none":"",t.params.scrollbar.hide&&(a.style.opacity=0),t.params.watchOverflow&&t.enabled&&e.el.classList[t.isLocked?"add":"remove"](t.params.scrollbar.lockClass)}function b(e){return t.isHorizontal()?e.clientX:e.clientY}function y(e){const{scrollbar:s,rtlTranslate:a}=t,{el:i}=s;let r;r=(b(e)-v(i)[t.isHorizontal()?"left":"top"]-(null!==o?o:d/2))/(c-d),r=Math.max(Math.min(r,1),0),a&&(r=1-r);const n=t.minTranslate()+(t.maxTranslate()-t.minTranslate())*r;t.updateProgress(n),t.setTranslate(n),t.updateActiveIndex(),t.updateSlidesClasses()}function E(e){const s=t.params.scrollbar,{scrollbar:a,wrapperEl:i}=t,{el:n,dragEl:l}=a;u=!0,o=e.target===l?b(e)-e.target.getBoundingClientRect()[t.isHorizontal()?"left":"top"]:null,e.preventDefault(),e.stopPropagation(),i.style.transitionDuration="100ms",l.style.transitionDuration="100ms",y(e),clearTimeout(h),n.style.transitionDuration="0ms",s.hide&&(n.style.opacity=1),t.params.cssMode&&(t.wrapperEl.style["scroll-snap-type"]="none"),r("scrollbarDragStart",e)}function x(e){const{scrollbar:s,wrapperEl:a}=t,{el:i,dragEl:n}=s;u&&(e.preventDefault?e.preventDefault():e.returnValue=!1,y(e),a.style.transitionDuration="0ms",i.style.transitionDuration="0ms",n.style.transitionDuration="0ms",r("scrollbarDragMove",e))}function S(e){const s=t.params.scrollbar,{scrollbar:a,wrapperEl:i}=t,{el:l}=a;u&&(u=!1,t.params.cssMode&&(t.wrapperEl.style["scroll-snap-type"]="",i.style.transitionDuration=""),s.hide&&(clearTimeout(h),h=n((()=>{l.style.opacity=0,l.style.transitionDuration="400ms"}),1e3)),r("scrollbarDragEnd",e),s.snapOnRelease&&t.slideToClosest())}function T(e){const{scrollbar:s,params:a}=t,i=s.el;if(!i)return;const r=i,n=!!a.passiveListeners&&{passive:!1,capture:!1},o=!!a.passiveListeners&&{passive:!0,capture:!1};if(!r)return;const d="on"===e?"addEventListener":"removeEventListener";r[d]("pointerdown",E,n),l[d]("pointermove",x,n),l[d]("pointerup",S,o)}function M(){const{scrollbar:e,el:s}=t;t.params.scrollbar=ee(t,t.originalParams.scrollbar,t.params.scrollbar,{el:"swiper-scrollbar"});const a=t.params.scrollbar;if(!a.el)return;let i,r;"string"==typeof a.el&&t.isElement&&(i=t.el.shadowRoot.querySelector(a.el)),i||"string"!=typeof a.el?i||(i=a.el):i=l.querySelectorAll(a.el),t.params.uniqueNavElements&&"string"==typeof a.el&&i.length>1&&1===s.querySelectorAll(a.el).length&&(i=s.querySelector(a.el)),i.length>0&&(i=i[0]),i.classList.add(t.isHorizontal()?a.horizontalClass:a.verticalClass),i&&(r=i.querySelector(`.${t.params.scrollbar.dragClass}`),r||(r=g("div",t.params.scrollbar.dragClass),i.append(r))),Object.assign(e,{el:i,dragEl:r}),a.draggable&&t.params.scrollbar.el&&t.scrollbar.el&&T("on"),i&&i.classList[t.enabled?"remove":"add"](t.params.scrollbar.lockClass)}function C(){const e=t.params.scrollbar,s=t.scrollbar.el;s&&s.classList.remove(t.isHorizontal()?e.horizontalClass:e.verticalClass),t.params.scrollbar.el&&t.scrollbar.el&&T("off")}s({scrollbar:{el:null,dragSize:"auto",hide:!1,draggable:!1,snapOnRelease:!0,lockClass:"swiper-scrollbar-lock",dragClass:"swiper-scrollbar-drag",scrollbarDisabledClass:"swiper-scrollbar-disabled",horizontalClass:"swiper-scrollbar-horizontal",verticalClass:"swiper-scrollbar-vertical"}}),t.scrollbar={el:null,dragEl:null},i("init",(()=>{!1===t.params.scrollbar.enabled?P():(M(),w(),f())})),i("update resize observerUpdate lock unlock",(()=>{w()})),i("setTranslate",(()=>{f()})),i("setTransition",((e,s)=>{!function(e){t.params.scrollbar.el&&t.scrollbar.el&&(t.scrollbar.dragEl.style.transitionDuration=`${e}ms`)}(s)})),i("enable disable",(()=>{const{el:e}=t.scrollbar;e&&e.classList[t.enabled?"remove":"add"](t.params.scrollbar.lockClass)})),i("destroy",(()=>{C()}));const P=()=>{t.el.classList.add(t.params.scrollbar.scrollbarDisabledClass),t.scrollbar.el&&t.scrollbar.el.classList.add(t.params.scrollbar.scrollbarDisabledClass),C()};Object.assign(t.scrollbar,{enable:()=>{t.el.classList.remove(t.params.scrollbar.scrollbarDisabledClass),t.scrollbar.el&&t.scrollbar.el.classList.remove(t.params.scrollbar.scrollbarDisabledClass),M(),w(),f()},disable:P,updateSize:w,setTranslate:f,init:M,destroy:C})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({parallax:{enabled:!1}});const i=(e,s)=>{const{rtl:a}=t,i=a?-1:1,r=e.getAttribute("data-swiper-parallax")||"0";let n=e.getAttribute("data-swiper-parallax-x"),l=e.getAttribute("data-swiper-parallax-y");const o=e.getAttribute("data-swiper-parallax-scale"),d=e.getAttribute("data-swiper-parallax-opacity"),c=e.getAttribute("data-swiper-parallax-rotate");if(n||l?(n=n||"0",l=l||"0"):t.isHorizontal()?(n=r,l="0"):(l=r,n="0"),n=n.indexOf("%")>=0?parseInt(n,10)*s*i+"%":n*s*i+"px",l=l.indexOf("%")>=0?parseInt(l,10)*s+"%":l*s+"px",null!=d){const t=d-(d-1)*(1-Math.abs(s));e.style.opacity=t}let p=`translate3d(${n}, ${l}, 0px)`;if(null!=o){p+=` scale(${o-(o-1)*(1-Math.abs(s))})`}if(c&&null!=c){p+=` rotate(${c*s*-1}deg)`}e.style.transform=p},r=()=>{const{el:e,slides:s,progress:a,snapGrid:r}=t;f(e,"[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").forEach((e=>{i(e,a)})),s.forEach(((e,s)=>{let n=e.progress;t.params.slidesPerGroup>1&&"auto"!==t.params.slidesPerView&&(n+=Math.ceil(s/2)-a*(r.length-1)),n=Math.min(Math.max(n,-1),1),e.querySelectorAll("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale], [data-swiper-parallax-rotate]").forEach((e=>{i(e,n)}))}))};a("beforeInit",(()=>{t.params.parallax.enabled&&(t.params.watchSlidesProgress=!0,t.originalParams.watchSlidesProgress=!0)})),a("init",(()=>{t.params.parallax.enabled&&r()})),a("setTranslate",(()=>{t.params.parallax.enabled&&r()})),a("setTransition",((e,s)=>{t.params.parallax.enabled&&function(e){void 0===e&&(e=t.params.speed);const{el:s}=t;s.querySelectorAll("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").forEach((t=>{let s=parseInt(t.getAttribute("data-swiper-parallax-duration"),10)||e;0===e&&(s=0),t.style.transitionDuration=`${s}ms`}))}(s)}))},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const n=r();s({zoom:{enabled:!1,maxRatio:3,minRatio:1,toggle:!0,containerClass:"swiper-zoom-container",zoomedSlideClass:"swiper-slide-zoomed"}}),t.zoom={enabled:!1};let l,d,c=1,p=!1;const u=[],m={originX:0,originY:0,slideEl:void 0,slideWidth:void 0,slideHeight:void 0,imageEl:void 0,imageWrapEl:void 0,maxRatio:3},h={isTouched:void 0,isMoved:void 0,currentX:void 0,currentY:void 0,minX:void 0,minY:void 0,maxX:void 0,maxY:void 0,width:void 0,height:void 0,startX:void 0,startY:void 0,touchesStart:{},touchesCurrent:{}},g={x:void 0,y:void 0,prevPositionX:void 0,prevPositionY:void 0,prevTime:void 0};let w=1;function b(){if(u.length<2)return 1;const e=u[0].pageX,t=u[0].pageY,s=u[1].pageX,a=u[1].pageY;return Math.sqrt((s-e)**2+(a-t)**2)}function E(e){const s=t.isElement?"swiper-slide":`.${t.params.slideClass}`;return!!e.target.matches(s)||t.slides.filter((t=>t.contains(e.target))).length>0}function x(e){if("mouse"===e.pointerType&&u.splice(0,u.length),!E(e))return;const s=t.params.zoom;if(l=!1,d=!1,u.push(e),!(u.length<2)){if(l=!0,m.scaleStart=b(),!m.slideEl){m.slideEl=e.target.closest(`.${t.params.slideClass}, swiper-slide`),m.slideEl||(m.slideEl=t.slides[t.activeIndex]);let a=m.slideEl.querySelector(`.${s.containerClass}`);if(a&&(a=a.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),m.imageEl=a,m.imageWrapEl=a?y(m.imageEl,`.${s.containerClass}`)[0]:void 0,!m.imageWrapEl)return void(m.imageEl=void 0);m.maxRatio=m.imageWrapEl.getAttribute("data-swiper-zoom")||s.maxRatio}if(m.imageEl){const[e,t]=function(){if(u.length<2)return{x:null,y:null};const e=m.imageEl.getBoundingClientRect();return[(u[0].pageX+(u[1].pageX-u[0].pageX)/2-e.x)/c,(u[0].pageY+(u[1].pageY-u[0].pageY)/2-e.y)/c]}();m.originX=e,m.originY=t,m.imageEl.style.transitionDuration="0ms"}p=!0}}function S(e){if(!E(e))return;const s=t.params.zoom,a=t.zoom,i=u.findIndex((t=>t.pointerId===e.pointerId));i>=0&&(u[i]=e),u.length<2||(d=!0,m.scaleMove=b(),m.imageEl&&(a.scale=m.scaleMove/m.scaleStart*c,a.scale>m.maxRatio&&(a.scale=m.maxRatio-1+(a.scale-m.maxRatio+1)**.5),a.scalet.pointerId===e.pointerId));i>=0&&u.splice(i,1),l&&d&&(l=!1,d=!1,m.imageEl&&(a.scale=Math.max(Math.min(a.scale,m.maxRatio),s.minRatio),m.imageEl.style.transitionDuration=`${t.params.speed}ms`,m.imageEl.style.transform=`translate3d(0,0,0) scale(${a.scale})`,c=a.scale,p=!1,a.scale>1&&m.slideEl?m.slideEl.classList.add(`${s.zoomedSlideClass}`):a.scale<=1&&m.slideEl&&m.slideEl.classList.remove(`${s.zoomedSlideClass}`),1===a.scale&&(m.originX=0,m.originY=0,m.slideEl=void 0)))}function M(e){if(!E(e)||!function(e){const s=`.${t.params.zoom.containerClass}`;return!!e.target.matches(s)||[...t.el.querySelectorAll(s)].filter((t=>t.contains(e.target))).length>0}(e))return;const s=t.zoom;if(!m.imageEl)return;if(!h.isTouched||!m.slideEl)return;h.isMoved||(h.width=m.imageEl.offsetWidth,h.height=m.imageEl.offsetHeight,h.startX=o(m.imageWrapEl,"x")||0,h.startY=o(m.imageWrapEl,"y")||0,m.slideWidth=m.slideEl.offsetWidth,m.slideHeight=m.slideEl.offsetHeight,m.imageWrapEl.style.transitionDuration="0ms");const a=h.width*s.scale,i=h.height*s.scale;if(a0?u[0].pageX:e.pageX,h.touchesCurrent.y=u.length>0?u[0].pageY:e.pageY;if(Math.max(Math.abs(h.touchesCurrent.x-h.touchesStart.x),Math.abs(h.touchesCurrent.y-h.touchesStart.y))>5&&(t.allowClick=!1),!h.isMoved&&!p){if(t.isHorizontal()&&(Math.floor(h.minX)===Math.floor(h.startX)&&h.touchesCurrent.xh.touchesStart.x))return void(h.isTouched=!1);if(!t.isHorizontal()&&(Math.floor(h.minY)===Math.floor(h.startY)&&h.touchesCurrent.yh.touchesStart.y))return void(h.isTouched=!1)}e.cancelable&&e.preventDefault(),e.stopPropagation(),h.isMoved=!0;const r=(s.scale-c)/(m.maxRatio-t.params.zoom.minRatio),{originX:n,originY:l}=m;h.currentX=h.touchesCurrent.x-h.touchesStart.x+h.startX+r*(h.width-2*n),h.currentY=h.touchesCurrent.y-h.touchesStart.y+h.startY+r*(h.height-2*l),h.currentXh.maxX&&(h.currentX=h.maxX-1+(h.currentX-h.maxX+1)**.8),h.currentYh.maxY&&(h.currentY=h.maxY-1+(h.currentY-h.maxY+1)**.8),g.prevPositionX||(g.prevPositionX=h.touchesCurrent.x),g.prevPositionY||(g.prevPositionY=h.touchesCurrent.y),g.prevTime||(g.prevTime=Date.now()),g.x=(h.touchesCurrent.x-g.prevPositionX)/(Date.now()-g.prevTime)/2,g.y=(h.touchesCurrent.y-g.prevPositionY)/(Date.now()-g.prevTime)/2,Math.abs(h.touchesCurrent.x-g.prevPositionX)<2&&(g.x=0),Math.abs(h.touchesCurrent.y-g.prevPositionY)<2&&(g.y=0),g.prevPositionX=h.touchesCurrent.x,g.prevPositionY=h.touchesCurrent.y,g.prevTime=Date.now(),m.imageWrapEl.style.transform=`translate3d(${h.currentX}px, ${h.currentY}px,0)`}function C(){const e=t.zoom;m.slideEl&&t.activeIndex!==t.slides.indexOf(m.slideEl)&&(m.imageEl&&(m.imageEl.style.transform="translate3d(0,0,0) scale(1)"),m.imageWrapEl&&(m.imageWrapEl.style.transform="translate3d(0,0,0)"),m.slideEl.classList.remove(`${t.params.zoom.zoomedSlideClass}`),e.scale=1,c=1,m.slideEl=void 0,m.imageEl=void 0,m.imageWrapEl=void 0,m.originX=0,m.originY=0)}function P(e){const s=t.zoom,a=t.params.zoom;if(!m.slideEl){e&&e.target&&(m.slideEl=e.target.closest(`.${t.params.slideClass}, swiper-slide`)),m.slideEl||(t.params.virtual&&t.params.virtual.enabled&&t.virtual?m.slideEl=f(t.slidesEl,`.${t.params.slideActiveClass}`)[0]:m.slideEl=t.slides[t.activeIndex]);let s=m.slideEl.querySelector(`.${a.containerClass}`);s&&(s=s.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),m.imageEl=s,m.imageWrapEl=s?y(m.imageEl,`.${a.containerClass}`)[0]:void 0}if(!m.imageEl||!m.imageWrapEl)return;let i,r,l,o,d,p,u,g,w,b,E,x,S,T,M,C,P,L;t.params.cssMode&&(t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.touchAction="none"),m.slideEl.classList.add(`${a.zoomedSlideClass}`),void 0===h.touchesStart.x&&e?(i=e.pageX,r=e.pageY):(i=h.touchesStart.x,r=h.touchesStart.y);const z="number"==typeof e?e:null;1===c&&z&&(i=void 0,r=void 0),s.scale=z||m.imageWrapEl.getAttribute("data-swiper-zoom")||a.maxRatio,c=z||m.imageWrapEl.getAttribute("data-swiper-zoom")||a.maxRatio,!e||1===c&&z?(u=0,g=0):(P=m.slideEl.offsetWidth,L=m.slideEl.offsetHeight,l=v(m.slideEl).left+n.scrollX,o=v(m.slideEl).top+n.scrollY,d=l+P/2-i,p=o+L/2-r,w=m.imageEl.offsetWidth,b=m.imageEl.offsetHeight,E=w*s.scale,x=b*s.scale,S=Math.min(P/2-E/2,0),T=Math.min(L/2-x/2,0),M=-S,C=-T,u=d*s.scale,g=p*s.scale,uM&&(u=M),gC&&(g=C)),z&&1===s.scale&&(m.originX=0,m.originY=0),m.imageWrapEl.style.transitionDuration="300ms",m.imageWrapEl.style.transform=`translate3d(${u}px, ${g}px,0)`,m.imageEl.style.transitionDuration="300ms",m.imageEl.style.transform=`translate3d(0,0,0) scale(${s.scale})`}function L(){const e=t.zoom,s=t.params.zoom;if(!m.slideEl){t.params.virtual&&t.params.virtual.enabled&&t.virtual?m.slideEl=f(t.slidesEl,`.${t.params.slideActiveClass}`)[0]:m.slideEl=t.slides[t.activeIndex];let e=m.slideEl.querySelector(`.${s.containerClass}`);e&&(e=e.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),m.imageEl=e,m.imageWrapEl=e?y(m.imageEl,`.${s.containerClass}`)[0]:void 0}m.imageEl&&m.imageWrapEl&&(t.params.cssMode&&(t.wrapperEl.style.overflow="",t.wrapperEl.style.touchAction=""),e.scale=1,c=1,m.imageWrapEl.style.transitionDuration="300ms",m.imageWrapEl.style.transform="translate3d(0,0,0)",m.imageEl.style.transitionDuration="300ms",m.imageEl.style.transform="translate3d(0,0,0) scale(1)",m.slideEl.classList.remove(`${s.zoomedSlideClass}`),m.slideEl=void 0,m.originX=0,m.originY=0)}function z(e){const s=t.zoom;s.scale&&1!==s.scale?L():P(e)}function A(){return{passiveListener:!!t.params.passiveListeners&&{passive:!0,capture:!1},activeListenerWithCapture:!t.params.passiveListeners||{passive:!1,capture:!0}}}function $(){const e=t.zoom;if(e.enabled)return;e.enabled=!0;const{passiveListener:s,activeListenerWithCapture:a}=A();t.wrapperEl.addEventListener("pointerdown",x,s),t.wrapperEl.addEventListener("pointermove",S,a),["pointerup","pointercancel","pointerout"].forEach((e=>{t.wrapperEl.addEventListener(e,T,s)})),t.wrapperEl.addEventListener("pointermove",M,a)}function I(){const e=t.zoom;if(!e.enabled)return;e.enabled=!1;const{passiveListener:s,activeListenerWithCapture:a}=A();t.wrapperEl.removeEventListener("pointerdown",x,s),t.wrapperEl.removeEventListener("pointermove",S,a),["pointerup","pointercancel","pointerout"].forEach((e=>{t.wrapperEl.removeEventListener(e,T,s)})),t.wrapperEl.removeEventListener("pointermove",M,a)}Object.defineProperty(t.zoom,"scale",{get:()=>w,set(e){if(w!==e){const t=m.imageEl,s=m.slideEl;i("zoomChange",e,t,s)}w=e}}),a("init",(()=>{t.params.zoom.enabled&&$()})),a("destroy",(()=>{I()})),a("touchStart",((e,s)=>{t.zoom.enabled&&function(e){const s=t.device;if(!m.imageEl)return;if(h.isTouched)return;s.android&&e.cancelable&&e.preventDefault(),h.isTouched=!0;const a=u.length>0?u[0]:e;h.touchesStart.x=a.pageX,h.touchesStart.y=a.pageY}(s)})),a("touchEnd",((e,s)=>{t.zoom.enabled&&function(){const e=t.zoom;if(!m.imageEl)return;if(!h.isTouched||!h.isMoved)return h.isTouched=!1,void(h.isMoved=!1);h.isTouched=!1,h.isMoved=!1;let s=300,a=300;const i=g.x*s,r=h.currentX+i,n=g.y*a,l=h.currentY+n;0!==g.x&&(s=Math.abs((r-h.currentX)/g.x)),0!==g.y&&(a=Math.abs((l-h.currentY)/g.y));const o=Math.max(s,a);h.currentX=r,h.currentY=l;const d=h.width*e.scale,c=h.height*e.scale;h.minX=Math.min(m.slideWidth/2-d/2,0),h.maxX=-h.minX,h.minY=Math.min(m.slideHeight/2-c/2,0),h.maxY=-h.minY,h.currentX=Math.max(Math.min(h.currentX,h.maxX),h.minX),h.currentY=Math.max(Math.min(h.currentY,h.maxY),h.minY),m.imageWrapEl.style.transitionDuration=`${o}ms`,m.imageWrapEl.style.transform=`translate3d(${h.currentX}px, ${h.currentY}px,0)`}()})),a("doubleTap",((e,s)=>{!t.animating&&t.params.zoom.enabled&&t.zoom.enabled&&t.params.zoom.toggle&&z(s)})),a("transitionEnd",(()=>{t.zoom.enabled&&t.params.zoom.enabled&&C()})),a("slideChange",(()=>{t.zoom.enabled&&t.params.zoom.enabled&&t.params.cssMode&&C()})),Object.assign(t.zoom,{enable:$,disable:I,in:P,out:L,toggle:z})},function(e){let{swiper:t,extendParams:s,on:a}=e;function i(e,t){const s=function(){let e,t,s;return(a,i)=>{for(t=-1,e=a.length;e-t>1;)s=e+t>>1,a[s]<=i?t=s:e=s;return e}}();let a,i;return this.x=e,this.y=t,this.lastIndex=e.length-1,this.interpolate=function(e){return e?(i=s(this.x,e),a=i-1,(e-this.x[a])*(this.y[i]-this.y[a])/(this.x[i]-this.x[a])+this.y[a]):0},this}function r(){t.controller.control&&t.controller.spline&&(t.controller.spline=void 0,delete t.controller.spline)}s({controller:{control:void 0,inverse:!1,by:"slide"}}),t.controller={control:void 0},a("beforeInit",(()=>{if("undefined"!=typeof window&&("string"==typeof t.params.controller.control||t.params.controller.control instanceof HTMLElement)){const e=document.querySelector(t.params.controller.control);if(e&&e.swiper)t.controller.control=e.swiper;else if(e){const s=a=>{t.controller.control=a.detail[0],t.update(),e.removeEventListener("init",s)};e.addEventListener("init",s)}}else t.controller.control=t.params.controller.control})),a("update",(()=>{r()})),a("resize",(()=>{r()})),a("observerUpdate",(()=>{r()})),a("setTranslate",((e,s,a)=>{t.controller.control&&!t.controller.control.destroyed&&t.controller.setTranslate(s,a)})),a("setTransition",((e,s,a)=>{t.controller.control&&!t.controller.control.destroyed&&t.controller.setTransition(s,a)})),Object.assign(t.controller,{setTranslate:function(e,s){const a=t.controller.control;let r,n;const l=t.constructor;function o(e){if(e.destroyed)return;const s=t.rtlTranslate?-t.translate:t.translate;"slide"===t.params.controller.by&&(!function(e){t.controller.spline=t.params.loop?new i(t.slidesGrid,e.slidesGrid):new i(t.snapGrid,e.snapGrid)}(e),n=-t.controller.spline.interpolate(-s)),n&&"container"!==t.params.controller.by||(r=(e.maxTranslate()-e.minTranslate())/(t.maxTranslate()-t.minTranslate()),!Number.isNaN(r)&&Number.isFinite(r)||(r=1),n=(s-t.minTranslate())*r+e.minTranslate()),t.params.controller.inverse&&(n=e.maxTranslate()-n),e.updateProgress(n),e.setTranslate(n,t),e.updateActiveIndex(),e.updateSlidesClasses()}if(Array.isArray(a))for(let e=0;e{s.updateAutoHeight()})),E(s.wrapperEl,(()=>{i&&s.transitionEnd()}))))}if(Array.isArray(i))for(r=0;r(Array.isArray(e)||(e=[e].filter((e=>!!e))),e);function l(e){(e=n(e)).forEach((e=>{e.setAttribute("tabIndex","0")}))}function o(e){(e=n(e)).forEach((e=>{e.setAttribute("tabIndex","-1")}))}function d(e,t){(e=n(e)).forEach((e=>{e.setAttribute("role",t)}))}function c(e,t){(e=n(e)).forEach((e=>{e.setAttribute("aria-roledescription",t)}))}function p(e,t){(e=n(e)).forEach((e=>{e.setAttribute("aria-label",t)}))}function u(e){(e=n(e)).forEach((e=>{e.setAttribute("aria-disabled",!0)}))}function m(e){(e=n(e)).forEach((e=>{e.setAttribute("aria-disabled",!1)}))}function h(e){if(13!==e.keyCode&&32!==e.keyCode)return;const s=t.params.a11y,a=e.target;t.pagination&&t.pagination.el&&(a===t.pagination.el||t.pagination.el.contains(e.target))&&!e.target.matches(te(t.params.pagination.bulletClass))||(t.navigation&&t.navigation.nextEl&&a===t.navigation.nextEl&&(t.isEnd&&!t.params.loop||t.slideNext(),t.isEnd?r(s.lastSlideMessage):r(s.nextSlideMessage)),t.navigation&&t.navigation.prevEl&&a===t.navigation.prevEl&&(t.isBeginning&&!t.params.loop||t.slidePrev(),t.isBeginning?r(s.firstSlideMessage):r(s.prevSlideMessage)),t.pagination&&a.matches(te(t.params.pagination.bulletClass))&&a.click())}function f(){return t.pagination&&t.pagination.bullets&&t.pagination.bullets.length}function v(){return f()&&t.params.pagination.clickable}const w=(e,t,s)=>{l(e),"BUTTON"!==e.tagName&&(d(e,"button"),e.addEventListener("keydown",h)),p(e,s),function(e,t){(e=n(e)).forEach((e=>{e.setAttribute("aria-controls",t)}))}(e,t)},y=()=>{t.a11y.clicked=!0},E=()=>{requestAnimationFrame((()=>{requestAnimationFrame((()=>{t.destroyed||(t.a11y.clicked=!1)}))}))},x=e=>{if(t.a11y.clicked)return;const s=e.target.closest(`.${t.params.slideClass}, swiper-slide`);if(!s||!t.slides.includes(s))return;const a=t.slides.indexOf(s)===t.activeIndex,i=t.params.watchSlidesProgress&&t.visibleSlides&&t.visibleSlides.includes(s);a||i||e.sourceCapabilities&&e.sourceCapabilities.firesTouchEvents||(t.isHorizontal()?t.el.scrollLeft=0:t.el.scrollTop=0,t.slideTo(t.slides.indexOf(s),0))},S=()=>{const e=t.params.a11y;e.itemRoleDescriptionMessage&&c(t.slides,e.itemRoleDescriptionMessage),e.slideRole&&d(t.slides,e.slideRole);const s=t.slides.length;e.slideLabelMessage&&t.slides.forEach(((a,i)=>{const r=t.params.loop?parseInt(a.getAttribute("data-swiper-slide-index"),10):i;p(a,e.slideLabelMessage.replace(/\{\{index\}\}/,r+1).replace(/\{\{slidesLength\}\}/,s))}))},T=()=>{const e=t.params.a11y;t.isElement?t.el.shadowEl.append(i):t.el.append(i);const s=t.el;e.containerRoleDescriptionMessage&&c(s,e.containerRoleDescriptionMessage),e.containerMessage&&p(s,e.containerMessage);const a=t.wrapperEl,r=e.id||a.getAttribute("id")||`swiper-wrapper-${l=16,void 0===l&&(l=16),"x".repeat(l).replace(/x/g,(()=>Math.round(16*Math.random()).toString(16)))}`;var l;const o=t.params.autoplay&&t.params.autoplay.enabled?"off":"polite";var d;d=r,n(a).forEach((e=>{e.setAttribute("id",d)})),function(e,t){(e=n(e)).forEach((e=>{e.setAttribute("aria-live",t)}))}(a,o),S();let{nextEl:u,prevEl:m}=t.navigation?t.navigation:{};if(u=n(u),m=n(m),u&&u.forEach((t=>w(t,r,e.nextSlideMessage))),m&&m.forEach((t=>w(t,r,e.prevSlideMessage))),v()){(Array.isArray(t.pagination.el)?t.pagination.el:[t.pagination.el]).forEach((e=>{e.addEventListener("keydown",h)}))}t.el.addEventListener("focus",x,!0),t.el.addEventListener("pointerdown",y,!0),t.el.addEventListener("pointerup",E,!0)};a("beforeInit",(()=>{i=g("span",t.params.a11y.notificationClass),i.setAttribute("aria-live","assertive"),i.setAttribute("aria-atomic","true")})),a("afterInit",(()=>{t.params.a11y.enabled&&T()})),a("slidesLengthChange snapGridLengthChange slidesGridLengthChange",(()=>{t.params.a11y.enabled&&S()})),a("fromEdge toEdge afterInit lock unlock",(()=>{t.params.a11y.enabled&&function(){if(t.params.loop||t.params.rewind||!t.navigation)return;const{nextEl:e,prevEl:s}=t.navigation;s&&(t.isBeginning?(u(s),o(s)):(m(s),l(s))),e&&(t.isEnd?(u(e),o(e)):(m(e),l(e)))}()})),a("paginationUpdate",(()=>{t.params.a11y.enabled&&function(){const e=t.params.a11y;f()&&t.pagination.bullets.forEach((s=>{t.params.pagination.clickable&&(l(s),t.params.pagination.renderBullet||(d(s,"button"),p(s,e.paginationBulletMessage.replace(/\{\{index\}\}/,b(s)+1)))),s.matches(te(t.params.pagination.bulletActiveClass))?s.setAttribute("aria-current","true"):s.removeAttribute("aria-current")}))}()})),a("destroy",(()=>{t.params.a11y.enabled&&function(){i&&i.remove();let{nextEl:e,prevEl:s}=t.navigation?t.navigation:{};e=n(e),s=n(s),e&&e.forEach((e=>e.removeEventListener("keydown",h))),s&&s.forEach((e=>e.removeEventListener("keydown",h))),v()&&(Array.isArray(t.pagination.el)?t.pagination.el:[t.pagination.el]).forEach((e=>{e.removeEventListener("keydown",h)}));t.el.removeEventListener("focus",x,!0),t.el.removeEventListener("pointerdown",y,!0),t.el.removeEventListener("pointerup",E,!0)}()}))},function(e){let{swiper:t,extendParams:s,on:a}=e;s({history:{enabled:!1,root:"",replaceState:!1,key:"slides",keepQuery:!1}});let i=!1,n={};const l=e=>e.toString().replace(/\s+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,""),o=e=>{const t=r();let s;s=e?new URL(e):t.location;const a=s.pathname.slice(1).split("/").filter((e=>""!==e)),i=a.length;return{key:a[i-2],value:a[i-1]}},d=(e,s)=>{const a=r();if(!i||!t.params.history.enabled)return;let n;n=t.params.url?new URL(t.params.url):a.location;const o=t.slides[s];let d=l(o.getAttribute("data-history"));if(t.params.history.root.length>0){let s=t.params.history.root;"/"===s[s.length-1]&&(s=s.slice(0,s.length-1)),d=`${s}/${e?`${e}/`:""}${d}`}else n.pathname.includes(e)||(d=`${e?`${e}/`:""}${d}`);t.params.history.keepQuery&&(d+=n.search);const c=a.history.state;c&&c.value===d||(t.params.history.replaceState?a.history.replaceState({value:d},null,d):a.history.pushState({value:d},null,d))},c=(e,s,a)=>{if(s)for(let i=0,r=t.slides.length;i{n=o(t.params.url),c(t.params.speed,n.value,!1)};a("init",(()=>{t.params.history.enabled&&(()=>{const e=r();if(t.params.history){if(!e.history||!e.history.pushState)return t.params.history.enabled=!1,void(t.params.hashNavigation.enabled=!0);i=!0,n=o(t.params.url),n.key||n.value?(c(0,n.value,t.params.runCallbacksOnInit),t.params.history.replaceState||e.addEventListener("popstate",p)):t.params.history.replaceState||e.addEventListener("popstate",p)}})()})),a("destroy",(()=>{t.params.history.enabled&&(()=>{const e=r();t.params.history.replaceState||e.removeEventListener("popstate",p)})()})),a("transitionEnd _freeModeNoMomentumRelease",(()=>{i&&d(t.params.history.key,t.activeIndex)})),a("slideChange",(()=>{i&&t.params.cssMode&&d(t.params.history.key,t.activeIndex)}))},function(e){let{swiper:t,extendParams:s,emit:i,on:n}=e,l=!1;const o=a(),d=r();s({hashNavigation:{enabled:!1,replaceState:!1,watchState:!1,getSlideIndex(e,s){if(t.virtual&&t.params.virtual.enabled){const e=t.slides.filter((e=>e.getAttribute("data-hash")===s))[0];if(!e)return 0;return parseInt(e.getAttribute("data-swiper-slide-index"),10)}return t.getSlideIndex(f(t.slidesEl,`.${t.params.slideClass}[data-hash="${s}"], swiper-slide[data-hash="${s}"]`)[0])}}});const c=()=>{i("hashChange");const e=o.location.hash.replace("#",""),s=t.virtual&&t.params.virtual.enabled?t.slidesEl.querySelector(`[data-swiper-slide-index="${t.activeIndex}"]`):t.slides[t.activeIndex];if(e!==(s?s.getAttribute("data-hash"):"")){const s=t.params.hashNavigation.getSlideIndex(t,e);if(void 0===s||Number.isNaN(s))return;t.slideTo(s)}},p=()=>{if(!l||!t.params.hashNavigation.enabled)return;const e=t.virtual&&t.params.virtual.enabled?t.slidesEl.querySelector(`[data-swiper-slide-index="${t.activeIndex}"]`):t.slides[t.activeIndex],s=e?e.getAttribute("data-hash")||e.getAttribute("data-history"):"";t.params.hashNavigation.replaceState&&d.history&&d.history.replaceState?(d.history.replaceState(null,null,`#${s}`||""),i("hashSet")):(o.location.hash=s||"",i("hashSet"))};n("init",(()=>{t.params.hashNavigation.enabled&&(()=>{if(!t.params.hashNavigation.enabled||t.params.history&&t.params.history.enabled)return;l=!0;const e=o.location.hash.replace("#","");if(e){const s=0,a=t.params.hashNavigation.getSlideIndex(t,e);t.slideTo(a||0,s,t.params.runCallbacksOnInit,!0)}t.params.hashNavigation.watchState&&d.addEventListener("hashchange",c)})()})),n("destroy",(()=>{t.params.hashNavigation.enabled&&t.params.hashNavigation.watchState&&d.removeEventListener("hashchange",c)})),n("transitionEnd _freeModeNoMomentumRelease",(()=>{l&&p()})),n("slideChange",(()=>{l&&t.params.cssMode&&p()}))},function(e){let t,s,{swiper:i,extendParams:r,on:n,emit:l,params:o}=e;i.autoplay={running:!1,paused:!1,timeLeft:0},r({autoplay:{enabled:!1,delay:3e3,waitForTransition:!0,disableOnInteraction:!0,stopOnLastSlide:!1,reverseDirection:!1,pauseOnMouseEnter:!1}});let d,c,p,u,m,h,f,g=o&&o.autoplay?o.autoplay.delay:3e3,v=o&&o.autoplay?o.autoplay.delay:3e3,w=(new Date).getTime;function b(e){i&&!i.destroyed&&i.wrapperEl&&e.target===i.wrapperEl&&(i.wrapperEl.removeEventListener("transitionend",b),M())}const y=()=>{if(i.destroyed||!i.autoplay.running)return;i.autoplay.paused?c=!0:c&&(v=d,c=!1);const e=i.autoplay.paused?d:w+v-(new Date).getTime();i.autoplay.timeLeft=e,l("autoplayTimeLeft",e,e/g),s=requestAnimationFrame((()=>{y()}))},E=e=>{if(i.destroyed||!i.autoplay.running)return;cancelAnimationFrame(s),y();let a=void 0===e?i.params.autoplay.delay:e;g=i.params.autoplay.delay,v=i.params.autoplay.delay;const r=(()=>{let e;if(e=i.virtual&&i.params.virtual.enabled?i.slides.filter((e=>e.classList.contains("swiper-slide-active")))[0]:i.slides[i.activeIndex],!e)return;return parseInt(e.getAttribute("data-swiper-autoplay"),10)})();!Number.isNaN(r)&&r>0&&void 0===e&&(a=r,g=r,v=r),d=a;const n=i.params.speed,o=()=>{i&&!i.destroyed&&(i.params.autoplay.reverseDirection?!i.isBeginning||i.params.loop||i.params.rewind?(i.slidePrev(n,!0,!0),l("autoplay")):i.params.autoplay.stopOnLastSlide||(i.slideTo(i.slides.length-1,n,!0,!0),l("autoplay")):!i.isEnd||i.params.loop||i.params.rewind?(i.slideNext(n,!0,!0),l("autoplay")):i.params.autoplay.stopOnLastSlide||(i.slideTo(0,n,!0,!0),l("autoplay")),i.params.cssMode&&(w=(new Date).getTime(),requestAnimationFrame((()=>{E()}))))};return a>0?(clearTimeout(t),t=setTimeout((()=>{o()}),a)):requestAnimationFrame((()=>{o()})),a},x=()=>{i.autoplay.running=!0,E(),l("autoplayStart")},S=()=>{i.autoplay.running=!1,clearTimeout(t),cancelAnimationFrame(s),l("autoplayStop")},T=(e,s)=>{if(i.destroyed||!i.autoplay.running)return;clearTimeout(t),e||(f=!0);const a=()=>{l("autoplayPause"),i.params.autoplay.waitForTransition?i.wrapperEl.addEventListener("transitionend",b):M()};if(i.autoplay.paused=!0,s)return h&&(d=i.params.autoplay.delay),h=!1,void a();const r=d||i.params.autoplay.delay;d=r-((new Date).getTime()-w),i.isEnd&&d<0&&!i.params.loop||(d<0&&(d=0),a())},M=()=>{i.isEnd&&d<0&&!i.params.loop||i.destroyed||!i.autoplay.running||(w=(new Date).getTime(),f?(f=!1,E(d)):E(),i.autoplay.paused=!1,l("autoplayResume"))},C=()=>{if(i.destroyed||!i.autoplay.running)return;const e=a();"hidden"===e.visibilityState&&(f=!0,T(!0)),"visible"===e.visibilityState&&M()},P=e=>{"mouse"===e.pointerType&&(f=!0,T(!0))},L=e=>{"mouse"===e.pointerType&&i.autoplay.paused&&M()};n("init",(()=>{i.params.autoplay.enabled&&(i.params.autoplay.pauseOnMouseEnter&&(i.el.addEventListener("pointerenter",P),i.el.addEventListener("pointerleave",L)),a().addEventListener("visibilitychange",C),w=(new Date).getTime(),x())})),n("destroy",(()=>{i.el.removeEventListener("pointerenter",P),i.el.removeEventListener("pointerleave",L),a().removeEventListener("visibilitychange",C),i.autoplay.running&&S()})),n("beforeTransitionStart",((e,t,s)=>{!i.destroyed&&i.autoplay.running&&(s||!i.params.autoplay.disableOnInteraction?T(!0,!0):S())})),n("sliderFirstMove",(()=>{!i.destroyed&&i.autoplay.running&&(i.params.autoplay.disableOnInteraction?S():(p=!0,u=!1,f=!1,m=setTimeout((()=>{f=!0,u=!0,T(!0)}),200)))})),n("touchEnd",(()=>{if(!i.destroyed&&i.autoplay.running&&p){if(clearTimeout(m),clearTimeout(t),i.params.autoplay.disableOnInteraction)return u=!1,void(p=!1);u&&i.params.cssMode&&M(),u=!1,p=!1}})),n("slideChange",(()=>{!i.destroyed&&i.autoplay.running&&(h=!0)})),Object.assign(i.autoplay,{start:x,stop:S,pause:T,resume:M})},function(e){let{swiper:t,extendParams:s,on:i}=e;s({thumbs:{swiper:null,multipleActiveThumbs:!0,autoScrollOffset:0,slideThumbActiveClass:"swiper-slide-thumb-active",thumbsContainerClass:"swiper-thumbs"}});let r=!1,n=!1;function l(){const e=t.thumbs.swiper;if(!e||e.destroyed)return;const s=e.clickedIndex,a=e.clickedSlide;if(a&&a.classList.contains(t.params.thumbs.slideThumbActiveClass))return;if(null==s)return;let i;i=e.params.loop?parseInt(e.clickedSlide.getAttribute("data-swiper-slide-index"),10):s,t.params.loop?t.slideToLoop(i):t.slideTo(i)}function o(){const{thumbs:e}=t.params;if(r)return!1;r=!0;const s=t.constructor;if(e.swiper instanceof s)t.thumbs.swiper=e.swiper,Object.assign(t.thumbs.swiper.originalParams,{watchSlidesProgress:!0,slideToClickedSlide:!1}),Object.assign(t.thumbs.swiper.params,{watchSlidesProgress:!0,slideToClickedSlide:!1}),t.thumbs.swiper.update();else if(d(e.swiper)){const a=Object.assign({},e.swiper);Object.assign(a,{watchSlidesProgress:!0,slideToClickedSlide:!1}),t.thumbs.swiper=new s(a),n=!0}return t.thumbs.swiper.el.classList.add(t.params.thumbs.thumbsContainerClass),t.thumbs.swiper.on("tap",l),!0}function c(e){const s=t.thumbs.swiper;if(!s||s.destroyed)return;const a="auto"===s.params.slidesPerView?s.slidesPerViewDynamic():s.params.slidesPerView;let i=1;const r=t.params.thumbs.slideThumbActiveClass;if(t.params.slidesPerView>1&&!t.params.centeredSlides&&(i=t.params.slidesPerView),t.params.thumbs.multipleActiveThumbs||(i=1),i=Math.floor(i),s.slides.forEach((e=>e.classList.remove(r))),s.params.loop||s.params.virtual&&s.params.virtual.enabled)for(let e=0;e{e.classList.add(r)}));else for(let e=0;ee.getAttribute("data-swiper-slide-index")===`${t.realIndex}`))[0];r=s.slides.indexOf(e),o=t.activeIndex>t.previousIndex?"next":"prev"}else r=t.realIndex,o=r>t.previousIndex?"next":"prev";l&&(r+="next"===o?n:-1*n),s.visibleSlidesIndexes&&s.visibleSlidesIndexes.indexOf(r)<0&&(s.params.centeredSlides?r=r>i?r-Math.floor(a/2)+1:r+Math.floor(a/2)-1:r>i&&s.params.slidesPerGroup,s.slideTo(r,e?0:void 0))}}t.thumbs={swiper:null},i("beforeInit",(()=>{const{thumbs:e}=t.params;if(e&&e.swiper)if("string"==typeof e.swiper||e.swiper instanceof HTMLElement){const s=a(),i=()=>{const a="string"==typeof e.swiper?s.querySelector(e.swiper):e.swiper;if(a&&a.swiper)e.swiper=a.swiper,o(),c(!0);else if(a){const s=i=>{e.swiper=i.detail[0],a.removeEventListener("init",s),o(),c(!0),e.swiper.update(),t.update()};a.addEventListener("init",s)}return a},r=()=>{if(t.destroyed)return;i()||requestAnimationFrame(r)};requestAnimationFrame(r)}else o(),c(!0)})),i("slideChange update resize observerUpdate",(()=>{c()})),i("setTransition",((e,s)=>{const a=t.thumbs.swiper;a&&!a.destroyed&&a.setTransition(s)})),i("beforeDestroy",(()=>{const e=t.thumbs.swiper;e&&!e.destroyed&&n&&e.destroy()})),Object.assign(t.thumbs,{init:o,update:c})},function(e){let{swiper:t,extendParams:s,emit:a,once:i}=e;s({freeMode:{enabled:!1,momentum:!0,momentumRatio:1,momentumBounce:!0,momentumBounceRatio:1,momentumVelocityRatio:1,sticky:!1,minimumVelocity:.02}}),Object.assign(t,{freeMode:{onTouchStart:function(){if(t.params.cssMode)return;const e=t.getTranslate();t.setTranslate(e),t.setTransition(0),t.touchEventsData.velocities.length=0,t.freeMode.onTouchEnd({currentPos:t.rtl?t.translate:-t.translate})},onTouchMove:function(){if(t.params.cssMode)return;const{touchEventsData:e,touches:s}=t;0===e.velocities.length&&e.velocities.push({position:s[t.isHorizontal()?"startX":"startY"],time:e.touchStartTime}),e.velocities.push({position:s[t.isHorizontal()?"currentX":"currentY"],time:l()})},onTouchEnd:function(e){let{currentPos:s}=e;if(t.params.cssMode)return;const{params:r,wrapperEl:n,rtlTranslate:o,snapGrid:d,touchEventsData:c}=t,p=l()-c.touchStartTime;if(s<-t.minTranslate())t.slideTo(t.activeIndex);else if(s>-t.maxTranslate())t.slides.length1){const e=c.velocities.pop(),s=c.velocities.pop(),a=e.position-s.position,i=e.time-s.time;t.velocity=a/i,t.velocity/=2,Math.abs(t.velocity)150||l()-e.time>300)&&(t.velocity=0)}else t.velocity=0;t.velocity*=r.freeMode.momentumVelocityRatio,c.velocities.length=0;let e=1e3*r.freeMode.momentumRatio;const s=t.velocity*e;let p=t.translate+s;o&&(p=-p);let u,m=!1;const h=20*Math.abs(t.velocity)*r.freeMode.momentumBounceRatio;let f;if(pt.minTranslate())r.freeMode.momentumBounce?(p-t.minTranslate()>h&&(p=t.minTranslate()+h),u=t.minTranslate(),m=!0,c.allowMomentumBounce=!0):p=t.minTranslate(),r.loop&&r.centeredSlides&&(f=!0);else if(r.freeMode.sticky){let e;for(let t=0;t-p){e=t;break}p=Math.abs(d[e]-p){t.loopFix()})),0!==t.velocity){if(e=o?Math.abs((-p-t.translate)/t.velocity):Math.abs((p-t.translate)/t.velocity),r.freeMode.sticky){const s=Math.abs((o?-p:p)-t.translate),a=t.slidesSizesGrid[t.activeIndex];e=s{t&&!t.destroyed&&c.allowMomentumBounce&&(a("momentumBounce"),t.setTransition(r.speed),setTimeout((()=>{t.setTranslate(u),E(n,(()=>{t&&!t.destroyed&&t.transitionEnd()}))}),0))}))):t.velocity?(a("_freeModeNoMomentumRelease"),t.updateProgress(p),t.setTransition(e),t.setTranslate(p),t.transitionStart(!0,t.swipeDirection),t.animating||(t.animating=!0,E(n,(()=>{t&&!t.destroyed&&t.transitionEnd()})))):t.updateProgress(p),t.updateActiveIndex(),t.updateSlidesClasses()}else{if(r.freeMode.sticky)return void t.slideToClosest();r.freeMode&&a("_freeModeNoMomentumRelease")}(!r.freeMode.momentum||p>=r.longSwipesMs)&&(t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses())}}}})},function(e){let t,s,a,{swiper:i,extendParams:r}=e;r({grid:{rows:1,fill:"column"}});const n=()=>{let e=i.params.spaceBetween;return"string"==typeof e&&e.indexOf("%")>=0?e=parseFloat(e.replace("%",""))/100*i.size:"string"==typeof e&&(e=parseFloat(e)),e};i.grid={initSlides:e=>{const{slidesPerView:r}=i.params,{rows:n,fill:l}=i.params.grid;a=Math.floor(e/n),t=Math.floor(e/n)===e/n?e:Math.ceil(e/n)*n,"auto"!==r&&"row"===l&&(t=Math.max(t,r*n)),s=t/n},updateSlide:(e,r,l,o)=>{const{slidesPerGroup:d}=i.params,c=n(),{rows:p,fill:u}=i.params.grid;let m,h,f;if("row"===u&&d>1){const s=Math.floor(e/(d*p)),a=e-p*d*s,i=0===s?d:Math.min(Math.ceil((l-s*p*d)/p),d);f=Math.floor(a/i),h=a-f*i+s*d,m=h+f*t/p,r.style.order=m}else"column"===u?(h=Math.floor(e/p),f=e-h*p,(h>a||h===a&&f===p-1)&&(f+=1,f>=p&&(f=0,h+=1))):(f=Math.floor(e/s),h=e-f*s);r.row=f,r.column=h,r.style[o("margin-top")]=0!==f?c&&`${c}px`:""},updateWrapperSize:(e,s,a)=>{const{centeredSlides:r,roundLengths:l}=i.params,o=n(),{rows:d}=i.params.grid;if(i.virtualSize=(e+o)*t,i.virtualSize=Math.ceil(i.virtualSize/d)-o,i.wrapperEl.style[a("width")]=`${i.virtualSize+o}px`,r){const e=[];for(let t=0;t{const{slides:e}=t;t.params.fadeEffect;for(let s=0;s{const s=t.slides.map((e=>h(e)));s.forEach((t=>{t.style.transitionDuration=`${e}ms`})),de({swiper:t,duration:e,transformElements:s,allSlides:!0})},overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({cubeEffect:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94}});const i=(e,t,s)=>{let a=s?e.querySelector(".swiper-slide-shadow-left"):e.querySelector(".swiper-slide-shadow-top"),i=s?e.querySelector(".swiper-slide-shadow-right"):e.querySelector(".swiper-slide-shadow-bottom");a||(a=g("div","swiper-slide-shadow-"+(s?"left":"top")),e.append(a)),i||(i=g("div","swiper-slide-shadow-"+(s?"right":"bottom")),e.append(i)),a&&(a.style.opacity=Math.max(-t,0)),i&&(i.style.opacity=Math.max(t,0))};le({effect:"cube",swiper:t,on:a,setTranslate:()=>{const{el:e,wrapperEl:s,slides:a,width:r,height:n,rtlTranslate:l,size:o,browser:d}=t,c=t.params.cubeEffect,p=t.isHorizontal(),u=t.virtual&&t.params.virtual.enabled;let m,h=0;c.shadow&&(p?(m=t.slidesEl.querySelector(".swiper-cube-shadow"),m||(m=g("div","swiper-cube-shadow"),t.slidesEl.append(m)),m.style.height=`${r}px`):(m=e.querySelector(".swiper-cube-shadow"),m||(m=g("div","swiper-cube-shadow"),e.append(m))));for(let e=0;e-1&&(h=90*s+90*d,l&&(h=90*-s-90*d)),t.style.transform=v,c.slideShadows&&i(t,d,p)}if(s.style.transformOrigin=`50% 50% -${o/2}px`,s.style["-webkit-transform-origin"]=`50% 50% -${o/2}px`,c.shadow)if(p)m.style.transform=`translate3d(0px, ${r/2+c.shadowOffset}px, ${-r/2}px) rotateX(90deg) rotateZ(0deg) scale(${c.shadowScale})`;else{const e=Math.abs(h)-90*Math.floor(Math.abs(h)/90),t=1.5-(Math.sin(2*e*Math.PI/360)/2+Math.cos(2*e*Math.PI/360)/2),s=c.shadowScale,a=c.shadowScale/t,i=c.shadowOffset;m.style.transform=`scale3d(${s}, 1, ${a}) translate3d(0px, ${n/2+i}px, ${-n/2/a}px) rotateX(-90deg)`}const f=(d.isSafari||d.isWebView)&&d.needPerspectiveFix?-o/2:0;s.style.transform=`translate3d(0px,0,${f}px) rotateX(${t.isHorizontal()?0:h}deg) rotateY(${t.isHorizontal()?-h:0}deg)`,s.style.setProperty("--swiper-cube-translate-z",`${f}px`)},setTransition:e=>{const{el:s,slides:a}=t;if(a.forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((t=>{t.style.transitionDuration=`${e}ms`}))})),t.params.cubeEffect.shadow&&!t.isHorizontal()){const t=s.querySelector(".swiper-cube-shadow");t&&(t.style.transitionDuration=`${e}ms`)}},recreateShadows:()=>{const e=t.isHorizontal();t.slides.forEach((t=>{const s=Math.max(Math.min(t.progress,1),-1);i(t,s,e)}))},getEffectParams:()=>t.params.cubeEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,resistanceRatio:0,spaceBetween:0,centeredSlides:!1,virtualTranslate:!0})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({flipEffect:{slideShadows:!0,limitRotation:!0}});const i=(e,s,a)=>{let i=t.isHorizontal()?e.querySelector(".swiper-slide-shadow-left"):e.querySelector(".swiper-slide-shadow-top"),r=t.isHorizontal()?e.querySelector(".swiper-slide-shadow-right"):e.querySelector(".swiper-slide-shadow-bottom");i||(i=ce(0,e,t.isHorizontal()?"left":"top")),r||(r=ce(0,e,t.isHorizontal()?"right":"bottom")),i&&(i.style.opacity=Math.max(-s,0)),r&&(r.style.opacity=Math.max(s,0))};le({effect:"flip",swiper:t,on:a,setTranslate:()=>{const{slides:e,rtlTranslate:s}=t,a=t.params.flipEffect;for(let r=0;r{const s=t.slides.map((e=>h(e)));s.forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((t=>{t.style.transitionDuration=`${e}ms`}))})),de({swiper:t,duration:e,transformElements:s})},recreateShadows:()=>{t.params.flipEffect;t.slides.forEach((e=>{let s=e.progress;t.params.flipEffect.limitRotation&&(s=Math.max(Math.min(e.progress,1),-1)),i(e,s)}))},getEffectParams:()=>t.params.flipEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({coverflowEffect:{rotate:50,stretch:0,depth:100,scale:1,modifier:1,slideShadows:!0}}),le({effect:"coverflow",swiper:t,on:a,setTranslate:()=>{const{width:e,height:s,slides:a,slidesSizesGrid:i}=t,r=t.params.coverflowEffect,n=t.isHorizontal(),l=t.translate,o=n?e/2-l:s/2-l,d=n?r.rotate:-r.rotate,c=r.depth;for(let e=0,t=a.length;e0?p:0),s&&(s.style.opacity=-p>0?-p:0)}}},setTransition:e=>{t.slides.map((e=>h(e))).forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((t=>{t.style.transitionDuration=`${e}ms`}))}))},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({creativeEffect:{limitProgress:1,shadowPerProgress:!1,progressMultiplier:1,perspective:!0,prev:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1},next:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1}}});const i=e=>"string"==typeof e?e:`${e}px`;le({effect:"creative",swiper:t,on:a,setTranslate:()=>{const{slides:e,wrapperEl:s,slidesSizesGrid:a}=t,r=t.params.creativeEffect,{progressMultiplier:n}=r,l=t.params.centeredSlides;if(l){const e=a[0]/2-t.params.slidesOffsetBefore||0;s.style.transform=`translateX(calc(50% - ${e}px))`}for(let s=0;s0&&(f=r.prev,h=!0),u.forEach(((e,t)=>{u[t]=`calc(${e}px + (${i(f.translate[t])} * ${Math.abs(d*n)}))`})),m.forEach(((e,t)=>{m[t]=f.rotate[t]*Math.abs(d*n)})),a.style.zIndex=-Math.abs(Math.round(o))+e.length;const g=u.join(", "),v=`rotateX(${m[0]}deg) rotateY(${m[1]}deg) rotateZ(${m[2]}deg)`,w=c<0?`scale(${1+(1-f.scale)*c*n})`:`scale(${1-(1-f.scale)*c*n})`,b=c<0?1+(1-f.opacity)*c*n:1-(1-f.opacity)*c*n,y=`translate3d(${g}) ${v} ${w}`;if(h&&f.shadow||!h){let e=a.querySelector(".swiper-slide-shadow");if(!e&&f.shadow&&(e=ce(0,a)),e){const t=r.shadowPerProgress?d*(1/r.limitProgress):d;e.style.opacity=Math.min(Math.max(Math.abs(t),0),1)}}const E=oe(0,a);E.style.transform=y,E.style.opacity=b,f.origin&&(E.style.transformOrigin=f.origin)}},setTransition:e=>{const s=t.slides.map((e=>h(e)));s.forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow").forEach((t=>{t.style.transitionDuration=`${e}ms`}))})),de({swiper:t,duration:e,transformElements:s,allSlides:!0})},perspective:()=>t.params.creativeEffect.perspective,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({cardsEffect:{slideShadows:!0,rotate:!0,perSlideRotate:2,perSlideOffset:8}}),le({effect:"cards",swiper:t,on:a,setTranslate:()=>{const{slides:e,activeIndex:s,rtlTranslate:a}=t,i=t.params.cardsEffect,{startTranslate:r,isTouched:n}=t.touchEventsData,l=a?-t.translate:t.translate;for(let o=0;o0&&p<1&&(n||t.params.cssMode)&&l-1&&(n||t.params.cssMode)&&l>r;if(y||E){const e=(1-Math.abs((Math.abs(p)-.5)/.5))**.5;v+=-28*p*e,g+=-.5*e,w+=96*e,h=-25*e*Math.abs(p)+"%"}if(m=p<0?`calc(${m}px ${a?"-":"+"} (${w*Math.abs(p)}%))`:p>0?`calc(${m}px ${a?"-":"+"} (-${w*Math.abs(p)}%))`:`${m}px`,!t.isHorizontal()){const e=h;h=m,m=e}const x=p<0?""+(1+(1-g)*p):""+(1-(1-g)*p),S=`\n translate3d(${m}, ${h}, ${f}px)\n rotateZ(${i.rotate?a?-v:v:0}deg)\n scale(${x})\n `;if(i.slideShadows){let e=d.querySelector(".swiper-slide-shadow");e||(e=ce(0,d)),e&&(e.style.opacity=Math.min(Math.max((Math.abs(p)-.5)/.5,0),1))}d.style.zIndex=-Math.abs(Math.round(c))+e.length;oe(0,d).style.transform=S}},setTransition:e=>{const s=t.slides.map((e=>h(e)));s.forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow").forEach((t=>{t.style.transitionDuration=`${e}ms`}))})),de({swiper:t,duration:e,transformElements:s})},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!t.params.cssMode})})}];return J.use(pe),J})); -//# sourceMappingURL=swiper-bundle.min.js.map - -; -!function(i){"use strict";"function"==typeof define&&define.amd?define(["jquery"],i):"undefined"!=typeof exports?module.exports=i(require("jquery")):i(jQuery)}(function(i){"use strict";var e=window.Slick||{};(e=function(){var e=0;return function(t,o){var s,n=this;n.defaults={accessibility:!0,adaptiveHeight:!1,appendArrows:i(t),appendDots:i(t),arrows:!0,asNavFor:null,prevArrow:'',nextArrow:'',autoplay:!1,autoplaySpeed:3e3,centerMode:!1,centerPadding:"50px",cssEase:"ease",customPaging:function(e,t){return i('\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('' + - _this.settings.strings['mediaLoadingFailed'] + - ''); - }); - }; - 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.8.0-beta.1 | February 16th 2024 - * 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 defaultVimeoPlayerParams = Object.assign({}, { - autoplay: 0, - muted: 1, - }, defaultParams); - var defaultPlayerParams = defaultVimeoPlayerParams && - Object.keys(defaultVimeoPlayerParams).length !== 0 - ? param(defaultVimeoPlayerParams) - : ''; - // 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 || ''; - var privateUrlParams = isPrivate ? "h=" + hash : ''; - defaultPlayerParams = privateUrlParams - ? "&" + defaultPlayerParams - : defaultPlayerParams; - var vimeoPlayerParams = "?" + privateUrlParams + 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.8.0-beta.1 | February 16th 2024 - * 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.8.0-beta.1 | February 16th 2024 - * 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.8.0-beta.1 | February 16th 2024 - * 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.8.0-beta.1 | February 16th 2024 - * 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.8.0-beta.1 | February 16th 2024 - * 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.8.0-beta.1 | February 16th 2024 - * 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.8.0-beta.1 | February 16th 2024 - * 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.8.0-beta.1 | February 16th 2024 - * 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.8.0-beta.1 | February 16th 2024 - * 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.8.0-beta.1 | February 16th 2024 - * 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.8.0-beta.1 | February 16th 2024 - * 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.8.0-beta.1 | February 16th 2024 - * 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,$dynamicimgGallery,dynamicimgEl,dynamicimgGallery,$infiniteScrollingGallery,infiniteScrollingGallery,images,$lgSwiper,swiper,$lgInlineVideoContainer,_inlineGallery,$flickityLG,flkty,container;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)}),$dynamicimgGallery=jQuery('#dynamic-mode-images'),dynamicimgEl=[{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=80'},{src:'https://images.unsplash.com/photo-1526281216101-e55f00f0db7a?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=1600&q=80',thumb:'https://images.unsplash.com/photo-1526281216101-e55f00f0db7a?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=240&q=80'},{src:'https://images.unsplash.com/photo-1418065460487-3e41a6c84dc5?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1600&q=80',thumb:'https://images.unsplash.com/photo-1418065460487-3e41a6c84dc5?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&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=1600&q=80',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=1600&q=80',thumb:'https://images.unsplash.com/photo-1477322524744-0eece9e79640?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&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',thumb:'https://images.unsplash.com/photo-1469474968028-56623f02e42e?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80'},{src:"https://images.unsplash.com/photo-1510414842594-a61c69b5ae57?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1510414842594-a61c69b5ae57?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=2407&q=80"},{src:"https://images.unsplash.com/photo-1596370743446-6a7ef43a36f9?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1596370743446-6a7ef43a36f9?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1464852045489-bccb7d17fe39?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1464852045489-bccb7d17fe39?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1483728642387-6c3bdd6c93e5?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1483728642387-6c3bdd6c93e5?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1510011560141-62c7e8fc7908?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1510011560141-62c7e8fc7908?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1586276393635-5ecd8a851acc?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1586276393635-5ecd8a851acc?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1471931452361-f5ff1faa15ad?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1471931452361-f5ff1faa15ad?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1508766206392-8bd5cf550d1c?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1508766206392-8bd5cf550d1c?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1610448721566-47369c768e70?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1610448721566-47369c768e70?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"}],dynamicimgGallery=window.lightGallery($dynamicimgGallery[0],{dynamic:!0,hash:!1,rotate:!1,plugins:[lgZoom,lgAutoplay,lgFullscreen,lgPager,lgRotate,lgShare,lgVideo],dynamicEl:dynamicimgEl}),$dynamicimgGallery.on('click',function(){dynamicimgGallery.openGallery(5)}),$('#gallery-dynamic-thumbnails .gallery-item').on('click',function(){var a=$(this).index();dynamicimgGallery.openGallery(a)}),jQuery('#gallery-dynamic-thumbnails').justifiedGallery({captions:!1,lastRow:'justify',rowHeight:180,margins:5}),$('#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]}),lightGallery(document.querySelector('.blog-wrapper'),{selector:'.blog-images',getCaptionFromTitleOrAlt:!1,backgroundColor:"#FFF",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)})}}})),$lgInlineVideoContainer=document.getElementById('inline-video-gallery-container'),$lgInlineVideoContainer&&(_inlineGallery=window.lightGallery($lgInlineVideoContainer,_objectSpread(_objectSpread({container:$lgInlineVideoContainer,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:[lgShare,lgThumbnail,lgVideo],appendSubHtmlTo:'.lg-item'},getResponsiveThumbnailsSettings()),{},{dynamicEl:[{src:'//www.youtube.com/watch?v=EIUJfXk3_3w',poster:'https://img.youtube.com/vi/EIUJfXk3_3w/maxresdefault.jpg',thumb:'https://img.youtube.com/vi/EIUJfXk3_3w/maxresdefault.jpg',subHtml:'

    Puffin Hunts Fish To Feed Puffling | Blue Planet II | BBC Earth

    This puffin parent must go out to sea to feed his chick, but he must evade other birds that would rob him.

    '},{src:'//vimeo.com/112836958',poster:location.origin+'/images/demo/vimeo-video-poster.jpg',thumb:location.origin+'/images/demo/vimeo-video-poster.jpg',subHtml:"

    Nature

    Video by Charlie Kaye

    "},{source:[{src:location.origin+'/videos/video1.mp4',type:'video/mp4'}],tracks:[{src:location.origin+'/videos/title.txt',kind:'captions',srclang:'en',label:'English',default:'true'}],attributes:{preload:!1,controls:!0},poster:location.origin+'/images/demo/html5-video-poster.jpg',thumb:location.origin+'/images/demo/html5-video-poster.jpg',subHtml:"

    'Peck Pocketed' by Kevin Herron | Disney Favorite

    "},{src:'https://private-sharing.wistia.com/medias/mwhrulrucj',poster:location.origin+'/images/demo/wistia-video-poster.jpeg',thumb:location.origin+'/images/demo/wistia-video-poster.jpeg',subHtml:'

    Thank You!

    Sample Wistia video

    '}]})),_inlineGallery.openGallery()),jQuery(document).ready(function(){var d=document.getElementById('bootstrap-gallery-carousel'),a,e,f,g,b,h,c;d&&(a=!1,e=jQuery('#bootstrap-gallery-carousel'),e.carousel({keyboard:!0}),a=!0,a&&(f=document.querySelector('.carousel-inner'),window.lightGallery(f,{thumbnail:!0,zoomFromOrigin:!1,pager:!1,plugins:[lgZoom,lgAutoplay,lgFullscreen,lgRotate,lgShare],hash:!1,preload:4,selector:'.lg-item'}))),g=document.getElementById('owl-carousel-gallery-demo'),g&&(b=jQuery('#owl-carousel-gallery-demo'),b.on('initialized.owl.carousel',function(b){var a=document.querySelector('.owl-stage');window.lightGallery(a,{plugins:[lgZoom,lgAutoplay,lgFullscreen,lgRotate,lgShare,lgThumbnail],selector:'.carousel-cell'})}),b.owlCarousel({center:!0,items:1,loop:!1,margin:10,nav:!0})),h=document.getElementById('slick-carousel-gallery-demo'),h&&(c=$('#slick-carousel-gallery-demo'),c.on('init',function(b,c,d){console.log('Slick slider initialized');var a=document.querySelector('.slick-track');window.lightGallery(a,{pager:!1,plugins:[lgZoom,lgAutoplay,lgFullscreen,lgRotate,lgShare,lgThumbnail],hash:!1,preload:4})}),c.slick({centerMode:!0,centerPadding:'60px',slidesToShow:3,customPaging:'10px',focusOnSelect:!0,swipe:!1,variableWidth:!0,responsive:[{breakpoint:768,settings:{arrows:!1,centerMode:!0,centerPadding:'40px',slidesToShow:3}},{breakpoint:480,settings:{arrows:!1,centerMode:!0,centerPadding:'40px',slidesToShow:1}}]}))}),$flickityLG=document.querySelector('#flickity-carousel-gallery-demo'),$flickityLG&&(flkty=new Flickity($flickityLG,{cellAlign:'center',pageDots:!1,contain:!0,autoPlay:!0,on:{ready:function(){var a=document.querySelector('.flickity-slider');window.lightGallery(a,{selector:'.lg-item',plugins:[lgZoom,lgAutoplay,lgFullscreen,lgRotate,lgShare,lgThumbnail]})}}})),container=document.querySelector('#bootstrap-image-gallery'),window.lightGallery(container,{selector:'.lg-item',zoomFromOrigin:!0,download:!1,plugins:[lgZoom,lgAutoplay,lgFullscreen,lgRotate,lgShare]}),$(document).ready(function(){var a=document.querySelector('#masonry-gallery-demo'),b=new Masonry(a,{itemSelector:'.lg-item',columnWidth:'.grid-sizer',percentPosition:!0,gutter:10,horizontalOrder:!0,fitWidth:!0});imagesLoaded(a).on('progress',function(){b.layout()}),window.lightGallery(a,{thumbnail:!0,pager:!0,plugins:[lgAutoplay,lgFullscreen,lgShare,lgThumbnail,lgVideo],hash:!1,preload:0,selector:'.lg-item'})}),window.lightGallery(document.getElementById('bootstrap-video-gallery'),{thumbnail:!0,pager:!0,plugins:[lgAutoplay,lgFullscreen,lgShare,lgThumbnail,lgVideo],hash:!1,preload:0}),window.lightGallery(document.getElementById('bootstrap-video-carousel'),{thumbnail:!0,pager:!0,plugins:[lgAutoplay,lgFullscreen,lgShare,lgThumbnail,lgVideo],hash:!1,preload:0,selector:'.lg-item'}) \ No newline at end of file diff --git a/main.d82c12231e47da9247309d5a4798b87abf2b22c502bfba8692f1e0b6207c880dba528512713ca7b266109c9a8c3fe6d7237d58e26662f6c0a0303c5d32cb38dd.js b/main.3e96fdfb55b189f726c54a6854fa4bf684c0211b2f37c904dcb4fe8e226be7a9baaf1651d060212767937ccaddd525f158fbbc3d33ff55eda48bf965f94320aa.js similarity index 93% rename from main.d82c12231e47da9247309d5a4798b87abf2b22c502bfba8692f1e0b6207c880dba528512713ca7b266109c9a8c3fe6d7237d58e26662f6c0a0303c5d32cb38dd.js rename to main.3e96fdfb55b189f726c54a6854fa4bf684c0211b2f37c904dcb4fe8e226be7a9baaf1651d060212767937ccaddd525f158fbbc3d33ff55eda48bf965f94320aa.js index 2cb1c772b..711128450 100644 --- a/main.d82c12231e47da9247309d5a4798b87abf2b22c502bfba8692f1e0b6207c880dba528512713ca7b266109c9a8c3fe6d7237d58e26662f6c0a0303c5d32cb38dd.js +++ b/main.3e96fdfb55b189f726c54a6854fa4bf684c0211b2f37c904dcb4fe8e226be7a9baaf1651d060212767937ccaddd525f158fbbc3d33ff55eda48bf965f94320aa.js @@ -619,6 +619,13 @@ animateIn:!1},e.prototype.swap=function(){if(1===this.core.settings.items&&a.sup ; "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.8.0-beta.2 | May 3rd 2024 + * 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) : @@ -1296,7 +1303,7 @@ animateIn:!1},e.prototype.swap=function(){if(1===this.core.settings.items&&a.sup }, getIframeMarkup: function (iframeWidth, iframeHeight, iframeMaxWidth, iframeMaxHeight, src, iframeTitle) { var title = iframeTitle ? 'title="' + iframeTitle + '"' : ''; - return "
    \n \n
    "; + return "
    \n \n
    "; }, getImgMarkup: function (index, src, altAttr, srcset, sizes, sources) { var srcsetAttr = srcset ? "srcset=\"" + srcset + "\"" : ''; @@ -1420,6 +1427,7 @@ animateIn:!1},e.prototype.swap=function(){if(1===this.core.settings.items&&a.sup dynamicEl.alt = alt || title || ''; dynamicElements.push(dynamicEl); }); + console.log(dynamicElements, 'dynamicElements'); return dynamicElements; }, isMobile: function () { @@ -3403,7 +3411,7 @@ animateIn:!1},e.prototype.swap=function(){if(1===this.core.settings.items&&a.sup ; /*! - * lightgallery | 2.8.0-beta.1 | February 20th 2024 + * lightgallery | 2.8.0-beta.2 | May 3rd 2024 * http://www.lightgalleryjs.com/ * Copyright (c) 2020 Sachin Neravath; * @license GPLv3 @@ -3744,7 +3752,9 @@ animateIn:!1},e.prototype.swap=function(){if(1===this.core.settings.items&&a.sup else if (videoInfo.html5) { var html5VideoMarkup = ''; for (var i = 0; i < html5Video.source.length; i++) { - html5VideoMarkup += ""; + var type = html5Video.source[i].type; + var typeAttr = type ? "type=\"" + type + "\"" : ''; + html5VideoMarkup += ""; } if (html5Video.tracks) { var _loop_1 = function (i) { @@ -3956,7 +3966,7 @@ animateIn:!1},e.prototype.swap=function(){if(1===this.core.settings.items&&a.sup ; /*! - * lightgallery | 2.8.0-beta.1 | February 20th 2024 + * lightgallery | 2.8.0-beta.2 | May 3rd 2024 * http://www.lightgalleryjs.com/ * Copyright (c) 2020 Sachin Neravath; * @license GPLv3 @@ -4101,7 +4111,7 @@ animateIn:!1},e.prototype.swap=function(){if(1===this.core.settings.items&&a.sup ; /*! - * lightgallery | 2.8.0-beta.1 | February 20th 2024 + * lightgallery | 2.8.0-beta.2 | May 3rd 2024 * http://www.lightgalleryjs.com/ * Copyright (c) 2020 Sachin Neravath; * @license GPLv3 @@ -4203,7 +4213,7 @@ animateIn:!1},e.prototype.swap=function(){if(1===this.core.settings.items&&a.sup // Append Zoom controls. Actual size, Zoom-in, Zoom-out Zoom.prototype.buildTemplates = function () { var zoomIcons = this.settings.showZoomInOutIcons - ? "" + ? "" : ''; if (this.settings.actualSize) { zoomIcons += ""; @@ -4260,6 +4270,12 @@ animateIn:!1},e.prototype.swap=function(){if(1===this.core.settings.items&&a.sup }; }; Zoom.prototype.getDragAllowedAxises = function (scale, scaleDiff) { + if (!this.containerRect) { + return { + allowX: false, + allowY: false, + }; + } var $image = this.core .getSlideItem(this.core.index) .find('.lg-image') @@ -5085,7 +5101,7 @@ animateIn:!1},e.prototype.swap=function(){if(1===this.core.settings.items&&a.sup ; /*! - * lightgallery | 2.8.0-beta.1 | February 20th 2024 + * lightgallery | 2.8.0-beta.2 | May 3rd 2024 * http://www.lightgalleryjs.com/ * Copyright (c) 2020 Sachin Neravath; * @license GPLv3 @@ -5369,7 +5385,7 @@ animateIn:!1},e.prototype.swap=function(){if(1===this.core.settings.items&&a.sup ; /*! - * lightgallery | 2.8.0-beta.1 | February 20th 2024 + * lightgallery | 2.8.0-beta.2 | May 3rd 2024 * http://www.lightgalleryjs.com/ * Copyright (c) 2020 Sachin Neravath; * @license GPLv3 @@ -5866,7 +5882,7 @@ animateIn:!1},e.prototype.swap=function(){if(1===this.core.settings.items&&a.sup ; /*! - * lightgallery | 2.8.0-beta.1 | February 20th 2024 + * lightgallery | 2.8.0-beta.2 | May 3rd 2024 * http://www.lightgalleryjs.com/ * Copyright (c) 2020 Sachin Neravath; * @license GPLv3 @@ -6015,7 +6031,7 @@ animateIn:!1},e.prototype.swap=function(){if(1===this.core.settings.items&&a.sup ; /*! - * lightgallery | 2.8.0-beta.1 | February 20th 2024 + * lightgallery | 2.8.0-beta.2 | May 3rd 2024 * http://www.lightgalleryjs.com/ * Copyright (c) 2020 Sachin Neravath; * @license GPLv3 @@ -6223,7 +6239,7 @@ animateIn:!1},e.prototype.swap=function(){if(1===this.core.settings.items&&a.sup ; /*! - * lightgallery | 2.8.0-beta.1 | February 20th 2024 + * lightgallery | 2.8.0-beta.2 | May 3rd 2024 * http://www.lightgalleryjs.com/ * Copyright (c) 2020 Sachin Neravath; * @license GPLv3 @@ -6452,7 +6468,7 @@ animateIn:!1},e.prototype.swap=function(){if(1===this.core.settings.items&&a.sup ; /*! - * lightgallery | 2.8.0-beta.1 | February 20th 2024 + * lightgallery | 2.8.0-beta.2 | May 3rd 2024 * http://www.lightgalleryjs.com/ * Copyright (c) 2020 Sachin Neravath; * @license GPLv3 @@ -6667,7 +6683,7 @@ animateIn:!1},e.prototype.swap=function(){if(1===this.core.settings.items&&a.sup ; /*! - * lightgallery | 2.8.0-beta.1 | February 20th 2024 + * lightgallery | 2.8.0-beta.2 | May 3rd 2024 * http://www.lightgalleryjs.com/ * Copyright (c) 2020 Sachin Neravath; * @license GPLv3 @@ -6927,7 +6943,7 @@ animateIn:!1},e.prototype.swap=function(){if(1===this.core.settings.items&&a.sup ; /*! - * lightgallery | 2.8.0-beta.1 | February 20th 2024 + * lightgallery | 2.8.0-beta.2 | May 3rd 2024 * http://www.lightgalleryjs.com/ * Copyright (c) 2020 Sachin Neravath; * @license GPLv3 @@ -7091,7 +7107,7 @@ animateIn:!1},e.prototype.swap=function(){if(1===this.core.settings.items&&a.sup ; /*! - * lightgallery | 2.8.0-beta.1 | February 20th 2024 + * lightgallery | 2.8.0-beta.2 | May 3rd 2024 * http://www.lightgalleryjs.com/ * Copyright (c) 2020 Sachin Neravath; * @license GPLv3 @@ -7283,7 +7299,7 @@ animateIn:!1},e.prototype.swap=function(){if(1===this.core.settings.items&&a.sup ; /*! - * lightgallery | 2.8.0-beta.1 | February 20th 2024 + * lightgallery | 2.8.0-beta.2 | May 3rd 2024 * http://www.lightgalleryjs.com/ * Copyright (c) 2020 Sachin Neravath; * @license GPLv3 @@ -7424,4 +7440,4 @@ animateIn:!1},e.prototype.swap=function(){if(1===this.core.settings.items&&a.sup //# 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,$dynamicimgGallery,dynamicimgEl,dynamicimgGallery,$infiniteScrollingGallery,infiniteScrollingGallery,images,$lgSwiper,swiper,$lgInlineVideoContainer,_inlineGallery,$flickityLG,flkty,container;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)}),$dynamicimgGallery=jQuery('#dynamic-mode-images'),dynamicimgEl=[{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=80'},{src:'https://images.unsplash.com/photo-1526281216101-e55f00f0db7a?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=1600&q=80',thumb:'https://images.unsplash.com/photo-1526281216101-e55f00f0db7a?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=240&q=80'},{src:'https://images.unsplash.com/photo-1418065460487-3e41a6c84dc5?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1600&q=80',thumb:'https://images.unsplash.com/photo-1418065460487-3e41a6c84dc5?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&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=1600&q=80',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=1600&q=80',thumb:'https://images.unsplash.com/photo-1477322524744-0eece9e79640?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&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',thumb:'https://images.unsplash.com/photo-1469474968028-56623f02e42e?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80'},{src:"https://images.unsplash.com/photo-1510414842594-a61c69b5ae57?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1510414842594-a61c69b5ae57?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=2407&q=80"},{src:"https://images.unsplash.com/photo-1596370743446-6a7ef43a36f9?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1596370743446-6a7ef43a36f9?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1464852045489-bccb7d17fe39?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1464852045489-bccb7d17fe39?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1483728642387-6c3bdd6c93e5?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1483728642387-6c3bdd6c93e5?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1510011560141-62c7e8fc7908?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1510011560141-62c7e8fc7908?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1586276393635-5ecd8a851acc?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1586276393635-5ecd8a851acc?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1471931452361-f5ff1faa15ad?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1471931452361-f5ff1faa15ad?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1508766206392-8bd5cf550d1c?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1508766206392-8bd5cf550d1c?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1610448721566-47369c768e70?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1610448721566-47369c768e70?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"}],dynamicimgGallery=window.lightGallery($dynamicimgGallery[0],{dynamic:!0,hash:!1,rotate:!1,plugins:[lgZoom,lgAutoplay,lgFullscreen,lgPager,lgRotate,lgShare,lgVideo],dynamicEl:dynamicimgEl}),$dynamicimgGallery.on('click',function(){dynamicimgGallery.openGallery(5)}),$('#gallery-dynamic-thumbnails .gallery-item').on('click',function(){var a=$(this).index();dynamicimgGallery.openGallery(a)}),jQuery('#gallery-dynamic-thumbnails').justifiedGallery({captions:!1,lastRow:'justify',rowHeight:180,margins:5}),$('#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]}),lightGallery(document.querySelector('.blog-wrapper'),{selector:'.blog-images',getCaptionFromTitleOrAlt:!1,backgroundColor:"#FFF",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)})}}})),$lgInlineVideoContainer=document.getElementById('inline-video-gallery-container'),$lgInlineVideoContainer&&(_inlineGallery=window.lightGallery($lgInlineVideoContainer,_objectSpread(_objectSpread({container:$lgInlineVideoContainer,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:[lgShare,lgThumbnail,lgVideo],appendSubHtmlTo:'.lg-item'},getResponsiveThumbnailsSettings()),{},{dynamicEl:[{src:'//www.youtube.com/watch?v=EIUJfXk3_3w',poster:'https://img.youtube.com/vi/EIUJfXk3_3w/maxresdefault.jpg',thumb:'https://img.youtube.com/vi/EIUJfXk3_3w/maxresdefault.jpg',subHtml:'

    Puffin Hunts Fish To Feed Puffling | Blue Planet II | BBC Earth

    This puffin parent must go out to sea to feed his chick, but he must evade other birds that would rob him.

    '},{src:'//vimeo.com/112836958',poster:location.origin+'/images/demo/vimeo-video-poster.jpg',thumb:location.origin+'/images/demo/vimeo-video-poster.jpg',subHtml:"

    Nature

    Video by Charlie Kaye

    "},{source:[{src:location.origin+'/videos/video1.mp4',type:'video/mp4'}],tracks:[{src:location.origin+'/videos/title.txt',kind:'captions',srclang:'en',label:'English',default:'true'}],attributes:{preload:!1,controls:!0},poster:location.origin+'/images/demo/html5-video-poster.jpg',thumb:location.origin+'/images/demo/html5-video-poster.jpg',subHtml:"

    'Peck Pocketed' by Kevin Herron | Disney Favorite

    "},{src:'https://private-sharing.wistia.com/medias/mwhrulrucj',poster:location.origin+'/images/demo/wistia-video-poster.jpeg',thumb:location.origin+'/images/demo/wistia-video-poster.jpeg',subHtml:'

    Thank You!

    Sample Wistia video

    '}]})),_inlineGallery.openGallery()),jQuery(document).ready(function(){var d=document.getElementById('bootstrap-gallery-carousel'),a,e,f,g,b,h,c;d&&(a=!1,e=jQuery('#bootstrap-gallery-carousel'),e.carousel({keyboard:!0}),a=!0,a&&(f=document.querySelector('.carousel-inner'),window.lightGallery(f,{thumbnail:!0,zoomFromOrigin:!1,pager:!1,plugins:[lgZoom,lgAutoplay,lgFullscreen,lgRotate,lgShare],hash:!1,preload:4,selector:'.lg-item'}))),g=document.getElementById('owl-carousel-gallery-demo'),g&&(b=jQuery('#owl-carousel-gallery-demo'),b.on('initialized.owl.carousel',function(b){var a=document.querySelector('.owl-stage');window.lightGallery(a,{plugins:[lgZoom,lgAutoplay,lgFullscreen,lgRotate,lgShare,lgThumbnail],selector:'.carousel-cell'})}),b.owlCarousel({center:!0,items:1,loop:!1,margin:10,nav:!0})),h=document.getElementById('slick-carousel-gallery-demo'),h&&(c=$('#slick-carousel-gallery-demo'),c.on('init',function(b,c,d){console.log('Slick slider initialized');var a=document.querySelector('.slick-track');window.lightGallery(a,{pager:!1,plugins:[lgZoom,lgAutoplay,lgFullscreen,lgRotate,lgShare,lgThumbnail],hash:!1,preload:4})}),c.slick({centerMode:!0,centerPadding:'60px',slidesToShow:3,customPaging:'10px',focusOnSelect:!0,swipe:!1,variableWidth:!0,responsive:[{breakpoint:768,settings:{arrows:!1,centerMode:!0,centerPadding:'40px',slidesToShow:3}},{breakpoint:480,settings:{arrows:!1,centerMode:!0,centerPadding:'40px',slidesToShow:1}}]}))}),$flickityLG=document.querySelector('#flickity-carousel-gallery-demo'),$flickityLG&&(flkty=new Flickity($flickityLG,{cellAlign:'center',pageDots:!1,contain:!0,autoPlay:!0,on:{ready:function(){var a=document.querySelector('.flickity-slider');window.lightGallery(a,{selector:'.lg-item',plugins:[lgZoom,lgAutoplay,lgFullscreen,lgRotate,lgShare,lgThumbnail]})}}})),container=document.querySelector('#bootstrap-image-gallery'),window.lightGallery(container,{selector:'.lg-item',zoomFromOrigin:!0,download:!0,thumbnail:!0,plugins:[lgZoom,lgAutoplay,lgFullscreen,lgRotate,lgShare,lgThumbnail]}),$(document).ready(function(){var a=document.querySelector('#masonry-gallery-demo'),b=new Masonry(a,{itemSelector:'.lg-item',columnWidth:'.grid-sizer',percentPosition:!0,gutter:10,horizontalOrder:!0,fitWidth:!0});imagesLoaded(a).on('progress',function(){b.layout()}),window.lightGallery(a,{thumbnail:!0,pager:!0,plugins:[lgAutoplay,lgFullscreen,lgShare,lgThumbnail,lgVideo],hash:!1,preload:0,selector:'.lg-item'})}),window.lightGallery(document.getElementById('bootstrap-video-gallery'),{thumbnail:!0,pager:!0,plugins:[lgAutoplay,lgFullscreen,lgShare,lgThumbnail,lgVideo],hash:!1,preload:0}),window.lightGallery(document.getElementById('bootstrap-video-carousel'),{thumbnail:!0,pager:!0,plugins:[lgAutoplay,lgFullscreen,lgShare,lgThumbnail,lgVideo],hash:!1,preload:0,selector:'.lg-item'}) \ No newline at end of file +"use strict";var $lgInlineContainer,inlineGallery,masonryElMixed,$galleryEventsDemo,galleryEventsDemo,colours,customTransitionsGallery,customEasingGallery,methodsInstance,$lgGalleryMethodsDemo,$lgDemoUpdateSlides,lgDemoUpdateSlides,updateSlidesGallery,slidesUpdated,jG,$dynamicGallery,dynamicEl,dynamicGallery,$dynamicimgGallery,dynamicimgEl,dynamicimgGallery,$infiniteScrollingGallery,infiniteScrollingGallery,images,$lgSwiper,swiper,$lgInlineVideoContainer,_inlineGallery,$flickityLG,flkty,container,$lfYoutubeForm;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:!0,download:!0,slideDelay:400,plugins:[lgZoom,lgAutoplay,lgFullscreen,lgShare,lgThumbnail,lgRotate],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)}),$dynamicimgGallery=jQuery('#dynamic-mode-images'),dynamicimgEl=[{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=80'},{src:'https://images.unsplash.com/photo-1526281216101-e55f00f0db7a?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=1600&q=80',thumb:'https://images.unsplash.com/photo-1526281216101-e55f00f0db7a?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=240&q=80'},{src:'https://images.unsplash.com/photo-1418065460487-3e41a6c84dc5?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1600&q=80',thumb:'https://images.unsplash.com/photo-1418065460487-3e41a6c84dc5?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&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=1600&q=80',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=1600&q=80',thumb:'https://images.unsplash.com/photo-1477322524744-0eece9e79640?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&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',thumb:'https://images.unsplash.com/photo-1469474968028-56623f02e42e?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80'},{src:"https://images.unsplash.com/photo-1510414842594-a61c69b5ae57?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1510414842594-a61c69b5ae57?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=2407&q=80"},{src:"https://images.unsplash.com/photo-1596370743446-6a7ef43a36f9?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1596370743446-6a7ef43a36f9?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1464852045489-bccb7d17fe39?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1464852045489-bccb7d17fe39?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1483728642387-6c3bdd6c93e5?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1483728642387-6c3bdd6c93e5?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1510011560141-62c7e8fc7908?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1510011560141-62c7e8fc7908?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1586276393635-5ecd8a851acc?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1586276393635-5ecd8a851acc?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1471931452361-f5ff1faa15ad?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1471931452361-f5ff1faa15ad?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1508766206392-8bd5cf550d1c?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1508766206392-8bd5cf550d1c?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1610448721566-47369c768e70?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1610448721566-47369c768e70?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"}],dynamicimgGallery=window.lightGallery($dynamicimgGallery[0],{dynamic:!0,hash:!1,rotate:!1,plugins:[lgZoom,lgAutoplay,lgFullscreen,lgPager,lgRotate,lgShare,lgVideo],dynamicEl:dynamicimgEl}),$dynamicimgGallery.on('click',function(){dynamicimgGallery.openGallery(5)}),$('#gallery-dynamic-thumbnails .gallery-item').on('click',function(){var a=$(this).index();dynamicimgGallery.openGallery(a)}),jQuery('#gallery-dynamic-thumbnails').justifiedGallery({captions:!1,lastRow:'justify',rowHeight:180,margins:5}),$('#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]}),lightGallery(document.querySelector('.blog-wrapper'),{selector:'.blog-images',getCaptionFromTitleOrAlt:!1,backgroundColor:"#FFF",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)})}}})),$lgInlineVideoContainer=document.getElementById('inline-video-gallery-container'),$lgInlineVideoContainer&&(_inlineGallery=window.lightGallery($lgInlineVideoContainer,_objectSpread(_objectSpread({container:$lgInlineVideoContainer,dynamic:!0,thumbnail:!0,swipeToClose:!1,addClass:'lg-inline',mode:'lg-scale-up',slideShowAutoplay:!1,hash:!1,pager:!1,closable:!1,showMaximizeIcon:!0,rotate:!0,download:!0,slideDelay:400,plugins:[lgZoom,lgAutoplay,lgFullscreen,lgPager,lgRotate,lgShare,lgThumbnail,lgVideo],appendSubHtmlTo:'.lg-item'},getResponsiveThumbnailsSettings()),{},{dynamicEl:[{src:'//vimeo.com/112836958',poster:location.origin+'/images/demo/vimeo-video-poster.jpg',thumb:location.origin+'/images/demo/vimeo-video-poster.jpg',subHtml:"

    Nature

    Video by Charlie Kaye

    "},{size:'1280-720',src:'//www.youtube.com/watch?v=EIUJfXk3_3w',poster:'https://img.youtube.com/vi/EIUJfXk3_3w/maxresdefault.jpg',thumb:'https://img.youtube.com/vi/EIUJfXk3_3w/maxresdefault.jpg',subHtml:'

    Puffin Hunts Fish To Feed Puffling | Blue Planet II | BBC Earth

    This puffin parent must go out to sea to feed his chick, but he must evade other birds that would rob him.

    '},{source:[{src:location.origin+'/videos/video1.mp4',type:'video/mp4'}],tracks:[{src:location.origin+'/videos/title.txt',kind:'captions',srclang:'en',label:'English',default:'true'}],attributes:{preload:!1,controls:!0},poster:location.origin+'/images/demo/html5-video-poster.jpg',thumb:location.origin+'/images/demo/html5-video-poster.jpg',subHtml:"

    'Peck Pocketed' by Kevin Herron | Disney Favorite

    "},{src:'https://private-sharing.wistia.com/medias/mwhrulrucj',poster:location.origin+'/images/demo/wistia-video-poster.jpeg',thumb:location.origin+'/images/demo/wistia-video-poster.jpeg',subHtml:'

    Thank You!

    Sample Wistia video

    '}]})),_inlineGallery.openGallery()),jQuery(document).ready(function(){var d=document.getElementById('bootstrap-gallery-carousel'),a,e,f,g,b,h,c;d&&(a=!1,e=jQuery('#bootstrap-gallery-carousel'),e.carousel({keyboard:!0}),a=!0,a&&(f=document.querySelector('.carousel-inner'),window.lightGallery(f,{thumbnail:!0,zoomFromOrigin:!1,pager:!1,plugins:[lgZoom,lgAutoplay,lgFullscreen,lgRotate,lgShare],hash:!1,preload:4,selector:'.lg-item'}))),g=document.getElementById('owl-carousel-gallery-demo'),g&&(b=jQuery('#owl-carousel-gallery-demo'),b.on('initialized.owl.carousel',function(b){var a=document.querySelector('.owl-stage');window.lightGallery(a,{plugins:[lgZoom,lgAutoplay,lgFullscreen,lgRotate,lgShare,lgThumbnail],selector:'.carousel-cell'})}),b.owlCarousel({center:!0,items:1,loop:!1,margin:10,nav:!0})),h=document.getElementById('slick-carousel-gallery-demo'),h&&(c=$('#slick-carousel-gallery-demo'),c.on('init',function(b,c,d){console.log('Slick slider initialized');var a=document.querySelector('.slick-track');window.lightGallery(a,{pager:!1,plugins:[lgZoom,lgAutoplay,lgFullscreen,lgRotate,lgShare,lgThumbnail],hash:!1,preload:4})}),c.slick({centerMode:!0,centerPadding:'60px',slidesToShow:3,customPaging:'10px',focusOnSelect:!0,swipe:!1,variableWidth:!0,responsive:[{breakpoint:768,settings:{arrows:!1,centerMode:!0,centerPadding:'40px',slidesToShow:3}},{breakpoint:480,settings:{arrows:!1,centerMode:!0,centerPadding:'40px',slidesToShow:1}}]}))}),$flickityLG=document.querySelector('#flickity-carousel-gallery-demo'),$flickityLG&&(flkty=new Flickity($flickityLG,{cellAlign:'center',pageDots:!1,contain:!0,autoPlay:!0,on:{ready:function(){var a=document.querySelector('.flickity-slider');window.lightGallery(a,{selector:'.lg-item',plugins:[lgZoom,lgAutoplay,lgFullscreen,lgRotate,lgShare,lgThumbnail]})}}})),container=document.querySelector('#bootstrap-image-gallery'),window.lightGallery(container,{selector:'.lg-item',zoomFromOrigin:!0,download:!0,thumbnail:!0,plugins:[lgZoom,lgAutoplay,lgFullscreen,lgRotate,lgShare,lgThumbnail]}),$(document).ready(function(){var a=document.querySelector('#masonry-gallery-demo'),b=new Masonry(a,{itemSelector:'.lg-item',columnWidth:'.grid-sizer',percentPosition:!0,gutter:10,horizontalOrder:!0,fitWidth:!0});imagesLoaded(a).on('progress',function(){b.layout()}),window.lightGallery(a,{thumbnail:!0,pager:!0,plugins:[lgAutoplay,lgFullscreen,lgShare,lgThumbnail,lgVideo,lgRotate],hash:!1,preload:0,selector:'.lg-item'})}),window.lightGallery(document.getElementById('bootstrap-video-gallery'),{thumbnail:!0,pager:!0,plugins:[lgAutoplay,lgFullscreen,lgShare,lgThumbnail,lgVideo,lgRotate],hash:!1,preload:0}),window.lightGallery(document.getElementById('bootstrap-video-carousel'),{thumbnail:!0,pager:!0,plugins:[lgAutoplay,lgFullscreen,lgShare,lgThumbnail,lgVideo,lgRotate],hash:!1,preload:0,selector:'.lg-item'}),$lfYoutubeForm=document.getElementById('thumbnailForm'),$lfYoutubeForm&&$lfYoutubeForm.addEventListener('submit',function(e){var a,b,c,d;if(e.preventDefault(),a=document.getElementById('url').value,!a){alert('Please enter a YouTube video URL');return}if(b=a.match(/\/\/(?:www\.)?youtu(?:\.be|be\.com|be-nocookie\.com)\/(?:watch\?v=|embed\/)?([a-z0-9\-\_\%]+)([\&|?][\S]*)*/i),c=b&&b[1],!c){alert('Invalid URL');return}d=['maxresdefault','hqdefault','sddefault','mqdefault','default'],d.forEach(function(a){var d="https://img.youtube.com/vi/".concat(c,"/").concat(a,".jpg"),b=document.getElementById(a),e=b.querySelector('img'),f=b.querySelector('.download-btn');e.src=d,f.href=d,e.alt="Thumbnail ".concat(a),b.style.display='block'})}) \ No newline at end of file diff --git a/main.4886fbcb18158745c65fb6d5b5400b25a4520628f8470429cb01c84578a4bdaf2b6fca3a8996bc2c1e3539ac0add7d07d96d8ddb68c2d99f3de4380326317505.css b/main.4886fbcb18158745c65fb6d5b5400b25a4520628f8470429cb01c84578a4bdaf2b6fca3a8996bc2c1e3539ac0add7d07d96d8ddb68c2d99f3de4380326317505.css deleted file mode 100644 index dbb8f3545..000000000 --- a/main.4886fbcb18158745c65fb6d5b5400b25a4520628f8470429cb01c84578a4bdaf2b6fca3a8996bc2c1e3539ac0add7d07d96d8ddb68c2d99f3de4380326317505.css +++ /dev/null @@ -1,11 +0,0 @@ -/*! - * 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,strong{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)}.row-cols-1>*{flex:0 0 auto;width:100%}.col-4{flex:0 0 auto;width:33.33333333%}@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){.row-cols-lg-2>*{flex:0 0 auto;width:50%}.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-6{flex:0 0 auto;width:50%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}}.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}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active{display:block}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity 0.15s ease}@media (prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity 0.6s ease}@media (prefers-reduced-motion: reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}@-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}.visually-hidden{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.d-block{display:block !important}.d-grid{display:grid !important}.d-flex{display:flex !important}.d-none{display:none !important}.border{border:1px solid #dee2e6 !important}.w-100{width:100% !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.align-self-center{align-self:center !important}.mx-0{margin-right:0 !important;margin-left:0 !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}.mb-3{margin-bottom:1rem !important}.mb-4{margin-bottom:1.5rem !important}.ms-auto{margin-left:auto !important}.p-1{padding:.25rem !important}.px-0{padding-right:0 !important;padding-left:0 !important}.px-2{padding-right:.5rem !important;padding-left:.5rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.text-center{text-align:center !important}.text-body{color:#333 !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){.order-lg-0{order:0 !important}.order-lg-1{order:1 !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}.demo-btns-container{display:flex;align-items:center;justify-content:center;gap:10px;margin:1rem 0 2rem 0}.demo-btns-container.dynamic-mode-demo{display:inline-flex;margin:0 10px 0 10px}.demo-btn{text-align:center;font-size:14px}.demo-btn svg{width:18px;margin-right:5px}.demo-btn a{display:flex;align-items:center}.demo-btn-stackblits svg{margin-right:3px}.demo-btn+.demo-btn{margin-left:10px}.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;color:#5b6373}@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}.trusted-by .contents-list-item svg{max-width:110px;max-height:36px}@media (min-width: 768px){.trusted-by .contents-list-item{padding:1.5rem}}.trusted-by h2,.trusted-by .h2{font-size:18px;margin:0 0px 36px 0;color:inherit}@media (min-width: 768px){.trusted-by h2,.trusted-by .h2{font-size:24px}}.trusted-by.trusted-by-blue{color:#2d477c}.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}.lg-item .lightGallery-captions h4,.lg-item .lightGallery-captions .h4{transform:translate3d(60px, 0, 0px)}.lg-item .lightGallery-captions p{transform:translate3d(-60px, 0, 0px)}.lg-item .lightGallery-captions h4,.lg-item .lightGallery-captions .h4,.lg-item .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{width:100%;height:100%;position:absolute !important}.swiper-lg-wrap{width:1200px;height:0;padding-bottom:65%;position:relative;max-width:100%}#bootstrap-gallery-carousel.carousel .lg-item{display:flex;justify-content:center;align-items:center;height:100%}#bootstrap-gallery-carousel.carousel .lg-item img{width:unset !important;height:500px}#bootstrap-gallery-carousel.carousel .carousel-item .lg-item img{height:600px}#bootstrap-video-carousel.carousel .lg-item{display:flex;justify-content:center;align-items:center;height:100%}#bootstrap-video-carousel.carousel .lg-item img{width:unset !important;height:500px}#bootstrap-video-carousel.carousel .carousel-item .lg-item img{height:600px}#slick-carousel-gallery-demo img{height:500px}#slick-carousel-gallery-demo .slick-track{gap:10px;display:flex}#slick-carousel-gallery-demo .slick-prev,#slick-carousel-gallery-demo .slick-next{padding:10px;position:absolute;top:50%;z-index:1;cursor:pointer;zoom:2}#slick-carousel-gallery-demo .slick-prev{left:-8px}#slick-carousel-gallery-demo .slick-next{right:12px}#flickity-carousel-gallery-demo .flickity-slider{gap:10px;display:flex}#flickity-carousel-gallery-demo .flickity-slider .lg-item img{height:600px}#masonry-gallery-demo{margin:0 auto}#masonry-gallery-demo:after{content:'';display:block;clear:both}#masonry-gallery-demo .grid-sizer,#masonry-gallery-demo .lg-item{width:33.33%}#masonry-gallery-demo .lg-item{float:left;margin-bottom:10px}#masonry-gallery-demo .lg-item img{display:block;max-width:100%}#owl-carousel-gallery-demo .owl-carousel-item img{height:500px}.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}.dynamic-mode-images{position:relative;width:100%;height:auto}.btn-dynamic{color:#333;background-color:white;padding:5px 10px;position:absolute;bottom:15px;right:15px;font-size:14px;z-index:99}.blog-wrap{padding:100px 0 0 0;font-family:'Inter';font-style:normal;font-weight:400;font-size:18px;line-height:32px;color:#1A202C}@media (min-width: 768px){.blog-wrap{padding:100px 75px}}.blog-wrap .docs-hero-image{margin-bottom:60px}.blog-wrap .figure{display:inline-block;margin:1rem 0}@media (min-width: 768px){.blog-wrap .figure{margin:2rem -80px}}.blog-wrap .docs-hero-image{display:block}@media (min-width: 768px){.blog-wrap .docs-hero-image{margin-left:-120px;margin-right:-120px}}.blog-wrap .blog-header{margin-top:40px;margin-bottom:60px;max-width:700px}.blog-wrap .blog-header h1,.blog-wrap .blog-header .h1{font-style:normal;font-weight:700;font-size:36px;line-height:48px;margin:5px 0 24px 0;letter-spacing:0.01em;color:#1A202C}.blog-wrap .blog-header .blog-tags{display:inline-block;margin-right:8px}.blog-contributors .blog-contributors-list{font-weight:400;font-size:14px;line-height:20px;color:#718096}.blog-contributors .contributor-image img{max-width:36px;border-radius:4px;margin-right:8px}.blog-meta{font-family:'Inter';font-style:normal;font-weight:400;font-size:14px;line-height:16px;color:rgba(0,0,0,0.64)}.blog-meta strong{color:#000}.blog-list{padding-top:120px;padding-bottom:60px}.blog-list .blog-list-item+.blog-list-item{border-top:1px solid #e2e2ef;padding-top:48px;margin-top:48px}.blog-list .docs-hero-image{margin-bottom:24px;display:block}.blog-list .blog-meta{margin-bottom:24px}.blog-list .stretched-link:after{content:none}.blog-list h2,.blog-list .h2{margin:0 0 16px 0;font-style:normal;font-weight:700;font-size:34px;line-height:1.2;letter-spacing:0.01em;color:#1A202C}.blog-list .blog-body{font-family:'Inter';font-style:normal;font-weight:400;font-size:16px;line-height:24px;color:#4A5568}.blog-list .blog-contributors{margin-top:16px}.blog-text{color:#ffffff;font-size:12px;line-height:16px;display:flex;align-items:center}.blog-text:hover{color:#ffffff;text-decoration:none}.blog-text span{background-color:#805AD5;border-radius:6px;padding:4px 10px} diff --git a/main.5cce80e54730726310bee9b30461824f9bbeb8c686506d797304dc5ee4e15ba21e05c04e08544283f9b0146377dca747835390597ce35ad0cec05e426fc75f50.css b/main.5cce80e54730726310bee9b30461824f9bbeb8c686506d797304dc5ee4e15ba21e05c04e08544283f9b0146377dca747835390597ce35ad0cec05e426fc75f50.css deleted file mode 100644 index cd404a2cf..000000000 --- a/main.5cce80e54730726310bee9b30461824f9bbeb8c686506d797304dc5ee4e15ba21e05c04e08544283f9b0146377dca747835390597ce35ad0cec05e426fc75f50.css +++ /dev/null @@ -1,11 +0,0 @@ -/*! - * 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%}@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-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%}}@media (min-width: 1200px){.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-8{flex:0 0 auto;width:66.66666667%}}.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}.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){.order-lg-0{order:0 !important}.order-lg-1{order:1 !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;color:#5b6373}@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}.trusted-by .contents-list-item svg{max-width:110px;max-height:36px}@media (min-width: 768px){.trusted-by .contents-list-item{padding:1.5rem}}.trusted-by h2,.trusted-by .h2{font-size:18px;margin:0 0px 36px 0;color:inherit}@media (min-width: 768px){.trusted-by h2,.trusted-by .h2{font-size:24px}}.trusted-by.trusted-by-blue{color:#2d477c}.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}.dynamic-mode-images{position:relative;width:100%;height:auto}.btn-dynamic{color:#333;background-color:white;padding:5px 10px;position:absolute;bottom:15px;right:15px;font-size:14px;z-index:99} diff --git a/main.5fe6c36fb66e854456b8bf145080740783033d8c6cdcc1bd6b58d4dcf8af0c062cd64a35ce9aa35c35d7f64493931e30bc28faab1661e89bb68c24a5fc6478fd.js b/main.5fe6c36fb66e854456b8bf145080740783033d8c6cdcc1bd6b58d4dcf8af0c062cd64a35ce9aa35c35d7f64493931e30bc28faab1661e89bb68c24a5fc6478fd.js deleted file mode 100644 index 6fbfdf448..000000000 --- a/main.5fe6c36fb66e854456b8bf145080740783033d8c6cdcc1bd6b58d4dcf8af0c062cd64a35ce9aa35c35d7f64493931e30bc28faab1661e89bb68c24a5fc6478fd.js +++ /dev/null @@ -1,6760 +0,0 @@ -/*! 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)} -; -(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', - mediaLoadingFailed: 'Oops... Failed to load content...', - }, - }; - - 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('' + - _this.settings.strings['mediaLoadingFailed'] + - ''); - }); - }; - 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 | November 8th 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 | November 8th 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 | November 8th 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 | November 8th 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 - -; -(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 - -; -(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 | November 8th 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 | November 8th 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 | November 8th 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 | November 8th 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 | November 8th 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 | November 8th 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 | November 8th 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,$dynamicimgGallery,dynamicimgEl,dynamicimgGallery,$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)}),$dynamicimgGallery=jQuery('#dynamic-mode-images'),dynamicimgEl=[{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=80'},{src:'https://images.unsplash.com/photo-1526281216101-e55f00f0db7a?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=1600&q=80',thumb:'https://images.unsplash.com/photo-1526281216101-e55f00f0db7a?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=240&q=80'},{src:'https://images.unsplash.com/photo-1418065460487-3e41a6c84dc5?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1600&q=80',thumb:'https://images.unsplash.com/photo-1418065460487-3e41a6c84dc5?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&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=1600&q=80',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=1600&q=80',thumb:'https://images.unsplash.com/photo-1477322524744-0eece9e79640?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&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',thumb:'https://images.unsplash.com/photo-1469474968028-56623f02e42e?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80'},{src:"https://images.unsplash.com/photo-1510414842594-a61c69b5ae57?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1510414842594-a61c69b5ae57?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=2407&q=80"},{src:"https://images.unsplash.com/photo-1596370743446-6a7ef43a36f9?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1596370743446-6a7ef43a36f9?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1464852045489-bccb7d17fe39?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1464852045489-bccb7d17fe39?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1483728642387-6c3bdd6c93e5?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1483728642387-6c3bdd6c93e5?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1510011560141-62c7e8fc7908?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1510011560141-62c7e8fc7908?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1586276393635-5ecd8a851acc?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1586276393635-5ecd8a851acc?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1471931452361-f5ff1faa15ad?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1471931452361-f5ff1faa15ad?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1508766206392-8bd5cf550d1c?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1508766206392-8bd5cf550d1c?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1610448721566-47369c768e70?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1610448721566-47369c768e70?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"}],dynamicimgGallery=window.lightGallery($dynamicimgGallery[0],{dynamic:!0,hash:!1,rotate:!1,plugins:[lgZoom,lgAutoplay,lgFullscreen,lgPager,lgRotate,lgShare,lgVideo],dynamicEl:dynamicimgEl}),$dynamicimgGallery.on('click',function(){dynamicimgGallery.openGallery(5)}),$('#gallery-dynamic-thumbnails .gallery-item').on('click',function(){var a=$(this).index();dynamicimgGallery.openGallery(a)}),jQuery('#gallery-dynamic-thumbnails').justifiedGallery({captions:!1,lastRow:'justify',rowHeight:180,margins:5}),$('#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/main.629d82daf81d29d4f0d5014abbb1ab36945f1b865b4fed115399e6f3006d663ea0da7f1c89e69db6811395bd75b25182efa539a40109823352926f2675ea9151.css b/main.629d82daf81d29d4f0d5014abbb1ab36945f1b865b4fed115399e6f3006d663ea0da7f1c89e69db6811395bd75b25182efa539a40109823352926f2675ea9151.css deleted file mode 100644 index 8de4b90d4..000000000 --- a/main.629d82daf81d29d4f0d5014abbb1ab36945f1b865b4fed115399e6f3006d663ea0da7f1c89e69db6811395bd75b25182efa539a40109823352926f2675ea9151.css +++ /dev/null @@ -1,11 +0,0 @@ -/*! - * 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,strong{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="reset"],[type="submit"]{-webkit-appearance:button}button:not(:disabled),[type="button"]:not(:disabled),[type="reset"]: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)}.row-cols-1>*{flex:0 0 auto;width:100%}.col-4{flex:0 0 auto;width:33.33333333%}@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){.row-cols-lg-2>*{flex:0 0 auto;width:50%}.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-6{flex:0 0 auto;width:50%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}}.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}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}@-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}.visually-hidden{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.d-block{display:block !important}.d-grid{display:grid !important}.d-flex{display:flex !important}.d-none{display:none !important}.border{border:1px solid #dee2e6 !important}.w-100{width:100% !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.align-self-center{align-self:center !important}.mx-0{margin-right:0 !important;margin-left:0 !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}.mb-3{margin-bottom:1rem !important}.mb-4{margin-bottom:1.5rem !important}.ms-auto{margin-left:auto !important}.p-1{padding:.25rem !important}.px-0{padding-right:0 !important;padding-left:0 !important}.px-2{padding-right:.5rem !important;padding-left:.5rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.text-center{text-align:center !important}.text-body{color:#333 !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){.order-lg-0{order:0 !important}.order-lg-1{order:1 !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}.demo-btns-container{display:flex;align-items:center;justify-content:center;gap:10px;margin:1rem 0 2rem 0}.demo-btns-container.dynamic-mode-demo{display:inline-flex;margin:0 10px 0 10px}.demo-btn{text-align:center;font-size:14px}.demo-btn svg{width:18px;margin-right:5px}.demo-btn a{display:flex;align-items:center}.demo-btn-stackblits svg{margin-right:3px}.demo-btn+.demo-btn{margin-left:10px}.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}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-start),.active.carousel-item-end{transform:translateX(100%)}.carousel-item-prev:not(.carousel-item-end),.active.carousel-item-start{transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity 0.15s ease}@media (prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity 0.6s ease}@media (prefers-reduced-motion: reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-prev-icon,.carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators li{background-color:#333}.carousel-dark .carousel-caption{color:#333}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;color:#5b6373}@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}.trusted-by .contents-list-item svg{max-width:110px;max-height:36px}@media (min-width: 768px){.trusted-by .contents-list-item{padding:1.5rem}}.trusted-by h2,.trusted-by .h2{font-size:18px;margin:0 0px 36px 0;color:inherit}@media (min-width: 768px){.trusted-by h2,.trusted-by .h2{font-size:24px}}.trusted-by.trusted-by-blue{color:#2d477c}.pricing-list-item{width:100%;padding:20px;margin:20px;color:#0e3481;border-radius:5px}@media (min-width: 768px){.pricing-list-item{width:260px}}.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;flex-wrap:wrap}.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}.lg-item .lightGallery-captions h4,.lg-item .lightGallery-captions .h4{transform:translate3d(60px, 0, 0px)}.lg-item .lightGallery-captions p{transform:translate3d(-60px, 0, 0px)}.lg-item .lightGallery-captions h4,.lg-item .lightGallery-captions .h4,.lg-item .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}.carousel-control-prev,.carousel-control-next{background-color:transparent;box-shadow:none;border:none}.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{width:100%;height:100%;position:absolute !important}.swiper-lg-wrap{width:1200px;height:0;padding-bottom:65%;position:relative;max-width:100%}#bootstrap-gallery-carousel.carousel .lg-item{display:flex;justify-content:center;align-items:center;height:100%}#bootstrap-gallery-carousel.carousel .lg-item img{width:unset !important;height:500px}#bootstrap-gallery-carousel.carousel .carousel-item .lg-item img{height:600px}#bootstrap-video-carousel.carousel .lg-item{display:flex;justify-content:center;align-items:center;height:100%}#bootstrap-video-carousel.carousel .lg-item img{width:unset !important;height:500px}#bootstrap-video-carousel.carousel .carousel-item .lg-item img{height:600px}#slick-carousel-gallery-demo img{height:500px}#slick-carousel-gallery-demo .slick-track{gap:10px;display:flex}#slick-carousel-gallery-demo .slick-prev,#slick-carousel-gallery-demo .slick-next{padding:10px;position:absolute;top:50%;z-index:1;cursor:pointer;zoom:2}#slick-carousel-gallery-demo .slick-prev{left:-8px}#slick-carousel-gallery-demo .slick-next{right:12px}#flickity-carousel-gallery-demo .flickity-slider{gap:10px;display:flex}#flickity-carousel-gallery-demo .flickity-slider .lg-item img{height:600px}#masonry-gallery-demo{margin:0 auto}#masonry-gallery-demo:after{content:'';display:block;clear:both}#masonry-gallery-demo .grid-sizer,#masonry-gallery-demo .lg-item{width:33.33%}#masonry-gallery-demo .lg-item{float:left;margin-bottom:10px}#masonry-gallery-demo .lg-item img{display:block;max-width:100%}#owl-carousel-gallery-demo .owl-carousel-item img{height:500px}.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}.dynamic-mode-images{position:relative;width:100%;height:auto}.btn-dynamic{color:#333;background-color:white;padding:5px 10px;position:absolute;bottom:15px;right:15px;font-size:14px;z-index:99}.blog-wrap{padding:100px 0 0 0;font-family:'Inter';font-style:normal;font-weight:400;font-size:18px;line-height:32px;color:#1A202C}@media (min-width: 768px){.blog-wrap{padding:100px 75px}}.blog-wrap .docs-hero-image{margin-bottom:60px}.blog-wrap .figure{display:inline-block;margin:1rem 0}@media (min-width: 768px){.blog-wrap .figure{margin:2rem -80px}}.blog-wrap .docs-hero-image{display:block}@media (min-width: 768px){.blog-wrap .docs-hero-image{margin-left:-120px;margin-right:-120px}}.blog-wrap .blog-header{margin-top:40px;margin-bottom:60px;max-width:700px}.blog-wrap .blog-header h1,.blog-wrap .blog-header .h1{font-style:normal;font-weight:700;font-size:36px;line-height:48px;margin:5px 0 24px 0;letter-spacing:0.01em;color:#1A202C}.blog-wrap .blog-header .blog-tags{display:inline-block;margin-right:8px}.blog-contributors .blog-contributors-list{font-weight:400;font-size:14px;line-height:20px;color:#718096}.blog-contributors .contributor-image img{max-width:36px;border-radius:4px;margin-right:8px}.blog-meta{font-family:'Inter';font-style:normal;font-weight:400;font-size:14px;line-height:16px;color:rgba(0,0,0,0.64)}.blog-meta strong{color:#000}.blog-list{padding-top:120px;padding-bottom:60px}.blog-list .blog-list-item+.blog-list-item{border-top:1px solid #e2e2ef;padding-top:48px;margin-top:48px}.blog-list .docs-hero-image{margin-bottom:24px;display:block}.blog-list .blog-meta{margin-bottom:24px}.blog-list .stretched-link:after{content:none}.blog-list h2,.blog-list .h2{margin:0 0 16px 0;font-style:normal;font-weight:700;font-size:34px;line-height:1.2;letter-spacing:0.01em;color:#1A202C}.blog-list .blog-body{font-family:'Inter';font-style:normal;font-weight:400;font-size:16px;line-height:24px;color:#4A5568}.blog-list .blog-contributors{margin-top:16px}.blog-text{color:#ffffff;font-size:12px;line-height:16px;display:flex;align-items:center}.blog-text:hover{color:#ffffff;text-decoration:none}.blog-text span{background-color:#805AD5;border-radius:6px;padding:4px 10px} diff --git a/main.6c3b7a44dae7fec50a7118abd45307694535e7acac0a670dc266e4cb06d3a2dfa98ac5e1987276ceb14ff8fc3516244224ec66cdcda81814e24485c316e30756.js b/main.6c3b7a44dae7fec50a7118abd45307694535e7acac0a670dc266e4cb06d3a2dfa98ac5e1987276ceb14ff8fc3516244224ec66cdcda81814e24485c316e30756.js deleted file mode 100644 index d17d3a6c0..000000000 --- a/main.6c3b7a44dae7fec50a7118abd45307694535e7acac0a670dc266e4cb06d3a2dfa98ac5e1987276ceb14ff8fc3516244224ec66cdcda81814e24485c316e30756.js +++ /dev/null @@ -1,6799 +0,0 @@ -/*! 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.8.0-beta.1 | February 16th 2024 - * 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', - mediaLoadingFailed: 'Oops... Failed to load content...', - }, - }; - - 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) { - var container = this.settings.container; - if (typeof container === 'function') { - this.settings.container = container(); - } - else if (typeof container === 'string') { - var el = document.querySelector(container); - this.settings.container = el !== null && el !== void 0 ? el : document.body; - } - } - else { - 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('' + - _this.settings.strings['mediaLoadingFailed'] + - ''); - }); - }; - 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.8.0-beta.1 | February 16th 2024 - * 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 defaultVimeoPlayerParams = Object.assign({}, { - autoplay: 0, - muted: 1, - }, defaultParams); - var defaultPlayerParams = defaultVimeoPlayerParams && - Object.keys(defaultVimeoPlayerParams).length !== 0 - ? param(defaultVimeoPlayerParams) - : ''; - // 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 || ''; - var privateUrlParams = isPrivate ? "h=" + hash : ''; - defaultPlayerParams = privateUrlParams - ? "&" + defaultPlayerParams - : defaultPlayerParams; - var vimeoPlayerParams = "?" + privateUrlParams + 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.8.0-beta.1 | February 16th 2024 - * 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.8.0-beta.1 | February 16th 2024 - * 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.8.0-beta.1 | February 16th 2024 - * 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.8.0-beta.1 | February 16th 2024 - * 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.8.0-beta.1 | February 16th 2024 - * 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.8.0-beta.1 | February 16th 2024 - * 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.8.0-beta.1 | February 16th 2024 - * 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.8.0-beta.1 | February 16th 2024 - * 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.8.0-beta.1 | February 16th 2024 - * 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.8.0-beta.1 | February 16th 2024 - * 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.8.0-beta.1 | February 16th 2024 - * 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.8.0-beta.1 | February 16th 2024 - * 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,$dynamicimgGallery,dynamicimgEl,dynamicimgGallery,$infiniteScrollingGallery,infiniteScrollingGallery,images,$lgSwiper,swiper,$lgInlineVideoContainer,_inlineGallery,$flickityLG,flkty,container;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)}),$dynamicimgGallery=jQuery('#dynamic-mode-images'),dynamicimgEl=[{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=80'},{src:'https://images.unsplash.com/photo-1526281216101-e55f00f0db7a?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=1600&q=80',thumb:'https://images.unsplash.com/photo-1526281216101-e55f00f0db7a?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=240&q=80'},{src:'https://images.unsplash.com/photo-1418065460487-3e41a6c84dc5?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1600&q=80',thumb:'https://images.unsplash.com/photo-1418065460487-3e41a6c84dc5?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&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=1600&q=80',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=1600&q=80',thumb:'https://images.unsplash.com/photo-1477322524744-0eece9e79640?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&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',thumb:'https://images.unsplash.com/photo-1469474968028-56623f02e42e?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80'},{src:"https://images.unsplash.com/photo-1510414842594-a61c69b5ae57?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1510414842594-a61c69b5ae57?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=2407&q=80"},{src:"https://images.unsplash.com/photo-1596370743446-6a7ef43a36f9?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1596370743446-6a7ef43a36f9?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1464852045489-bccb7d17fe39?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1464852045489-bccb7d17fe39?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1483728642387-6c3bdd6c93e5?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1483728642387-6c3bdd6c93e5?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1510011560141-62c7e8fc7908?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1510011560141-62c7e8fc7908?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1586276393635-5ecd8a851acc?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1586276393635-5ecd8a851acc?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1471931452361-f5ff1faa15ad?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1471931452361-f5ff1faa15ad?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1508766206392-8bd5cf550d1c?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1508766206392-8bd5cf550d1c?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1610448721566-47369c768e70?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1610448721566-47369c768e70?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"}],dynamicimgGallery=window.lightGallery($dynamicimgGallery[0],{dynamic:!0,hash:!1,rotate:!1,plugins:[lgZoom,lgAutoplay,lgFullscreen,lgPager,lgRotate,lgShare,lgVideo],dynamicEl:dynamicimgEl}),$dynamicimgGallery.on('click',function(){dynamicimgGallery.openGallery(5)}),$('#gallery-dynamic-thumbnails .gallery-item').on('click',function(){var a=$(this).index();dynamicimgGallery.openGallery(a)}),jQuery('#gallery-dynamic-thumbnails').justifiedGallery({captions:!1,lastRow:'justify',rowHeight:180,margins:5}),$('#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]}),lightGallery(document.querySelector('.blog-wrapper'),{selector:'.blog-images',getCaptionFromTitleOrAlt:!1,backgroundColor:"#FFF",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)})}}})),$lgInlineVideoContainer=document.getElementById('inline-video-gallery-container'),$lgInlineVideoContainer&&(_inlineGallery=window.lightGallery($lgInlineVideoContainer,_objectSpread(_objectSpread({container:$lgInlineVideoContainer,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:[lgShare,lgThumbnail,lgVideo],appendSubHtmlTo:'.lg-item'},getResponsiveThumbnailsSettings()),{},{dynamicEl:[{src:'//www.youtube.com/watch?v=EIUJfXk3_3w',poster:'https://img.youtube.com/vi/EIUJfXk3_3w/maxresdefault.jpg',thumb:'https://img.youtube.com/vi/EIUJfXk3_3w/maxresdefault.jpg',subHtml:'

    Puffin Hunts Fish To Feed Puffling | Blue Planet II | BBC Earth

    This puffin parent must go out to sea to feed his chick, but he must evade other birds that would rob him.

    '},{src:'//vimeo.com/112836958',poster:location.origin+'/images/demo/vimeo-video-poster.jpg',thumb:location.origin+'/images/demo/vimeo-video-poster.jpg',subHtml:"

    Nature

    Video by Charlie Kaye

    "},{source:[{src:location.origin+'/videos/video1.mp4',type:'video/mp4'}],tracks:[{src:location.origin+'/videos/title.txt',kind:'captions',srclang:'en',label:'English',default:'true'}],attributes:{preload:!1,controls:!0},poster:location.origin+'/images/demo/html5-video-poster.jpg',thumb:location.origin+'/images/demo/html5-video-poster.jpg',subHtml:"

    'Peck Pocketed' by Kevin Herron | Disney Favorite

    "},{src:'https://private-sharing.wistia.com/medias/mwhrulrucj',poster:location.origin+'/images/demo/wistia-video-poster.jpeg',thumb:location.origin+'/images/demo/wistia-video-poster.jpeg',subHtml:'

    Thank You!

    Sample Wistia video

    '}]})),_inlineGallery.openGallery()),jQuery(document).ready(function(){var d=document.getElementById('bootstrap-gallery-carousel'),a,e,f,g,b,h,c;d&&(a=!1,e=jQuery('#bootstrap-gallery-carousel'),e.carousel({keyboard:!0}),a=!0,a&&(f=document.querySelector('.carousel-inner'),window.lightGallery(f,{thumbnail:!0,zoomFromOrigin:!1,pager:!1,plugins:[lgZoom,lgAutoplay,lgFullscreen,lgRotate,lgShare],hash:!1,preload:4,selector:'.lg-item'}))),g=document.getElementById('owl-carousel-gallery-demo'),g&&(b=jQuery('#owl-carousel-gallery-demo'),b.on('initialized.owl.carousel',function(b){var a=document.querySelector('.owl-stage');window.lightGallery(a,{plugins:[lgZoom,lgAutoplay,lgFullscreen,lgRotate,lgShare,lgThumbnail],selector:'.carousel-cell'})}),b.owlCarousel({center:!0,items:1,loop:!1,margin:10,nav:!0})),h=document.getElementById('slick-carousel-gallery-demo'),h&&(c=$('#slick-carousel-gallery-demo'),c.on('init',function(b,c,d){console.log('Slick slider initialized');var a=document.querySelector('.slick-track');window.lightGallery(a,{pager:!1,plugins:[lgZoom,lgAutoplay,lgFullscreen,lgRotate,lgShare,lgThumbnail],hash:!1,preload:4})}),c.slick({centerMode:!0,centerPadding:'60px',slidesToShow:3,customPaging:'10px',focusOnSelect:!0,swipe:!1,variableWidth:!0,responsive:[{breakpoint:768,settings:{arrows:!1,centerMode:!0,centerPadding:'40px',slidesToShow:3}},{breakpoint:480,settings:{arrows:!1,centerMode:!0,centerPadding:'40px',slidesToShow:1}}]}))}),$flickityLG=document.querySelector('#flickity-carousel-gallery-demo'),$flickityLG&&(flkty=new Flickity($flickityLG,{cellAlign:'center',pageDots:!1,contain:!0,autoPlay:!0,on:{ready:function(){var a=document.querySelector('.flickity-slider');window.lightGallery(a,{selector:'.lg-item',plugins:[lgZoom,lgAutoplay,lgFullscreen,lgRotate,lgShare,lgThumbnail]})}}})),container=document.querySelector('#bootstrap-image-gallery'),window.lightGallery(container,{selector:'.lg-item',zoomFromOrigin:!0,download:!1,plugins:[lgZoom,lgAutoplay,lgFullscreen,lgRotate,lgShare]}),$(document).ready(function(){var a=document.querySelector('#masonry-gallery-demo'),b=new Masonry(a,{itemSelector:'.lg-item',columnWidth:'.grid-sizer',percentPosition:!0,gutter:10,horizontalOrder:!0,fitWidth:!0});imagesLoaded(a).on('progress',function(){b.layout()}),window.lightGallery(a,{thumbnail:!0,pager:!0,plugins:[lgAutoplay,lgFullscreen,lgShare,lgThumbnail,lgVideo],hash:!1,preload:0,selector:'.lg-item'})}),window.lightGallery(document.getElementById('bootstrap-video-gallery'),{thumbnail:!0,pager:!0,plugins:[lgAutoplay,lgFullscreen,lgShare,lgThumbnail,lgVideo],hash:!1,preload:0}),window.lightGallery(document.getElementById('bootstrap-video-carousel'),{thumbnail:!0,pager:!0,plugins:[lgAutoplay,lgFullscreen,lgShare,lgThumbnail,lgVideo],hash:!1,preload:0,selector:'.lg-item'}) \ No newline at end of file diff --git a/main.787ae2a9216d5a962cc79fae77a410ee9fc799fda95b3ae7c62b7aa06383c7914c7aff3fc53a12037b5e1241838e245e03a7a84271c64fc99d495af5734fc2c6.js b/main.787ae2a9216d5a962cc79fae77a410ee9fc799fda95b3ae7c62b7aa06383c7914c7aff3fc53a12037b5e1241838e245e03a7a84271c64fc99d495af5734fc2c6.js deleted file mode 100644 index 560992ac2..000000000 --- a/main.787ae2a9216d5a962cc79fae77a410ee9fc799fda95b3ae7c62b7aa06383c7914c7aff3fc53a12037b5e1241838e245e03a7a84271c64fc99d495af5734fc2c6.js +++ /dev/null @@ -1,7429 +0,0 @@ -/*! 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 0e;e++){var i=h[e];t[i]=0}return t}function n(t){var e=getComputedStyle(t);return e||a("Style returned "+e+". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1"),e}function o(){if(!d){d=!0;var e=document.createElement("div");e.style.width="200px",e.style.padding="1px 2px 3px 4px",e.style.borderStyle="solid",e.style.borderWidth="1px 2px 3px 4px",e.style.boxSizing="border-box";var i=document.body||document.documentElement;i.appendChild(e);var o=n(e);s=200==Math.round(t(o.width)),r.isBoxSizeOuter=s,i.removeChild(e)}}function r(e){if(o(),"string"==typeof e&&(e=document.querySelector(e)),e&&"object"==typeof e&&e.nodeType){var r=n(e);if("none"==r.display)return i();var a={};a.width=e.offsetWidth,a.height=e.offsetHeight;for(var d=a.isBorderBox="border-box"==r.boxSizing,l=0;u>l;l++){var c=h[l],f=r[c],m=parseFloat(f);a[c]=isNaN(m)?0:m}var p=a.paddingLeft+a.paddingRight,g=a.paddingTop+a.paddingBottom,y=a.marginLeft+a.marginRight,v=a.marginTop+a.marginBottom,_=a.borderLeftWidth+a.borderRightWidth,z=a.borderTopWidth+a.borderBottomWidth,E=d&&s,b=t(r.width);b!==!1&&(a.width=b+(E?0:p+_));var x=t(r.height);return x!==!1&&(a.height=x+(E?0:g+z)),a.innerWidth=a.width-(p+_),a.innerHeight=a.height-(g+z),a.outerWidth=a.width+y,a.outerHeight=a.height+v,a}}var s,a="undefined"==typeof console?e:function(t){console.error(t)},h=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],u=h.length,d=!1;return r}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("desandro-matches-selector/matches-selector",e):"object"==typeof module&&module.exports?module.exports=e():t.matchesSelector=e()}(window,function(){"use strict";var t=function(){var t=window.Element.prototype;if(t.matches)return"matches";if(t.matchesSelector)return"matchesSelector";for(var e=["webkit","moz","ms","o"],i=0;is?"round":"floor";r=Math[a](r),this.cols=Math.max(r,1)},n.getContainerWidth=function(){var t=this._getOption("fitWidth"),i=t?this.element.parentNode:this.element,n=e(i);this.containerWidth=n&&n.innerWidth},n._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth%this.columnWidth,i=e&&1>e?"round":"ceil",n=Math[i](t.size.outerWidth/this.columnWidth);n=Math.min(n,this.cols);for(var o=this.options.horizontalOrder?"_getHorizontalColPosition":"_getTopColPosition",r=this[o](n,t),s={x:this.columnWidth*r.col,y:r.y},a=r.y+t.size.outerHeight,h=n+r.col,u=r.col;h>u;u++)this.colYs[u]=a;return s},n._getTopColPosition=function(t){var e=this._getTopColGroup(t),i=Math.min.apply(Math,e);return{col:e.indexOf(i),y:i}},n._getTopColGroup=function(t){if(2>t)return this.colYs;for(var e=[],i=this.cols+1-t,n=0;i>n;n++)e[n]=this._getColGroupY(n,t);return e},n._getColGroupY=function(t,e){if(2>e)return this.colYs[t];var i=this.colYs.slice(t,t+e);return Math.max.apply(Math,i)},n._getHorizontalColPosition=function(t,e){var i=this.horizontalColIndex%this.cols,n=t>1&&i+t>this.cols;i=n?0:i;var o=e.size.outerWidth&&e.size.outerHeight;return this.horizontalColIndex=o?i+t:this.horizontalColIndex,{col:i,y:this._getColGroupY(i,t)}},n._manageStamp=function(t){var i=e(t),n=this._getElementOffset(t),o=this._getOption("originLeft"),r=o?n.left:n.right,s=r+i.outerWidth,a=Math.floor(r/this.columnWidth);a=Math.max(0,a);var h=Math.floor(s/this.columnWidth);h-=s%this.columnWidth?0:1,h=Math.min(this.cols-1,h);for(var u=this._getOption("originTop"),d=(u?n.top:n.bottom)+i.outerHeight,l=a;h>=l;l++)this.colYs[l]=Math.max(d,this.colYs[l])},n._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var t={height:this.maxY};return this._getOption("fitWidth")&&(t.width=this._getContainerFitWidth()),t},n._getContainerFitWidth=function(){for(var t=0,e=this.cols;--e&&0===this.colYs[e];)t++;return(this.cols-t)*this.columnWidth-this.gutter},n.needsResizeLayout=function(){var t=this.containerWidth;return this.getContainerWidth(),t!=this.containerWidth},i}); - -; -/*! - * imagesLoaded PACKAGED v4.1.4 - * JavaScript is all like "You images are done yet or what?" - * MIT License - */ - -/** - * EvEmitter v1.1.0 - * Lil' event emitter - * MIT License - */ - -/* jshint unused: true, undef: true, strict: true */ - -( function( global, factory ) { - // universal module definition - /* jshint strict: false */ /* globals define, module, window */ - if ( typeof define == 'function' && define.amd ) { - // AMD - RequireJS - define( 'ev-emitter/ev-emitter',factory ); - } else if ( typeof module == 'object' && module.exports ) { - // CommonJS - Browserify, Webpack - module.exports = factory(); - } else { - // Browser globals - global.EvEmitter = factory(); - } - - }( typeof window != 'undefined' ? window : this, function() { - - - - function EvEmitter() {} - - var proto = EvEmitter.prototype; - - proto.on = function( eventName, listener ) { - if ( !eventName || !listener ) { - return; - } - // set events hash - var events = this._events = this._events || {}; - // set listeners array - var listeners = events[ eventName ] = events[ eventName ] || []; - // only add once - if ( listeners.indexOf( listener ) == -1 ) { - listeners.push( listener ); - } - - return this; - }; - - proto.once = function( eventName, listener ) { - if ( !eventName || !listener ) { - return; - } - // add event - this.on( eventName, listener ); - // set once flag - // set onceEvents hash - var onceEvents = this._onceEvents = this._onceEvents || {}; - // set onceListeners object - var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {}; - // set flag - onceListeners[ listener ] = true; - - return this; - }; - - proto.off = function( eventName, listener ) { - var listeners = this._events && this._events[ eventName ]; - if ( !listeners || !listeners.length ) { - return; - } - var index = listeners.indexOf( listener ); - if ( index != -1 ) { - listeners.splice( index, 1 ); - } - - return this; - }; - - proto.emitEvent = function( eventName, args ) { - var listeners = this._events && this._events[ eventName ]; - if ( !listeners || !listeners.length ) { - return; - } - // copy over to avoid interference if .off() in listener - listeners = listeners.slice(0); - args = args || []; - // once stuff - var onceListeners = this._onceEvents && this._onceEvents[ eventName ]; - - for ( var i=0; i < listeners.length; i++ ) { - var listener = listeners[i] - var isOnce = onceListeners && onceListeners[ listener ]; - if ( isOnce ) { - // remove listener - // remove before trigger to prevent recursion - this.off( eventName, listener ); - // unset once flag - delete onceListeners[ listener ]; - } - // trigger listener - listener.apply( this, args ); - } - - return this; - }; - - proto.allOff = function() { - delete this._events; - delete this._onceEvents; - }; - - return EvEmitter; - - })); - - /*! - * imagesLoaded v4.1.4 - * JavaScript is all like "You images are done yet or what?" - * MIT License - */ - - ( function( window, factory ) { 'use strict'; - // universal module definition - - /*global define: false, module: false, require: false */ - - if ( typeof define == 'function' && define.amd ) { - // AMD - define( [ - 'ev-emitter/ev-emitter' - ], function( EvEmitter ) { - return factory( window, EvEmitter ); - }); - } else if ( typeof module == 'object' && module.exports ) { - // CommonJS - module.exports = factory( - window, - require('ev-emitter') - ); - } else { - // browser global - window.imagesLoaded = factory( - window, - window.EvEmitter - ); - } - - })( typeof window !== 'undefined' ? window : this, - - // -------------------------- factory -------------------------- // - - function factory( window, EvEmitter ) { - - - - var $ = window.jQuery; - var console = window.console; - - // -------------------------- helpers -------------------------- // - - // extend objects - function extend( a, b ) { - for ( var prop in b ) { - a[ prop ] = b[ prop ]; - } - return a; - } - - var arraySlice = Array.prototype.slice; - - // turn element or nodeList into an array - function makeArray( obj ) { - if ( Array.isArray( obj ) ) { - // use object if already an array - return obj; - } - - var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number'; - if ( isArrayLike ) { - // convert nodeList to array - return arraySlice.call( obj ); - } - - // array of single index - return [ obj ]; - } - - // -------------------------- imagesLoaded -------------------------- // - - /** - * @param {Array, Element, NodeList, String} elem - * @param {Object or Function} options - if function, use as callback - * @param {Function} onAlways - callback function - */ - function ImagesLoaded( elem, options, onAlways ) { - // coerce ImagesLoaded() without new, to be new ImagesLoaded() - if ( !( this instanceof ImagesLoaded ) ) { - return new ImagesLoaded( elem, options, onAlways ); - } - // use elem as selector string - var queryElem = elem; - if ( typeof elem == 'string' ) { - queryElem = document.querySelectorAll( elem ); - } - // bail if bad element - if ( !queryElem ) { - console.error( 'Bad element for imagesLoaded ' + ( queryElem || elem ) ); - return; - } - - this.elements = makeArray( queryElem ); - this.options = extend( {}, this.options ); - // shift arguments if no options set - if ( typeof options == 'function' ) { - onAlways = options; - } else { - extend( this.options, options ); - } - - if ( onAlways ) { - this.on( 'always', onAlways ); - } - - this.getImages(); - - if ( $ ) { - // add jQuery Deferred object - this.jqDeferred = new $.Deferred(); - } - - // HACK check async to allow time to bind listeners - setTimeout( this.check.bind( this ) ); - } - - ImagesLoaded.prototype = Object.create( EvEmitter.prototype ); - - ImagesLoaded.prototype.options = {}; - - ImagesLoaded.prototype.getImages = function() { - this.images = []; - - // filter & find items if we have an item selector - this.elements.forEach( this.addElementImages, this ); - }; - - /** - * @param {Node} element - */ - ImagesLoaded.prototype.addElementImages = function( elem ) { - // filter siblings - if ( elem.nodeName == 'IMG' ) { - this.addImage( elem ); - } - // get background image on element - if ( this.options.background === true ) { - this.addElementBackgroundImages( elem ); - } - - // find children - // no non-element nodes, #143 - var nodeType = elem.nodeType; - if ( !nodeType || !elementNodeTypes[ nodeType ] ) { - return; - } - var childImgs = elem.querySelectorAll('img'); - // concat childElems to filterFound array - for ( var i=0; i < childImgs.length; i++ ) { - var img = childImgs[i]; - this.addImage( img ); - } - - // get child background images - if ( typeof this.options.background == 'string' ) { - var children = elem.querySelectorAll( this.options.background ); - for ( i=0; i < children.length; i++ ) { - var child = children[i]; - this.addElementBackgroundImages( child ); - } - } - }; - - var elementNodeTypes = { - 1: true, - 9: true, - 11: true - }; - - ImagesLoaded.prototype.addElementBackgroundImages = function( elem ) { - var style = getComputedStyle( elem ); - if ( !style ) { - // Firefox returns null if in a hidden iframe https://bugzil.la/548397 - return; - } - // get url inside url("...") - var reURL = /url\((['"])?(.*?)\1\)/gi; - var matches = reURL.exec( style.backgroundImage ); - while ( matches !== null ) { - var url = matches && matches[2]; - if ( url ) { - this.addBackground( url, elem ); - } - matches = reURL.exec( style.backgroundImage ); - } - }; - - /** - * @param {Image} img - */ - ImagesLoaded.prototype.addImage = function( img ) { - var loadingImage = new LoadingImage( img ); - this.images.push( loadingImage ); - }; - - ImagesLoaded.prototype.addBackground = function( url, elem ) { - var background = new Background( url, elem ); - this.images.push( background ); - }; - - ImagesLoaded.prototype.check = function() { - var _this = this; - this.progressedCount = 0; - this.hasAnyBroken = false; - // complete if no images - if ( !this.images.length ) { - this.complete(); - return; - } - - function onProgress( image, elem, message ) { - // HACK - Chrome triggers event before object properties have changed. #83 - setTimeout( function() { - _this.progress( image, elem, message ); - }); - } - - this.images.forEach( function( loadingImage ) { - loadingImage.once( 'progress', onProgress ); - loadingImage.check(); - }); - }; - - ImagesLoaded.prototype.progress = function( image, elem, message ) { - this.progressedCount++; - this.hasAnyBroken = this.hasAnyBroken || !image.isLoaded; - // progress event - this.emitEvent( 'progress', [ this, image, elem ] ); - if ( this.jqDeferred && this.jqDeferred.notify ) { - this.jqDeferred.notify( this, image ); - } - // check if completed - if ( this.progressedCount == this.images.length ) { - this.complete(); - } - - if ( this.options.debug && console ) { - console.log( 'progress: ' + message, image, elem ); - } - }; - - ImagesLoaded.prototype.complete = function() { - var eventName = this.hasAnyBroken ? 'fail' : 'done'; - this.isComplete = true; - this.emitEvent( eventName, [ this ] ); - this.emitEvent( 'always', [ this ] ); - if ( this.jqDeferred ) { - var jqMethod = this.hasAnyBroken ? 'reject' : 'resolve'; - this.jqDeferred[ jqMethod ]( this ); - } - }; - - // -------------------------- -------------------------- // - - function LoadingImage( img ) { - this.img = img; - } - - LoadingImage.prototype = Object.create( EvEmitter.prototype ); - - LoadingImage.prototype.check = function() { - // If complete is true and browser supports natural sizes, - // try to check for image status manually. - var isComplete = this.getIsImageComplete(); - if ( isComplete ) { - // report based on naturalWidth - this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' ); - return; - } - - // If none of the checks above matched, simulate loading on detached element. - this.proxyImage = new Image(); - this.proxyImage.addEventListener( 'load', this ); - this.proxyImage.addEventListener( 'error', this ); - // bind to image as well for Firefox. #191 - this.img.addEventListener( 'load', this ); - this.img.addEventListener( 'error', this ); - this.proxyImage.src = this.img.src; - }; - - LoadingImage.prototype.getIsImageComplete = function() { - // check for non-zero, non-undefined naturalWidth - // fixes Safari+InfiniteScroll+Masonry bug infinite-scroll#671 - return this.img.complete && this.img.naturalWidth; - }; - - LoadingImage.prototype.confirm = function( isLoaded, message ) { - this.isLoaded = isLoaded; - this.emitEvent( 'progress', [ this, this.img, message ] ); - }; - - // ----- events ----- // - - // trigger specified handler for event type - LoadingImage.prototype.handleEvent = function( event ) { - var method = 'on' + event.type; - if ( this[ method ] ) { - this[ method ]( event ); - } - }; - - LoadingImage.prototype.onload = function() { - this.confirm( true, 'onload' ); - this.unbindEvents(); - }; - - LoadingImage.prototype.onerror = function() { - this.confirm( false, 'onerror' ); - this.unbindEvents(); - }; - - LoadingImage.prototype.unbindEvents = function() { - this.proxyImage.removeEventListener( 'load', this ); - this.proxyImage.removeEventListener( 'error', this ); - this.img.removeEventListener( 'load', this ); - this.img.removeEventListener( 'error', this ); - }; - - // -------------------------- Background -------------------------- // - - function Background( url, element ) { - this.url = url; - this.element = element; - this.img = new Image(); - } - - // inherit LoadingImage prototype - Background.prototype = Object.create( LoadingImage.prototype ); - - Background.prototype.check = function() { - this.img.addEventListener( 'load', this ); - this.img.addEventListener( 'error', this ); - this.img.src = this.url; - // check if image is already complete - var isComplete = this.getIsImageComplete(); - if ( isComplete ) { - this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' ); - this.unbindEvents(); - } - }; - - Background.prototype.unbindEvents = function() { - this.img.removeEventListener( 'load', this ); - this.img.removeEventListener( 'error', this ); - }; - - Background.prototype.confirm = function( isLoaded, message ) { - this.isLoaded = isLoaded; - this.emitEvent( 'progress', [ this, this.element, message ] ); - }; - - // -------------------------- jQuery -------------------------- // - - ImagesLoaded.makeJQueryPlugin = function( jQuery ) { - jQuery = jQuery || window.jQuery; - if ( !jQuery ) { - return; - } - // set local variable - $ = jQuery; - // $().imagesLoaded() - $.fn.imagesLoaded = function( options, callback ) { - var instance = new ImagesLoaded( this, options, callback ); - return instance.jqDeferred.promise( $(this) ); - }; - }; - // try making plugin - ImagesLoaded.makeJQueryPlugin(); - - // -------------------------- -------------------------- // - - return ImagesLoaded; - - }); - -; -/** - * Swiper 9.4.1 - * Most modern mobile touch slider and framework with hardware accelerated transitions - * https://swiperjs.com - * - * Copyright 2014-2023 Vladimir Kharlampidi - * - * Released under the MIT License - * - * Released on: June 13, 2023 - */ - -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).Swiper=t()}(this,(function(){"use strict";function e(e){return null!==e&&"object"==typeof e&&"constructor"in e&&e.constructor===Object}function t(s,a){void 0===s&&(s={}),void 0===a&&(a={}),Object.keys(a).forEach((i=>{void 0===s[i]?s[i]=a[i]:e(a[i])&&e(s[i])&&Object.keys(a[i]).length>0&&t(s[i],a[i])}))}const s={body:{},addEventListener(){},removeEventListener(){},activeElement:{blur(){},nodeName:""},querySelector:()=>null,querySelectorAll:()=>[],getElementById:()=>null,createEvent:()=>({initEvent(){}}),createElement:()=>({children:[],childNodes:[],style:{},setAttribute(){},getElementsByTagName:()=>[]}),createElementNS:()=>({}),importNode:()=>null,location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}};function a(){const e="undefined"!=typeof document?document:{};return t(e,s),e}const i={document:s,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState(){},pushState(){},go(){},back(){}},CustomEvent:function(){return this},addEventListener(){},removeEventListener(){},getComputedStyle:()=>({getPropertyValue:()=>""}),Image(){},Date(){},screen:{},setTimeout(){},clearTimeout(){},matchMedia:()=>({}),requestAnimationFrame:e=>"undefined"==typeof setTimeout?(e(),null):setTimeout(e,0),cancelAnimationFrame(e){"undefined"!=typeof setTimeout&&clearTimeout(e)}};function r(){const e="undefined"!=typeof window?window:{};return t(e,i),e}function n(e,t){return void 0===t&&(t=0),setTimeout(e,t)}function l(){return Date.now()}function o(e,t){void 0===t&&(t="x");const s=r();let a,i,n;const l=function(e){const t=r();let s;return t.getComputedStyle&&(s=t.getComputedStyle(e,null)),!s&&e.currentStyle&&(s=e.currentStyle),s||(s=e.style),s}(e);return s.WebKitCSSMatrix?(i=l.transform||l.webkitTransform,i.split(",").length>6&&(i=i.split(", ").map((e=>e.replace(",","."))).join(", ")),n=new s.WebKitCSSMatrix("none"===i?"":i)):(n=l.MozTransform||l.OTransform||l.MsTransform||l.msTransform||l.transform||l.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),a=n.toString().split(",")),"x"===t&&(i=s.WebKitCSSMatrix?n.m41:16===a.length?parseFloat(a[12]):parseFloat(a[4])),"y"===t&&(i=s.WebKitCSSMatrix?n.m42:16===a.length?parseFloat(a[13]):parseFloat(a[5])),i||0}function d(e){return"object"==typeof e&&null!==e&&e.constructor&&"Object"===Object.prototype.toString.call(e).slice(8,-1)}function c(e){return"undefined"!=typeof window&&void 0!==window.HTMLElement?e instanceof HTMLElement:e&&(1===e.nodeType||11===e.nodeType)}function p(){const e=Object(arguments.length<=0?void 0:arguments[0]),t=["__proto__","constructor","prototype"];for(let s=1;st.indexOf(e)<0));for(let t=0,i=s.length;tn?"next":"prev",p=(e,t)=>"next"===c&&e>=t||"prev"===c&&e<=t,u=()=>{l=(new Date).getTime(),null===o&&(o=l);const e=Math.max(Math.min((l-o)/d,1),0),r=.5-Math.cos(e*Math.PI)/2;let c=n+r*(s-n);if(p(c,s)&&(c=s),t.wrapperEl.scrollTo({[a]:c}),p(c,s))return t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.scrollSnapType="",setTimeout((()=>{t.wrapperEl.style.overflow="",t.wrapperEl.scrollTo({[a]:c})})),void i.cancelAnimationFrame(t.cssModeFrameID);t.cssModeFrameID=i.requestAnimationFrame(u)};u()}function h(e){return e.querySelector(".swiper-slide-transform")||e.shadowEl&&e.shadowEl.querySelector(".swiper-slide-transform")||e}function f(e,t){return void 0===t&&(t=""),[...e.children].filter((e=>e.matches(t)))}function g(e,t){void 0===t&&(t=[]);const s=document.createElement(e);return s.classList.add(...Array.isArray(t)?t:[t]),s}function v(e){const t=r(),s=a(),i=e.getBoundingClientRect(),n=s.body,l=e.clientTop||n.clientTop||0,o=e.clientLeft||n.clientLeft||0,d=e===t?t.scrollY:e.scrollTop,c=e===t?t.scrollX:e.scrollLeft;return{top:i.top+d-l,left:i.left+c-o}}function w(e,t){return r().getComputedStyle(e,null).getPropertyValue(t)}function b(e){let t,s=e;if(s){for(t=0;null!==(s=s.previousSibling);)1===s.nodeType&&(t+=1);return t}}function y(e,t){const s=[];let a=e.parentElement;for(;a;)t?a.matches(t)&&s.push(a):s.push(a),a=a.parentElement;return s}function E(e,t){t&&e.addEventListener("transitionend",(function s(a){a.target===e&&(t.call(e,a),e.removeEventListener("transitionend",s))}))}function x(e,t,s){const a=r();return s?e["width"===t?"offsetWidth":"offsetHeight"]+parseFloat(a.getComputedStyle(e,null).getPropertyValue("width"===t?"margin-right":"margin-top"))+parseFloat(a.getComputedStyle(e,null).getPropertyValue("width"===t?"margin-left":"margin-bottom")):e.offsetWidth}let S,T,M;function C(){return S||(S=function(){const e=r(),t=a();return{smoothScroll:t.documentElement&&t.documentElement.style&&"scrollBehavior"in t.documentElement.style,touch:!!("ontouchstart"in e||e.DocumentTouch&&t instanceof e.DocumentTouch)}}()),S}function P(e){return void 0===e&&(e={}),T||(T=function(e){let{userAgent:t}=void 0===e?{}:e;const s=C(),a=r(),i=a.navigator.platform,n=t||a.navigator.userAgent,l={ios:!1,android:!1},o=a.screen.width,d=a.screen.height,c=n.match(/(Android);?[\s\/]+([\d.]+)?/);let p=n.match(/(iPad).*OS\s([\d_]+)/);const u=n.match(/(iPod)(.*OS\s([\d_]+))?/),m=!p&&n.match(/(iPhone\sOS|iOS)\s([\d_]+)/),h="Win32"===i;let f="MacIntel"===i;return!p&&f&&s.touch&&["1024x1366","1366x1024","834x1194","1194x834","834x1112","1112x834","768x1024","1024x768","820x1180","1180x820","810x1080","1080x810"].indexOf(`${o}x${d}`)>=0&&(p=n.match(/(Version)\/([\d.]+)/),p||(p=[0,1,"13_0_0"]),f=!1),c&&!h&&(l.os="android",l.android=!0),(p||m||u)&&(l.os="ios",l.ios=!0),l}(e)),T}function L(){return M||(M=function(){const e=r();let t=!1;function s(){const t=e.navigator.userAgent.toLowerCase();return t.indexOf("safari")>=0&&t.indexOf("chrome")<0&&t.indexOf("android")<0}if(s()){const s=String(e.navigator.userAgent);if(s.includes("Version/")){const[e,a]=s.split("Version/")[1].split(" ")[0].split(".").map((e=>Number(e)));t=e<16||16===e&&a<2}}return{isSafari:t||s(),needPerspectiveFix:t,isWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(e.navigator.userAgent)}}()),M}var z={on(e,t,s){const a=this;if(!a.eventsListeners||a.destroyed)return a;if("function"!=typeof t)return a;const i=s?"unshift":"push";return e.split(" ").forEach((e=>{a.eventsListeners[e]||(a.eventsListeners[e]=[]),a.eventsListeners[e][i](t)})),a},once(e,t,s){const a=this;if(!a.eventsListeners||a.destroyed)return a;if("function"!=typeof t)return a;function i(){a.off(e,i),i.__emitterProxy&&delete i.__emitterProxy;for(var s=arguments.length,r=new Array(s),n=0;n=0&&t.eventsAnyListeners.splice(s,1),t},off(e,t){const s=this;return!s.eventsListeners||s.destroyed?s:s.eventsListeners?(e.split(" ").forEach((e=>{void 0===t?s.eventsListeners[e]=[]:s.eventsListeners[e]&&s.eventsListeners[e].forEach(((a,i)=>{(a===t||a.__emitterProxy&&a.__emitterProxy===t)&&s.eventsListeners[e].splice(i,1)}))})),s):s},emit(){const e=this;if(!e.eventsListeners||e.destroyed)return e;if(!e.eventsListeners)return e;let t,s,a;for(var i=arguments.length,r=new Array(i),n=0;n{e.eventsAnyListeners&&e.eventsAnyListeners.length&&e.eventsAnyListeners.forEach((e=>{e.apply(a,[t,...s])})),e.eventsListeners&&e.eventsListeners[t]&&e.eventsListeners[t].forEach((e=>{e.apply(a,s)}))})),e}};const A=(e,t)=>{if(!e||e.destroyed||!e.params)return;const s=t.closest(e.isElement?"swiper-slide":`.${e.params.slideClass}`);if(s){const t=s.querySelector(`.${e.params.lazyPreloaderClass}`);t&&t.remove()}},$=(e,t)=>{if(!e.slides[t])return;const s=e.slides[t].querySelector('[loading="lazy"]');s&&s.removeAttribute("loading")},I=e=>{if(!e||e.destroyed||!e.params)return;let t=e.params.lazyPreloadPrevNext;const s=e.slides.length;if(!s||!t||t<0)return;t=Math.min(t,s);const a="auto"===e.params.slidesPerView?e.slidesPerViewDynamic():Math.ceil(e.params.slidesPerView),i=e.activeIndex;if(e.params.grid&&e.params.grid.rows>1){const s=i,r=[s-t];return r.push(...Array.from({length:t}).map(((e,t)=>s+a+t))),void e.slides.forEach(((t,s)=>{r.includes(t.column)&&$(e,s)}))}const r=i+a-1;if(e.params.rewind||e.params.loop)for(let a=i-t;a<=r+t;a+=1){const t=(a%s+s)%s;(tr)&&$(e,t)}else for(let a=Math.max(i-t,0);a<=Math.min(r+t,s-1);a+=1)a!==i&&(a>r||a=0?T=parseFloat(T.replace("%",""))/100*n:"string"==typeof T&&(T=parseFloat(T)),e.virtualSize=-T,p.forEach((e=>{l?e.style.marginLeft="":e.style.marginRight="",e.style.marginBottom="",e.style.marginTop=""})),a.centeredSlides&&a.cssMode&&(u(i,"--swiper-centered-offset-before",""),u(i,"--swiper-centered-offset-after",""));const L=a.grid&&a.grid.rows>1&&e.grid;let z;L&&e.grid.initSlides(m);const A="auto"===a.slidesPerView&&a.breakpoints&&Object.keys(a.breakpoints).filter((e=>void 0!==a.breakpoints[e].slidesPerView)).length>0;for(let i=0;i1&&h.push(e.virtualSize-n)}if(d&&a.loop){const t=v[0]+T;if(a.slidesPerGroup>1){const s=Math.ceil((e.virtual.slidesBefore+e.virtual.slidesAfter)/a.slidesPerGroup),i=t*a.slidesPerGroup;for(let e=0;e!(a.cssMode&&!a.loop)||t!==p.length-1)).forEach((e=>{e.style[s]=`${T}px`}))}if(a.centeredSlides&&a.centeredSlidesBounds){let e=0;v.forEach((t=>{e+=t+(T||0)})),e-=T;const t=e-n;h=h.map((e=>e<=0?-b:e>t?t+y:e))}if(a.centerInsufficientSlides){let e=0;if(v.forEach((t=>{e+=t+(T||0)})),e-=T,e{h[s]=e-t})),g.forEach(((e,s)=>{g[s]=e+t}))}}if(Object.assign(e,{slides:p,snapGrid:h,slidesGrid:g,slidesSizesGrid:v}),a.centeredSlides&&a.cssMode&&!a.centeredSlidesBounds){u(i,"--swiper-centered-offset-before",-h[0]+"px"),u(i,"--swiper-centered-offset-after",e.size/2-v[v.length-1]/2+"px");const t=-e.snapGrid[0],s=-e.slidesGrid[0];e.snapGrid=e.snapGrid.map((e=>e+t)),e.slidesGrid=e.slidesGrid.map((e=>e+s))}if(m!==c&&e.emit("slidesLengthChange"),h.length!==E&&(e.params.watchOverflow&&e.checkOverflow(),e.emit("snapGridLengthChange")),g.length!==S&&e.emit("slidesGridLengthChange"),a.watchSlidesProgress&&e.updateSlidesOffset(),!(d||a.cssMode||"slide"!==a.effect&&"fade"!==a.effect)){const t=`${a.containerModifierClass}backface-hidden`,s=e.el.classList.contains(t);m<=a.maxBackfaceHiddenSlides?s||e.el.classList.add(t):s&&e.el.classList.remove(t)}},updateAutoHeight:function(e){const t=this,s=[],a=t.virtual&&t.params.virtual.enabled;let i,r=0;"number"==typeof e?t.setTransition(e):!0===e&&t.setTransition(t.params.speed);const n=e=>a?t.slides[t.getSlideIndexByData(e)]:t.slides[e];if("auto"!==t.params.slidesPerView&&t.params.slidesPerView>1)if(t.params.centeredSlides)(t.visibleSlides||[]).forEach((e=>{s.push(e)}));else for(i=0;it.slides.length&&!a)break;s.push(n(e))}else s.push(n(t.activeIndex));for(i=0;ir?e:r}(r||0===r)&&(t.wrapperEl.style.height=`${r}px`)},updateSlidesOffset:function(){const e=this,t=e.slides,s=e.isElement?e.isHorizontal()?e.wrapperEl.offsetLeft:e.wrapperEl.offsetTop:0;for(let a=0;a{e.classList.remove(s.slideVisibleClass)})),t.visibleSlidesIndexes=[],t.visibleSlides=[];let l=s.spaceBetween;"string"==typeof l&&l.indexOf("%")>=0?l=parseFloat(l.replace("%",""))/100*t.size:"string"==typeof l&&(l=parseFloat(l));for(let e=0;e=0&&u1&&m<=t.size||u<=0&&m>=t.size)&&(t.visibleSlides.push(o),t.visibleSlidesIndexes.push(e),a[e].classList.add(s.slideVisibleClass)),o.progress=i?-c:c,o.originalProgress=i?-p:p}},updateProgress:function(e){const t=this;if(void 0===e){const s=t.rtlTranslate?-1:1;e=t&&t.translate&&t.translate*s||0}const s=t.params,a=t.maxTranslate()-t.minTranslate();let{progress:i,isBeginning:r,isEnd:n,progressLoop:l}=t;const o=r,d=n;if(0===a)i=0,r=!0,n=!0;else{i=(e-t.minTranslate())/a;const s=Math.abs(e-t.minTranslate())<1,l=Math.abs(e-t.maxTranslate())<1;r=s||i<=0,n=l||i>=1,s&&(i=0),l&&(i=1)}if(s.loop){const s=t.getSlideIndexByData(0),a=t.getSlideIndexByData(t.slides.length-1),i=t.slidesGrid[s],r=t.slidesGrid[a],n=t.slidesGrid[t.slidesGrid.length-1],o=Math.abs(e);l=o>=i?(o-i)/n:(o+n-r)/n,l>1&&(l-=1)}Object.assign(t,{progress:i,progressLoop:l,isBeginning:r,isEnd:n}),(s.watchSlidesProgress||s.centeredSlides&&s.autoHeight)&&t.updateSlidesProgress(e),r&&!o&&t.emit("reachBeginning toEdge"),n&&!d&&t.emit("reachEnd toEdge"),(o&&!r||d&&!n)&&t.emit("fromEdge"),t.emit("progress",i)},updateSlidesClasses:function(){const e=this,{slides:t,params:s,slidesEl:a,activeIndex:i}=e,r=e.virtual&&s.virtual.enabled,n=e=>f(a,`.${s.slideClass}${e}, swiper-slide${e}`)[0];let l;if(t.forEach((e=>{e.classList.remove(s.slideActiveClass,s.slideNextClass,s.slidePrevClass)})),r)if(s.loop){let t=i-e.virtual.slidesBefore;t<0&&(t=e.virtual.slides.length+t),t>=e.virtual.slides.length&&(t-=e.virtual.slides.length),l=n(`[data-swiper-slide-index="${t}"]`)}else l=n(`[data-swiper-slide-index="${i}"]`);else l=t[i];if(l){l.classList.add(s.slideActiveClass);let e=function(e,t){const s=[];for(;e.nextElementSibling;){const a=e.nextElementSibling;t?a.matches(t)&&s.push(a):s.push(a),e=a}return s}(l,`.${s.slideClass}, swiper-slide`)[0];s.loop&&!e&&(e=t[0]),e&&e.classList.add(s.slideNextClass);let a=function(e,t){const s=[];for(;e.previousElementSibling;){const a=e.previousElementSibling;t?a.matches(t)&&s.push(a):s.push(a),e=a}return s}(l,`.${s.slideClass}, swiper-slide`)[0];s.loop&&0===!a&&(a=t[t.length-1]),a&&a.classList.add(s.slidePrevClass)}e.emitSlidesClasses()},updateActiveIndex:function(e){const t=this,s=t.rtlTranslate?t.translate:-t.translate,{snapGrid:a,params:i,activeIndex:r,realIndex:n,snapIndex:l}=t;let o,d=e;const c=e=>{let s=e-t.virtual.slidesBefore;return s<0&&(s=t.virtual.slides.length+s),s>=t.virtual.slides.length&&(s-=t.virtual.slides.length),s};if(void 0===d&&(d=function(e){const{slidesGrid:t,params:s}=e,a=e.rtlTranslate?e.translate:-e.translate;let i;for(let e=0;e=t[e]&&a=t[e]&&a=t[e]&&(i=e);return s.normalizeSlideIndex&&(i<0||void 0===i)&&(i=0),i}(t)),a.indexOf(s)>=0)o=a.indexOf(s);else{const e=Math.min(i.slidesPerGroupSkip,d);o=e+Math.floor((d-e)/i.slidesPerGroup)}if(o>=a.length&&(o=a.length-1),d===r)return o!==l&&(t.snapIndex=o,t.emit("snapIndexChange")),void(t.params.loop&&t.virtual&&t.params.virtual.enabled&&(t.realIndex=c(d)));let p;p=t.virtual&&i.virtual.enabled&&i.loop?c(d):t.slides[d]?parseInt(t.slides[d].getAttribute("data-swiper-slide-index")||d,10):d,Object.assign(t,{previousSnapIndex:l,snapIndex:o,previousRealIndex:n,realIndex:p,previousIndex:r,activeIndex:d}),t.initialized&&I(t),t.emit("activeIndexChange"),t.emit("snapIndexChange"),n!==p&&t.emit("realIndexChange"),(t.initialized||t.params.runCallbacksOnInit)&&t.emit("slideChange")},updateClickedSlide:function(e){const t=this,s=t.params,a=e.closest(`.${s.slideClass}, swiper-slide`);let i,r=!1;if(a)for(let e=0;eo?o:a&&en?"next":r=o.length&&(v=o.length-1);const w=-o[v];if(l.normalizeSlideIndex)for(let e=0;e=s&&t=s&&t=s&&(n=e)}if(r.initialized&&n!==p){if(!r.allowSlideNext&&(u?w>r.translate&&w>r.minTranslate():wr.translate&&w>r.maxTranslate()&&(p||0)!==n)return!1}let b;if(n!==(c||0)&&s&&r.emit("beforeSlideChangeStart"),r.updateProgress(w),b=n>p?"next":n0?(r._cssModeVirtualInitialSet=!0,requestAnimationFrame((()=>{h[e?"scrollLeft":"scrollTop"]=s}))):h[e?"scrollLeft":"scrollTop"]=s,t&&requestAnimationFrame((()=>{r.wrapperEl.style.scrollSnapType="",r._immediateVirtual=!1}))}else{if(!r.support.smoothScroll)return m({swiper:r,targetPosition:s,side:e?"left":"top"}),!0;h.scrollTo({[e?"left":"top"]:s,behavior:"smooth"})}return!0}return r.setTransition(t),r.setTranslate(w),r.updateActiveIndex(n),r.updateSlidesClasses(),r.emit("beforeTransitionStart",t,a),r.transitionStart(s,b),0===t?r.transitionEnd(s,b):r.animating||(r.animating=!0,r.onSlideToWrapperTransitionEnd||(r.onSlideToWrapperTransitionEnd=function(e){r&&!r.destroyed&&e.target===this&&(r.wrapperEl.removeEventListener("transitionend",r.onSlideToWrapperTransitionEnd),r.onSlideToWrapperTransitionEnd=null,delete r.onSlideToWrapperTransitionEnd,r.transitionEnd(s,b))}),r.wrapperEl.addEventListener("transitionend",r.onSlideToWrapperTransitionEnd)),!0},slideToLoop:function(e,t,s,a){if(void 0===e&&(e=0),void 0===t&&(t=this.params.speed),void 0===s&&(s=!0),"string"==typeof e){e=parseInt(e,10)}const i=this;let r=e;return i.params.loop&&(i.virtual&&i.params.virtual.enabled?r+=i.virtual.slidesBefore:r=i.getSlideIndexByData(r)),i.slideTo(r,t,s,a)},slideNext:function(e,t,s){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);const a=this,{enabled:i,params:r,animating:n}=a;if(!i)return a;let l=r.slidesPerGroup;"auto"===r.slidesPerView&&1===r.slidesPerGroup&&r.slidesPerGroupAuto&&(l=Math.max(a.slidesPerViewDynamic("current",!0),1));const o=a.activeIndexp(e)));let h=r[m.indexOf(u)-1];if(void 0===h&&i.cssMode){let e;r.forEach(((t,s)=>{u>=t&&(e=s)})),void 0!==e&&(h=r[e>0?e-1:e])}let f=0;if(void 0!==h&&(f=n.indexOf(h),f<0&&(f=a.activeIndex-1),"auto"===i.slidesPerView&&1===i.slidesPerGroup&&i.slidesPerGroupAuto&&(f=f-a.slidesPerViewDynamic("previous",!0)+1,f=Math.max(f,0))),i.rewind&&a.isBeginning){const i=a.params.virtual&&a.params.virtual.enabled&&a.virtual?a.virtual.slides.length-1:a.slides.length-1;return a.slideTo(i,e,t,s)}return a.slideTo(f,e,t,s)},slideReset:function(e,t,s){return void 0===e&&(e=this.params.speed),void 0===t&&(t=!0),this.slideTo(this.activeIndex,e,t,s)},slideToClosest:function(e,t,s,a){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0),void 0===a&&(a=.5);const i=this;let r=i.activeIndex;const n=Math.min(i.params.slidesPerGroupSkip,r),l=n+Math.floor((r-n)/i.params.slidesPerGroup),o=i.rtlTranslate?i.translate:-i.translate;if(o>=i.snapGrid[l]){const e=i.snapGrid[l];o-e>(i.snapGrid[l+1]-e)*a&&(r+=i.params.slidesPerGroup)}else{const e=i.snapGrid[l-1];o-e<=(i.snapGrid[l]-e)*a&&(r-=i.params.slidesPerGroup)}return r=Math.max(r,0),r=Math.min(r,i.slidesGrid.length-1),i.slideTo(r,e,t,s)},slideToClickedSlide:function(){const e=this,{params:t,slidesEl:s}=e,a="auto"===t.slidesPerView?e.slidesPerViewDynamic():t.slidesPerView;let i,r=e.clickedIndex;const l=e.isElement?"swiper-slide":`.${t.slideClass}`;if(t.loop){if(e.animating)return;i=parseInt(e.clickedSlide.getAttribute("data-swiper-slide-index"),10),t.centeredSlides?re.slides.length-e.loopedSlides+a/2?(e.loopFix(),r=e.getSlideIndex(f(s,`${l}[data-swiper-slide-index="${i}"]`)[0]),n((()=>{e.slideTo(r)}))):e.slideTo(r):r>e.slides.length-a?(e.loopFix(),r=e.getSlideIndex(f(s,`${l}[data-swiper-slide-index="${i}"]`)[0]),n((()=>{e.slideTo(r)}))):e.slideTo(r)}else e.slideTo(r)}};var H={loopCreate:function(e){const t=this,{params:s,slidesEl:a}=t;if(!s.loop||t.virtual&&t.params.virtual.enabled)return;f(a,`.${s.slideClass}, swiper-slide`).forEach(((e,t)=>{e.setAttribute("data-swiper-slide-index",t)})),t.loopFix({slideRealIndex:e,direction:s.centeredSlides?void 0:"next"})},loopFix:function(e){let{slideRealIndex:t,slideTo:s=!0,direction:a,setTranslate:i,activeSlideIndex:r,byController:n,byMousewheel:l}=void 0===e?{}:e;const o=this;if(!o.params.loop)return;o.emit("beforeLoopFix");const{slides:d,allowSlidePrev:c,allowSlideNext:p,slidesEl:u,params:m}=o;if(o.allowSlidePrev=!0,o.allowSlideNext=!0,o.virtual&&m.virtual.enabled)return s&&(m.centeredSlides||0!==o.snapIndex?m.centeredSlides&&o.snapIndexe.classList.contains(m.slideActiveClass)))[0]):w=r;const b="next"===a||!a,y="prev"===a||!a;let E=0,x=0;if(ro.slides.length-2*f){x=Math.max(r-(o.slides.length-2*f),m.slidesPerGroup);for(let e=0;e{o.slides[e].swiperLoopMoveDOM=!0,u.prepend(o.slides[e]),o.slides[e].swiperLoopMoveDOM=!1})),b&&v.forEach((e=>{o.slides[e].swiperLoopMoveDOM=!0,u.append(o.slides[e]),o.slides[e].swiperLoopMoveDOM=!1})),o.recalcSlides(),"auto"===m.slidesPerView&&o.updateSlides(),m.watchSlidesProgress&&o.updateSlidesOffset(),s)if(g.length>0&&y)if(void 0===t){const e=o.slidesGrid[w],t=o.slidesGrid[w+E]-e;l?o.setTranslate(o.translate-t):(o.slideTo(w+E,0,!1,!0),i&&(o.touches[o.isHorizontal()?"startX":"startY"]+=t))}else i&&o.slideToLoop(t,0,!1,!0);else if(v.length>0&&b)if(void 0===t){const e=o.slidesGrid[w],t=o.slidesGrid[w-x]-e;l?o.setTranslate(o.translate-t):(o.slideTo(w-x,0,!1,!0),i&&(o.touches[o.isHorizontal()?"startX":"startY"]+=t))}else o.slideToLoop(t,0,!1,!0);if(o.allowSlidePrev=c,o.allowSlideNext=p,o.controller&&o.controller.control&&!n){const e={slideRealIndex:t,slideTo:!1,direction:a,setTranslate:i,activeSlideIndex:r,byController:!0};Array.isArray(o.controller.control)?o.controller.control.forEach((t=>{!t.destroyed&&t.params.loop&&t.loopFix(e)})):o.controller.control instanceof o.constructor&&o.controller.control.params.loop&&o.controller.control.loopFix(e)}o.emit("loopFix")},loopDestroy:function(){const e=this,{params:t,slidesEl:s}=e;if(!t.loop||e.virtual&&e.params.virtual.enabled)return;e.recalcSlides();const a=[];e.slides.forEach((e=>{const t=void 0===e.swiperSlideIndex?1*e.getAttribute("data-swiper-slide-index"):e.swiperSlideIndex;a[t]=e})),e.slides.forEach((e=>{e.removeAttribute("data-swiper-slide-index")})),a.forEach((e=>{s.append(e)})),e.recalcSlides(),e.slideTo(e.realIndex,0)}};function X(e){const t=this,s=a(),i=r(),n=t.touchEventsData;n.evCache.push(e);const{params:o,touches:d,enabled:c}=t;if(!c)return;if(!o.simulateTouch&&"mouse"===e.pointerType)return;if(t.animating&&o.preventInteractionOnTransition)return;!t.animating&&o.cssMode&&o.loop&&t.loopFix();let p=e;p.originalEvent&&(p=p.originalEvent);let u=p.target;if("wrapper"===o.touchEventsTarget&&!t.wrapperEl.contains(u))return;if("which"in p&&3===p.which)return;if("button"in p&&p.button>0)return;if(n.isTouched&&n.isMoved)return;const m=!!o.noSwipingClass&&""!==o.noSwipingClass,h=e.composedPath?e.composedPath():e.path;m&&p.target&&p.target.shadowRoot&&h&&(u=h[0]);const f=o.noSwipingSelector?o.noSwipingSelector:`.${o.noSwipingClass}`,g=!(!p.target||!p.target.shadowRoot);if(o.noSwiping&&(g?function(e,t){return void 0===t&&(t=this),function t(s){if(!s||s===a()||s===r())return null;s.assignedSlot&&(s=s.assignedSlot);const i=s.closest(e);return i||s.getRootNode?i||t(s.getRootNode().host):null}(t)}(f,u):u.closest(f)))return void(t.allowClick=!0);if(o.swipeHandler&&!u.closest(o.swipeHandler))return;d.currentX=p.pageX,d.currentY=p.pageY;const v=d.currentX,w=d.currentY,b=o.edgeSwipeDetection||o.iOSEdgeSwipeDetection,y=o.edgeSwipeThreshold||o.iOSEdgeSwipeThreshold;if(b&&(v<=y||v>=i.innerWidth-y)){if("prevent"!==b)return;e.preventDefault()}Object.assign(n,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),d.startX=v,d.startY=w,n.touchStartTime=l(),t.allowClick=!0,t.updateSize(),t.swipeDirection=void 0,o.threshold>0&&(n.allowThresholdMove=!1);let E=!0;u.matches(n.focusableElements)&&(E=!1,"SELECT"===u.nodeName&&(n.isTouched=!1)),s.activeElement&&s.activeElement.matches(n.focusableElements)&&s.activeElement!==u&&s.activeElement.blur();const x=E&&t.allowTouchMove&&o.touchStartPreventDefault;!o.touchStartForcePreventDefault&&!x||u.isContentEditable||p.preventDefault(),o.freeMode&&o.freeMode.enabled&&t.freeMode&&t.animating&&!o.cssMode&&t.freeMode.onTouchStart(),t.emit("touchStart",p)}function Y(e){const t=a(),s=this,i=s.touchEventsData,{params:r,touches:n,rtlTranslate:o,enabled:d}=s;if(!d)return;if(!r.simulateTouch&&"mouse"===e.pointerType)return;let c=e;if(c.originalEvent&&(c=c.originalEvent),!i.isTouched)return void(i.startMoving&&i.isScrolling&&s.emit("touchMoveOpposite",c));const p=i.evCache.findIndex((e=>e.pointerId===c.pointerId));p>=0&&(i.evCache[p]=c);const u=i.evCache.length>1?i.evCache[0]:c,m=u.pageX,h=u.pageY;if(c.preventedByNestedSwiper)return n.startX=m,void(n.startY=h);if(!s.allowTouchMove)return c.target.matches(i.focusableElements)||(s.allowClick=!1),void(i.isTouched&&(Object.assign(n,{startX:m,startY:h,prevX:s.touches.currentX,prevY:s.touches.currentY,currentX:m,currentY:h}),i.touchStartTime=l()));if(r.touchReleaseOnEdges&&!r.loop)if(s.isVertical()){if(hn.startY&&s.translate>=s.minTranslate())return i.isTouched=!1,void(i.isMoved=!1)}else if(mn.startX&&s.translate>=s.minTranslate())return;if(t.activeElement&&c.target===t.activeElement&&c.target.matches(i.focusableElements))return i.isMoved=!0,void(s.allowClick=!1);if(i.allowTouchCallbacks&&s.emit("touchMove",c),c.targetTouches&&c.targetTouches.length>1)return;n.currentX=m,n.currentY=h;const f=n.currentX-n.startX,g=n.currentY-n.startY;if(s.params.threshold&&Math.sqrt(f**2+g**2)=25&&(e=180*Math.atan2(Math.abs(g),Math.abs(f))/Math.PI,i.isScrolling=s.isHorizontal()?e>r.touchAngle:90-e>r.touchAngle)}if(i.isScrolling&&s.emit("touchMoveOpposite",c),void 0===i.startMoving&&(n.currentX===n.startX&&n.currentY===n.startY||(i.startMoving=!0)),i.isScrolling||s.zoom&&s.params.zoom&&s.params.zoom.enabled&&i.evCache.length>1)return void(i.isTouched=!1);if(!i.startMoving)return;s.allowClick=!1,!r.cssMode&&c.cancelable&&c.preventDefault(),r.touchMoveStopPropagation&&!r.nested&&c.stopPropagation();let v=s.isHorizontal()?f:g,w=s.isHorizontal()?n.currentX-n.previousX:n.currentY-n.previousY;r.oneWayMovement&&(v=Math.abs(v)*(o?1:-1),w=Math.abs(w)*(o?1:-1)),n.diff=v,v*=r.touchRatio,o&&(v=-v,w=-w);const b=s.touchesDirection;s.swipeDirection=v>0?"prev":"next",s.touchesDirection=w>0?"prev":"next";const y=s.params.loop&&!r.cssMode;if(!i.isMoved){if(y&&s.loopFix({direction:s.swipeDirection}),i.startTranslate=s.getTranslate(),s.setTransition(0),s.animating){const e=new window.CustomEvent("transitionend",{bubbles:!0,cancelable:!0});s.wrapperEl.dispatchEvent(e)}i.allowMomentumBounce=!1,!r.grabCursor||!0!==s.allowSlideNext&&!0!==s.allowSlidePrev||s.setGrabCursor(!0),s.emit("sliderFirstMove",c)}let E;i.isMoved&&b!==s.touchesDirection&&y&&Math.abs(v)>=1&&(s.loopFix({direction:s.swipeDirection,setTranslate:!0}),E=!0),s.emit("sliderMove",c),i.isMoved=!0,i.currentTranslate=v+i.startTranslate;let x=!0,S=r.resistanceRatio;if(r.touchReleaseOnEdges&&(S=0),v>0?(y&&!E&&i.currentTranslate>(r.centeredSlides?s.minTranslate()-s.size/2:s.minTranslate())&&s.loopFix({direction:"prev",setTranslate:!0,activeSlideIndex:0}),i.currentTranslate>s.minTranslate()&&(x=!1,r.resistance&&(i.currentTranslate=s.minTranslate()-1+(-s.minTranslate()+i.startTranslate+v)**S))):v<0&&(y&&!E&&i.currentTranslate<(r.centeredSlides?s.maxTranslate()+s.size/2:s.maxTranslate())&&s.loopFix({direction:"next",setTranslate:!0,activeSlideIndex:s.slides.length-("auto"===r.slidesPerView?s.slidesPerViewDynamic():Math.ceil(parseFloat(r.slidesPerView,10)))}),i.currentTranslatei.startTranslate&&(i.currentTranslate=i.startTranslate),s.allowSlidePrev||s.allowSlideNext||(i.currentTranslate=i.startTranslate),r.threshold>0){if(!(Math.abs(v)>r.threshold||i.allowThresholdMove))return void(i.currentTranslate=i.startTranslate);if(!i.allowThresholdMove)return i.allowThresholdMove=!0,n.startX=n.currentX,n.startY=n.currentY,i.currentTranslate=i.startTranslate,void(n.diff=s.isHorizontal()?n.currentX-n.startX:n.currentY-n.startY)}r.followFinger&&!r.cssMode&&((r.freeMode&&r.freeMode.enabled&&s.freeMode||r.watchSlidesProgress)&&(s.updateActiveIndex(),s.updateSlidesClasses()),r.freeMode&&r.freeMode.enabled&&s.freeMode&&s.freeMode.onTouchMove(),s.updateProgress(i.currentTranslate),s.setTranslate(i.currentTranslate))}function B(e){const t=this,s=t.touchEventsData,a=s.evCache.findIndex((t=>t.pointerId===e.pointerId));if(a>=0&&s.evCache.splice(a,1),["pointercancel","pointerout","pointerleave"].includes(e.type)){if(!("pointercancel"===e.type&&(t.browser.isSafari||t.browser.isWebView)))return}const{params:i,touches:r,rtlTranslate:o,slidesGrid:d,enabled:c}=t;if(!c)return;if(!i.simulateTouch&&"mouse"===e.pointerType)return;let p=e;if(p.originalEvent&&(p=p.originalEvent),s.allowTouchCallbacks&&t.emit("touchEnd",p),s.allowTouchCallbacks=!1,!s.isTouched)return s.isMoved&&i.grabCursor&&t.setGrabCursor(!1),s.isMoved=!1,void(s.startMoving=!1);i.grabCursor&&s.isMoved&&s.isTouched&&(!0===t.allowSlideNext||!0===t.allowSlidePrev)&&t.setGrabCursor(!1);const u=l(),m=u-s.touchStartTime;if(t.allowClick){const e=p.path||p.composedPath&&p.composedPath();t.updateClickedSlide(e&&e[0]||p.target),t.emit("tap click",p),m<300&&u-s.lastClickTime<300&&t.emit("doubleTap doubleClick",p)}if(s.lastClickTime=l(),n((()=>{t.destroyed||(t.allowClick=!0)})),!s.isTouched||!s.isMoved||!t.swipeDirection||0===r.diff||s.currentTranslate===s.startTranslate)return s.isTouched=!1,s.isMoved=!1,void(s.startMoving=!1);let h;if(s.isTouched=!1,s.isMoved=!1,s.startMoving=!1,h=i.followFinger?o?t.translate:-t.translate:-s.currentTranslate,i.cssMode)return;if(i.freeMode&&i.freeMode.enabled)return void t.freeMode.onTouchEnd({currentPos:h});let f=0,g=t.slidesSizesGrid[0];for(let e=0;e=d[e]&&h=d[e]&&(f=e,g=d[d.length-1]-d[d.length-2])}let v=null,w=null;i.rewind&&(t.isBeginning?w=i.virtual&&i.virtual.enabled&&t.virtual?t.virtual.slides.length-1:t.slides.length-1:t.isEnd&&(v=0));const b=(h-d[f])/g,y=fi.longSwipesMs){if(!i.longSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&(b>=i.longSwipesRatio?t.slideTo(i.rewind&&t.isEnd?v:f+y):t.slideTo(f)),"prev"===t.swipeDirection&&(b>1-i.longSwipesRatio?t.slideTo(f+y):null!==w&&b<0&&Math.abs(b)>i.longSwipesRatio?t.slideTo(w):t.slideTo(f))}else{if(!i.shortSwipes)return void t.slideTo(t.activeIndex);t.navigation&&(p.target===t.navigation.nextEl||p.target===t.navigation.prevEl)?p.target===t.navigation.nextEl?t.slideTo(f+y):t.slideTo(f):("next"===t.swipeDirection&&t.slideTo(null!==v?v:f+y),"prev"===t.swipeDirection&&t.slideTo(null!==w?w:f))}}function N(){const e=this,{params:t,el:s}=e;if(s&&0===s.offsetWidth)return;t.breakpoints&&e.setBreakpoint();const{allowSlideNext:a,allowSlidePrev:i,snapGrid:r}=e,n=e.virtual&&e.params.virtual.enabled;e.allowSlideNext=!0,e.allowSlidePrev=!0,e.updateSize(),e.updateSlides(),e.updateSlidesClasses();const l=n&&t.loop;!("auto"===t.slidesPerView||t.slidesPerView>1)||!e.isEnd||e.isBeginning||e.params.centeredSlides||l?e.params.loop&&!n?e.slideToLoop(e.realIndex,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0):e.slideTo(e.slides.length-1,0,!1,!0),e.autoplay&&e.autoplay.running&&e.autoplay.paused&&(clearTimeout(e.autoplay.resizeTimeout),e.autoplay.resizeTimeout=setTimeout((()=>{e.autoplay&&e.autoplay.running&&e.autoplay.paused&&e.autoplay.resume()}),500)),e.allowSlidePrev=i,e.allowSlideNext=a,e.params.watchOverflow&&r!==e.snapGrid&&e.checkOverflow()}function q(e){const t=this;t.enabled&&(t.allowClick||(t.params.preventClicks&&e.preventDefault(),t.params.preventClicksPropagation&&t.animating&&(e.stopPropagation(),e.stopImmediatePropagation())))}function R(){const e=this,{wrapperEl:t,rtlTranslate:s,enabled:a}=e;if(!a)return;let i;e.previousTranslate=e.translate,e.isHorizontal()?e.translate=-t.scrollLeft:e.translate=-t.scrollTop,0===e.translate&&(e.translate=0),e.updateActiveIndex(),e.updateSlidesClasses();const r=e.maxTranslate()-e.minTranslate();i=0===r?0:(e.translate-e.minTranslate())/r,i!==e.progress&&e.updateProgress(s?-e.translate:e.translate),e.emit("setTranslate",e.translate,!1)}function F(e){const t=this;A(t,e.target),t.params.cssMode||"auto"!==t.params.slidesPerView&&!t.params.autoHeight||t.update()}let _=!1;function V(){}const j=(e,t)=>{const s=a(),{params:i,el:r,wrapperEl:n,device:l}=e,o=!!i.nested,d="on"===t?"addEventListener":"removeEventListener",c=t;r[d]("pointerdown",e.onTouchStart,{passive:!1}),s[d]("pointermove",e.onTouchMove,{passive:!1,capture:o}),s[d]("pointerup",e.onTouchEnd,{passive:!0}),s[d]("pointercancel",e.onTouchEnd,{passive:!0}),s[d]("pointerout",e.onTouchEnd,{passive:!0}),s[d]("pointerleave",e.onTouchEnd,{passive:!0}),(i.preventClicks||i.preventClicksPropagation)&&r[d]("click",e.onClick,!0),i.cssMode&&n[d]("scroll",e.onScroll),i.updateOnWindowResize?e[c](l.ios||l.android?"resize orientationchange observerUpdate":"resize observerUpdate",N,!0):e[c]("observerUpdate",N,!0),r[d]("load",e.onLoad,{capture:!0})};const W=(e,t)=>e.grid&&t.grid&&t.grid.rows>1;var U={init:!0,direction:"horizontal",oneWayMovement:!1,touchEventsTarget:"wrapper",initialSlide:0,speed:300,cssMode:!1,updateOnWindowResize:!0,resizeObserver:!0,nested:!1,createElements:!1,enabled:!0,focusableElements:"input, select, option, textarea, button, video, label",width:null,height:null,preventInteractionOnTransition:!1,userAgent:null,url:null,edgeSwipeDetection:!1,edgeSwipeThreshold:20,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",breakpoints:void 0,breakpointsBase:"window",spaceBetween:0,slidesPerView:1,slidesPerGroup:1,slidesPerGroupSkip:0,slidesPerGroupAuto:!1,centeredSlides:!1,centeredSlidesBounds:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,normalizeSlideIndex:!0,centerInsufficientSlides:!1,watchOverflow:!0,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,allowTouchMove:!0,threshold:5,touchMoveStopPropagation:!1,touchStartPreventDefault:!0,touchStartForcePreventDefault:!1,touchReleaseOnEdges:!1,uniqueNavElements:!0,resistance:!0,resistanceRatio:.85,watchSlidesProgress:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,loop:!1,loopedSlides:null,loopPreventsSliding:!0,rewind:!1,allowSlidePrev:!0,allowSlideNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",noSwipingSelector:null,passiveListeners:!0,maxBackfaceHiddenSlides:10,containerModifierClass:"swiper-",slideClass:"swiper-slide",slideActiveClass:"swiper-slide-active",slideVisibleClass:"swiper-slide-visible",slideNextClass:"swiper-slide-next",slidePrevClass:"swiper-slide-prev",wrapperClass:"swiper-wrapper",lazyPreloaderClass:"swiper-lazy-preloader",lazyPreloadPrevNext:0,runCallbacksOnInit:!0,_emitClasses:!1};function K(e,t){return function(s){void 0===s&&(s={});const a=Object.keys(s)[0],i=s[a];"object"==typeof i&&null!==i?(["navigation","pagination","scrollbar"].indexOf(a)>=0&&!0===e[a]&&(e[a]={auto:!0}),a in e&&"enabled"in i?(!0===e[a]&&(e[a]={enabled:!0}),"object"!=typeof e[a]||"enabled"in e[a]||(e[a].enabled=!0),e[a]||(e[a]={enabled:!1}),p(t,s)):p(t,s)):p(t,s)}}const Z={eventsEmitter:z,update:k,translate:O,transition:{setTransition:function(e,t){const s=this;s.params.cssMode||(s.wrapperEl.style.transitionDuration=`${e}ms`),s.emit("setTransition",e,t)},transitionStart:function(e,t){void 0===e&&(e=!0);const s=this,{params:a}=s;a.cssMode||(a.autoHeight&&s.updateAutoHeight(),D({swiper:s,runCallbacks:e,direction:t,step:"Start"}))},transitionEnd:function(e,t){void 0===e&&(e=!0);const s=this,{params:a}=s;s.animating=!1,a.cssMode||(s.setTransition(0),D({swiper:s,runCallbacks:e,direction:t,step:"End"}))}},slide:G,loop:H,grabCursor:{setGrabCursor:function(e){const t=this;if(!t.params.simulateTouch||t.params.watchOverflow&&t.isLocked||t.params.cssMode)return;const s="container"===t.params.touchEventsTarget?t.el:t.wrapperEl;t.isElement&&(t.__preventObserver__=!0),s.style.cursor="move",s.style.cursor=e?"grabbing":"grab",t.isElement&&requestAnimationFrame((()=>{t.__preventObserver__=!1}))},unsetGrabCursor:function(){const e=this;e.params.watchOverflow&&e.isLocked||e.params.cssMode||(e.isElement&&(e.__preventObserver__=!0),e["container"===e.params.touchEventsTarget?"el":"wrapperEl"].style.cursor="",e.isElement&&requestAnimationFrame((()=>{e.__preventObserver__=!1})))}},events:{attachEvents:function(){const e=this,t=a(),{params:s}=e;e.onTouchStart=X.bind(e),e.onTouchMove=Y.bind(e),e.onTouchEnd=B.bind(e),s.cssMode&&(e.onScroll=R.bind(e)),e.onClick=q.bind(e),e.onLoad=F.bind(e),_||(t.addEventListener("touchstart",V),_=!0),j(e,"on")},detachEvents:function(){j(this,"off")}},breakpoints:{setBreakpoint:function(){const e=this,{realIndex:t,initialized:s,params:a,el:i}=e,r=a.breakpoints;if(!r||r&&0===Object.keys(r).length)return;const n=e.getBreakpoint(r,e.params.breakpointsBase,e.el);if(!n||e.currentBreakpoint===n)return;const l=(n in r?r[n]:void 0)||e.originalParams,o=W(e,a),d=W(e,l),c=a.enabled;o&&!d?(i.classList.remove(`${a.containerModifierClass}grid`,`${a.containerModifierClass}grid-column`),e.emitContainerClasses()):!o&&d&&(i.classList.add(`${a.containerModifierClass}grid`),(l.grid.fill&&"column"===l.grid.fill||!l.grid.fill&&"column"===a.grid.fill)&&i.classList.add(`${a.containerModifierClass}grid-column`),e.emitContainerClasses()),["navigation","pagination","scrollbar"].forEach((t=>{if(void 0===l[t])return;const s=a[t]&&a[t].enabled,i=l[t]&&l[t].enabled;s&&!i&&e[t].disable(),!s&&i&&e[t].enable()}));const u=l.direction&&l.direction!==a.direction,m=a.loop&&(l.slidesPerView!==a.slidesPerView||u);u&&s&&e.changeDirection(),p(e.params,l);const h=e.params.enabled;Object.assign(e,{allowTouchMove:e.params.allowTouchMove,allowSlideNext:e.params.allowSlideNext,allowSlidePrev:e.params.allowSlidePrev}),c&&!h?e.disable():!c&&h&&e.enable(),e.currentBreakpoint=n,e.emit("_beforeBreakpoint",l),m&&s&&(e.loopDestroy(),e.loopCreate(t),e.updateSlides()),e.emit("breakpoint",l)},getBreakpoint:function(e,t,s){if(void 0===t&&(t="window"),!e||"container"===t&&!s)return;let a=!1;const i=r(),n="window"===t?i.innerHeight:s.clientHeight,l=Object.keys(e).map((e=>{if("string"==typeof e&&0===e.indexOf("@")){const t=parseFloat(e.substr(1));return{value:n*t,point:e}}return{value:e,point:e}}));l.sort(((e,t)=>parseInt(e.value,10)-parseInt(t.value,10)));for(let e=0;es}else e.isLocked=1===e.snapGrid.length;!0===s.allowSlideNext&&(e.allowSlideNext=!e.isLocked),!0===s.allowSlidePrev&&(e.allowSlidePrev=!e.isLocked),t&&t!==e.isLocked&&(e.isEnd=!1),t!==e.isLocked&&e.emit(e.isLocked?"lock":"unlock")}},classes:{addClasses:function(){const e=this,{classNames:t,params:s,rtl:a,el:i,device:r}=e,n=function(e,t){const s=[];return e.forEach((e=>{"object"==typeof e?Object.keys(e).forEach((a=>{e[a]&&s.push(t+a)})):"string"==typeof e&&s.push(t+e)})),s}(["initialized",s.direction,{"free-mode":e.params.freeMode&&s.freeMode.enabled},{autoheight:s.autoHeight},{rtl:a},{grid:s.grid&&s.grid.rows>1},{"grid-column":s.grid&&s.grid.rows>1&&"column"===s.grid.fill},{android:r.android},{ios:r.ios},{"css-mode":s.cssMode},{centered:s.cssMode&&s.centeredSlides},{"watch-progress":s.watchSlidesProgress}],s.containerModifierClass);t.push(...n),i.classList.add(...t),e.emitContainerClasses()},removeClasses:function(){const{el:e,classNames:t}=this;e.classList.remove(...t),this.emitContainerClasses()}}},Q={};class J{constructor(){let e,t;for(var s=arguments.length,i=new Array(s),r=0;r1){const e=[];return n.querySelectorAll(t.el).forEach((s=>{const a=p({},t,{el:s});e.push(new J(a))})),e}const l=this;l.__swiper__=!0,l.support=C(),l.device=P({userAgent:t.userAgent}),l.browser=L(),l.eventsListeners={},l.eventsAnyListeners=[],l.modules=[...l.__modules__],t.modules&&Array.isArray(t.modules)&&l.modules.push(...t.modules);const o={};l.modules.forEach((e=>{e({params:t,swiper:l,extendParams:K(t,o),on:l.on.bind(l),once:l.once.bind(l),off:l.off.bind(l),emit:l.emit.bind(l)})}));const d=p({},U,o);return l.params=p({},d,Q,t),l.originalParams=p({},l.params),l.passedParams=p({},t),l.params&&l.params.on&&Object.keys(l.params.on).forEach((e=>{l.on(e,l.params.on[e])})),l.params&&l.params.onAny&&l.onAny(l.params.onAny),Object.assign(l,{enabled:l.params.enabled,el:e,classNames:[],slides:[],slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal:()=>"horizontal"===l.params.direction,isVertical:()=>"vertical"===l.params.direction,activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,previousTranslate:0,progress:0,velocity:0,animating:!1,cssOverflowAdjustment(){return Math.trunc(this.translate/2**23)*2**23},allowSlideNext:l.params.allowSlideNext,allowSlidePrev:l.params.allowSlidePrev,touchEventsData:{isTouched:void 0,isMoved:void 0,allowTouchCallbacks:void 0,touchStartTime:void 0,isScrolling:void 0,currentTranslate:void 0,startTranslate:void 0,allowThresholdMove:void 0,focusableElements:l.params.focusableElements,lastClickTime:0,clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,startMoving:void 0,evCache:[]},allowClick:!0,allowTouchMove:l.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),l.emit("_swiper"),l.params.init&&l.init(),l}getSlideIndex(e){const{slidesEl:t,params:s}=this,a=b(f(t,`.${s.slideClass}, swiper-slide`)[0]);return b(e)-a}getSlideIndexByData(e){return this.getSlideIndex(this.slides.filter((t=>1*t.getAttribute("data-swiper-slide-index")===e))[0])}recalcSlides(){const{slidesEl:e,params:t}=this;this.slides=f(e,`.${t.slideClass}, swiper-slide`)}enable(){const e=this;e.enabled||(e.enabled=!0,e.params.grabCursor&&e.setGrabCursor(),e.emit("enable"))}disable(){const e=this;e.enabled&&(e.enabled=!1,e.params.grabCursor&&e.unsetGrabCursor(),e.emit("disable"))}setProgress(e,t){const s=this;e=Math.min(Math.max(e,0),1);const a=s.minTranslate(),i=(s.maxTranslate()-a)*e+a;s.translateTo(i,void 0===t?0:t),s.updateActiveIndex(),s.updateSlidesClasses()}emitContainerClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const t=e.el.className.split(" ").filter((t=>0===t.indexOf("swiper")||0===t.indexOf(e.params.containerModifierClass)));e.emit("_containerClasses",t.join(" "))}getSlideClasses(e){const t=this;return t.destroyed?"":e.className.split(" ").filter((e=>0===e.indexOf("swiper-slide")||0===e.indexOf(t.params.slideClass))).join(" ")}emitSlidesClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const t=[];e.slides.forEach((s=>{const a=e.getSlideClasses(s);t.push({slideEl:s,classNames:a}),e.emit("_slideClass",s,a)})),e.emit("_slideClasses",t)}slidesPerViewDynamic(e,t){void 0===e&&(e="current"),void 0===t&&(t=!1);const{params:s,slides:a,slidesGrid:i,slidesSizesGrid:r,size:n,activeIndex:l}=this;let o=1;if(s.centeredSlides){let e,t=a[l]?a[l].swiperSlideSize:0;for(let s=l+1;sn&&(e=!0));for(let s=l-1;s>=0;s-=1)a[s]&&!e&&(t+=a[s].swiperSlideSize,o+=1,t>n&&(e=!0))}else if("current"===e)for(let e=l+1;e=0;e-=1){i[l]-i[e]{t.complete&&A(e,t)})),e.updateSize(),e.updateSlides(),e.updateProgress(),e.updateSlidesClasses(),s.freeMode&&s.freeMode.enabled&&!s.cssMode)a(),s.autoHeight&&e.updateAutoHeight();else{if(("auto"===s.slidesPerView||s.slidesPerView>1)&&e.isEnd&&!s.centeredSlides){const t=e.virtual&&s.virtual.enabled?e.virtual.slides:e.slides;i=e.slideTo(t.length-1,0,!1,!0)}else i=e.slideTo(e.activeIndex,0,!1,!0);i||a()}s.watchOverflow&&t!==e.snapGrid&&e.checkOverflow(),e.emit("update")}changeDirection(e,t){void 0===t&&(t=!0);const s=this,a=s.params.direction;return e||(e="horizontal"===a?"vertical":"horizontal"),e===a||"horizontal"!==e&&"vertical"!==e||(s.el.classList.remove(`${s.params.containerModifierClass}${a}`),s.el.classList.add(`${s.params.containerModifierClass}${e}`),s.emitContainerClasses(),s.params.direction=e,s.slides.forEach((t=>{"vertical"===e?t.style.width="":t.style.height=""})),s.emit("changeDirection"),t&&s.update()),s}changeLanguageDirection(e){const t=this;t.rtl&&"rtl"===e||!t.rtl&&"ltr"===e||(t.rtl="rtl"===e,t.rtlTranslate="horizontal"===t.params.direction&&t.rtl,t.rtl?(t.el.classList.add(`${t.params.containerModifierClass}rtl`),t.el.dir="rtl"):(t.el.classList.remove(`${t.params.containerModifierClass}rtl`),t.el.dir="ltr"),t.update())}mount(e){const t=this;if(t.mounted)return!0;let s=e||t.params.el;if("string"==typeof s&&(s=document.querySelector(s)),!s)return!1;s.swiper=t,s.shadowEl&&(t.isElement=!0);const a=()=>`.${(t.params.wrapperClass||"").trim().split(" ").join(".")}`;let i=(()=>{if(s&&s.shadowRoot&&s.shadowRoot.querySelector){return s.shadowRoot.querySelector(a())}return f(s,a())[0]})();return!i&&t.params.createElements&&(i=g("div",t.params.wrapperClass),s.append(i),f(s,`.${t.params.slideClass}`).forEach((e=>{i.append(e)}))),Object.assign(t,{el:s,wrapperEl:i,slidesEl:t.isElement?s:i,mounted:!0,rtl:"rtl"===s.dir.toLowerCase()||"rtl"===w(s,"direction"),rtlTranslate:"horizontal"===t.params.direction&&("rtl"===s.dir.toLowerCase()||"rtl"===w(s,"direction")),wrongRTL:"-webkit-box"===w(i,"display")}),!0}init(e){const t=this;if(t.initialized)return t;return!1===t.mount(e)||(t.emit("beforeInit"),t.params.breakpoints&&t.setBreakpoint(),t.addClasses(),t.updateSize(),t.updateSlides(),t.params.watchOverflow&&t.checkOverflow(),t.params.grabCursor&&t.enabled&&t.setGrabCursor(),t.params.loop&&t.virtual&&t.params.virtual.enabled?t.slideTo(t.params.initialSlide+t.virtual.slidesBefore,0,t.params.runCallbacksOnInit,!1,!0):t.slideTo(t.params.initialSlide,0,t.params.runCallbacksOnInit,!1,!0),t.params.loop&&t.loopCreate(),t.attachEvents(),[...t.el.querySelectorAll('[loading="lazy"]')].forEach((e=>{e.complete?A(t,e):e.addEventListener("load",(e=>{A(t,e.target)}))})),I(t),t.initialized=!0,I(t),t.emit("init"),t.emit("afterInit")),t}destroy(e,t){void 0===e&&(e=!0),void 0===t&&(t=!0);const s=this,{params:a,el:i,wrapperEl:r,slides:n}=s;return void 0===s.params||s.destroyed||(s.emit("beforeDestroy"),s.initialized=!1,s.detachEvents(),a.loop&&s.loopDestroy(),t&&(s.removeClasses(),i.removeAttribute("style"),r.removeAttribute("style"),n&&n.length&&n.forEach((e=>{e.classList.remove(a.slideVisibleClass,a.slideActiveClass,a.slideNextClass,a.slidePrevClass),e.removeAttribute("style"),e.removeAttribute("data-swiper-slide-index")}))),s.emit("destroy"),Object.keys(s.eventsListeners).forEach((e=>{s.off(e)})),!1!==e&&(s.el.swiper=null,function(e){const t=e;Object.keys(t).forEach((e=>{try{t[e]=null}catch(e){}try{delete t[e]}catch(e){}}))}(s)),s.destroyed=!0),null}static extendDefaults(e){p(Q,e)}static get extendedDefaults(){return Q}static get defaults(){return U}static installModule(e){J.prototype.__modules__||(J.prototype.__modules__=[]);const t=J.prototype.__modules__;"function"==typeof e&&t.indexOf(e)<0&&t.push(e)}static use(e){return Array.isArray(e)?(e.forEach((e=>J.installModule(e))),J):(J.installModule(e),J)}}function ee(e,t,s,a){return e.params.createElements&&Object.keys(a).forEach((i=>{if(!s[i]&&!0===s.auto){let r=f(e.el,`.${a[i]}`)[0];r||(r=g("div",a[i]),r.className=a[i],e.el.append(r)),s[i]=r,t[i]=r}})),s}function te(e){return void 0===e&&(e=""),`.${e.trim().replace(/([\.:!+\/])/g,"\\$1").replace(/ /g,".")}`}function se(e){const t=this,{params:s,slidesEl:a}=t;s.loop&&t.loopDestroy();const i=e=>{if("string"==typeof e){const t=document.createElement("div");t.innerHTML=e,a.append(t.children[0]),t.innerHTML=""}else a.append(e)};if("object"==typeof e&&"length"in e)for(let t=0;t{if("string"==typeof e){const t=document.createElement("div");t.innerHTML=e,i.prepend(t.children[0]),t.innerHTML=""}else i.prepend(e)};if("object"==typeof e&&"length"in e){for(let t=0;t=l)return void s.appendSlide(t);let o=n>e?n+1:n;const d=[];for(let t=l-1;t>=e;t-=1){const e=s.slides[t];e.remove(),d.unshift(e)}if("object"==typeof t&&"length"in t){for(let e=0;ee?n+t.length:n}else r.append(t);for(let e=0;e{if(s.params.effect!==t)return;s.classNames.push(`${s.params.containerModifierClass}${t}`),l&&l()&&s.classNames.push(`${s.params.containerModifierClass}3d`);const e=n?n():{};Object.assign(s.params,e),Object.assign(s.originalParams,e)})),a("setTranslate",(()=>{s.params.effect===t&&i()})),a("setTransition",((e,a)=>{s.params.effect===t&&r(a)})),a("transitionEnd",(()=>{if(s.params.effect===t&&o){if(!d||!d().slideShadows)return;s.slides.forEach((e=>{e.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((e=>e.remove()))})),o()}})),a("virtualUpdate",(()=>{s.params.effect===t&&(s.slides.length||(c=!0),requestAnimationFrame((()=>{c&&s.slides&&s.slides.length&&(i(),c=!1)})))}))}function oe(e,t){const s=h(t);return s!==t&&(s.style.backfaceVisibility="hidden",s.style["-webkit-backface-visibility"]="hidden"),s}function de(e){let{swiper:t,duration:s,transformElements:a,allSlides:i}=e;const{activeIndex:r}=t;if(t.params.virtualTranslate&&0!==s){let e,s=!1;e=i?a:a.filter((e=>{const s=e.classList.contains("swiper-slide-transform")?(e=>{if(!e.parentElement)return t.slides.filter((t=>t.shadowEl&&t.shadowEl===e.parentNode))[0];return e.parentElement})(e):e;return t.getSlideIndex(s)===r})),e.forEach((e=>{E(e,(()=>{if(s)return;if(!t||t.destroyed)return;s=!0,t.animating=!1;const e=new window.CustomEvent("transitionend",{bubbles:!0,cancelable:!0});t.wrapperEl.dispatchEvent(e)}))}))}}function ce(e,t,s){const a="swiper-slide-shadow"+(s?`-${s}`:""),i=h(t);let r=i.querySelector(`.${a}`);return r||(r=g("div","swiper-slide-shadow"+(s?`-${s}`:"")),i.append(r)),r}Object.keys(Z).forEach((e=>{Object.keys(Z[e]).forEach((t=>{J.prototype[t]=Z[e][t]}))})),J.use([function(e){let{swiper:t,on:s,emit:a}=e;const i=r();let n=null,l=null;const o=()=>{t&&!t.destroyed&&t.initialized&&(a("beforeResize"),a("resize"))},d=()=>{t&&!t.destroyed&&t.initialized&&a("orientationchange")};s("init",(()=>{t.params.resizeObserver&&void 0!==i.ResizeObserver?t&&!t.destroyed&&t.initialized&&(n=new ResizeObserver((e=>{l=i.requestAnimationFrame((()=>{const{width:s,height:a}=t;let i=s,r=a;e.forEach((e=>{let{contentBoxSize:s,contentRect:a,target:n}=e;n&&n!==t.el||(i=a?a.width:(s[0]||s).inlineSize,r=a?a.height:(s[0]||s).blockSize)})),i===s&&r===a||o()}))})),n.observe(t.el)):(i.addEventListener("resize",o),i.addEventListener("orientationchange",d))})),s("destroy",(()=>{l&&i.cancelAnimationFrame(l),n&&n.unobserve&&t.el&&(n.unobserve(t.el),n=null),i.removeEventListener("resize",o),i.removeEventListener("orientationchange",d)}))},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const n=[],l=r(),o=function(e,s){void 0===s&&(s={});const a=new(l.MutationObserver||l.WebkitMutationObserver)((e=>{if(t.__preventObserver__)return;if(1===e.length)return void i("observerUpdate",e[0]);const s=function(){i("observerUpdate",e[0])};l.requestAnimationFrame?l.requestAnimationFrame(s):l.setTimeout(s,0)}));a.observe(e,{attributes:void 0===s.attributes||s.attributes,childList:void 0===s.childList||s.childList,characterData:void 0===s.characterData||s.characterData}),n.push(a)};s({observer:!1,observeParents:!1,observeSlideChildren:!1}),a("init",(()=>{if(t.params.observer){if(t.params.observeParents){const e=y(t.el);for(let t=0;t{n.forEach((e=>{e.disconnect()})),n.splice(0,n.length)}))}]);const pe=[function(e){let t,{swiper:s,extendParams:i,on:r,emit:n}=e;i({virtual:{enabled:!1,slides:[],cache:!0,renderSlide:null,renderExternal:null,renderExternalUpdate:!0,addSlidesBefore:0,addSlidesAfter:0}});const l=a();s.virtual={cache:{},from:void 0,to:void 0,slides:[],offset:0,slidesGrid:[]};const o=l.createElement("div");function d(e,t){const a=s.params.virtual;if(a.cache&&s.virtual.cache[t])return s.virtual.cache[t];let i;return a.renderSlide?(i=a.renderSlide.call(s,e,t),"string"==typeof i&&(o.innerHTML=i,i=o.children[0])):i=s.isElement?g("swiper-slide"):g("div",s.params.slideClass),i.setAttribute("data-swiper-slide-index",t),a.renderSlide||(i.innerHTML=e),a.cache&&(s.virtual.cache[t]=i),i}function c(e){const{slidesPerView:t,slidesPerGroup:a,centeredSlides:i,loop:r}=s.params,{addSlidesBefore:l,addSlidesAfter:o}=s.params.virtual,{from:c,to:p,slides:u,slidesGrid:m,offset:h}=s.virtual;s.params.cssMode||s.updateActiveIndex();const g=s.activeIndex||0;let v,w,b;v=s.rtlTranslate?"right":s.isHorizontal()?"left":"top",i?(w=Math.floor(t/2)+a+o,b=Math.floor(t/2)+a+l):(w=t+(a-1)+o,b=(r?t:a)+l);let y=g-b,E=g+w;r||(y=Math.max(y,0),E=Math.min(E,u.length-1));let x=(s.slidesGrid[y]||0)-(s.slidesGrid[0]||0);function S(){s.updateSlides(),s.updateProgress(),s.updateSlidesClasses(),n("virtualUpdate")}if(r&&g>=b?(y-=b,i||(x+=s.slidesGrid[0])):r&&g{e.style[v]=x-Math.abs(s.cssOverflowAdjustment())+"px"})),s.updateProgress(),void n("virtualUpdate");if(s.params.virtual.renderExternal)return s.params.virtual.renderExternal.call(s,{offset:x,from:y,to:E,slides:function(){const e=[];for(let t=y;t<=E;t+=1)e.push(u[t]);return e}()}),void(s.params.virtual.renderExternalUpdate?S():n("virtualUpdate"));const T=[],M=[],C=e=>{let t=e;return e<0?t=u.length+e:t>=u.length&&(t-=u.length),t};if(e)s.slidesEl.querySelectorAll(`.${s.params.slideClass}, swiper-slide`).forEach((e=>{e.remove()}));else for(let e=c;e<=p;e+=1)if(eE){const t=C(e);s.slidesEl.querySelectorAll(`.${s.params.slideClass}[data-swiper-slide-index="${t}"], swiper-slide[data-swiper-slide-index="${t}"]`).forEach((e=>{e.remove()}))}const P=r?-u.length:0,L=r?2*u.length:u.length;for(let t=P;t=y&&t<=E){const s=C(t);void 0===p||e?M.push(s):(t>p&&M.push(s),t{s.slidesEl.append(d(u[e],e))})),r)for(let e=T.length-1;e>=0;e-=1){const t=T[e];s.slidesEl.prepend(d(u[t],t))}else T.sort(((e,t)=>t-e)),T.forEach((e=>{s.slidesEl.prepend(d(u[e],e))}));f(s.slidesEl,".swiper-slide, swiper-slide").forEach((e=>{e.style[v]=x-Math.abs(s.cssOverflowAdjustment())+"px"})),S()}r("beforeInit",(()=>{if(!s.params.virtual.enabled)return;let e;if(void 0===s.passedParams.virtual.slides){const t=[...s.slidesEl.children].filter((e=>e.matches(`.${s.params.slideClass}, swiper-slide`)));t&&t.length&&(s.virtual.slides=[...t],e=!0,t.forEach(((e,t)=>{e.setAttribute("data-swiper-slide-index",t),s.virtual.cache[t]=e,e.remove()})))}e||(s.virtual.slides=s.params.virtual.slides),s.classNames.push(`${s.params.containerModifierClass}virtual`),s.params.watchSlidesProgress=!0,s.originalParams.watchSlidesProgress=!0,s.params.initialSlide||c()})),r("setTranslate",(()=>{s.params.virtual.enabled&&(s.params.cssMode&&!s._immediateVirtual?(clearTimeout(t),t=setTimeout((()=>{c()}),100)):c())})),r("init update resize",(()=>{s.params.virtual.enabled&&s.params.cssMode&&u(s.wrapperEl,"--swiper-virtual-size",`${s.virtualSize}px`)})),Object.assign(s.virtual,{appendSlide:function(e){if("object"==typeof e&&"length"in e)for(let t=0;t{const a=e[s],r=a.getAttribute("data-swiper-slide-index");r&&a.setAttribute("data-swiper-slide-index",parseInt(r,10)+i),t[parseInt(s,10)+i]=a})),s.virtual.cache=t}c(!0),s.slideTo(a,0)},removeSlide:function(e){if(null==e)return;let t=s.activeIndex;if(Array.isArray(e))for(let a=e.length-1;a>=0;a-=1)s.virtual.slides.splice(e[a],1),s.params.virtual.cache&&delete s.virtual.cache[e[a]],e[a]0&&0===y(t.el,`.${t.params.slideActiveClass}`).length)return;const a=t.el,i=a.clientWidth,r=a.clientHeight,n=o.innerWidth,l=o.innerHeight,d=v(a);s&&(d.left-=a.scrollLeft);const c=[[d.left,d.top],[d.left+i,d.top],[d.left,d.top+r],[d.left+i,d.top+r]];for(let t=0;t=0&&s[0]<=n&&s[1]>=0&&s[1]<=l){if(0===s[0]&&0===s[1])continue;e=!0}}if(!e)return}t.isHorizontal()?((d||c||p||u)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),((c||u)&&!s||(d||p)&&s)&&t.slideNext(),((d||p)&&!s||(c||u)&&s)&&t.slidePrev()):((d||c||m||h)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),(c||h)&&t.slideNext(),(d||m)&&t.slidePrev()),n("keyPress",i)}}function c(){t.keyboard.enabled||(l.addEventListener("keydown",d),t.keyboard.enabled=!0)}function p(){t.keyboard.enabled&&(l.removeEventListener("keydown",d),t.keyboard.enabled=!1)}t.keyboard={enabled:!1},s({keyboard:{enabled:!1,onlyInViewport:!0,pageUpDown:!0}}),i("init",(()=>{t.params.keyboard.enabled&&c()})),i("destroy",(()=>{t.keyboard.enabled&&p()})),Object.assign(t.keyboard,{enable:c,disable:p})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const o=r();let d;s({mousewheel:{enabled:!1,releaseOnEdges:!1,invert:!1,forceToAxis:!1,sensitivity:1,eventsTarget:"container",thresholdDelta:null,thresholdTime:null,noMousewheelClass:"swiper-no-mousewheel"}}),t.mousewheel={enabled:!1};let c,p=l();const u=[];function m(){t.enabled&&(t.mouseEntered=!0)}function h(){t.enabled&&(t.mouseEntered=!1)}function f(e){return!(t.params.mousewheel.thresholdDelta&&e.delta=6&&l()-p<60||(e.direction<0?t.isEnd&&!t.params.loop||t.animating||(t.slideNext(),i("scroll",e.raw)):t.isBeginning&&!t.params.loop||t.animating||(t.slidePrev(),i("scroll",e.raw)),p=(new o.Date).getTime(),!1)))}function g(e){let s=e,a=!0;if(!t.enabled)return;if(e.target.closest(`.${t.params.mousewheel.noMousewheelClass}`))return;const r=t.params.mousewheel;t.params.cssMode&&s.preventDefault();let o=t.el;"container"!==t.params.mousewheel.eventsTarget&&(o=document.querySelector(t.params.mousewheel.eventsTarget));const p=o&&o.contains(s.target);if(!t.mouseEntered&&!p&&!r.releaseOnEdges)return!0;s.originalEvent&&(s=s.originalEvent);let m=0;const h=t.rtlTranslate?-1:1,g=function(e){let t=0,s=0,a=0,i=0;return"detail"in e&&(s=e.detail),"wheelDelta"in e&&(s=-e.wheelDelta/120),"wheelDeltaY"in e&&(s=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=s,s=0),a=10*t,i=10*s,"deltaY"in e&&(i=e.deltaY),"deltaX"in e&&(a=e.deltaX),e.shiftKey&&!a&&(a=i,i=0),(a||i)&&e.deltaMode&&(1===e.deltaMode?(a*=40,i*=40):(a*=800,i*=800)),a&&!t&&(t=a<1?-1:1),i&&!s&&(s=i<1?-1:1),{spinX:t,spinY:s,pixelX:a,pixelY:i}}(s);if(r.forceToAxis)if(t.isHorizontal()){if(!(Math.abs(g.pixelX)>Math.abs(g.pixelY)))return!0;m=-g.pixelX*h}else{if(!(Math.abs(g.pixelY)>Math.abs(g.pixelX)))return!0;m=-g.pixelY}else m=Math.abs(g.pixelX)>Math.abs(g.pixelY)?-g.pixelX*h:-g.pixelY;if(0===m)return!0;r.invert&&(m=-m);let v=t.getTranslate()+m*r.sensitivity;if(v>=t.minTranslate()&&(v=t.minTranslate()),v<=t.maxTranslate()&&(v=t.maxTranslate()),a=!!t.params.loop||!(v===t.minTranslate()||v===t.maxTranslate()),a&&t.params.nested&&s.stopPropagation(),t.params.freeMode&&t.params.freeMode.enabled){const e={time:l(),delta:Math.abs(m),direction:Math.sign(m)},a=c&&e.time=t.minTranslate()&&(l=t.minTranslate()),l<=t.maxTranslate()&&(l=t.maxTranslate()),t.setTransition(0),t.setTranslate(l),t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses(),(!o&&t.isBeginning||!p&&t.isEnd)&&t.updateSlidesClasses(),t.params.loop&&t.loopFix({direction:e.direction<0?"next":"prev",byMousewheel:!0}),t.params.freeMode.sticky){clearTimeout(d),d=void 0,u.length>=15&&u.shift();const s=u.length?u[u.length-1]:void 0,a=u[0];if(u.push(e),s&&(e.delta>s.delta||e.direction!==s.direction))u.splice(0);else if(u.length>=15&&e.time-a.time<500&&a.delta-e.delta>=1&&e.delta<=6){const s=m>0?.8:.2;c=e,u.splice(0),d=n((()=>{t.slideToClosest(t.params.speed,!0,void 0,s)}),0)}d||(d=n((()=>{c=e,u.splice(0),t.slideToClosest(t.params.speed,!0,void 0,.5)}),500))}if(a||i("scroll",s),t.params.autoplay&&t.params.autoplayDisableOnInteraction&&t.autoplay.stop(),l===t.minTranslate()||l===t.maxTranslate())return!0}}else{const s={time:l(),delta:Math.abs(m),direction:Math.sign(m),raw:e};u.length>=2&&u.shift();const a=u.length?u[u.length-1]:void 0;if(u.push(s),a?(s.direction!==a.direction||s.delta>a.delta||s.time>a.time+150)&&f(s):f(s),function(e){const s=t.params.mousewheel;if(e.direction<0){if(t.isEnd&&!t.params.loop&&s.releaseOnEdges)return!0}else if(t.isBeginning&&!t.params.loop&&s.releaseOnEdges)return!0;return!1}(s))return!0}return s.preventDefault?s.preventDefault():s.returnValue=!1,!1}function v(e){let s=t.el;"container"!==t.params.mousewheel.eventsTarget&&(s=document.querySelector(t.params.mousewheel.eventsTarget)),s[e]("mouseenter",m),s[e]("mouseleave",h),s[e]("wheel",g)}function w(){return t.params.cssMode?(t.wrapperEl.removeEventListener("wheel",g),!0):!t.mousewheel.enabled&&(v("addEventListener"),t.mousewheel.enabled=!0,!0)}function b(){return t.params.cssMode?(t.wrapperEl.addEventListener(event,g),!0):!!t.mousewheel.enabled&&(v("removeEventListener"),t.mousewheel.enabled=!1,!0)}a("init",(()=>{!t.params.mousewheel.enabled&&t.params.cssMode&&b(),t.params.mousewheel.enabled&&w()})),a("destroy",(()=>{t.params.cssMode&&w(),t.mousewheel.enabled&&b()})),Object.assign(t.mousewheel,{enable:w,disable:b})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;s({navigation:{nextEl:null,prevEl:null,hideOnClick:!1,disabledClass:"swiper-button-disabled",hiddenClass:"swiper-button-hidden",lockClass:"swiper-button-lock",navigationDisabledClass:"swiper-navigation-disabled"}}),t.navigation={nextEl:null,prevEl:null};const r=e=>(Array.isArray(e)||(e=[e].filter((e=>!!e))),e);function n(e){let s;return e&&"string"==typeof e&&t.isElement&&(s=t.el.shadowRoot.querySelector(e),s)?s:(e&&("string"==typeof e&&(s=[...document.querySelectorAll(e)]),t.params.uniqueNavElements&&"string"==typeof e&&s.length>1&&1===t.el.querySelectorAll(e).length&&(s=t.el.querySelector(e))),e&&!s?e:s)}function l(e,s){const a=t.params.navigation;(e=r(e)).forEach((e=>{e&&(e.classList[s?"add":"remove"](...a.disabledClass.split(" ")),"BUTTON"===e.tagName&&(e.disabled=s),t.params.watchOverflow&&t.enabled&&e.classList[t.isLocked?"add":"remove"](a.lockClass))}))}function o(){const{nextEl:e,prevEl:s}=t.navigation;if(t.params.loop)return l(s,!1),void l(e,!1);l(s,t.isBeginning&&!t.params.rewind),l(e,t.isEnd&&!t.params.rewind)}function d(e){e.preventDefault(),(!t.isBeginning||t.params.loop||t.params.rewind)&&(t.slidePrev(),i("navigationPrev"))}function c(e){e.preventDefault(),(!t.isEnd||t.params.loop||t.params.rewind)&&(t.slideNext(),i("navigationNext"))}function p(){const e=t.params.navigation;if(t.params.navigation=ee(t,t.originalParams.navigation,t.params.navigation,{nextEl:"swiper-button-next",prevEl:"swiper-button-prev"}),!e.nextEl&&!e.prevEl)return;let s=n(e.nextEl),a=n(e.prevEl);Object.assign(t.navigation,{nextEl:s,prevEl:a}),s=r(s),a=r(a);const i=(s,a)=>{s&&s.addEventListener("click","next"===a?c:d),!t.enabled&&s&&s.classList.add(...e.lockClass.split(" "))};s.forEach((e=>i(e,"next"))),a.forEach((e=>i(e,"prev")))}function u(){let{nextEl:e,prevEl:s}=t.navigation;e=r(e),s=r(s);const a=(e,s)=>{e.removeEventListener("click","next"===s?c:d),e.classList.remove(...t.params.navigation.disabledClass.split(" "))};e.forEach((e=>a(e,"next"))),s.forEach((e=>a(e,"prev")))}a("init",(()=>{!1===t.params.navigation.enabled?m():(p(),o())})),a("toEdge fromEdge lock unlock",(()=>{o()})),a("destroy",(()=>{u()})),a("enable disable",(()=>{let{nextEl:e,prevEl:s}=t.navigation;e=r(e),s=r(s),[...e,...s].filter((e=>!!e)).forEach((e=>e.classList[t.enabled?"remove":"add"](t.params.navigation.lockClass)))})),a("click",((e,s)=>{let{nextEl:a,prevEl:n}=t.navigation;a=r(a),n=r(n);const l=s.target;if(t.params.navigation.hideOnClick&&!n.includes(l)&&!a.includes(l)){if(t.pagination&&t.params.pagination&&t.params.pagination.clickable&&(t.pagination.el===l||t.pagination.el.contains(l)))return;let e;a.length?e=a[0].classList.contains(t.params.navigation.hiddenClass):n.length&&(e=n[0].classList.contains(t.params.navigation.hiddenClass)),i(!0===e?"navigationShow":"navigationHide"),[...a,...n].filter((e=>!!e)).forEach((e=>e.classList.toggle(t.params.navigation.hiddenClass)))}}));const m=()=>{t.el.classList.add(...t.params.navigation.navigationDisabledClass.split(" ")),u()};Object.assign(t.navigation,{enable:()=>{t.el.classList.remove(...t.params.navigation.navigationDisabledClass.split(" ")),p(),o()},disable:m,update:o,init:p,destroy:u})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const r="swiper-pagination";let n;s({pagination:{el:null,bulletElement:"span",clickable:!1,hideOnClick:!1,renderBullet:null,renderProgressbar:null,renderFraction:null,renderCustom:null,progressbarOpposite:!1,type:"bullets",dynamicBullets:!1,dynamicMainBullets:1,formatFractionCurrent:e=>e,formatFractionTotal:e=>e,bulletClass:`${r}-bullet`,bulletActiveClass:`${r}-bullet-active`,modifierClass:`${r}-`,currentClass:`${r}-current`,totalClass:`${r}-total`,hiddenClass:`${r}-hidden`,progressbarFillClass:`${r}-progressbar-fill`,progressbarOppositeClass:`${r}-progressbar-opposite`,clickableClass:`${r}-clickable`,lockClass:`${r}-lock`,horizontalClass:`${r}-horizontal`,verticalClass:`${r}-vertical`,paginationDisabledClass:`${r}-disabled`}}),t.pagination={el:null,bullets:[]};let l=0;const o=e=>(Array.isArray(e)||(e=[e].filter((e=>!!e))),e);function d(){return!t.params.pagination.el||!t.pagination.el||Array.isArray(t.pagination.el)&&0===t.pagination.el.length}function c(e,s){const{bulletActiveClass:a}=t.params.pagination;e&&(e=e[("prev"===s?"previous":"next")+"ElementSibling"])&&(e.classList.add(`${a}-${s}`),(e=e[("prev"===s?"previous":"next")+"ElementSibling"])&&e.classList.add(`${a}-${s}-${s}`))}function p(e){const s=e.target.closest(te(t.params.pagination.bulletClass));if(!s)return;e.preventDefault();const a=b(s)*t.params.slidesPerGroup;if(t.params.loop){if(t.realIndex===a)return;const e=t.getSlideIndexByData(a),s=t.getSlideIndexByData(t.realIndex);e>t.slides.length-t.loopedSlides&&t.loopFix({direction:e>s?"next":"prev",activeSlideIndex:e,slideTo:!1}),t.slideToLoop(a)}else t.slideTo(a)}function u(){const e=t.rtl,s=t.params.pagination;if(d())return;let a,r,p=t.pagination.el;p=o(p);const u=t.virtual&&t.params.virtual.enabled?t.virtual.slides.length:t.slides.length,m=t.params.loop?Math.ceil(u/t.params.slidesPerGroup):t.snapGrid.length;if(t.params.loop?(r=t.previousRealIndex||0,a=t.params.slidesPerGroup>1?Math.floor(t.realIndex/t.params.slidesPerGroup):t.realIndex):void 0!==t.snapIndex?(a=t.snapIndex,r=t.previousSnapIndex):(r=t.previousIndex||0,a=t.activeIndex||0),"bullets"===s.type&&t.pagination.bullets&&t.pagination.bullets.length>0){const i=t.pagination.bullets;let o,d,u;if(s.dynamicBullets&&(n=x(i[0],t.isHorizontal()?"width":"height",!0),p.forEach((e=>{e.style[t.isHorizontal()?"width":"height"]=n*(s.dynamicMainBullets+4)+"px"})),s.dynamicMainBullets>1&&void 0!==r&&(l+=a-(r||0),l>s.dynamicMainBullets-1?l=s.dynamicMainBullets-1:l<0&&(l=0)),o=Math.max(a-l,0),d=o+(Math.min(i.length,s.dynamicMainBullets)-1),u=(d+o)/2),i.forEach((e=>{const t=[...["","-next","-next-next","-prev","-prev-prev","-main"].map((e=>`${s.bulletActiveClass}${e}`))].map((e=>"string"==typeof e&&e.includes(" ")?e.split(" "):e)).flat();e.classList.remove(...t)})),p.length>1)i.forEach((e=>{const i=b(e);i===a?e.classList.add(...s.bulletActiveClass.split(" ")):t.isElement&&e.setAttribute("part","bullet"),s.dynamicBullets&&(i>=o&&i<=d&&e.classList.add(...`${s.bulletActiveClass}-main`.split(" ")),i===o&&c(e,"prev"),i===d&&c(e,"next"))}));else{const e=i[a];if(e&&e.classList.add(...s.bulletActiveClass.split(" ")),t.isElement&&i.forEach(((e,t)=>{e.setAttribute("part",t===a?"bullet-active":"bullet")})),s.dynamicBullets){const e=i[o],t=i[d];for(let e=o;e<=d;e+=1)i[e]&&i[e].classList.add(...`${s.bulletActiveClass}-main`.split(" "));c(e,"prev"),c(t,"next")}}if(s.dynamicBullets){const a=Math.min(i.length,s.dynamicMainBullets+4),r=(n*a-n)/2-u*n,l=e?"right":"left";i.forEach((e=>{e.style[t.isHorizontal()?l:"top"]=`${r}px`}))}}p.forEach(((e,r)=>{if("fraction"===s.type&&(e.querySelectorAll(te(s.currentClass)).forEach((e=>{e.textContent=s.formatFractionCurrent(a+1)})),e.querySelectorAll(te(s.totalClass)).forEach((e=>{e.textContent=s.formatFractionTotal(m)}))),"progressbar"===s.type){let i;i=s.progressbarOpposite?t.isHorizontal()?"vertical":"horizontal":t.isHorizontal()?"horizontal":"vertical";const r=(a+1)/m;let n=1,l=1;"horizontal"===i?n=r:l=r,e.querySelectorAll(te(s.progressbarFillClass)).forEach((e=>{e.style.transform=`translate3d(0,0,0) scaleX(${n}) scaleY(${l})`,e.style.transitionDuration=`${t.params.speed}ms`}))}"custom"===s.type&&s.renderCustom?(e.innerHTML=s.renderCustom(t,a+1,m),0===r&&i("paginationRender",e)):(0===r&&i("paginationRender",e),i("paginationUpdate",e)),t.params.watchOverflow&&t.enabled&&e.classList[t.isLocked?"add":"remove"](s.lockClass)}))}function m(){const e=t.params.pagination;if(d())return;const s=t.virtual&&t.params.virtual.enabled?t.virtual.slides.length:t.slides.length;let a=t.pagination.el;a=o(a);let r="";if("bullets"===e.type){let a=t.params.loop?Math.ceil(s/t.params.slidesPerGroup):t.snapGrid.length;t.params.freeMode&&t.params.freeMode.enabled&&a>s&&(a=s);for(let s=0;s`}"fraction"===e.type&&(r=e.renderFraction?e.renderFraction.call(t,e.currentClass,e.totalClass):` / `),"progressbar"===e.type&&(r=e.renderProgressbar?e.renderProgressbar.call(t,e.progressbarFillClass):``),t.pagination.bullets=[],a.forEach((s=>{"custom"!==e.type&&(s.innerHTML=r||""),"bullets"===e.type&&t.pagination.bullets.push(...s.querySelectorAll(te(e.bulletClass)))})),"custom"!==e.type&&i("paginationRender",a[0])}function h(){t.params.pagination=ee(t,t.originalParams.pagination,t.params.pagination,{el:"swiper-pagination"});const e=t.params.pagination;if(!e.el)return;let s;"string"==typeof e.el&&t.isElement&&(s=t.el.shadowRoot.querySelector(e.el)),s||"string"!=typeof e.el||(s=[...document.querySelectorAll(e.el)]),s||(s=e.el),s&&0!==s.length&&(t.params.uniqueNavElements&&"string"==typeof e.el&&Array.isArray(s)&&s.length>1&&(s=[...t.el.querySelectorAll(e.el)],s.length>1&&(s=s.filter((e=>y(e,".swiper")[0]===t.el))[0])),Array.isArray(s)&&1===s.length&&(s=s[0]),Object.assign(t.pagination,{el:s}),s=o(s),s.forEach((s=>{"bullets"===e.type&&e.clickable&&s.classList.add(e.clickableClass),s.classList.add(e.modifierClass+e.type),s.classList.add(t.isHorizontal()?e.horizontalClass:e.verticalClass),"bullets"===e.type&&e.dynamicBullets&&(s.classList.add(`${e.modifierClass}${e.type}-dynamic`),l=0,e.dynamicMainBullets<1&&(e.dynamicMainBullets=1)),"progressbar"===e.type&&e.progressbarOpposite&&s.classList.add(e.progressbarOppositeClass),e.clickable&&s.addEventListener("click",p),t.enabled||s.classList.add(e.lockClass)})))}function f(){const e=t.params.pagination;if(d())return;let s=t.pagination.el;s&&(s=o(s),s.forEach((s=>{s.classList.remove(e.hiddenClass),s.classList.remove(e.modifierClass+e.type),s.classList.remove(t.isHorizontal()?e.horizontalClass:e.verticalClass),e.clickable&&s.removeEventListener("click",p)}))),t.pagination.bullets&&t.pagination.bullets.forEach((t=>t.classList.remove(...e.bulletActiveClass.split(" "))))}a("changeDirection",(()=>{if(!t.pagination||!t.pagination.el)return;const e=t.params.pagination;let{el:s}=t.pagination;s=o(s),s.forEach((s=>{s.classList.remove(e.horizontalClass,e.verticalClass),s.classList.add(t.isHorizontal()?e.horizontalClass:e.verticalClass)}))})),a("init",(()=>{!1===t.params.pagination.enabled?g():(h(),m(),u())})),a("activeIndexChange",(()=>{void 0===t.snapIndex&&u()})),a("snapIndexChange",(()=>{u()})),a("snapGridLengthChange",(()=>{m(),u()})),a("destroy",(()=>{f()})),a("enable disable",(()=>{let{el:e}=t.pagination;e&&(e=o(e),e.forEach((e=>e.classList[t.enabled?"remove":"add"](t.params.pagination.lockClass))))})),a("lock unlock",(()=>{u()})),a("click",((e,s)=>{const a=s.target;let{el:r}=t.pagination;if(Array.isArray(r)||(r=[r].filter((e=>!!e))),t.params.pagination.el&&t.params.pagination.hideOnClick&&r&&r.length>0&&!a.classList.contains(t.params.pagination.bulletClass)){if(t.navigation&&(t.navigation.nextEl&&a===t.navigation.nextEl||t.navigation.prevEl&&a===t.navigation.prevEl))return;const e=r[0].classList.contains(t.params.pagination.hiddenClass);i(!0===e?"paginationShow":"paginationHide"),r.forEach((e=>e.classList.toggle(t.params.pagination.hiddenClass)))}}));const g=()=>{t.el.classList.add(t.params.pagination.paginationDisabledClass);let{el:e}=t.pagination;e&&(e=o(e),e.forEach((e=>e.classList.add(t.params.pagination.paginationDisabledClass)))),f()};Object.assign(t.pagination,{enable:()=>{t.el.classList.remove(t.params.pagination.paginationDisabledClass);let{el:e}=t.pagination;e&&(e=o(e),e.forEach((e=>e.classList.remove(t.params.pagination.paginationDisabledClass)))),h(),m(),u()},disable:g,render:m,update:u,init:h,destroy:f})},function(e){let{swiper:t,extendParams:s,on:i,emit:r}=e;const l=a();let o,d,c,p,u=!1,m=null,h=null;function f(){if(!t.params.scrollbar.el||!t.scrollbar.el)return;const{scrollbar:e,rtlTranslate:s}=t,{dragEl:a,el:i}=e,r=t.params.scrollbar,n=t.params.loop?t.progressLoop:t.progress;let l=d,o=(c-d)*n;s?(o=-o,o>0?(l=d-o,o=0):-o+d>c&&(l=c+o)):o<0?(l=d+o,o=0):o+d>c&&(l=c-o),t.isHorizontal()?(a.style.transform=`translate3d(${o}px, 0, 0)`,a.style.width=`${l}px`):(a.style.transform=`translate3d(0px, ${o}px, 0)`,a.style.height=`${l}px`),r.hide&&(clearTimeout(m),i.style.opacity=1,m=setTimeout((()=>{i.style.opacity=0,i.style.transitionDuration="400ms"}),1e3))}function w(){if(!t.params.scrollbar.el||!t.scrollbar.el)return;const{scrollbar:e}=t,{dragEl:s,el:a}=e;s.style.width="",s.style.height="",c=t.isHorizontal()?a.offsetWidth:a.offsetHeight,p=t.size/(t.virtualSize+t.params.slidesOffsetBefore-(t.params.centeredSlides?t.snapGrid[0]:0)),d="auto"===t.params.scrollbar.dragSize?c*p:parseInt(t.params.scrollbar.dragSize,10),t.isHorizontal()?s.style.width=`${d}px`:s.style.height=`${d}px`,a.style.display=p>=1?"none":"",t.params.scrollbar.hide&&(a.style.opacity=0),t.params.watchOverflow&&t.enabled&&e.el.classList[t.isLocked?"add":"remove"](t.params.scrollbar.lockClass)}function b(e){return t.isHorizontal()?e.clientX:e.clientY}function y(e){const{scrollbar:s,rtlTranslate:a}=t,{el:i}=s;let r;r=(b(e)-v(i)[t.isHorizontal()?"left":"top"]-(null!==o?o:d/2))/(c-d),r=Math.max(Math.min(r,1),0),a&&(r=1-r);const n=t.minTranslate()+(t.maxTranslate()-t.minTranslate())*r;t.updateProgress(n),t.setTranslate(n),t.updateActiveIndex(),t.updateSlidesClasses()}function E(e){const s=t.params.scrollbar,{scrollbar:a,wrapperEl:i}=t,{el:n,dragEl:l}=a;u=!0,o=e.target===l?b(e)-e.target.getBoundingClientRect()[t.isHorizontal()?"left":"top"]:null,e.preventDefault(),e.stopPropagation(),i.style.transitionDuration="100ms",l.style.transitionDuration="100ms",y(e),clearTimeout(h),n.style.transitionDuration="0ms",s.hide&&(n.style.opacity=1),t.params.cssMode&&(t.wrapperEl.style["scroll-snap-type"]="none"),r("scrollbarDragStart",e)}function x(e){const{scrollbar:s,wrapperEl:a}=t,{el:i,dragEl:n}=s;u&&(e.preventDefault?e.preventDefault():e.returnValue=!1,y(e),a.style.transitionDuration="0ms",i.style.transitionDuration="0ms",n.style.transitionDuration="0ms",r("scrollbarDragMove",e))}function S(e){const s=t.params.scrollbar,{scrollbar:a,wrapperEl:i}=t,{el:l}=a;u&&(u=!1,t.params.cssMode&&(t.wrapperEl.style["scroll-snap-type"]="",i.style.transitionDuration=""),s.hide&&(clearTimeout(h),h=n((()=>{l.style.opacity=0,l.style.transitionDuration="400ms"}),1e3)),r("scrollbarDragEnd",e),s.snapOnRelease&&t.slideToClosest())}function T(e){const{scrollbar:s,params:a}=t,i=s.el;if(!i)return;const r=i,n=!!a.passiveListeners&&{passive:!1,capture:!1},o=!!a.passiveListeners&&{passive:!0,capture:!1};if(!r)return;const d="on"===e?"addEventListener":"removeEventListener";r[d]("pointerdown",E,n),l[d]("pointermove",x,n),l[d]("pointerup",S,o)}function M(){const{scrollbar:e,el:s}=t;t.params.scrollbar=ee(t,t.originalParams.scrollbar,t.params.scrollbar,{el:"swiper-scrollbar"});const a=t.params.scrollbar;if(!a.el)return;let i,r;"string"==typeof a.el&&t.isElement&&(i=t.el.shadowRoot.querySelector(a.el)),i||"string"!=typeof a.el?i||(i=a.el):i=l.querySelectorAll(a.el),t.params.uniqueNavElements&&"string"==typeof a.el&&i.length>1&&1===s.querySelectorAll(a.el).length&&(i=s.querySelector(a.el)),i.length>0&&(i=i[0]),i.classList.add(t.isHorizontal()?a.horizontalClass:a.verticalClass),i&&(r=i.querySelector(`.${t.params.scrollbar.dragClass}`),r||(r=g("div",t.params.scrollbar.dragClass),i.append(r))),Object.assign(e,{el:i,dragEl:r}),a.draggable&&t.params.scrollbar.el&&t.scrollbar.el&&T("on"),i&&i.classList[t.enabled?"remove":"add"](t.params.scrollbar.lockClass)}function C(){const e=t.params.scrollbar,s=t.scrollbar.el;s&&s.classList.remove(t.isHorizontal()?e.horizontalClass:e.verticalClass),t.params.scrollbar.el&&t.scrollbar.el&&T("off")}s({scrollbar:{el:null,dragSize:"auto",hide:!1,draggable:!1,snapOnRelease:!0,lockClass:"swiper-scrollbar-lock",dragClass:"swiper-scrollbar-drag",scrollbarDisabledClass:"swiper-scrollbar-disabled",horizontalClass:"swiper-scrollbar-horizontal",verticalClass:"swiper-scrollbar-vertical"}}),t.scrollbar={el:null,dragEl:null},i("init",(()=>{!1===t.params.scrollbar.enabled?P():(M(),w(),f())})),i("update resize observerUpdate lock unlock",(()=>{w()})),i("setTranslate",(()=>{f()})),i("setTransition",((e,s)=>{!function(e){t.params.scrollbar.el&&t.scrollbar.el&&(t.scrollbar.dragEl.style.transitionDuration=`${e}ms`)}(s)})),i("enable disable",(()=>{const{el:e}=t.scrollbar;e&&e.classList[t.enabled?"remove":"add"](t.params.scrollbar.lockClass)})),i("destroy",(()=>{C()}));const P=()=>{t.el.classList.add(t.params.scrollbar.scrollbarDisabledClass),t.scrollbar.el&&t.scrollbar.el.classList.add(t.params.scrollbar.scrollbarDisabledClass),C()};Object.assign(t.scrollbar,{enable:()=>{t.el.classList.remove(t.params.scrollbar.scrollbarDisabledClass),t.scrollbar.el&&t.scrollbar.el.classList.remove(t.params.scrollbar.scrollbarDisabledClass),M(),w(),f()},disable:P,updateSize:w,setTranslate:f,init:M,destroy:C})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({parallax:{enabled:!1}});const i=(e,s)=>{const{rtl:a}=t,i=a?-1:1,r=e.getAttribute("data-swiper-parallax")||"0";let n=e.getAttribute("data-swiper-parallax-x"),l=e.getAttribute("data-swiper-parallax-y");const o=e.getAttribute("data-swiper-parallax-scale"),d=e.getAttribute("data-swiper-parallax-opacity"),c=e.getAttribute("data-swiper-parallax-rotate");if(n||l?(n=n||"0",l=l||"0"):t.isHorizontal()?(n=r,l="0"):(l=r,n="0"),n=n.indexOf("%")>=0?parseInt(n,10)*s*i+"%":n*s*i+"px",l=l.indexOf("%")>=0?parseInt(l,10)*s+"%":l*s+"px",null!=d){const t=d-(d-1)*(1-Math.abs(s));e.style.opacity=t}let p=`translate3d(${n}, ${l}, 0px)`;if(null!=o){p+=` scale(${o-(o-1)*(1-Math.abs(s))})`}if(c&&null!=c){p+=` rotate(${c*s*-1}deg)`}e.style.transform=p},r=()=>{const{el:e,slides:s,progress:a,snapGrid:r}=t;f(e,"[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").forEach((e=>{i(e,a)})),s.forEach(((e,s)=>{let n=e.progress;t.params.slidesPerGroup>1&&"auto"!==t.params.slidesPerView&&(n+=Math.ceil(s/2)-a*(r.length-1)),n=Math.min(Math.max(n,-1),1),e.querySelectorAll("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale], [data-swiper-parallax-rotate]").forEach((e=>{i(e,n)}))}))};a("beforeInit",(()=>{t.params.parallax.enabled&&(t.params.watchSlidesProgress=!0,t.originalParams.watchSlidesProgress=!0)})),a("init",(()=>{t.params.parallax.enabled&&r()})),a("setTranslate",(()=>{t.params.parallax.enabled&&r()})),a("setTransition",((e,s)=>{t.params.parallax.enabled&&function(e){void 0===e&&(e=t.params.speed);const{el:s}=t;s.querySelectorAll("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").forEach((t=>{let s=parseInt(t.getAttribute("data-swiper-parallax-duration"),10)||e;0===e&&(s=0),t.style.transitionDuration=`${s}ms`}))}(s)}))},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const n=r();s({zoom:{enabled:!1,maxRatio:3,minRatio:1,toggle:!0,containerClass:"swiper-zoom-container",zoomedSlideClass:"swiper-slide-zoomed"}}),t.zoom={enabled:!1};let l,d,c=1,p=!1;const u=[],m={originX:0,originY:0,slideEl:void 0,slideWidth:void 0,slideHeight:void 0,imageEl:void 0,imageWrapEl:void 0,maxRatio:3},h={isTouched:void 0,isMoved:void 0,currentX:void 0,currentY:void 0,minX:void 0,minY:void 0,maxX:void 0,maxY:void 0,width:void 0,height:void 0,startX:void 0,startY:void 0,touchesStart:{},touchesCurrent:{}},g={x:void 0,y:void 0,prevPositionX:void 0,prevPositionY:void 0,prevTime:void 0};let w=1;function b(){if(u.length<2)return 1;const e=u[0].pageX,t=u[0].pageY,s=u[1].pageX,a=u[1].pageY;return Math.sqrt((s-e)**2+(a-t)**2)}function E(e){const s=t.isElement?"swiper-slide":`.${t.params.slideClass}`;return!!e.target.matches(s)||t.slides.filter((t=>t.contains(e.target))).length>0}function x(e){if("mouse"===e.pointerType&&u.splice(0,u.length),!E(e))return;const s=t.params.zoom;if(l=!1,d=!1,u.push(e),!(u.length<2)){if(l=!0,m.scaleStart=b(),!m.slideEl){m.slideEl=e.target.closest(`.${t.params.slideClass}, swiper-slide`),m.slideEl||(m.slideEl=t.slides[t.activeIndex]);let a=m.slideEl.querySelector(`.${s.containerClass}`);if(a&&(a=a.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),m.imageEl=a,m.imageWrapEl=a?y(m.imageEl,`.${s.containerClass}`)[0]:void 0,!m.imageWrapEl)return void(m.imageEl=void 0);m.maxRatio=m.imageWrapEl.getAttribute("data-swiper-zoom")||s.maxRatio}if(m.imageEl){const[e,t]=function(){if(u.length<2)return{x:null,y:null};const e=m.imageEl.getBoundingClientRect();return[(u[0].pageX+(u[1].pageX-u[0].pageX)/2-e.x)/c,(u[0].pageY+(u[1].pageY-u[0].pageY)/2-e.y)/c]}();m.originX=e,m.originY=t,m.imageEl.style.transitionDuration="0ms"}p=!0}}function S(e){if(!E(e))return;const s=t.params.zoom,a=t.zoom,i=u.findIndex((t=>t.pointerId===e.pointerId));i>=0&&(u[i]=e),u.length<2||(d=!0,m.scaleMove=b(),m.imageEl&&(a.scale=m.scaleMove/m.scaleStart*c,a.scale>m.maxRatio&&(a.scale=m.maxRatio-1+(a.scale-m.maxRatio+1)**.5),a.scalet.pointerId===e.pointerId));i>=0&&u.splice(i,1),l&&d&&(l=!1,d=!1,m.imageEl&&(a.scale=Math.max(Math.min(a.scale,m.maxRatio),s.minRatio),m.imageEl.style.transitionDuration=`${t.params.speed}ms`,m.imageEl.style.transform=`translate3d(0,0,0) scale(${a.scale})`,c=a.scale,p=!1,a.scale>1&&m.slideEl?m.slideEl.classList.add(`${s.zoomedSlideClass}`):a.scale<=1&&m.slideEl&&m.slideEl.classList.remove(`${s.zoomedSlideClass}`),1===a.scale&&(m.originX=0,m.originY=0,m.slideEl=void 0)))}function M(e){if(!E(e)||!function(e){const s=`.${t.params.zoom.containerClass}`;return!!e.target.matches(s)||[...t.el.querySelectorAll(s)].filter((t=>t.contains(e.target))).length>0}(e))return;const s=t.zoom;if(!m.imageEl)return;if(!h.isTouched||!m.slideEl)return;h.isMoved||(h.width=m.imageEl.offsetWidth,h.height=m.imageEl.offsetHeight,h.startX=o(m.imageWrapEl,"x")||0,h.startY=o(m.imageWrapEl,"y")||0,m.slideWidth=m.slideEl.offsetWidth,m.slideHeight=m.slideEl.offsetHeight,m.imageWrapEl.style.transitionDuration="0ms");const a=h.width*s.scale,i=h.height*s.scale;if(a0?u[0].pageX:e.pageX,h.touchesCurrent.y=u.length>0?u[0].pageY:e.pageY;if(Math.max(Math.abs(h.touchesCurrent.x-h.touchesStart.x),Math.abs(h.touchesCurrent.y-h.touchesStart.y))>5&&(t.allowClick=!1),!h.isMoved&&!p){if(t.isHorizontal()&&(Math.floor(h.minX)===Math.floor(h.startX)&&h.touchesCurrent.xh.touchesStart.x))return void(h.isTouched=!1);if(!t.isHorizontal()&&(Math.floor(h.minY)===Math.floor(h.startY)&&h.touchesCurrent.yh.touchesStart.y))return void(h.isTouched=!1)}e.cancelable&&e.preventDefault(),e.stopPropagation(),h.isMoved=!0;const r=(s.scale-c)/(m.maxRatio-t.params.zoom.minRatio),{originX:n,originY:l}=m;h.currentX=h.touchesCurrent.x-h.touchesStart.x+h.startX+r*(h.width-2*n),h.currentY=h.touchesCurrent.y-h.touchesStart.y+h.startY+r*(h.height-2*l),h.currentXh.maxX&&(h.currentX=h.maxX-1+(h.currentX-h.maxX+1)**.8),h.currentYh.maxY&&(h.currentY=h.maxY-1+(h.currentY-h.maxY+1)**.8),g.prevPositionX||(g.prevPositionX=h.touchesCurrent.x),g.prevPositionY||(g.prevPositionY=h.touchesCurrent.y),g.prevTime||(g.prevTime=Date.now()),g.x=(h.touchesCurrent.x-g.prevPositionX)/(Date.now()-g.prevTime)/2,g.y=(h.touchesCurrent.y-g.prevPositionY)/(Date.now()-g.prevTime)/2,Math.abs(h.touchesCurrent.x-g.prevPositionX)<2&&(g.x=0),Math.abs(h.touchesCurrent.y-g.prevPositionY)<2&&(g.y=0),g.prevPositionX=h.touchesCurrent.x,g.prevPositionY=h.touchesCurrent.y,g.prevTime=Date.now(),m.imageWrapEl.style.transform=`translate3d(${h.currentX}px, ${h.currentY}px,0)`}function C(){const e=t.zoom;m.slideEl&&t.activeIndex!==t.slides.indexOf(m.slideEl)&&(m.imageEl&&(m.imageEl.style.transform="translate3d(0,0,0) scale(1)"),m.imageWrapEl&&(m.imageWrapEl.style.transform="translate3d(0,0,0)"),m.slideEl.classList.remove(`${t.params.zoom.zoomedSlideClass}`),e.scale=1,c=1,m.slideEl=void 0,m.imageEl=void 0,m.imageWrapEl=void 0,m.originX=0,m.originY=0)}function P(e){const s=t.zoom,a=t.params.zoom;if(!m.slideEl){e&&e.target&&(m.slideEl=e.target.closest(`.${t.params.slideClass}, swiper-slide`)),m.slideEl||(t.params.virtual&&t.params.virtual.enabled&&t.virtual?m.slideEl=f(t.slidesEl,`.${t.params.slideActiveClass}`)[0]:m.slideEl=t.slides[t.activeIndex]);let s=m.slideEl.querySelector(`.${a.containerClass}`);s&&(s=s.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),m.imageEl=s,m.imageWrapEl=s?y(m.imageEl,`.${a.containerClass}`)[0]:void 0}if(!m.imageEl||!m.imageWrapEl)return;let i,r,l,o,d,p,u,g,w,b,E,x,S,T,M,C,P,L;t.params.cssMode&&(t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.touchAction="none"),m.slideEl.classList.add(`${a.zoomedSlideClass}`),void 0===h.touchesStart.x&&e?(i=e.pageX,r=e.pageY):(i=h.touchesStart.x,r=h.touchesStart.y);const z="number"==typeof e?e:null;1===c&&z&&(i=void 0,r=void 0),s.scale=z||m.imageWrapEl.getAttribute("data-swiper-zoom")||a.maxRatio,c=z||m.imageWrapEl.getAttribute("data-swiper-zoom")||a.maxRatio,!e||1===c&&z?(u=0,g=0):(P=m.slideEl.offsetWidth,L=m.slideEl.offsetHeight,l=v(m.slideEl).left+n.scrollX,o=v(m.slideEl).top+n.scrollY,d=l+P/2-i,p=o+L/2-r,w=m.imageEl.offsetWidth,b=m.imageEl.offsetHeight,E=w*s.scale,x=b*s.scale,S=Math.min(P/2-E/2,0),T=Math.min(L/2-x/2,0),M=-S,C=-T,u=d*s.scale,g=p*s.scale,uM&&(u=M),gC&&(g=C)),z&&1===s.scale&&(m.originX=0,m.originY=0),m.imageWrapEl.style.transitionDuration="300ms",m.imageWrapEl.style.transform=`translate3d(${u}px, ${g}px,0)`,m.imageEl.style.transitionDuration="300ms",m.imageEl.style.transform=`translate3d(0,0,0) scale(${s.scale})`}function L(){const e=t.zoom,s=t.params.zoom;if(!m.slideEl){t.params.virtual&&t.params.virtual.enabled&&t.virtual?m.slideEl=f(t.slidesEl,`.${t.params.slideActiveClass}`)[0]:m.slideEl=t.slides[t.activeIndex];let e=m.slideEl.querySelector(`.${s.containerClass}`);e&&(e=e.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),m.imageEl=e,m.imageWrapEl=e?y(m.imageEl,`.${s.containerClass}`)[0]:void 0}m.imageEl&&m.imageWrapEl&&(t.params.cssMode&&(t.wrapperEl.style.overflow="",t.wrapperEl.style.touchAction=""),e.scale=1,c=1,m.imageWrapEl.style.transitionDuration="300ms",m.imageWrapEl.style.transform="translate3d(0,0,0)",m.imageEl.style.transitionDuration="300ms",m.imageEl.style.transform="translate3d(0,0,0) scale(1)",m.slideEl.classList.remove(`${s.zoomedSlideClass}`),m.slideEl=void 0,m.originX=0,m.originY=0)}function z(e){const s=t.zoom;s.scale&&1!==s.scale?L():P(e)}function A(){return{passiveListener:!!t.params.passiveListeners&&{passive:!0,capture:!1},activeListenerWithCapture:!t.params.passiveListeners||{passive:!1,capture:!0}}}function $(){const e=t.zoom;if(e.enabled)return;e.enabled=!0;const{passiveListener:s,activeListenerWithCapture:a}=A();t.wrapperEl.addEventListener("pointerdown",x,s),t.wrapperEl.addEventListener("pointermove",S,a),["pointerup","pointercancel","pointerout"].forEach((e=>{t.wrapperEl.addEventListener(e,T,s)})),t.wrapperEl.addEventListener("pointermove",M,a)}function I(){const e=t.zoom;if(!e.enabled)return;e.enabled=!1;const{passiveListener:s,activeListenerWithCapture:a}=A();t.wrapperEl.removeEventListener("pointerdown",x,s),t.wrapperEl.removeEventListener("pointermove",S,a),["pointerup","pointercancel","pointerout"].forEach((e=>{t.wrapperEl.removeEventListener(e,T,s)})),t.wrapperEl.removeEventListener("pointermove",M,a)}Object.defineProperty(t.zoom,"scale",{get:()=>w,set(e){if(w!==e){const t=m.imageEl,s=m.slideEl;i("zoomChange",e,t,s)}w=e}}),a("init",(()=>{t.params.zoom.enabled&&$()})),a("destroy",(()=>{I()})),a("touchStart",((e,s)=>{t.zoom.enabled&&function(e){const s=t.device;if(!m.imageEl)return;if(h.isTouched)return;s.android&&e.cancelable&&e.preventDefault(),h.isTouched=!0;const a=u.length>0?u[0]:e;h.touchesStart.x=a.pageX,h.touchesStart.y=a.pageY}(s)})),a("touchEnd",((e,s)=>{t.zoom.enabled&&function(){const e=t.zoom;if(!m.imageEl)return;if(!h.isTouched||!h.isMoved)return h.isTouched=!1,void(h.isMoved=!1);h.isTouched=!1,h.isMoved=!1;let s=300,a=300;const i=g.x*s,r=h.currentX+i,n=g.y*a,l=h.currentY+n;0!==g.x&&(s=Math.abs((r-h.currentX)/g.x)),0!==g.y&&(a=Math.abs((l-h.currentY)/g.y));const o=Math.max(s,a);h.currentX=r,h.currentY=l;const d=h.width*e.scale,c=h.height*e.scale;h.minX=Math.min(m.slideWidth/2-d/2,0),h.maxX=-h.minX,h.minY=Math.min(m.slideHeight/2-c/2,0),h.maxY=-h.minY,h.currentX=Math.max(Math.min(h.currentX,h.maxX),h.minX),h.currentY=Math.max(Math.min(h.currentY,h.maxY),h.minY),m.imageWrapEl.style.transitionDuration=`${o}ms`,m.imageWrapEl.style.transform=`translate3d(${h.currentX}px, ${h.currentY}px,0)`}()})),a("doubleTap",((e,s)=>{!t.animating&&t.params.zoom.enabled&&t.zoom.enabled&&t.params.zoom.toggle&&z(s)})),a("transitionEnd",(()=>{t.zoom.enabled&&t.params.zoom.enabled&&C()})),a("slideChange",(()=>{t.zoom.enabled&&t.params.zoom.enabled&&t.params.cssMode&&C()})),Object.assign(t.zoom,{enable:$,disable:I,in:P,out:L,toggle:z})},function(e){let{swiper:t,extendParams:s,on:a}=e;function i(e,t){const s=function(){let e,t,s;return(a,i)=>{for(t=-1,e=a.length;e-t>1;)s=e+t>>1,a[s]<=i?t=s:e=s;return e}}();let a,i;return this.x=e,this.y=t,this.lastIndex=e.length-1,this.interpolate=function(e){return e?(i=s(this.x,e),a=i-1,(e-this.x[a])*(this.y[i]-this.y[a])/(this.x[i]-this.x[a])+this.y[a]):0},this}function r(){t.controller.control&&t.controller.spline&&(t.controller.spline=void 0,delete t.controller.spline)}s({controller:{control:void 0,inverse:!1,by:"slide"}}),t.controller={control:void 0},a("beforeInit",(()=>{if("undefined"!=typeof window&&("string"==typeof t.params.controller.control||t.params.controller.control instanceof HTMLElement)){const e=document.querySelector(t.params.controller.control);if(e&&e.swiper)t.controller.control=e.swiper;else if(e){const s=a=>{t.controller.control=a.detail[0],t.update(),e.removeEventListener("init",s)};e.addEventListener("init",s)}}else t.controller.control=t.params.controller.control})),a("update",(()=>{r()})),a("resize",(()=>{r()})),a("observerUpdate",(()=>{r()})),a("setTranslate",((e,s,a)=>{t.controller.control&&!t.controller.control.destroyed&&t.controller.setTranslate(s,a)})),a("setTransition",((e,s,a)=>{t.controller.control&&!t.controller.control.destroyed&&t.controller.setTransition(s,a)})),Object.assign(t.controller,{setTranslate:function(e,s){const a=t.controller.control;let r,n;const l=t.constructor;function o(e){if(e.destroyed)return;const s=t.rtlTranslate?-t.translate:t.translate;"slide"===t.params.controller.by&&(!function(e){t.controller.spline=t.params.loop?new i(t.slidesGrid,e.slidesGrid):new i(t.snapGrid,e.snapGrid)}(e),n=-t.controller.spline.interpolate(-s)),n&&"container"!==t.params.controller.by||(r=(e.maxTranslate()-e.minTranslate())/(t.maxTranslate()-t.minTranslate()),!Number.isNaN(r)&&Number.isFinite(r)||(r=1),n=(s-t.minTranslate())*r+e.minTranslate()),t.params.controller.inverse&&(n=e.maxTranslate()-n),e.updateProgress(n),e.setTranslate(n,t),e.updateActiveIndex(),e.updateSlidesClasses()}if(Array.isArray(a))for(let e=0;e{s.updateAutoHeight()})),E(s.wrapperEl,(()=>{i&&s.transitionEnd()}))))}if(Array.isArray(i))for(r=0;r(Array.isArray(e)||(e=[e].filter((e=>!!e))),e);function l(e){(e=n(e)).forEach((e=>{e.setAttribute("tabIndex","0")}))}function o(e){(e=n(e)).forEach((e=>{e.setAttribute("tabIndex","-1")}))}function d(e,t){(e=n(e)).forEach((e=>{e.setAttribute("role",t)}))}function c(e,t){(e=n(e)).forEach((e=>{e.setAttribute("aria-roledescription",t)}))}function p(e,t){(e=n(e)).forEach((e=>{e.setAttribute("aria-label",t)}))}function u(e){(e=n(e)).forEach((e=>{e.setAttribute("aria-disabled",!0)}))}function m(e){(e=n(e)).forEach((e=>{e.setAttribute("aria-disabled",!1)}))}function h(e){if(13!==e.keyCode&&32!==e.keyCode)return;const s=t.params.a11y,a=e.target;t.pagination&&t.pagination.el&&(a===t.pagination.el||t.pagination.el.contains(e.target))&&!e.target.matches(te(t.params.pagination.bulletClass))||(t.navigation&&t.navigation.nextEl&&a===t.navigation.nextEl&&(t.isEnd&&!t.params.loop||t.slideNext(),t.isEnd?r(s.lastSlideMessage):r(s.nextSlideMessage)),t.navigation&&t.navigation.prevEl&&a===t.navigation.prevEl&&(t.isBeginning&&!t.params.loop||t.slidePrev(),t.isBeginning?r(s.firstSlideMessage):r(s.prevSlideMessage)),t.pagination&&a.matches(te(t.params.pagination.bulletClass))&&a.click())}function f(){return t.pagination&&t.pagination.bullets&&t.pagination.bullets.length}function v(){return f()&&t.params.pagination.clickable}const w=(e,t,s)=>{l(e),"BUTTON"!==e.tagName&&(d(e,"button"),e.addEventListener("keydown",h)),p(e,s),function(e,t){(e=n(e)).forEach((e=>{e.setAttribute("aria-controls",t)}))}(e,t)},y=()=>{t.a11y.clicked=!0},E=()=>{requestAnimationFrame((()=>{requestAnimationFrame((()=>{t.destroyed||(t.a11y.clicked=!1)}))}))},x=e=>{if(t.a11y.clicked)return;const s=e.target.closest(`.${t.params.slideClass}, swiper-slide`);if(!s||!t.slides.includes(s))return;const a=t.slides.indexOf(s)===t.activeIndex,i=t.params.watchSlidesProgress&&t.visibleSlides&&t.visibleSlides.includes(s);a||i||e.sourceCapabilities&&e.sourceCapabilities.firesTouchEvents||(t.isHorizontal()?t.el.scrollLeft=0:t.el.scrollTop=0,t.slideTo(t.slides.indexOf(s),0))},S=()=>{const e=t.params.a11y;e.itemRoleDescriptionMessage&&c(t.slides,e.itemRoleDescriptionMessage),e.slideRole&&d(t.slides,e.slideRole);const s=t.slides.length;e.slideLabelMessage&&t.slides.forEach(((a,i)=>{const r=t.params.loop?parseInt(a.getAttribute("data-swiper-slide-index"),10):i;p(a,e.slideLabelMessage.replace(/\{\{index\}\}/,r+1).replace(/\{\{slidesLength\}\}/,s))}))},T=()=>{const e=t.params.a11y;t.isElement?t.el.shadowEl.append(i):t.el.append(i);const s=t.el;e.containerRoleDescriptionMessage&&c(s,e.containerRoleDescriptionMessage),e.containerMessage&&p(s,e.containerMessage);const a=t.wrapperEl,r=e.id||a.getAttribute("id")||`swiper-wrapper-${l=16,void 0===l&&(l=16),"x".repeat(l).replace(/x/g,(()=>Math.round(16*Math.random()).toString(16)))}`;var l;const o=t.params.autoplay&&t.params.autoplay.enabled?"off":"polite";var d;d=r,n(a).forEach((e=>{e.setAttribute("id",d)})),function(e,t){(e=n(e)).forEach((e=>{e.setAttribute("aria-live",t)}))}(a,o),S();let{nextEl:u,prevEl:m}=t.navigation?t.navigation:{};if(u=n(u),m=n(m),u&&u.forEach((t=>w(t,r,e.nextSlideMessage))),m&&m.forEach((t=>w(t,r,e.prevSlideMessage))),v()){(Array.isArray(t.pagination.el)?t.pagination.el:[t.pagination.el]).forEach((e=>{e.addEventListener("keydown",h)}))}t.el.addEventListener("focus",x,!0),t.el.addEventListener("pointerdown",y,!0),t.el.addEventListener("pointerup",E,!0)};a("beforeInit",(()=>{i=g("span",t.params.a11y.notificationClass),i.setAttribute("aria-live","assertive"),i.setAttribute("aria-atomic","true")})),a("afterInit",(()=>{t.params.a11y.enabled&&T()})),a("slidesLengthChange snapGridLengthChange slidesGridLengthChange",(()=>{t.params.a11y.enabled&&S()})),a("fromEdge toEdge afterInit lock unlock",(()=>{t.params.a11y.enabled&&function(){if(t.params.loop||t.params.rewind||!t.navigation)return;const{nextEl:e,prevEl:s}=t.navigation;s&&(t.isBeginning?(u(s),o(s)):(m(s),l(s))),e&&(t.isEnd?(u(e),o(e)):(m(e),l(e)))}()})),a("paginationUpdate",(()=>{t.params.a11y.enabled&&function(){const e=t.params.a11y;f()&&t.pagination.bullets.forEach((s=>{t.params.pagination.clickable&&(l(s),t.params.pagination.renderBullet||(d(s,"button"),p(s,e.paginationBulletMessage.replace(/\{\{index\}\}/,b(s)+1)))),s.matches(te(t.params.pagination.bulletActiveClass))?s.setAttribute("aria-current","true"):s.removeAttribute("aria-current")}))}()})),a("destroy",(()=>{t.params.a11y.enabled&&function(){i&&i.remove();let{nextEl:e,prevEl:s}=t.navigation?t.navigation:{};e=n(e),s=n(s),e&&e.forEach((e=>e.removeEventListener("keydown",h))),s&&s.forEach((e=>e.removeEventListener("keydown",h))),v()&&(Array.isArray(t.pagination.el)?t.pagination.el:[t.pagination.el]).forEach((e=>{e.removeEventListener("keydown",h)}));t.el.removeEventListener("focus",x,!0),t.el.removeEventListener("pointerdown",y,!0),t.el.removeEventListener("pointerup",E,!0)}()}))},function(e){let{swiper:t,extendParams:s,on:a}=e;s({history:{enabled:!1,root:"",replaceState:!1,key:"slides",keepQuery:!1}});let i=!1,n={};const l=e=>e.toString().replace(/\s+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,""),o=e=>{const t=r();let s;s=e?new URL(e):t.location;const a=s.pathname.slice(1).split("/").filter((e=>""!==e)),i=a.length;return{key:a[i-2],value:a[i-1]}},d=(e,s)=>{const a=r();if(!i||!t.params.history.enabled)return;let n;n=t.params.url?new URL(t.params.url):a.location;const o=t.slides[s];let d=l(o.getAttribute("data-history"));if(t.params.history.root.length>0){let s=t.params.history.root;"/"===s[s.length-1]&&(s=s.slice(0,s.length-1)),d=`${s}/${e?`${e}/`:""}${d}`}else n.pathname.includes(e)||(d=`${e?`${e}/`:""}${d}`);t.params.history.keepQuery&&(d+=n.search);const c=a.history.state;c&&c.value===d||(t.params.history.replaceState?a.history.replaceState({value:d},null,d):a.history.pushState({value:d},null,d))},c=(e,s,a)=>{if(s)for(let i=0,r=t.slides.length;i{n=o(t.params.url),c(t.params.speed,n.value,!1)};a("init",(()=>{t.params.history.enabled&&(()=>{const e=r();if(t.params.history){if(!e.history||!e.history.pushState)return t.params.history.enabled=!1,void(t.params.hashNavigation.enabled=!0);i=!0,n=o(t.params.url),n.key||n.value?(c(0,n.value,t.params.runCallbacksOnInit),t.params.history.replaceState||e.addEventListener("popstate",p)):t.params.history.replaceState||e.addEventListener("popstate",p)}})()})),a("destroy",(()=>{t.params.history.enabled&&(()=>{const e=r();t.params.history.replaceState||e.removeEventListener("popstate",p)})()})),a("transitionEnd _freeModeNoMomentumRelease",(()=>{i&&d(t.params.history.key,t.activeIndex)})),a("slideChange",(()=>{i&&t.params.cssMode&&d(t.params.history.key,t.activeIndex)}))},function(e){let{swiper:t,extendParams:s,emit:i,on:n}=e,l=!1;const o=a(),d=r();s({hashNavigation:{enabled:!1,replaceState:!1,watchState:!1,getSlideIndex(e,s){if(t.virtual&&t.params.virtual.enabled){const e=t.slides.filter((e=>e.getAttribute("data-hash")===s))[0];if(!e)return 0;return parseInt(e.getAttribute("data-swiper-slide-index"),10)}return t.getSlideIndex(f(t.slidesEl,`.${t.params.slideClass}[data-hash="${s}"], swiper-slide[data-hash="${s}"]`)[0])}}});const c=()=>{i("hashChange");const e=o.location.hash.replace("#",""),s=t.virtual&&t.params.virtual.enabled?t.slidesEl.querySelector(`[data-swiper-slide-index="${t.activeIndex}"]`):t.slides[t.activeIndex];if(e!==(s?s.getAttribute("data-hash"):"")){const s=t.params.hashNavigation.getSlideIndex(t,e);if(void 0===s||Number.isNaN(s))return;t.slideTo(s)}},p=()=>{if(!l||!t.params.hashNavigation.enabled)return;const e=t.virtual&&t.params.virtual.enabled?t.slidesEl.querySelector(`[data-swiper-slide-index="${t.activeIndex}"]`):t.slides[t.activeIndex],s=e?e.getAttribute("data-hash")||e.getAttribute("data-history"):"";t.params.hashNavigation.replaceState&&d.history&&d.history.replaceState?(d.history.replaceState(null,null,`#${s}`||""),i("hashSet")):(o.location.hash=s||"",i("hashSet"))};n("init",(()=>{t.params.hashNavigation.enabled&&(()=>{if(!t.params.hashNavigation.enabled||t.params.history&&t.params.history.enabled)return;l=!0;const e=o.location.hash.replace("#","");if(e){const s=0,a=t.params.hashNavigation.getSlideIndex(t,e);t.slideTo(a||0,s,t.params.runCallbacksOnInit,!0)}t.params.hashNavigation.watchState&&d.addEventListener("hashchange",c)})()})),n("destroy",(()=>{t.params.hashNavigation.enabled&&t.params.hashNavigation.watchState&&d.removeEventListener("hashchange",c)})),n("transitionEnd _freeModeNoMomentumRelease",(()=>{l&&p()})),n("slideChange",(()=>{l&&t.params.cssMode&&p()}))},function(e){let t,s,{swiper:i,extendParams:r,on:n,emit:l,params:o}=e;i.autoplay={running:!1,paused:!1,timeLeft:0},r({autoplay:{enabled:!1,delay:3e3,waitForTransition:!0,disableOnInteraction:!0,stopOnLastSlide:!1,reverseDirection:!1,pauseOnMouseEnter:!1}});let d,c,p,u,m,h,f,g=o&&o.autoplay?o.autoplay.delay:3e3,v=o&&o.autoplay?o.autoplay.delay:3e3,w=(new Date).getTime;function b(e){i&&!i.destroyed&&i.wrapperEl&&e.target===i.wrapperEl&&(i.wrapperEl.removeEventListener("transitionend",b),M())}const y=()=>{if(i.destroyed||!i.autoplay.running)return;i.autoplay.paused?c=!0:c&&(v=d,c=!1);const e=i.autoplay.paused?d:w+v-(new Date).getTime();i.autoplay.timeLeft=e,l("autoplayTimeLeft",e,e/g),s=requestAnimationFrame((()=>{y()}))},E=e=>{if(i.destroyed||!i.autoplay.running)return;cancelAnimationFrame(s),y();let a=void 0===e?i.params.autoplay.delay:e;g=i.params.autoplay.delay,v=i.params.autoplay.delay;const r=(()=>{let e;if(e=i.virtual&&i.params.virtual.enabled?i.slides.filter((e=>e.classList.contains("swiper-slide-active")))[0]:i.slides[i.activeIndex],!e)return;return parseInt(e.getAttribute("data-swiper-autoplay"),10)})();!Number.isNaN(r)&&r>0&&void 0===e&&(a=r,g=r,v=r),d=a;const n=i.params.speed,o=()=>{i&&!i.destroyed&&(i.params.autoplay.reverseDirection?!i.isBeginning||i.params.loop||i.params.rewind?(i.slidePrev(n,!0,!0),l("autoplay")):i.params.autoplay.stopOnLastSlide||(i.slideTo(i.slides.length-1,n,!0,!0),l("autoplay")):!i.isEnd||i.params.loop||i.params.rewind?(i.slideNext(n,!0,!0),l("autoplay")):i.params.autoplay.stopOnLastSlide||(i.slideTo(0,n,!0,!0),l("autoplay")),i.params.cssMode&&(w=(new Date).getTime(),requestAnimationFrame((()=>{E()}))))};return a>0?(clearTimeout(t),t=setTimeout((()=>{o()}),a)):requestAnimationFrame((()=>{o()})),a},x=()=>{i.autoplay.running=!0,E(),l("autoplayStart")},S=()=>{i.autoplay.running=!1,clearTimeout(t),cancelAnimationFrame(s),l("autoplayStop")},T=(e,s)=>{if(i.destroyed||!i.autoplay.running)return;clearTimeout(t),e||(f=!0);const a=()=>{l("autoplayPause"),i.params.autoplay.waitForTransition?i.wrapperEl.addEventListener("transitionend",b):M()};if(i.autoplay.paused=!0,s)return h&&(d=i.params.autoplay.delay),h=!1,void a();const r=d||i.params.autoplay.delay;d=r-((new Date).getTime()-w),i.isEnd&&d<0&&!i.params.loop||(d<0&&(d=0),a())},M=()=>{i.isEnd&&d<0&&!i.params.loop||i.destroyed||!i.autoplay.running||(w=(new Date).getTime(),f?(f=!1,E(d)):E(),i.autoplay.paused=!1,l("autoplayResume"))},C=()=>{if(i.destroyed||!i.autoplay.running)return;const e=a();"hidden"===e.visibilityState&&(f=!0,T(!0)),"visible"===e.visibilityState&&M()},P=e=>{"mouse"===e.pointerType&&(f=!0,T(!0))},L=e=>{"mouse"===e.pointerType&&i.autoplay.paused&&M()};n("init",(()=>{i.params.autoplay.enabled&&(i.params.autoplay.pauseOnMouseEnter&&(i.el.addEventListener("pointerenter",P),i.el.addEventListener("pointerleave",L)),a().addEventListener("visibilitychange",C),w=(new Date).getTime(),x())})),n("destroy",(()=>{i.el.removeEventListener("pointerenter",P),i.el.removeEventListener("pointerleave",L),a().removeEventListener("visibilitychange",C),i.autoplay.running&&S()})),n("beforeTransitionStart",((e,t,s)=>{!i.destroyed&&i.autoplay.running&&(s||!i.params.autoplay.disableOnInteraction?T(!0,!0):S())})),n("sliderFirstMove",(()=>{!i.destroyed&&i.autoplay.running&&(i.params.autoplay.disableOnInteraction?S():(p=!0,u=!1,f=!1,m=setTimeout((()=>{f=!0,u=!0,T(!0)}),200)))})),n("touchEnd",(()=>{if(!i.destroyed&&i.autoplay.running&&p){if(clearTimeout(m),clearTimeout(t),i.params.autoplay.disableOnInteraction)return u=!1,void(p=!1);u&&i.params.cssMode&&M(),u=!1,p=!1}})),n("slideChange",(()=>{!i.destroyed&&i.autoplay.running&&(h=!0)})),Object.assign(i.autoplay,{start:x,stop:S,pause:T,resume:M})},function(e){let{swiper:t,extendParams:s,on:i}=e;s({thumbs:{swiper:null,multipleActiveThumbs:!0,autoScrollOffset:0,slideThumbActiveClass:"swiper-slide-thumb-active",thumbsContainerClass:"swiper-thumbs"}});let r=!1,n=!1;function l(){const e=t.thumbs.swiper;if(!e||e.destroyed)return;const s=e.clickedIndex,a=e.clickedSlide;if(a&&a.classList.contains(t.params.thumbs.slideThumbActiveClass))return;if(null==s)return;let i;i=e.params.loop?parseInt(e.clickedSlide.getAttribute("data-swiper-slide-index"),10):s,t.params.loop?t.slideToLoop(i):t.slideTo(i)}function o(){const{thumbs:e}=t.params;if(r)return!1;r=!0;const s=t.constructor;if(e.swiper instanceof s)t.thumbs.swiper=e.swiper,Object.assign(t.thumbs.swiper.originalParams,{watchSlidesProgress:!0,slideToClickedSlide:!1}),Object.assign(t.thumbs.swiper.params,{watchSlidesProgress:!0,slideToClickedSlide:!1}),t.thumbs.swiper.update();else if(d(e.swiper)){const a=Object.assign({},e.swiper);Object.assign(a,{watchSlidesProgress:!0,slideToClickedSlide:!1}),t.thumbs.swiper=new s(a),n=!0}return t.thumbs.swiper.el.classList.add(t.params.thumbs.thumbsContainerClass),t.thumbs.swiper.on("tap",l),!0}function c(e){const s=t.thumbs.swiper;if(!s||s.destroyed)return;const a="auto"===s.params.slidesPerView?s.slidesPerViewDynamic():s.params.slidesPerView;let i=1;const r=t.params.thumbs.slideThumbActiveClass;if(t.params.slidesPerView>1&&!t.params.centeredSlides&&(i=t.params.slidesPerView),t.params.thumbs.multipleActiveThumbs||(i=1),i=Math.floor(i),s.slides.forEach((e=>e.classList.remove(r))),s.params.loop||s.params.virtual&&s.params.virtual.enabled)for(let e=0;e{e.classList.add(r)}));else for(let e=0;ee.getAttribute("data-swiper-slide-index")===`${t.realIndex}`))[0];r=s.slides.indexOf(e),o=t.activeIndex>t.previousIndex?"next":"prev"}else r=t.realIndex,o=r>t.previousIndex?"next":"prev";l&&(r+="next"===o?n:-1*n),s.visibleSlidesIndexes&&s.visibleSlidesIndexes.indexOf(r)<0&&(s.params.centeredSlides?r=r>i?r-Math.floor(a/2)+1:r+Math.floor(a/2)-1:r>i&&s.params.slidesPerGroup,s.slideTo(r,e?0:void 0))}}t.thumbs={swiper:null},i("beforeInit",(()=>{const{thumbs:e}=t.params;if(e&&e.swiper)if("string"==typeof e.swiper||e.swiper instanceof HTMLElement){const s=a(),i=()=>{const a="string"==typeof e.swiper?s.querySelector(e.swiper):e.swiper;if(a&&a.swiper)e.swiper=a.swiper,o(),c(!0);else if(a){const s=i=>{e.swiper=i.detail[0],a.removeEventListener("init",s),o(),c(!0),e.swiper.update(),t.update()};a.addEventListener("init",s)}return a},r=()=>{if(t.destroyed)return;i()||requestAnimationFrame(r)};requestAnimationFrame(r)}else o(),c(!0)})),i("slideChange update resize observerUpdate",(()=>{c()})),i("setTransition",((e,s)=>{const a=t.thumbs.swiper;a&&!a.destroyed&&a.setTransition(s)})),i("beforeDestroy",(()=>{const e=t.thumbs.swiper;e&&!e.destroyed&&n&&e.destroy()})),Object.assign(t.thumbs,{init:o,update:c})},function(e){let{swiper:t,extendParams:s,emit:a,once:i}=e;s({freeMode:{enabled:!1,momentum:!0,momentumRatio:1,momentumBounce:!0,momentumBounceRatio:1,momentumVelocityRatio:1,sticky:!1,minimumVelocity:.02}}),Object.assign(t,{freeMode:{onTouchStart:function(){if(t.params.cssMode)return;const e=t.getTranslate();t.setTranslate(e),t.setTransition(0),t.touchEventsData.velocities.length=0,t.freeMode.onTouchEnd({currentPos:t.rtl?t.translate:-t.translate})},onTouchMove:function(){if(t.params.cssMode)return;const{touchEventsData:e,touches:s}=t;0===e.velocities.length&&e.velocities.push({position:s[t.isHorizontal()?"startX":"startY"],time:e.touchStartTime}),e.velocities.push({position:s[t.isHorizontal()?"currentX":"currentY"],time:l()})},onTouchEnd:function(e){let{currentPos:s}=e;if(t.params.cssMode)return;const{params:r,wrapperEl:n,rtlTranslate:o,snapGrid:d,touchEventsData:c}=t,p=l()-c.touchStartTime;if(s<-t.minTranslate())t.slideTo(t.activeIndex);else if(s>-t.maxTranslate())t.slides.length1){const e=c.velocities.pop(),s=c.velocities.pop(),a=e.position-s.position,i=e.time-s.time;t.velocity=a/i,t.velocity/=2,Math.abs(t.velocity)150||l()-e.time>300)&&(t.velocity=0)}else t.velocity=0;t.velocity*=r.freeMode.momentumVelocityRatio,c.velocities.length=0;let e=1e3*r.freeMode.momentumRatio;const s=t.velocity*e;let p=t.translate+s;o&&(p=-p);let u,m=!1;const h=20*Math.abs(t.velocity)*r.freeMode.momentumBounceRatio;let f;if(pt.minTranslate())r.freeMode.momentumBounce?(p-t.minTranslate()>h&&(p=t.minTranslate()+h),u=t.minTranslate(),m=!0,c.allowMomentumBounce=!0):p=t.minTranslate(),r.loop&&r.centeredSlides&&(f=!0);else if(r.freeMode.sticky){let e;for(let t=0;t-p){e=t;break}p=Math.abs(d[e]-p){t.loopFix()})),0!==t.velocity){if(e=o?Math.abs((-p-t.translate)/t.velocity):Math.abs((p-t.translate)/t.velocity),r.freeMode.sticky){const s=Math.abs((o?-p:p)-t.translate),a=t.slidesSizesGrid[t.activeIndex];e=s{t&&!t.destroyed&&c.allowMomentumBounce&&(a("momentumBounce"),t.setTransition(r.speed),setTimeout((()=>{t.setTranslate(u),E(n,(()=>{t&&!t.destroyed&&t.transitionEnd()}))}),0))}))):t.velocity?(a("_freeModeNoMomentumRelease"),t.updateProgress(p),t.setTransition(e),t.setTranslate(p),t.transitionStart(!0,t.swipeDirection),t.animating||(t.animating=!0,E(n,(()=>{t&&!t.destroyed&&t.transitionEnd()})))):t.updateProgress(p),t.updateActiveIndex(),t.updateSlidesClasses()}else{if(r.freeMode.sticky)return void t.slideToClosest();r.freeMode&&a("_freeModeNoMomentumRelease")}(!r.freeMode.momentum||p>=r.longSwipesMs)&&(t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses())}}}})},function(e){let t,s,a,{swiper:i,extendParams:r}=e;r({grid:{rows:1,fill:"column"}});const n=()=>{let e=i.params.spaceBetween;return"string"==typeof e&&e.indexOf("%")>=0?e=parseFloat(e.replace("%",""))/100*i.size:"string"==typeof e&&(e=parseFloat(e)),e};i.grid={initSlides:e=>{const{slidesPerView:r}=i.params,{rows:n,fill:l}=i.params.grid;a=Math.floor(e/n),t=Math.floor(e/n)===e/n?e:Math.ceil(e/n)*n,"auto"!==r&&"row"===l&&(t=Math.max(t,r*n)),s=t/n},updateSlide:(e,r,l,o)=>{const{slidesPerGroup:d}=i.params,c=n(),{rows:p,fill:u}=i.params.grid;let m,h,f;if("row"===u&&d>1){const s=Math.floor(e/(d*p)),a=e-p*d*s,i=0===s?d:Math.min(Math.ceil((l-s*p*d)/p),d);f=Math.floor(a/i),h=a-f*i+s*d,m=h+f*t/p,r.style.order=m}else"column"===u?(h=Math.floor(e/p),f=e-h*p,(h>a||h===a&&f===p-1)&&(f+=1,f>=p&&(f=0,h+=1))):(f=Math.floor(e/s),h=e-f*s);r.row=f,r.column=h,r.style[o("margin-top")]=0!==f?c&&`${c}px`:""},updateWrapperSize:(e,s,a)=>{const{centeredSlides:r,roundLengths:l}=i.params,o=n(),{rows:d}=i.params.grid;if(i.virtualSize=(e+o)*t,i.virtualSize=Math.ceil(i.virtualSize/d)-o,i.wrapperEl.style[a("width")]=`${i.virtualSize+o}px`,r){const e=[];for(let t=0;t{const{slides:e}=t;t.params.fadeEffect;for(let s=0;s{const s=t.slides.map((e=>h(e)));s.forEach((t=>{t.style.transitionDuration=`${e}ms`})),de({swiper:t,duration:e,transformElements:s,allSlides:!0})},overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({cubeEffect:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94}});const i=(e,t,s)=>{let a=s?e.querySelector(".swiper-slide-shadow-left"):e.querySelector(".swiper-slide-shadow-top"),i=s?e.querySelector(".swiper-slide-shadow-right"):e.querySelector(".swiper-slide-shadow-bottom");a||(a=g("div","swiper-slide-shadow-"+(s?"left":"top")),e.append(a)),i||(i=g("div","swiper-slide-shadow-"+(s?"right":"bottom")),e.append(i)),a&&(a.style.opacity=Math.max(-t,0)),i&&(i.style.opacity=Math.max(t,0))};le({effect:"cube",swiper:t,on:a,setTranslate:()=>{const{el:e,wrapperEl:s,slides:a,width:r,height:n,rtlTranslate:l,size:o,browser:d}=t,c=t.params.cubeEffect,p=t.isHorizontal(),u=t.virtual&&t.params.virtual.enabled;let m,h=0;c.shadow&&(p?(m=t.slidesEl.querySelector(".swiper-cube-shadow"),m||(m=g("div","swiper-cube-shadow"),t.slidesEl.append(m)),m.style.height=`${r}px`):(m=e.querySelector(".swiper-cube-shadow"),m||(m=g("div","swiper-cube-shadow"),e.append(m))));for(let e=0;e-1&&(h=90*s+90*d,l&&(h=90*-s-90*d)),t.style.transform=v,c.slideShadows&&i(t,d,p)}if(s.style.transformOrigin=`50% 50% -${o/2}px`,s.style["-webkit-transform-origin"]=`50% 50% -${o/2}px`,c.shadow)if(p)m.style.transform=`translate3d(0px, ${r/2+c.shadowOffset}px, ${-r/2}px) rotateX(90deg) rotateZ(0deg) scale(${c.shadowScale})`;else{const e=Math.abs(h)-90*Math.floor(Math.abs(h)/90),t=1.5-(Math.sin(2*e*Math.PI/360)/2+Math.cos(2*e*Math.PI/360)/2),s=c.shadowScale,a=c.shadowScale/t,i=c.shadowOffset;m.style.transform=`scale3d(${s}, 1, ${a}) translate3d(0px, ${n/2+i}px, ${-n/2/a}px) rotateX(-90deg)`}const f=(d.isSafari||d.isWebView)&&d.needPerspectiveFix?-o/2:0;s.style.transform=`translate3d(0px,0,${f}px) rotateX(${t.isHorizontal()?0:h}deg) rotateY(${t.isHorizontal()?-h:0}deg)`,s.style.setProperty("--swiper-cube-translate-z",`${f}px`)},setTransition:e=>{const{el:s,slides:a}=t;if(a.forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((t=>{t.style.transitionDuration=`${e}ms`}))})),t.params.cubeEffect.shadow&&!t.isHorizontal()){const t=s.querySelector(".swiper-cube-shadow");t&&(t.style.transitionDuration=`${e}ms`)}},recreateShadows:()=>{const e=t.isHorizontal();t.slides.forEach((t=>{const s=Math.max(Math.min(t.progress,1),-1);i(t,s,e)}))},getEffectParams:()=>t.params.cubeEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,resistanceRatio:0,spaceBetween:0,centeredSlides:!1,virtualTranslate:!0})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({flipEffect:{slideShadows:!0,limitRotation:!0}});const i=(e,s,a)=>{let i=t.isHorizontal()?e.querySelector(".swiper-slide-shadow-left"):e.querySelector(".swiper-slide-shadow-top"),r=t.isHorizontal()?e.querySelector(".swiper-slide-shadow-right"):e.querySelector(".swiper-slide-shadow-bottom");i||(i=ce(0,e,t.isHorizontal()?"left":"top")),r||(r=ce(0,e,t.isHorizontal()?"right":"bottom")),i&&(i.style.opacity=Math.max(-s,0)),r&&(r.style.opacity=Math.max(s,0))};le({effect:"flip",swiper:t,on:a,setTranslate:()=>{const{slides:e,rtlTranslate:s}=t,a=t.params.flipEffect;for(let r=0;r{const s=t.slides.map((e=>h(e)));s.forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((t=>{t.style.transitionDuration=`${e}ms`}))})),de({swiper:t,duration:e,transformElements:s})},recreateShadows:()=>{t.params.flipEffect;t.slides.forEach((e=>{let s=e.progress;t.params.flipEffect.limitRotation&&(s=Math.max(Math.min(e.progress,1),-1)),i(e,s)}))},getEffectParams:()=>t.params.flipEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({coverflowEffect:{rotate:50,stretch:0,depth:100,scale:1,modifier:1,slideShadows:!0}}),le({effect:"coverflow",swiper:t,on:a,setTranslate:()=>{const{width:e,height:s,slides:a,slidesSizesGrid:i}=t,r=t.params.coverflowEffect,n=t.isHorizontal(),l=t.translate,o=n?e/2-l:s/2-l,d=n?r.rotate:-r.rotate,c=r.depth;for(let e=0,t=a.length;e0?p:0),s&&(s.style.opacity=-p>0?-p:0)}}},setTransition:e=>{t.slides.map((e=>h(e))).forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((t=>{t.style.transitionDuration=`${e}ms`}))}))},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({creativeEffect:{limitProgress:1,shadowPerProgress:!1,progressMultiplier:1,perspective:!0,prev:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1},next:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1}}});const i=e=>"string"==typeof e?e:`${e}px`;le({effect:"creative",swiper:t,on:a,setTranslate:()=>{const{slides:e,wrapperEl:s,slidesSizesGrid:a}=t,r=t.params.creativeEffect,{progressMultiplier:n}=r,l=t.params.centeredSlides;if(l){const e=a[0]/2-t.params.slidesOffsetBefore||0;s.style.transform=`translateX(calc(50% - ${e}px))`}for(let s=0;s0&&(f=r.prev,h=!0),u.forEach(((e,t)=>{u[t]=`calc(${e}px + (${i(f.translate[t])} * ${Math.abs(d*n)}))`})),m.forEach(((e,t)=>{m[t]=f.rotate[t]*Math.abs(d*n)})),a.style.zIndex=-Math.abs(Math.round(o))+e.length;const g=u.join(", "),v=`rotateX(${m[0]}deg) rotateY(${m[1]}deg) rotateZ(${m[2]}deg)`,w=c<0?`scale(${1+(1-f.scale)*c*n})`:`scale(${1-(1-f.scale)*c*n})`,b=c<0?1+(1-f.opacity)*c*n:1-(1-f.opacity)*c*n,y=`translate3d(${g}) ${v} ${w}`;if(h&&f.shadow||!h){let e=a.querySelector(".swiper-slide-shadow");if(!e&&f.shadow&&(e=ce(0,a)),e){const t=r.shadowPerProgress?d*(1/r.limitProgress):d;e.style.opacity=Math.min(Math.max(Math.abs(t),0),1)}}const E=oe(0,a);E.style.transform=y,E.style.opacity=b,f.origin&&(E.style.transformOrigin=f.origin)}},setTransition:e=>{const s=t.slides.map((e=>h(e)));s.forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow").forEach((t=>{t.style.transitionDuration=`${e}ms`}))})),de({swiper:t,duration:e,transformElements:s,allSlides:!0})},perspective:()=>t.params.creativeEffect.perspective,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({cardsEffect:{slideShadows:!0,rotate:!0,perSlideRotate:2,perSlideOffset:8}}),le({effect:"cards",swiper:t,on:a,setTranslate:()=>{const{slides:e,activeIndex:s,rtlTranslate:a}=t,i=t.params.cardsEffect,{startTranslate:r,isTouched:n}=t.touchEventsData,l=a?-t.translate:t.translate;for(let o=0;o0&&p<1&&(n||t.params.cssMode)&&l-1&&(n||t.params.cssMode)&&l>r;if(y||E){const e=(1-Math.abs((Math.abs(p)-.5)/.5))**.5;v+=-28*p*e,g+=-.5*e,w+=96*e,h=-25*e*Math.abs(p)+"%"}if(m=p<0?`calc(${m}px ${a?"-":"+"} (${w*Math.abs(p)}%))`:p>0?`calc(${m}px ${a?"-":"+"} (-${w*Math.abs(p)}%))`:`${m}px`,!t.isHorizontal()){const e=h;h=m,m=e}const x=p<0?""+(1+(1-g)*p):""+(1-(1-g)*p),S=`\n translate3d(${m}, ${h}, ${f}px)\n rotateZ(${i.rotate?a?-v:v:0}deg)\n scale(${x})\n `;if(i.slideShadows){let e=d.querySelector(".swiper-slide-shadow");e||(e=ce(0,d)),e&&(e.style.opacity=Math.min(Math.max((Math.abs(p)-.5)/.5,0),1))}d.style.zIndex=-Math.abs(Math.round(c))+e.length;oe(0,d).style.transform=S}},setTransition:e=>{const s=t.slides.map((e=>h(e)));s.forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow").forEach((t=>{t.style.transitionDuration=`${e}ms`}))})),de({swiper:t,duration:e,transformElements:s})},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!t.params.cssMode})})}];return J.use(pe),J})); -//# sourceMappingURL=swiper-bundle.min.js.map - -; -!function(i){"use strict";"function"==typeof define&&define.amd?define(["jquery"],i):"undefined"!=typeof exports?module.exports=i(require("jquery")):i(jQuery)}(function(i){"use strict";var e=window.Slick||{};(e=function(){var e=0;return function(t,o){var s,n=this;n.defaults={accessibility:!0,adaptiveHeight:!1,appendArrows:i(t),appendDots:i(t),arrows:!0,asNavFor:null,prevArrow:'',nextArrow:'',autoplay:!1,autoplaySpeed:3e3,centerMode:!1,centerPadding:"50px",cssEase:"ease",customPaging:function(e,t){return i('\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) { - utils.fetchCaptionFromUrl(subHtmlUrl, this.outer.find('.lg-sub-html'), 'replace'); - } - else { - this.outer.find('.lg-sub-html').html(subHtml); - } - } - else { - var currentSlide = $LG(this.getSlideItemId(index)); - if (subHtmlUrl) { - utils.fetchCaptionFromUrl(subHtmlUrl, currentSlide, 'append'); - } - 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 dummyImgContentImg = document.createElement('img'); - dummyImgContentImg.alt = alt || ''; - dummyImgContentImg.src = _dummyImgSrc; - dummyImgContentImg.className = "lg-dummy-img"; - dummyImgContentImg.style.cssText = imgStyle; - $currentSlide.addClass('lg-first-slide'); - this.outer.addClass('lg-first-slide-loading'); - return dummyImgContentImg; - } - 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 picture = document.createElement('picture'); - picture.className = 'lg-img-wrap'; - picture.append(imgContent); - $currentSlide.prepend(picture); - }; - 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('' + - _this.settings.strings['mediaLoadingFailed'] + - ''); - }); - }; - 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.8.0-beta.1 | February 16th 2024 - * 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 defaultVimeoPlayerParams = Object.assign({}, { - autoplay: 0, - muted: 1, - }, defaultParams); - var defaultPlayerParams = defaultVimeoPlayerParams && - Object.keys(defaultVimeoPlayerParams).length !== 0 - ? param(defaultVimeoPlayerParams) - : ''; - // 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 || ''; - var privateUrlParams = isPrivate ? "h=" + hash : ''; - defaultPlayerParams = privateUrlParams - ? "&" + defaultPlayerParams - : defaultPlayerParams; - var vimeoPlayerParams = "?" + privateUrlParams + 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.8.0-beta.1 | February 16th 2024 - * 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.8.0-beta.1 | February 16th 2024 - * 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.8.0-beta.1 | February 16th 2024 - * 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.8.0-beta.1 | February 16th 2024 - * 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 div = document.createElement('div'); - div.setAttribute('data-lg-item-id', index + ''); - div.className = "lg-thumb-item " + (index === this.core.index ? 'active' : ''); - div.style.cssText = "width: " + this.settings.thumbWidth + "px; height: " + this.settings.thumbHeight + "; margin-right: " + this.settings.thumbMargin + "px;"; - var img = document.createElement('img'); - img.alt = alt || ''; - img.setAttribute('data-lg-item-id', index + ''); - img.src = thumbImg; - div.appendChild(img); - return div; - }; - Thumbnail.prototype.setThumbItemHtml = function (items) { - for (var i = 0; i < items.length; i++) { - var thumb = this.getThumbHtml(items[i].thumb, i, items[i].alt); - this.$lgThumb.append(thumb); - } - }; - 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.8.0-beta.1 | February 16th 2024 - * 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.8.0-beta.1 | February 16th 2024 - * 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.8.0-beta.1 | February 16th 2024 - * 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.8.0-beta.1 | February 16th 2024 - * 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.8.0-beta.1 | February 16th 2024 - * 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.8.0-beta.1 | February 16th 2024 - * 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.8.0-beta.1 | February 16th 2024 - * 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.8.0-beta.1 | February 16th 2024 - * 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,$dynamicimgGallery,dynamicimgEl,dynamicimgGallery,$infiniteScrollingGallery,infiniteScrollingGallery,images,$lgSwiper,swiper,$lgInlineVideoContainer,_inlineGallery,$flickityLG,flkty,container;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)}),$dynamicimgGallery=jQuery('#dynamic-mode-images'),dynamicimgEl=[{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=80'},{src:'https://images.unsplash.com/photo-1526281216101-e55f00f0db7a?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=1600&q=80',thumb:'https://images.unsplash.com/photo-1526281216101-e55f00f0db7a?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=240&q=80'},{src:'https://images.unsplash.com/photo-1418065460487-3e41a6c84dc5?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1600&q=80',thumb:'https://images.unsplash.com/photo-1418065460487-3e41a6c84dc5?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&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=1600&q=80',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=1600&q=80',thumb:'https://images.unsplash.com/photo-1477322524744-0eece9e79640?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&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',thumb:'https://images.unsplash.com/photo-1469474968028-56623f02e42e?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80'},{src:"https://images.unsplash.com/photo-1510414842594-a61c69b5ae57?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1510414842594-a61c69b5ae57?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=2407&q=80"},{src:"https://images.unsplash.com/photo-1596370743446-6a7ef43a36f9?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1596370743446-6a7ef43a36f9?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1464852045489-bccb7d17fe39?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1464852045489-bccb7d17fe39?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1483728642387-6c3bdd6c93e5?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1483728642387-6c3bdd6c93e5?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1510011560141-62c7e8fc7908?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1510011560141-62c7e8fc7908?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1586276393635-5ecd8a851acc?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1586276393635-5ecd8a851acc?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1471931452361-f5ff1faa15ad?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1471931452361-f5ff1faa15ad?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1508766206392-8bd5cf550d1c?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1508766206392-8bd5cf550d1c?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1610448721566-47369c768e70?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1610448721566-47369c768e70?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"}],dynamicimgGallery=window.lightGallery($dynamicimgGallery[0],{dynamic:!0,hash:!1,rotate:!1,plugins:[lgZoom,lgAutoplay,lgFullscreen,lgPager,lgRotate,lgShare,lgVideo],dynamicEl:dynamicimgEl}),$dynamicimgGallery.on('click',function(){dynamicimgGallery.openGallery(5)}),$('#gallery-dynamic-thumbnails .gallery-item').on('click',function(){var a=$(this).index();dynamicimgGallery.openGallery(a)}),jQuery('#gallery-dynamic-thumbnails').justifiedGallery({captions:!1,lastRow:'justify',rowHeight:180,margins:5}),$('#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]}),lightGallery(document.querySelector('.blog-wrapper'),{selector:'.blog-images',getCaptionFromTitleOrAlt:!1,backgroundColor:"#FFF",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)})}}})),$lgInlineVideoContainer=document.getElementById('inline-video-gallery-container'),$lgInlineVideoContainer&&(_inlineGallery=window.lightGallery($lgInlineVideoContainer,_objectSpread(_objectSpread({container:$lgInlineVideoContainer,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:[lgShare,lgThumbnail,lgVideo],appendSubHtmlTo:'.lg-item'},getResponsiveThumbnailsSettings()),{},{dynamicEl:[{src:'//www.youtube.com/watch?v=EIUJfXk3_3w',poster:'https://img.youtube.com/vi/EIUJfXk3_3w/maxresdefault.jpg',thumb:'https://img.youtube.com/vi/EIUJfXk3_3w/maxresdefault.jpg',subHtml:'

    Puffin Hunts Fish To Feed Puffling | Blue Planet II | BBC Earth

    This puffin parent must go out to sea to feed his chick, but he must evade other birds that would rob him.

    '},{src:'//vimeo.com/112836958',poster:location.origin+'/images/demo/vimeo-video-poster.jpg',thumb:location.origin+'/images/demo/vimeo-video-poster.jpg',subHtml:"

    Nature

    Video by Charlie Kaye

    "},{source:[{src:location.origin+'/videos/video1.mp4',type:'video/mp4'}],tracks:[{src:location.origin+'/videos/title.txt',kind:'captions',srclang:'en',label:'English',default:'true'}],attributes:{preload:!1,controls:!0},poster:location.origin+'/images/demo/html5-video-poster.jpg',thumb:location.origin+'/images/demo/html5-video-poster.jpg',subHtml:"

    'Peck Pocketed' by Kevin Herron | Disney Favorite

    "},{src:'https://private-sharing.wistia.com/medias/mwhrulrucj',poster:location.origin+'/images/demo/wistia-video-poster.jpeg',thumb:location.origin+'/images/demo/wistia-video-poster.jpeg',subHtml:'

    Thank You!

    Sample Wistia video

    '}]})),_inlineGallery.openGallery()),jQuery(document).ready(function(){var d=document.getElementById('bootstrap-gallery-carousel'),a,e,f,g,b,h,c;d&&(a=!1,e=jQuery('#bootstrap-gallery-carousel'),e.carousel({keyboard:!0}),a=!0,a&&(f=document.querySelector('.carousel-inner'),window.lightGallery(f,{thumbnail:!0,zoomFromOrigin:!1,pager:!1,plugins:[lgZoom,lgAutoplay,lgFullscreen,lgRotate,lgShare],hash:!1,preload:4,selector:'.lg-item'}))),g=document.getElementById('owl-carousel-gallery-demo'),g&&(b=jQuery('#owl-carousel-gallery-demo'),b.on('initialized.owl.carousel',function(b){var a=document.querySelector('.owl-stage');window.lightGallery(a,{plugins:[lgZoom,lgAutoplay,lgFullscreen,lgRotate,lgShare,lgThumbnail],selector:'.carousel-cell'})}),b.owlCarousel({center:!0,items:1,loop:!1,margin:10,nav:!0})),h=document.getElementById('slick-carousel-gallery-demo'),h&&(c=$('#slick-carousel-gallery-demo'),c.on('init',function(b,c,d){console.log('Slick slider initialized');var a=document.querySelector('.slick-track');window.lightGallery(a,{pager:!1,plugins:[lgZoom,lgAutoplay,lgFullscreen,lgRotate,lgShare,lgThumbnail],hash:!1,preload:4})}),c.slick({centerMode:!0,centerPadding:'60px',slidesToShow:3,customPaging:'10px',focusOnSelect:!0,swipe:!1,variableWidth:!0,responsive:[{breakpoint:768,settings:{arrows:!1,centerMode:!0,centerPadding:'40px',slidesToShow:3}},{breakpoint:480,settings:{arrows:!1,centerMode:!0,centerPadding:'40px',slidesToShow:1}}]}))}),$flickityLG=document.querySelector('#flickity-carousel-gallery-demo'),$flickityLG&&(flkty=new Flickity($flickityLG,{cellAlign:'center',pageDots:!1,contain:!0,autoPlay:!0,on:{ready:function(){var a=document.querySelector('.flickity-slider');window.lightGallery(a,{selector:'.lg-item',plugins:[lgZoom,lgAutoplay,lgFullscreen,lgRotate,lgShare,lgThumbnail]})}}})),container=document.querySelector('#bootstrap-image-gallery'),window.lightGallery(container,{selector:'.lg-item',zoomFromOrigin:!0,download:!0,thumbnail:!0,plugins:[lgZoom,lgAutoplay,lgFullscreen,lgRotate,lgShare,lgThumbnail]}),$(document).ready(function(){var a=document.querySelector('#masonry-gallery-demo'),b=new Masonry(a,{itemSelector:'.lg-item',columnWidth:'.grid-sizer',percentPosition:!0,gutter:10,horizontalOrder:!0,fitWidth:!0});imagesLoaded(a).on('progress',function(){b.layout()}),window.lightGallery(a,{thumbnail:!0,pager:!0,plugins:[lgAutoplay,lgFullscreen,lgShare,lgThumbnail,lgVideo],hash:!1,preload:0,selector:'.lg-item'})}),window.lightGallery(document.getElementById('bootstrap-video-gallery'),{thumbnail:!0,pager:!0,plugins:[lgAutoplay,lgFullscreen,lgShare,lgThumbnail,lgVideo],hash:!1,preload:0}),window.lightGallery(document.getElementById('bootstrap-video-carousel'),{thumbnail:!0,pager:!0,plugins:[lgAutoplay,lgFullscreen,lgShare,lgThumbnail,lgVideo],hash:!1,preload:0,selector:'.lg-item'}) \ No newline at end of file diff --git a/main.82f7015c448ca7d965698bc8b023e1bb39594a4196eecce4a3338d5f962ee9b90a48bb48eb3dde19c7f2aa3991aaf1a163f0cd8ff4fb5806949e52f78468a7fb.js b/main.82f7015c448ca7d965698bc8b023e1bb39594a4196eecce4a3338d5f962ee9b90a48bb48eb3dde19c7f2aa3991aaf1a163f0cd8ff4fb5806949e52f78468a7fb.js deleted file mode 100644 index a1645cbe8..000000000 --- a/main.82f7015c448ca7d965698bc8b023e1bb39594a4196eecce4a3338d5f962ee9b90a48bb48eb3dde19c7f2aa3991aaf1a163f0cd8ff4fb5806949e52f78468a7fb.js +++ /dev/null @@ -1,6781 +0,0 @@ -/*! 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 | September 29th 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', - mediaLoadingFailed: 'Oops... Failed to load content...', - }, - }; - - 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('' + - _this.settings.strings['mediaLoadingFailed'] + - ''); - }); - }; - 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 | September 29th 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 | September 29th 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 | September 29th 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 | September 29th 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 | September 29th 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 | September 29th 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 | September 29th 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 | September 29th 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 | September 29th 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 | September 29th 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 | September 29th 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 | September 29th 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 | September 29th 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,$dynamicimgGallery,dynamicimgEl,dynamicimgGallery,$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)}),$dynamicimgGallery=jQuery('#dynamic-mode-images'),dynamicimgEl=[{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=80'},{src:'https://images.unsplash.com/photo-1526281216101-e55f00f0db7a?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=1600&q=80',thumb:'https://images.unsplash.com/photo-1526281216101-e55f00f0db7a?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=240&q=80'},{src:'https://images.unsplash.com/photo-1418065460487-3e41a6c84dc5?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1600&q=80',thumb:'https://images.unsplash.com/photo-1418065460487-3e41a6c84dc5?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&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=1600&q=80',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=1600&q=80',thumb:'https://images.unsplash.com/photo-1477322524744-0eece9e79640?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&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',thumb:'https://images.unsplash.com/photo-1469474968028-56623f02e42e?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80'},{src:"https://images.unsplash.com/photo-1510414842594-a61c69b5ae57?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1510414842594-a61c69b5ae57?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=2407&q=80"},{src:"https://images.unsplash.com/photo-1596370743446-6a7ef43a36f9?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1596370743446-6a7ef43a36f9?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1464852045489-bccb7d17fe39?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1464852045489-bccb7d17fe39?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1483728642387-6c3bdd6c93e5?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1483728642387-6c3bdd6c93e5?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1510011560141-62c7e8fc7908?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1510011560141-62c7e8fc7908?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1586276393635-5ecd8a851acc?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1586276393635-5ecd8a851acc?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1471931452361-f5ff1faa15ad?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1471931452361-f5ff1faa15ad?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1508766206392-8bd5cf550d1c?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1508766206392-8bd5cf550d1c?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1610448721566-47369c768e70?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1610448721566-47369c768e70?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"}],dynamicimgGallery=window.lightGallery($dynamicimgGallery[0],{dynamic:!0,hash:!1,rotate:!1,plugins:[lgZoom,lgAutoplay,lgFullscreen,lgPager,lgRotate,lgShare,lgVideo],dynamicEl:dynamicimgEl}),$dynamicimgGallery.on('click',function(){dynamicimgGallery.openGallery(5)}),$('#gallery-dynamic-thumbnails .gallery-item').on('click',function(){var a=$(this).index();dynamicimgGallery.openGallery(a)}),jQuery('#gallery-dynamic-thumbnails').justifiedGallery({captions:!1,lastRow:'justify',rowHeight:180,margins:5}),$('#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/main.a1906c943966d40d6cb2b5f3b17314c2a6f90bb00bb982b004c721a2432a1cd716e06fec1037148b75dafea174e5c45d7161ad9ea4cafc125c3d7cd6ac473f1e.css b/main.a1906c943966d40d6cb2b5f3b17314c2a6f90bb00bb982b004c721a2432a1cd716e06fec1037148b75dafea174e5c45d7161ad9ea4cafc125c3d7cd6ac473f1e.css new file mode 100644 index 000000000..b4149d740 --- /dev/null +++ b/main.a1906c943966d40d6cb2b5f3b17314c2a6f90bb00bb982b004c721a2432a1cd716e06fec1037148b75dafea174e5c45d7161ad9ea4cafc125c3d7cd6ac473f1e.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)}[tabindex="-1"]:focus:not(:focus-visible){outline:0 !important}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}h6,.h6,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}h6,.h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title],abbr[data-bs-original-title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small,.small{font-size:.875em}mark,.mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}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}thead,tbody,tfoot,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,textarea{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="reset"],[type="submit"]{-webkit-appearance:button}button:not(:disabled),[type="button"]:not(:disabled),[type="reset"]:not(:disabled),[type="submit"]:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width: 1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type="search"]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}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}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.3}@media (min-width: 1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.3}@media (min-width: 1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.3}@media (min-width: 1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.3}@media (min-width: 1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.3}@media (min-width: 1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.3}@media (min-width: 1200px){.display-6{font-size:2.5rem}}.list-unstyled,.comment-list{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:#6c757d}.container,.container-fluid,.container-xxl,.container-xl,.container-lg,.container-md,.container-sm{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-sm,.container{max-width:540px}}@media (min-width: 768px){.container-md,.container-sm,.container{max-width:720px}}@media (min-width: 992px){.container-lg,.container-md,.container-sm,.container{max-width:960px}}@media (min-width: 1200px){.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1140px}}@media (min-width: 1400px){.container-xxl,.container-xl,.container-lg,.container-md,.container-sm,.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{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.66666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x: 0}.g-0,.gy-0{--bs-gutter-y: 0}.g-1,.gx-1{--bs-gutter-x: .25rem}.g-1,.gy-1{--bs-gutter-y: .25rem}.g-2,.gx-2{--bs-gutter-x: .5rem}.g-2,.gy-2{--bs-gutter-y: .5rem}.g-3,.gx-3{--bs-gutter-x: 1rem}.g-3,.gy-3{--bs-gutter-y: 1rem}.g-4,.gx-4{--bs-gutter-x: 8rem}.g-4,.gy-4{--bs-gutter-y: 8rem}.g-5,.gx-5{--bs-gutter-x: 3rem}.g-5,.gy-5{--bs-gutter-y: 3rem}@media (min-width: 576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.66666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x: 0}.g-sm-0,.gy-sm-0{--bs-gutter-y: 0}.g-sm-1,.gx-sm-1{--bs-gutter-x: .25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y: .25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x: .5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y: .5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x: 1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y: 1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x: 8rem}.g-sm-4,.gy-sm-4{--bs-gutter-y: 8rem}.g-sm-5,.gx-sm-5{--bs-gutter-x: 3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y: 3rem}}@media (min-width: 768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.66666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.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-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x: 0}.g-md-0,.gy-md-0{--bs-gutter-y: 0}.g-md-1,.gx-md-1{--bs-gutter-x: .25rem}.g-md-1,.gy-md-1{--bs-gutter-y: .25rem}.g-md-2,.gx-md-2{--bs-gutter-x: .5rem}.g-md-2,.gy-md-2{--bs-gutter-y: .5rem}.g-md-3,.gx-md-3{--bs-gutter-x: 1rem}.g-md-3,.gy-md-3{--bs-gutter-y: 1rem}.g-md-4,.gx-md-4{--bs-gutter-x: 8rem}.g-md-4,.gy-md-4{--bs-gutter-y: 8rem}.g-md-5,.gx-md-5{--bs-gutter-x: 3rem}.g-md-5,.gy-md-5{--bs-gutter-y: 3rem}}@media (min-width: 992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.66666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.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-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x: 0}.g-lg-0,.gy-lg-0{--bs-gutter-y: 0}.g-lg-1,.gx-lg-1{--bs-gutter-x: .25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y: .25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x: .5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y: .5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x: 1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y: 1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x: 8rem}.g-lg-4,.gy-lg-4{--bs-gutter-y: 8rem}.g-lg-5,.gx-lg-5{--bs-gutter-x: 3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y: 3rem}}@media (min-width: 1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.66666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x: 0}.g-xl-0,.gy-xl-0{--bs-gutter-y: 0}.g-xl-1,.gx-xl-1{--bs-gutter-x: .25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y: .25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x: .5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y: .5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x: 1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y: 1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x: 8rem}.g-xl-4,.gy-xl-4{--bs-gutter-y: 8rem}.g-xl-5,.gx-xl-5{--bs-gutter-x: 3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y: 3rem}}@media (min-width: 1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.66666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x: 0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y: 0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x: .25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y: .25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x: .5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y: .5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x: 1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y: 1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x: 8rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y: 8rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x: 3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y: 3rem}}.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>tbody,table>tbody{vertical-align:inherit}.table>thead,table>thead{vertical-align:bottom}.table>:not(:last-child)>:last-child>*,table>:not(:last-child)>:last-child>*{border-bottom-color:currentColor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-striped>tbody>tr:nth-of-type(odd){--bs-table-accent-bg: var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-active{--bs-table-accent-bg: var(--bs-table-active-bg);color:var(--bs-table-active-color)}.table-hover>tbody>tr:hover{--bs-table-accent-bg: var(--bs-table-hover-bg);color:var(--bs-table-hover-color)}.table-primary{--bs-table-bg: #cfd6e6;--bs-table-striped-bg: #c7cedd;--bs-table-striped-color: #333;--bs-table-active-bg: #bfc6d4;--bs-table-active-color: #333;--bs-table-hover-bg: #c3cad9;--bs-table-hover-color: #333;color:#333;border-color:#bfc6d4}.table-secondary{--bs-table-bg: #e2e3e5;--bs-table-striped-bg: #d9dadc;--bs-table-striped-color: #333;--bs-table-active-bg: #d1d1d3;--bs-table-active-color: #333;--bs-table-hover-bg: #d5d6d8;--bs-table-hover-color: #333;color:#333;border-color:#d1d1d3}.table-success{--bs-table-bg: #d1e7dd;--bs-table-striped-bg: #c9ded5;--bs-table-striped-color: #333;--bs-table-active-bg: #c1d5cc;--bs-table-active-color: #333;--bs-table-hover-bg: #c5dad0;--bs-table-hover-color: #333;color:#333;border-color:#c1d5cc}.table-info{--bs-table-bg: #cff4fc;--bs-table-striped-bg: #c7eaf2;--bs-table-striped-color: #333;--bs-table-active-bg: #bfe1e8;--bs-table-active-color: #333;--bs-table-hover-bg: #c3e6ed;--bs-table-hover-color: #333;color:#333;border-color:#bfe1e8}.table-warning{--bs-table-bg: #fff3cd;--bs-table-striped-bg: #f5e9c5;--bs-table-striped-color: #333;--bs-table-active-bg: #ebe0be;--bs-table-active-color: #333;--bs-table-hover-bg: #f0e5c1;--bs-table-hover-color: #333;color:#333;border-color:#ebe0be}.table-danger{--bs-table-bg: #f8d7da;--bs-table-striped-bg: #eecfd2;--bs-table-striped-color: #333;--bs-table-active-bg: #e4c7c9;--bs-table-active-color: #333;--bs-table-hover-bg: #e9cbcd;--bs-table-hover-color: #333;color:#333;border-color:#e4c7c9}.table-light{--bs-table-bg: #f8f9fa;--bs-table-striped-bg: #eeeff0;--bs-table-striped-color: #333;--bs-table-active-bg: #e4e5e6;--bs-table-active-color: #333;--bs-table-hover-bg: #e9eaeb;--bs-table-hover-color: #333;color:#333;border-color:#e4e5e6}.table-dark{--bs-table-bg: #212529;--bs-table-striped-bg: #2c3034;--bs-table-striped-color: #fff;--bs-table-active-bg: #373b3e;--bs-table-active-color: #fff;--bs-table-hover-bg: #323539;--bs-table-hover-color: #fff;color:#fff;border-color:#373b3e}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width: 575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:#6c757d}.form-control,.search-form .search-field,.comment-form input[type="text"],.comment-form input[type="email"],.comment-form input[type="url"],.comment-form textarea{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,.search-form .search-field,.comment-form input[type="text"],.comment-form input[type="email"],.comment-form input[type="url"],.comment-form textarea{transition:none}}.form-control[type="file"],.search-form [type="file"].search-field,.comment-form input[type="file"][type="text"],.comment-form input[type="file"][type="email"],.comment-form input[type="file"][type="url"],.comment-form textarea[type="file"]{overflow:hidden}.form-control[type="file"]:not(:disabled):not([readonly]),.search-form [type="file"].search-field:not(:disabled):not([readonly]),.comment-form input[type="file"][type="text"]:not(:disabled):not([readonly]),.comment-form input[type="file"][type="email"]:not(:disabled):not([readonly]),.comment-form input[type="file"][type="url"]:not(:disabled):not([readonly]),.comment-form textarea[type="file"]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus,.search-form .search-field:focus,.comment-form input[type="text"]:focus,.comment-form input[type="email"]:focus,.comment-form input[type="url"]:focus,.comment-form textarea: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,.search-form .search-field::-webkit-date-and-time-value,.comment-form input[type="text"]::-webkit-date-and-time-value,.comment-form input[type="email"]::-webkit-date-and-time-value,.comment-form input[type="url"]::-webkit-date-and-time-value,.comment-form textarea::-webkit-date-and-time-value{height:1.5em}.form-control::-moz-placeholder, .search-form .search-field::-moz-placeholder, .comment-form input[type="text"]::-moz-placeholder, .comment-form input[type="email"]::-moz-placeholder, .comment-form input[type="url"]::-moz-placeholder, .comment-form textarea::-moz-placeholder{color:#6c757d;opacity:1}.form-control::placeholder,.search-form .search-field::placeholder,.comment-form input[type="text"]::placeholder,.comment-form input[type="email"]::placeholder,.comment-form input[type="url"]::placeholder,.comment-form textarea::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.search-form .search-field:disabled,.comment-form input[type="text"]:disabled,.comment-form input[type="email"]:disabled,.comment-form input[type="url"]:disabled,.comment-form textarea:disabled,.form-control[readonly],.search-form [readonly].search-field,.comment-form input[readonly][type="text"],.comment-form input[readonly][type="email"],.comment-form input[readonly][type="url"],.comment-form textarea[readonly]{background-color:#f6f8fa;opacity:1}.form-control::file-selector-button,.search-form .search-field::file-selector-button,.comment-form input[type="text"]::file-selector-button,.comment-form input[type="email"]::file-selector-button,.comment-form input[type="url"]::file-selector-button,.comment-form textarea::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.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,.search-form .search-field::file-selector-button,.comment-form input[type="text"]::file-selector-button,.comment-form input[type="email"]::file-selector-button,.comment-form input[type="url"]::file-selector-button,.comment-form textarea::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button,.search-form .search-field:hover:not(:disabled):not([readonly])::file-selector-button,.comment-form input[type="text"]:hover:not(:disabled):not([readonly])::file-selector-button,.comment-form input[type="email"]:hover:not(:disabled):not([readonly])::file-selector-button,.comment-form input[type="url"]:hover:not(:disabled):not([readonly])::file-selector-button,.comment-form textarea:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#eaecee}.form-control::-webkit-file-upload-button,.search-form .search-field::-webkit-file-upload-button,.comment-form input[type="text"]::-webkit-file-upload-button,.comment-form input[type="email"]::-webkit-file-upload-button,.comment-form input[type="url"]::-webkit-file-upload-button,.comment-form textarea::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.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,.search-form .search-field::-webkit-file-upload-button,.comment-form input[type="text"]::-webkit-file-upload-button,.comment-form input[type="email"]::-webkit-file-upload-button,.comment-form input[type="url"]::-webkit-file-upload-button,.comment-form textarea::-webkit-file-upload-button{-webkit-transition:none;transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button,.search-form .search-field:hover:not(:disabled):not([readonly])::-webkit-file-upload-button,.comment-form input[type="text"]:hover:not(:disabled):not([readonly])::-webkit-file-upload-button,.comment-form input[type="email"]:hover:not(:disabled):not([readonly])::-webkit-file-upload-button,.comment-form input[type="url"]:hover:not(:disabled):not([readonly])::-webkit-file-upload-button,.comment-form textarea:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#eaecee}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:#333;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;margin-inline-end:.5rem}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;margin-inline-end:1rem}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;margin-inline-end:1rem}textarea.form-control,.search-form textarea.search-field{min-height:calc(1.5em + .75rem + 2px)}textarea.form-control-sm{min-height:calc(1.5em + .5rem + 2px)}textarea.form-control-lg{min-height:calc(1.5em + 1rem + 2px)}.form-control-color{max-width:3rem;height:auto;padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{height:1.5em;border-radius:.25rem}.form-control-color::-webkit-color-swatch{height:1.5em;border-radius:.25rem}.form-select{display:block;width:100%;padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#333;vertical-align:middle;background-color:#fff;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-select:focus{border-color:#879ac0;outline:0;box-shadow:0 0 0 .25rem rgba(14,52,129,0.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{color:#6c757d;background-color:#f6f8fa}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #333}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-input{width:1em;height:1em;margin-top:.25em;vertical-align:top;background-color:#fff;background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid rgba(0,0,0,0.25);-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact;transition:background-color 0.15s ease-in-out,background-position 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-check-input{transition:none}}.form-check-input[type="checkbox"]{border-radius:.25em}.form-check-input[type="radio"]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#879ac0;outline:0;box-shadow:0 0 0 .25rem rgba(14,52,129,0.25)}.form-check-input:checked{background-color:#0e3481;border-color:#0e3481}.form-check-input:checked[type="checkbox"]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type="radio"]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type="checkbox"]:indeterminate{background-color:#0e3481;border-color:#0e3481;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input[disabled]~.form-check-label,.form-check-input:disabled~.form-check-label{opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{width:2em;margin-left:-2.5em;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280,0,0,0.25%29'/%3e%3c/svg%3e");background-position:left center;border-radius:2em}.form-switch .form-check-input:focus{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23879ac0'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.btn-check[disabled]+.btn,.search-form .btn-check[disabled]+.search-submit,.comment-form .btn-check[disabled]+input[type="submit"],.btn-check:disabled+.btn,.search-form .btn-check:disabled+.search-submit,.comment-form .btn-check:disabled+input[type="submit"]{pointer-events:none;filter:none;opacity:.65}.form-range{width:100%;height:1.5rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-range:focus{outline:none}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(14,52,129,0.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(14,52,129,0.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#0e3481;border:0;border-radius:1rem;-webkit-transition:background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out;transition:background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion: reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b7c2d9}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#0e3481;border:0;border-radius:1rem;-moz-transition:background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out;transition:background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion: reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#b7c2d9}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.form-range:disabled::-moz-range-thumb{background-color:#adb5bd}.form-floating{position:relative}.form-floating>.form-control,.search-form .form-floating>.search-field,.comment-form .form-floating>input[type="text"],.comment-form .form-floating>input[type="email"],.comment-form .form-floating>input[type="url"],.comment-form .form-floating>textarea,.form-floating>.form-select{height:calc(3.5rem + 2px);padding:1rem .75rem}.form-floating>label{position:absolute;top:0;left:0;height:100%;padding:1rem .75rem;pointer-events:none;border:1px solid transparent;transform-origin:0 0;transition:opacity 0.1s ease-in-out,transform 0.1s ease-in-out}@media (prefers-reduced-motion: reduce){.form-floating>label{transition:none}}.form-floating>.form-control::-moz-placeholder, .search-form .form-floating>.search-field::-moz-placeholder, .comment-form .form-floating>input[type="text"]::-moz-placeholder, .comment-form .form-floating>input[type="email"]::-moz-placeholder, .comment-form .form-floating>input[type="url"]::-moz-placeholder, .comment-form .form-floating>textarea::-moz-placeholder{color:transparent}.form-floating>.form-control::placeholder,.search-form .form-floating>.search-field::placeholder,.comment-form .form-floating>input[type="text"]::placeholder,.comment-form .form-floating>input[type="email"]::placeholder,.comment-form .form-floating>input[type="url"]::placeholder,.comment-form .form-floating>textarea::placeholder{color:transparent}.form-floating>.form-control:not(:-moz-placeholder-shown), .search-form .form-floating>.search-field:not(:-moz-placeholder-shown), .comment-form .form-floating>input[type="text"]:not(:-moz-placeholder-shown), .comment-form .form-floating>input[type="email"]:not(:-moz-placeholder-shown), .comment-form .form-floating>input[type="url"]:not(:-moz-placeholder-shown), .comment-form .form-floating>textarea:not(:-moz-placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus,.search-form .form-floating>.search-field:focus,.comment-form .form-floating>input[type="text"]:focus,.comment-form .form-floating>input[type="email"]:focus,.comment-form .form-floating>input[type="url"]:focus,.comment-form .form-floating>textarea:focus,.form-floating>.form-control:not(:placeholder-shown),.search-form .form-floating>.search-field:not(:placeholder-shown),.comment-form .form-floating>input[type="text"]:not(:placeholder-shown),.comment-form .form-floating>input[type="email"]:not(:placeholder-shown),.comment-form .form-floating>input[type="url"]:not(:placeholder-shown),.comment-form .form-floating>textarea:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill,.search-form .form-floating>.search-field:-webkit-autofill,.comment-form .form-floating>input[type="text"]:-webkit-autofill,.comment-form .form-floating>input[type="email"]:-webkit-autofill,.comment-form .form-floating>input[type="url"]:-webkit-autofill,.comment-form .form-floating>textarea:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-moz-placeholder-shown)~label, .search-form .form-floating>.search-field:not(:-moz-placeholder-shown)~label, .comment-form .form-floating>input[type="text"]:not(:-moz-placeholder-shown)~label, .comment-form .form-floating>input[type="email"]:not(:-moz-placeholder-shown)~label, .comment-form .form-floating>input[type="url"]:not(:-moz-placeholder-shown)~label, .comment-form .form-floating>textarea:not(:-moz-placeholder-shown)~label{opacity:.65;transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control:focus~label,.search-form .form-floating>.search-field:focus~label,.comment-form .form-floating>input[type="text"]:focus~label,.comment-form .form-floating>input[type="email"]:focus~label,.comment-form .form-floating>input[type="url"]:focus~label,.comment-form .form-floating>textarea:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.search-form .form-floating>.search-field:not(:placeholder-shown)~label,.comment-form .form-floating>input[type="text"]:not(:placeholder-shown)~label,.comment-form .form-floating>input[type="email"]:not(:placeholder-shown)~label,.comment-form .form-floating>input[type="url"]:not(:placeholder-shown)~label,.comment-form .form-floating>textarea:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.65;transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control:-webkit-autofill~label,.search-form .form-floating>.search-field:-webkit-autofill~label,.comment-form .form-floating>input[type="text"]:-webkit-autofill~label,.comment-form .form-floating>input[type="email"]:-webkit-autofill~label,.comment-form .form-floating>input[type="url"]:-webkit-autofill~label,.comment-form .form-floating>textarea:-webkit-autofill~label{opacity:.65;transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.search-form .input-group>.search-field,.comment-form .input-group>input[type="text"],.comment-form .input-group>input[type="email"],.comment-form .input-group>input[type="url"],.comment-form .input-group>textarea,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.search-form .input-group>.search-field:focus,.comment-form .input-group>input[type="text"]:focus,.comment-form .input-group>input[type="email"]:focus,.comment-form .input-group>input[type="url"]:focus,.comment-form .input-group>textarea:focus,.input-group>.form-select:focus{z-index:3}.input-group .btn,.input-group .search-form .search-submit,.search-form .input-group .search-submit,.input-group .comment-form input[type="submit"],.comment-form .input-group input[type="submit"]{position:relative;z-index:2}.input-group .btn:focus,.input-group .search-form .search-submit:focus,.search-form .input-group .search-submit:focus,.input-group .comment-form input[type="submit"]:focus,.comment-form .input-group input[type="submit"]:focus{z-index:3}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#333;text-align:center;white-space:nowrap;background-color:#f6f8fa;border:1px solid #ced4da;border-radius:.25rem}.input-group-lg>.form-control,.search-form .input-group-lg>.search-field,.comment-form .input-group-lg>input[type="text"],.comment-form .input-group-lg>input[type="email"],.comment-form .input-group-lg>input[type="url"],.comment-form .input-group-lg>textarea,.input-group-lg>.form-select,.input-group-lg>.input-group-text,.input-group-lg>.btn,.search-form .input-group-lg>.search-submit,.comment-form .input-group-lg>input[type="submit"]{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.input-group-sm>.form-control,.search-form .input-group-sm>.search-field,.comment-form .input-group-sm>input[type="text"],.comment-form .input-group-sm>input[type="email"],.comment-form .input-group-sm>input[type="url"],.comment-form .input-group-sm>textarea,.input-group-sm>.form-select,.input-group-sm>.input-group-text,.input-group-sm>.btn,.search-form .input-group-sm>.search-submit,.comment-form .input-group-sm>input[type="submit"]{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:1.75rem}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n + 3){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>:nth-last-child(n + 3):not(.dropdown-toggle):not(.dropdown-menu),.input-group.has-validation>.dropdown-toggle:nth-last-child(n + 4){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#198754}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(25,135,84,0.9);border-radius:.25rem}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.was-validated .search-form .search-field:valid,.search-form .was-validated .search-field:valid,.was-validated .comment-form input[type="text"]:valid,.comment-form .was-validated input[type="text"]:valid,.was-validated .comment-form input[type="email"]:valid,.comment-form .was-validated input[type="email"]:valid,.was-validated .comment-form input[type="url"]:valid,.comment-form .was-validated input[type="url"]:valid,.was-validated .comment-form textarea:valid,.comment-form .was-validated textarea:valid,.form-control.is-valid,.search-form .is-valid.search-field,.comment-form input.is-valid[type="text"],.comment-form input.is-valid[type="email"],.comment-form input.is-valid[type="url"],.comment-form textarea.is-valid{border-color:#198754;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:valid:focus,.was-validated .search-form .search-field:valid:focus,.search-form .was-validated .search-field:valid:focus,.was-validated .comment-form input[type="text"]:valid:focus,.comment-form .was-validated input[type="text"]:valid:focus,.was-validated .comment-form input[type="email"]:valid:focus,.comment-form .was-validated input[type="email"]:valid:focus,.was-validated .comment-form input[type="url"]:valid:focus,.comment-form .was-validated input[type="url"]:valid:focus,.was-validated .comment-form textarea:valid:focus,.comment-form .was-validated textarea:valid:focus,.form-control.is-valid:focus,.search-form .is-valid.search-field:focus,.comment-form input.is-valid[type="text"]:focus,.comment-form input.is-valid[type="email"]:focus,.comment-form input.is-valid[type="url"]:focus,.comment-form textarea.is-valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,0.25)}.was-validated textarea.form-control:valid,.was-validated .search-form textarea.search-field:valid,.search-form .was-validated textarea.search-field:valid,textarea.form-control.is-valid,.search-form textarea.is-valid.search-field{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .form-select:valid,.form-select.is-valid{border-color:#198754;padding-right:calc(.75em + 2.3125rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-position:right .75rem center,center right 1.75rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,0.25)}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:#198754}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:#198754}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,0.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:#198754}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(220,53,69,0.9);border-radius:.25rem}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.was-validated .search-form .search-field:invalid,.search-form .was-validated .search-field:invalid,.was-validated .comment-form input[type="text"]:invalid,.comment-form .was-validated input[type="text"]:invalid,.was-validated .comment-form input[type="email"]:invalid,.comment-form .was-validated input[type="email"]:invalid,.was-validated .comment-form input[type="url"]:invalid,.comment-form .was-validated input[type="url"]:invalid,.was-validated .comment-form textarea:invalid,.comment-form .was-validated textarea:invalid,.form-control.is-invalid,.search-form .is-invalid.search-field,.comment-form input.is-invalid[type="text"],.comment-form input.is-invalid[type="email"],.comment-form input.is-invalid[type="url"],.comment-form textarea.is-invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:invalid:focus,.was-validated .search-form .search-field:invalid:focus,.search-form .was-validated .search-field:invalid:focus,.was-validated .comment-form input[type="text"]:invalid:focus,.comment-form .was-validated input[type="text"]:invalid:focus,.was-validated .comment-form input[type="email"]:invalid:focus,.comment-form .was-validated input[type="email"]:invalid:focus,.was-validated .comment-form input[type="url"]:invalid:focus,.comment-form .was-validated input[type="url"]:invalid:focus,.was-validated .comment-form textarea:invalid:focus,.comment-form .was-validated textarea:invalid:focus,.form-control.is-invalid:focus,.search-form .is-invalid.search-field:focus,.comment-form input.is-invalid[type="text"]:focus,.comment-form input.is-invalid[type="email"]:focus,.comment-form input.is-invalid[type="url"]:focus,.comment-form textarea.is-invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,0.25)}.was-validated textarea.form-control:invalid,.was-validated .search-form textarea.search-field:invalid,.search-form .was-validated textarea.search-field:invalid,textarea.form-control.is-invalid,.search-form textarea.is-invalid.search-field{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .form-select:invalid,.form-select.is-invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-position:right .75rem center,center right 1.75rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,0.25)}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:#dc3545}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:#dc3545}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,0.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:#dc3545}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.btn,.search-form .search-submit,.comment-form input[type="submit"]{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;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,.search-form .search-submit,.comment-form input[type="submit"]{transition:none}}.btn:hover,.search-form .search-submit:hover,.comment-form input[type="submit"]:hover{color:#333;text-decoration:none}.btn-check:focus+.btn,.search-form .btn-check:focus+.search-submit,.comment-form .btn-check:focus+input[type="submit"],.btn:focus,.search-form .search-submit:focus,.comment-form input[type="submit"]:focus{outline:0;box-shadow:0 0 0 .25rem rgba(14,52,129,0.25)}.btn:disabled,.search-form .search-submit:disabled,.comment-form input[type="submit"]:disabled,.btn.disabled,.search-form .disabled.search-submit,.comment-form input.disabled[type="submit"],fieldset:disabled .btn,fieldset:disabled .search-form .search-submit,.search-form fieldset:disabled .search-submit,fieldset:disabled .comment-form input[type="submit"],.comment-form fieldset:disabled input[type="submit"]{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-check:focus+.btn-primary,.btn-primary:focus{color:#fff;background-color:#0c2c6e;border-color:#0b2a67;box-shadow:0 0 0 .25rem rgba(50,82,148,0.5)}.btn-check:checked+.btn-primary,.btn-check:active+.btn-primary,.btn-primary:active,.btn-primary.active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0b2a67;border-color:#0b2761}.btn-check:checked+.btn-primary:focus,.btn-check:active+.btn-primary:focus,.btn-primary:active:focus,.btn-primary.active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(50,82,148,0.5)}.btn-primary:disabled,.btn-primary.disabled{color:#fff;background-color:#0e3481;border-color:#0e3481}.btn-secondary,.search-form .search-submit,.comment-form input[type="submit"]{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover,.search-form .search-submit:hover,.comment-form input[type="submit"]:hover{color:#fff;background-color:#5c636a;border-color:#565e64}.btn-check:focus+.btn-secondary,.search-form .btn-check:focus+.search-submit,.comment-form .btn-check:focus+input[type="submit"],.btn-secondary:focus,.search-form .search-submit:focus,.comment-form input[type="submit"]:focus{color:#fff;background-color:#5c636a;border-color:#565e64;box-shadow:0 0 0 .25rem rgba(130,138,145,0.5)}.btn-check:checked+.btn-secondary,.search-form .btn-check:checked+.search-submit,.comment-form .btn-check:checked+input[type="submit"],.btn-check:active+.btn-secondary,.search-form .btn-check:active+.search-submit,.comment-form .btn-check:active+input[type="submit"],.btn-secondary:active,.search-form .search-submit:active,.comment-form input[type="submit"]:active,.btn-secondary.active,.search-form .active.search-submit,.comment-form input.active[type="submit"],.show>.btn-secondary.dropdown-toggle,.search-form .show>.dropdown-toggle.search-submit,.comment-form .show>input.dropdown-toggle[type="submit"]{color:#fff;background-color:#565e64;border-color:#51585e}.btn-check:checked+.btn-secondary:focus,.search-form .btn-check:checked+.search-submit:focus,.comment-form .btn-check:checked+input[type="submit"]:focus,.btn-check:active+.btn-secondary:focus,.search-form .btn-check:active+.search-submit:focus,.comment-form .btn-check:active+input[type="submit"]:focus,.btn-secondary:active:focus,.search-form .search-submit:active:focus,.comment-form input[type="submit"]:active:focus,.btn-secondary.active:focus,.search-form .active.search-submit:focus,.comment-form input.active[type="submit"]:focus,.show>.btn-secondary.dropdown-toggle:focus,.search-form .show>.dropdown-toggle.search-submit:focus,.comment-form .show>input.dropdown-toggle[type="submit"]:focus{box-shadow:0 0 0 .25rem rgba(130,138,145,0.5)}.btn-secondary:disabled,.search-form .search-submit:disabled,.comment-form input[type="submit"]:disabled,.btn-secondary.disabled,.search-form .disabled.search-submit,.comment-form input.disabled[type="submit"]{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-success{color:#fff;background-color:#198754;border-color:#198754}.btn-success:hover{color:#fff;background-color:#157347;border-color:#146c43}.btn-check:focus+.btn-success,.btn-success:focus{color:#fff;background-color:#157347;border-color:#146c43;box-shadow:0 0 0 .25rem rgba(60,153,110,0.5)}.btn-check:checked+.btn-success,.btn-check:active+.btn-success,.btn-success:active,.btn-success.active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#146c43;border-color:#13653f}.btn-check:checked+.btn-success:focus,.btn-check:active+.btn-success:focus,.btn-success:active:focus,.btn-success.active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(60,153,110,0.5)}.btn-success:disabled,.btn-success.disabled{color:#fff;background-color:#198754;border-color:#198754}.btn-info{color:#333;background-color:#0dcaf0;border-color:#0dcaf0}.btn-info:hover{color:#333;background-color:#31d2f2;border-color:#25cff2}.btn-check:focus+.btn-info,.btn-info:focus{color:#333;background-color:#31d2f2;border-color:#25cff2;box-shadow:0 0 0 .25rem rgba(19,179,212,0.5)}.btn-check:checked+.btn-info,.btn-check:active+.btn-info,.btn-info:active,.btn-info.active,.show>.btn-info.dropdown-toggle{color:#333;background-color:#3dd5f3;border-color:#25cff2}.btn-check:checked+.btn-info:focus,.btn-check:active+.btn-info:focus,.btn-info:active:focus,.btn-info.active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(19,179,212,0.5)}.btn-info:disabled,.btn-info.disabled{color:#333;background-color:#0dcaf0;border-color:#0dcaf0}.btn-warning{color:#333;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#333;background-color:#ffca2c;border-color:#ffc720}.btn-check:focus+.btn-warning,.btn-warning:focus{color:#333;background-color:#ffca2c;border-color:#ffc720;box-shadow:0 0 0 .25rem rgba(224,172,14,0.5)}.btn-check:checked+.btn-warning,.btn-check:active+.btn-warning,.btn-warning:active,.btn-warning.active,.show>.btn-warning.dropdown-toggle{color:#333;background-color:#ffcd39;border-color:#ffc720}.btn-check:checked+.btn-warning:focus,.btn-check:active+.btn-warning:focus,.btn-warning:active:focus,.btn-warning.active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(224,172,14,0.5)}.btn-warning:disabled,.btn-warning.disabled{color:#333;background-color:#ffc107;border-color:#ffc107}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#bb2d3b;border-color:#b02a37}.btn-check:focus+.btn-danger,.btn-danger:focus{color:#fff;background-color:#bb2d3b;border-color:#b02a37;box-shadow:0 0 0 .25rem rgba(225,83,97,0.5)}.btn-check:checked+.btn-danger,.btn-check:active+.btn-danger,.btn-danger:active,.btn-danger.active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#b02a37;border-color:#a52834}.btn-check:checked+.btn-danger:focus,.btn-check:active+.btn-danger:focus,.btn-danger:active:focus,.btn-danger.active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(225,83,97,0.5)}.btn-danger:disabled,.btn-danger.disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-light{color:#333;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#333;background-color:#f9fafb;border-color:#f9fafb}.btn-check:focus+.btn-light,.btn-light:focus{color:#333;background-color:#f9fafb;border-color:#f9fafb;box-shadow:0 0 0 .25rem rgba(218,219,220,0.5)}.btn-check:checked+.btn-light,.btn-check:active+.btn-light,.btn-light:active,.btn-light.active,.show>.btn-light.dropdown-toggle{color:#333;background-color:#f9fafb;border-color:#f9fafb}.btn-check:checked+.btn-light:focus,.btn-check:active+.btn-light:focus,.btn-light:active:focus,.btn-light.active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(218,219,220,0.5)}.btn-light:disabled,.btn-light.disabled{color:#333;background-color:#f8f9fa;border-color:#f8f9fa}.btn-dark{color:#fff;background-color:#212529;border-color:#212529}.btn-dark:hover{color:#fff;background-color:#1c1f23;border-color:#1a1e21}.btn-check:focus+.btn-dark,.btn-dark:focus{color:#fff;background-color:#1c1f23;border-color:#1a1e21;box-shadow:0 0 0 .25rem rgba(66,70,73,0.5)}.btn-check:checked+.btn-dark,.btn-check:active+.btn-dark,.btn-dark:active,.btn-dark.active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1a1e21;border-color:#191c1f}.btn-check:checked+.btn-dark:focus,.btn-check:active+.btn-dark:focus,.btn-dark:active:focus,.btn-dark.active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(66,70,73,0.5)}.btn-dark:disabled,.btn-dark.disabled{color:#fff;background-color:#212529;border-color:#212529}.btn-outline-primary{color:#0e3481;border-color:#0e3481}.btn-outline-primary:hover{color:#fff;background-color:#0e3481;border-color:#0e3481}.btn-check:focus+.btn-outline-primary,.btn-outline-primary:focus{box-shadow:0 0 0 .25rem rgba(14,52,129,0.5)}.btn-check:checked+.btn-outline-primary,.btn-check:active+.btn-outline-primary,.btn-outline-primary:active,.btn-outline-primary.active,.btn-outline-primary.dropdown-toggle.show{color:#fff;background-color:#0e3481;border-color:#0e3481}.btn-check:checked+.btn-outline-primary:focus,.btn-check:active+.btn-outline-primary:focus,.btn-outline-primary:active:focus,.btn-outline-primary.active:focus,.btn-outline-primary.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(14,52,129,0.5)}.btn-outline-primary:disabled,.btn-outline-primary.disabled{color:#0e3481;background-color:transparent}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:focus+.btn-outline-secondary,.btn-outline-secondary:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,0.5)}.btn-check:checked+.btn-outline-secondary,.btn-check:active+.btn-outline-secondary,.btn-outline-secondary:active,.btn-outline-secondary.active,.btn-outline-secondary.dropdown-toggle.show{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:checked+.btn-outline-secondary:focus,.btn-check:active+.btn-outline-secondary:focus,.btn-outline-secondary:active:focus,.btn-outline-secondary.active:focus,.btn-outline-secondary.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,0.5)}.btn-outline-secondary:disabled,.btn-outline-secondary.disabled{color:#6c757d;background-color:transparent}.btn-outline-success{color:#198754;border-color:#198754}.btn-outline-success:hover{color:#fff;background-color:#198754;border-color:#198754}.btn-check:focus+.btn-outline-success,.btn-outline-success:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,0.5)}.btn-check:checked+.btn-outline-success,.btn-check:active+.btn-outline-success,.btn-outline-success:active,.btn-outline-success.active,.btn-outline-success.dropdown-toggle.show{color:#fff;background-color:#198754;border-color:#198754}.btn-check:checked+.btn-outline-success:focus,.btn-check:active+.btn-outline-success:focus,.btn-outline-success:active:focus,.btn-outline-success.active:focus,.btn-outline-success.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,0.5)}.btn-outline-success:disabled,.btn-outline-success.disabled{color:#198754;background-color:transparent}.btn-outline-info{color:#0dcaf0;border-color:#0dcaf0}.btn-outline-info:hover{color:#333;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:focus+.btn-outline-info,.btn-outline-info:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,0.5)}.btn-check:checked+.btn-outline-info,.btn-check:active+.btn-outline-info,.btn-outline-info:active,.btn-outline-info.active,.btn-outline-info.dropdown-toggle.show{color:#333;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:checked+.btn-outline-info:focus,.btn-check:active+.btn-outline-info:focus,.btn-outline-info:active:focus,.btn-outline-info.active:focus,.btn-outline-info.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,0.5)}.btn-outline-info:disabled,.btn-outline-info.disabled{color:#0dcaf0;background-color:transparent}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#333;background-color:#ffc107;border-color:#ffc107}.btn-check:focus+.btn-outline-warning,.btn-outline-warning:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,0.5)}.btn-check:checked+.btn-outline-warning,.btn-check:active+.btn-outline-warning,.btn-outline-warning:active,.btn-outline-warning.active,.btn-outline-warning.dropdown-toggle.show{color:#333;background-color:#ffc107;border-color:#ffc107}.btn-check:checked+.btn-outline-warning:focus,.btn-check:active+.btn-outline-warning:focus,.btn-outline-warning:active:focus,.btn-outline-warning.active:focus,.btn-outline-warning.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,0.5)}.btn-outline-warning:disabled,.btn-outline-warning.disabled{color:#ffc107;background-color:transparent}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:focus+.btn-outline-danger,.btn-outline-danger:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,0.5)}.btn-check:checked+.btn-outline-danger,.btn-check:active+.btn-outline-danger,.btn-outline-danger:active,.btn-outline-danger.active,.btn-outline-danger.dropdown-toggle.show{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:checked+.btn-outline-danger:focus,.btn-check:active+.btn-outline-danger:focus,.btn-outline-danger:active:focus,.btn-outline-danger.active:focus,.btn-outline-danger.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,0.5)}.btn-outline-danger:disabled,.btn-outline-danger.disabled{color:#dc3545;background-color:transparent}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#333;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:focus+.btn-outline-light,.btn-outline-light:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,0.5)}.btn-check:checked+.btn-outline-light,.btn-check:active+.btn-outline-light,.btn-outline-light:active,.btn-outline-light.active,.btn-outline-light.dropdown-toggle.show{color:#333;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:checked+.btn-outline-light:focus,.btn-check:active+.btn-outline-light:focus,.btn-outline-light:active:focus,.btn-outline-light.active:focus,.btn-outline-light.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,0.5)}.btn-outline-light:disabled,.btn-outline-light.disabled{color:#f8f9fa;background-color:transparent}.btn-outline-dark{color:#212529;border-color:#212529}.btn-outline-dark:hover{color:#fff;background-color:#212529;border-color:#212529}.btn-check:focus+.btn-outline-dark,.btn-outline-dark:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,0.5)}.btn-check:checked+.btn-outline-dark,.btn-check:active+.btn-outline-dark,.btn-outline-dark:active,.btn-outline-dark.active,.btn-outline-dark.dropdown-toggle.show{color:#fff;background-color:#212529;border-color:#212529}.btn-check:checked+.btn-outline-dark:focus,.btn-check:active+.btn-outline-dark:focus,.btn-outline-dark:active:focus,.btn-outline-dark.active:focus,.btn-outline-dark.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,0.5)}.btn-outline-dark:disabled,.btn-outline-dark.disabled{color:#212529;background-color:transparent}.btn-link{font-weight:400;color:#115df6;text-decoration:none}.btn-link:hover{color:#1250cc;text-decoration:underline}.btn-link:focus{text-decoration:underline}.btn-link:disabled,.btn-link.disabled{color:#6c757d}.btn-lg,.btn-group-lg>.btn,.search-form .btn-group-lg>.search-submit,.comment-form .btn-group-lg>input[type="submit"]{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.btn-sm,.btn-group-sm>.btn,.search-form .btn-group-sm>.search-submit,.comment-form .btn-group-sm>input[type="submit"]{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.fade{transition:opacity 0.15s linear}@media (prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height 0.35s ease}@media (prefers-reduced-motion: reduce){.collapsing{transition:none}}.dropup,.dropend,.dropdown,.dropstart{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#333;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(51,51,51,0.15);border-radius:.25rem}.dropdown-menu[style]{right:auto !important}.dropdown-menu-start{--bs-position: start;right:auto /* rtl:ignore */;left:0 /* rtl:ignore */}.dropdown-menu-end{--bs-position: end;right:0 /* rtl:ignore */;left:auto /* rtl:ignore */}@media (min-width: 576px){.dropdown-menu-sm-start{--bs-position: start;right:auto /* rtl:ignore */;left:0 /* rtl:ignore */}.dropdown-menu-sm-end{--bs-position: end;right:0 /* rtl:ignore */;left:auto /* rtl:ignore */}}@media (min-width: 768px){.dropdown-menu-md-start{--bs-position: start;right:auto /* rtl:ignore */;left:0 /* rtl:ignore */}.dropdown-menu-md-end{--bs-position: end;right:0 /* rtl:ignore */;left:auto /* rtl:ignore */}}@media (min-width: 992px){.dropdown-menu-lg-start{--bs-position: start;right:auto /* rtl:ignore */;left:0 /* rtl:ignore */}.dropdown-menu-lg-end{--bs-position: end;right:0 /* rtl:ignore */;left:auto /* rtl:ignore */}}@media (min-width: 1200px){.dropdown-menu-xl-start{--bs-position: start;right:auto /* rtl:ignore */;left:0 /* rtl:ignore */}.dropdown-menu-xl-end{--bs-position: end;right:0 /* rtl:ignore */;left:auto /* rtl:ignore */}}@media (min-width: 1400px){.dropdown-menu-xxl-start{--bs-position: start;right:auto /* rtl:ignore */;left:0 /* rtl:ignore */}.dropdown-menu-xxl-end{--bs-position: end;right:0 /* rtl:ignore */;left:auto /* rtl:ignore */}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid rgba(51,51,51,0.15)}.dropdown-item{display:block;width:100%;padding:.25rem 1rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:hover,.dropdown-item:focus{color:#1e2125;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#0e3481}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1rem;color:#212529}.dropdown-menu-dark{color:#dee2e6;background-color:#343a40;border-color:rgba(51,51,51,0.15)}.dropdown-menu-dark .dropdown-item{color:#dee2e6}.dropdown-menu-dark .dropdown-item:hover,.dropdown-menu-dark .dropdown-item:focus{color:#fff;background-color:rgba(255,255,255,0.15)}.dropdown-menu-dark .dropdown-item.active,.dropdown-menu-dark .dropdown-item:active{color:#fff;background-color:#0e3481}.dropdown-menu-dark .dropdown-item.disabled,.dropdown-menu-dark .dropdown-item:disabled{color:#adb5bd}.dropdown-menu-dark .dropdown-divider{border-color:rgba(51,51,51,0.15)}.dropdown-menu-dark .dropdown-item-text{color:#dee2e6}.dropdown-menu-dark .dropdown-header{color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.search-form .btn-group>.search-submit,.comment-form .btn-group>input[type="submit"],.btn-group-vertical>.btn,.search-form .btn-group-vertical>.search-submit,.comment-form .btn-group-vertical>input[type="submit"]{position:relative;flex:1 1 auto}.btn-group>.btn-check:checked+.btn,.search-form .btn-group>.btn-check:checked+.search-submit,.comment-form .btn-group>.btn-check:checked+input[type="submit"],.btn-group>.btn-check:focus+.btn,.search-form .btn-group>.btn-check:focus+.search-submit,.comment-form .btn-group>.btn-check:focus+input[type="submit"],.btn-group>.btn:hover,.search-form .btn-group>.search-submit:hover,.comment-form .btn-group>input[type="submit"]:hover,.btn-group>.btn:focus,.search-form .btn-group>.search-submit:focus,.comment-form .btn-group>input[type="submit"]:focus,.btn-group>.btn:active,.search-form .btn-group>.search-submit:active,.comment-form .btn-group>input[type="submit"]:active,.btn-group>.btn.active,.search-form .btn-group>.active.search-submit,.comment-form .btn-group>input.active[type="submit"],.btn-group-vertical>.btn-check:checked+.btn,.search-form .btn-group-vertical>.btn-check:checked+.search-submit,.comment-form .btn-group-vertical>.btn-check:checked+input[type="submit"],.btn-group-vertical>.btn-check:focus+.btn,.search-form .btn-group-vertical>.btn-check:focus+.search-submit,.comment-form .btn-group-vertical>.btn-check:focus+input[type="submit"],.btn-group-vertical>.btn:hover,.search-form .btn-group-vertical>.search-submit:hover,.comment-form .btn-group-vertical>input[type="submit"]:hover,.btn-group-vertical>.btn:focus,.search-form .btn-group-vertical>.search-submit:focus,.comment-form .btn-group-vertical>input[type="submit"]:focus,.btn-group-vertical>.btn:active,.search-form .btn-group-vertical>.search-submit:active,.comment-form .btn-group-vertical>input[type="submit"]:active,.btn-group-vertical>.btn.active,.search-form .btn-group-vertical>.active.search-submit,.comment-form .btn-group-vertical>input.active[type="submit"]{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:not(:first-child),.search-form .btn-group>.search-submit:not(:first-child),.comment-form .btn-group>input[type="submit"]:not(:first-child),.btn-group>.btn-group:not(:first-child){margin-left:-1px}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.search-form .btn-group>.search-submit:not(:last-child):not(.dropdown-toggle),.comment-form .btn-group>input[type="submit"]:not(:last-child):not(.dropdown-toggle),.btn-group>.btn-group:not(:last-child)>.btn,.search-form .btn-group>.btn-group:not(:last-child)>.search-submit,.comment-form .btn-group>.btn-group:not(:last-child)>input[type="submit"]{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:nth-child(n + 3),.search-form .btn-group>.search-submit:nth-child(n + 3),.comment-form .btn-group>input[type="submit"]:nth-child(n + 3),.btn-group>:not(.btn-check)+.btn,.search-form .btn-group>:not(.btn-check)+.search-submit,.comment-form .btn-group>:not(.btn-check)+input[type="submit"],.btn-group>.btn-group:not(:first-child)>.btn,.search-form .btn-group>.btn-group:not(:first-child)>.search-submit,.comment-form .btn-group>.btn-group:not(:first-child)>input[type="submit"]{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split,.search-form .btn-group-sm>.search-submit+.dropdown-toggle-split,.comment-form .btn-group-sm>input[type="submit"]+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split,.search-form .btn-group-lg>.search-submit+.dropdown-toggle-split,.comment-form .btn-group-lg>input[type="submit"]+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.search-form .btn-group-vertical>.search-submit,.comment-form .btn-group-vertical>input[type="submit"],.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.search-form .btn-group-vertical>.search-submit:not(:first-child),.comment-form .btn-group-vertical>input[type="submit"]:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.search-form .btn-group-vertical>.search-submit:not(:last-child):not(.dropdown-toggle),.comment-form .btn-group-vertical>input[type="submit"]:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn,.search-form .btn-group-vertical>.btn-group:not(:last-child)>.search-submit,.comment-form .btn-group-vertical>.btn-group:not(:last-child)>input[type="submit"]{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn~.btn,.search-form .btn-group-vertical>.search-submit~.btn,.search-form .btn-group-vertical>.btn~.search-submit,.search-form .btn-group-vertical>.search-submit~.search-submit,.comment-form .btn-group-vertical>input[type="submit"]~.btn,.comment-form .search-form .btn-group-vertical>input[type="submit"]~.search-submit,.search-form .comment-form .btn-group-vertical>input[type="submit"]~.search-submit,.comment-form .btn-group-vertical>.btn~input[type="submit"],.comment-form .search-form .btn-group-vertical>.search-submit~input[type="submit"],.search-form .comment-form .btn-group-vertical>.search-submit~input[type="submit"],.comment-form .btn-group-vertical>input[type="submit"]~input[type="submit"],.btn-group-vertical>.btn-group:not(:first-child)>.btn,.search-form .btn-group-vertical>.btn-group:not(:first-child)>.search-submit,.comment-form .btn-group-vertical>.btn-group:not(:first-child)>input[type="submit"]{border-top-left-radius:0;border-top-right-radius:0}.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}.nav-link.disabled,.banner .nav a.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-link,.nav-tabs .banner .nav a,.banner .nav .nav-tabs a{margin-bottom:-1px;border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:hover,.nav-tabs .banner .nav a:hover,.banner .nav .nav-tabs a:hover,.nav-tabs .nav-link:focus,.nav-tabs .banner .nav a:focus,.banner .nav .nav-tabs a:focus{border-color:#f6f8fa #f6f8fa #dee2e6}.nav-tabs .nav-link.disabled,.nav-tabs .banner .nav a.disabled,.banner .nav .nav-tabs a.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-link.active,.nav-tabs .banner .nav a.active,.banner .nav .nav-tabs a.active,.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-item.show .banner .nav a,.banner .nav .nav-tabs .nav-item.show a,.nav-tabs .banner .nav li.show .nav-link,.nav-tabs .banner .nav li.show a,.banner .nav .nav-tabs li.show .nav-link,.banner .nav .nav-tabs li.show a{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link,.nav-pills .banner .nav a,.banner .nav .nav-pills a{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .banner .nav a.active,.banner .nav .nav-pills a.active,.nav-pills .show>.nav-link,.nav-pills .banner .nav .show>a,.banner .nav .nav-pills .show>a{color:#fff;background-color:#0e3481}.nav-fill>.nav-link,.banner .nav .nav-fill>a,.nav-fill .nav-item,.nav-fill .banner .nav li,.banner .nav .nav-fill li{flex:1 1 auto;text-align:center}.nav-justified>.nav-link,.banner .nav .nav-justified>a,.nav-justified .nav-item,.nav-justified .banner .nav li,.banner .nav .nav-justified li{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.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-sm,.navbar>.container-md,.navbar>.container-lg,.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-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem}.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: 576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link,.navbar-expand-sm .navbar-nav .banner .nav a,.banner .nav .navbar-expand-sm .navbar-nav a{padding-right:1rem;padding-left:1rem}.navbar-expand-sm .navbar-collapse{display:flex !important}.navbar-expand-sm .navbar-toggler{display:none}}@media (min-width: 768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link,.navbar-expand-md .navbar-nav .banner .nav a,.banner .nav .navbar-expand-md .navbar-nav a{padding-right:1rem;padding-left:1rem}.navbar-expand-md .navbar-collapse{display:flex !important}.navbar-expand-md .navbar-toggler{display:none}}@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 .dropdown-menu{position:absolute}.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}}@media (min-width: 1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link,.navbar-expand-xl .navbar-nav .banner .nav a,.banner .nav .navbar-expand-xl .navbar-nav a{padding-right:1rem;padding-left:1rem}.navbar-expand-xl .navbar-collapse{display:flex !important}.navbar-expand-xl .navbar-toggler{display:none}}@media (min-width: 1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link,.navbar-expand-xxl .navbar-nav .banner .nav a,.banner .nav .navbar-expand-xxl .navbar-nav a{padding-right:1rem;padding-left:1rem}.navbar-expand-xxl .navbar-collapse{display:flex !important}.navbar-expand-xxl .navbar-toggler{display:none}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link,.navbar-expand .navbar-nav .banner .nav a,.banner .nav .navbar-expand .navbar-nav a{padding-right:1rem;padding-left:1rem}.navbar-expand .navbar-collapse{display:flex !important}.navbar-expand .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 .nav-link.disabled,.navbar-light .navbar-nav .banner .nav a.disabled,.banner .nav .navbar-light .navbar-nav a.disabled{color:rgba(51,51,51,0.3)}.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}.navbar-light .navbar-text{color:#0e3481}.navbar-light .navbar-text a,.navbar-light .navbar-text a:hover,.navbar-light .navbar-text a:focus{color:#115df6}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:hover,.navbar-dark .navbar-brand:focus{color:#fff}.navbar-dark .navbar-nav .nav-link,.navbar-dark .navbar-nav .banner .nav a,.banner .nav .navbar-dark .navbar-nav a{color:rgba(255,255,255,0.55)}.navbar-dark .navbar-nav .nav-link:hover,.navbar-dark .navbar-nav .banner .nav a:hover,.banner .nav .navbar-dark .navbar-nav a:hover,.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .banner .nav a:focus,.banner .nav .navbar-dark .navbar-nav a:focus{color:rgba(255,255,255,0.75)}.navbar-dark .navbar-nav .nav-link.disabled,.navbar-dark .navbar-nav .banner .nav a.disabled,.banner .nav .navbar-dark .navbar-nav a.disabled{color:rgba(255,255,255,0.25)}.navbar-dark .navbar-nav .show>.nav-link,.navbar-dark .navbar-nav .banner .nav .show>a,.banner .nav .navbar-dark .navbar-nav .show>a,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .banner .nav a.active,.banner .nav .navbar-dark .navbar-nav a.active{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,0.55);border-color:rgba(255,255,255,0.1)}.navbar-dark .navbar-toggler-icon{background-image:none}.navbar-dark .navbar-text{color:rgba(255,255,255,0.55)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:hover,.navbar-dark .navbar-text a:focus{color:#fff}.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>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:1rem 1rem}.card-title{margin-bottom:.5rem}.card-subtitle{margin-top:-.25rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1rem /* rtl:ignore */}.card-header{padding:.5rem 1rem;margin-bottom:0;background-color:rgba(51,51,51,0.03);border-bottom:1px solid rgba(51,51,51,0.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{padding:.5rem 1rem;background-color:rgba(51,51,51,0.03);border-top:1px solid rgba(51,51,51,0.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.5rem;margin-bottom:-.5rem;margin-left:-.5rem;border-bottom:0}.card-header-pills{margin-right:-.5rem;margin-left:-.5rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem;border-radius:calc(.25rem - 1px)}.card-img,.card-img-top,.card-img-bottom{width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-group>.card{margin-bottom:24px}@media (min-width: 576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-img-top,.card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-img-bottom,.card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-img-top,.card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-img-bottom,.card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:1rem 1.25rem;font-size:1rem;color:#333;background-color:rgba(0,0,0,0);border:1px solid rgba(51,51,51,0.125);border-radius:0;overflow-anchor:none;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,border-radius 0.15s ease}@media (prefers-reduced-motion: reduce){.accordion-button{transition:none}}.accordion-button.collapsed{border-bottom-width:0}.accordion-button:not(.collapsed){color:#0d2f74;background-color:#e7ebf2}.accordion-button:not(.collapsed)::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230d2f74'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");transform:rotate(180deg)}.accordion-button::after{flex-shrink:0;width:1.25rem;height:1.25rem;margin-left:auto;content:"";background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23333'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-size:1.25rem;transition:transform 0.2s ease-in-out}@media (prefers-reduced-motion: reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:#879ac0;outline:0;box-shadow:0 0 0 .25rem rgba(14,52,129,0.25)}.accordion-header{margin-bottom:0}.accordion-item:first-of-type .accordion-button{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-width:1px;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-item:last-of-type .accordion-collapse{border-bottom-width:1px;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-collapse{border:solid rgba(51,51,51,0.125);border-width:0 1px}.accordion-body{padding:1rem 1.25rem}.accordion-flush .accordion-button{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item:first-of-type .accordion-button{border-top-width:0;border-top-left-radius:0;border-top-right-radius:0}.accordion-flush .accordion-item:last-of-type .accordion-button.collapsed{border-bottom-width:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.breadcrumb{display:flex;flex-wrap:wrap;padding:0 0;margin-bottom:1rem;list-style:none}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#6c757d;content:var(--bs-breadcrumb-divider, "/") /* rtl: var(--bs-breadcrumb-divider, "/") */}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;color:#115df6;background-color:#fff;border:1px solid #dee2e6;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){.page-link{transition:none}}.page-link:hover{z-index:2;color:#1250cc;text-decoration:none;background-color:#f6f8fa;border-color:#dee2e6}.page-link:focus{z-index:3;color:#1250cc;background-color:#f6f8fa;outline:0;box-shadow:0 0 0 .25rem rgba(14,52,129,0.25)}.page-item:not(:first-child) .page-link{margin-left:-1px}.page-item.active .page-link{z-index:3;color:#fff;background-color:#0e3481;border-color:#0e3481}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;background-color:#fff;border-color:#dee2e6}.page-link{padding:.375rem .75rem}.page-item:first-child .page-link{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.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,.search-form .search-submit .badge,.comment-form input[type="submit"] .badge{position:relative;top:-1px}.alert{position:relative;padding:1.5rem 1rem;margin-bottom:0;border:0 solid transparent;border-radius:2px}.alert-heading{color:inherit}.alert-link{font-weight:500}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.875rem 1rem}.alert-primary{color:#081f4d;background-color:#cfd6e6;border-color:#b7c2d9}.alert-primary .alert-link{color:#06193e}.alert-secondary{color:#41464b;background-color:#e2e3e5;border-color:#d3d6d8}.alert-secondary .alert-link{color:#34383c}.alert-success{color:#0f5132;background-color:#d1e7dd;border-color:#badbcc}.alert-success .alert-link{color:#0c4128}.alert-info{color:#246f7f;background-color:#cff4fc;border-color:#b6effb}.alert-info .alert-link{color:#1d5966}.alert-warning{color:#856c21;background-color:#fff3cd;border-color:#ffecb5}.alert-warning .alert-link{color:#6a561a}.alert-danger{color:#842029;background-color:#f8d7da;border-color:#f5c2c7}.alert-danger .alert-link{color:#6a1a21}.alert-light{color:#828283;background-color:#fefefe;border-color:#fdfdfe}.alert-light .alert-link{color:#686869}.alert-dark{color:#141619;background-color:#d3d3d4;border-color:#bcbebf}.alert-dark .alert-link{color:#101214}@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}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#0e3481;transition:width 0.6s ease}@media (prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-size:1rem 1rem}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#333;background-color:#f6f8fa}.list-group-item{position:relative;display:block;padding:.5rem 1rem;background-color:#fff;border:1px solid rgba(51,51,51,0.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#0e3481;border-color:#0e3481}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width: 576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width: 768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width: 992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width: 1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width: 1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#081f4d;background-color:#cfd6e6}.list-group-item-primary.list-group-item-action:hover,.list-group-item-primary.list-group-item-action:focus{color:#081f4d;background-color:#bac1cf}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#081f4d;border-color:#081f4d}.list-group-item-secondary{color:#41464b;background-color:#e2e3e5}.list-group-item-secondary.list-group-item-action:hover,.list-group-item-secondary.list-group-item-action:focus{color:#41464b;background-color:#cbccce}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#41464b;border-color:#41464b}.list-group-item-success{color:#0f5132;background-color:#d1e7dd}.list-group-item-success.list-group-item-action:hover,.list-group-item-success.list-group-item-action:focus{color:#0f5132;background-color:#bcd0c7}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#0f5132;border-color:#0f5132}.list-group-item-info{color:#246f7f;background-color:#cff4fc}.list-group-item-info.list-group-item-action:hover,.list-group-item-info.list-group-item-action:focus{color:#246f7f;background-color:#badce3}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#246f7f;border-color:#246f7f}.list-group-item-warning{color:#856c21;background-color:#fff3cd}.list-group-item-warning.list-group-item-action:hover,.list-group-item-warning.list-group-item-action:focus{color:#856c21;background-color:#e6dbb9}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856c21;border-color:#856c21}.list-group-item-danger{color:#842029;background-color:#f8d7da}.list-group-item-danger.list-group-item-action:hover,.list-group-item-danger.list-group-item-action:focus{color:#842029;background-color:#dfc2c4}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#842029;border-color:#842029}.list-group-item-light{color:#828283;background-color:#fefefe}.list-group-item-light.list-group-item-action:hover,.list-group-item-light.list-group-item-action:focus{color:#828283;background-color:#e5e5e5}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#828283;border-color:#828283}.list-group-item-dark{color:#141619;background-color:#d3d3d4}.list-group-item-dark.list-group-item-action:hover,.list-group-item-dark.list-group-item-action:focus{color:#141619;background-color:#bebebf}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#141619;border-color:#141619}.btn-close{box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:#333;background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23333'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;border:0;border-radius:.25rem;opacity:.5}.btn-close:hover{color:#333;text-decoration:none;opacity:.75}.btn-close:focus{outline:none;box-shadow:0 0 0 .25rem rgba(14,52,129,0.25);opacity:1}.btn-close:disabled,.btn-close.disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:.25}.btn-close-white{filter:invert(1) grayscale(100%) brightness(200%)}.toast{width:350px;max-width:100%;font-size:.875rem;pointer-events:auto;background-color:rgba(255,255,255,0.85);background-clip:padding-box;border:1px solid rgba(0,0,0,0.1);box-shadow:0 0.5rem 1rem rgba(51,51,51,0.15);border-radius:.25rem}.toast:not(.showing):not(.show){opacity:0}.toast.hide{display:none}.toast-container{width:-moz-max-content;width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:24px}.toast-header{display:flex;align-items:center;padding:.5rem .75rem;color:#6c757d;background-color:rgba(255,255,255,0.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,0.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.toast-header .btn-close{margin-right:-.375rem;margin-left:.75rem}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform 0.3s ease-out;transform:translate(0, -50px)}@media (prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(51,51,51,0.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#333}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .btn-close{padding:.5rem .5rem;margin:-.5rem -.5rem -.5rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;flex-shrink:0;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width: 576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{height:calc(100% - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width: 992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width: 1200px){.modal-xl{max-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}.modal-fullscreen .modal-footer{border-radius:0}@media (max-width: 575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}.modal-fullscreen-sm-down .modal-footer{border-radius:0}}@media (max-width: 767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}.modal-fullscreen-md-down .modal-footer{border-radius:0}}@media (max-width: 991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}.modal-fullscreen-lg-down .modal-footer{border-radius:0}}@media (max-width: 1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}.modal-fullscreen-xl-down .modal-footer{border-radius:0}}@media (max-width: 1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}.modal-fullscreen-xxl-down .modal-footer{border-radius:0}}.tooltip{position:absolute;z-index:1070;display:block;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-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .tooltip-arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-top,.bs-tooltip-auto[data-popper-placement^="top"]{padding:.4rem 0}.bs-tooltip-top .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^="top"] .tooltip-arrow{bottom:0}.bs-tooltip-top .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^="top"] .tooltip-arrow::before{top:-1px;border-width:.4rem .4rem 0;border-top-color:#333}.bs-tooltip-end,.bs-tooltip-auto[data-popper-placement^="right"]{padding:0 .4rem}.bs-tooltip-end .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^="right"] .tooltip-arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-end .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^="right"] .tooltip-arrow::before{right:-1px;border-width:.4rem .4rem .4rem 0;border-right-color:#333}.bs-tooltip-bottom,.bs-tooltip-auto[data-popper-placement^="bottom"]{padding:.4rem 0}.bs-tooltip-bottom .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^="bottom"] .tooltip-arrow{top:0}.bs-tooltip-bottom .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^="bottom"] .tooltip-arrow::before{bottom:-1px;border-width:0 .4rem .4rem;border-bottom-color:#333}.bs-tooltip-start,.bs-tooltip-auto[data-popper-placement^="left"]{padding:0 .4rem}.bs-tooltip-start .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^="left"] .tooltip-arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-start .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^="left"] .tooltip-arrow::before{left:-1px;border-width:.4rem 0 .4rem .4rem;border-left-color:#333}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#333;border-radius:.25rem}.popover{position:absolute;top:0;left:0 /* rtl:ignore */;z-index:1060;display:block;max-width:276px;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-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(51,51,51,0.2);border-radius:.3rem}.popover .popover-arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .popover-arrow::before,.popover .popover-arrow::after{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-top,.bs-popover-auto[data-popper-placement^="top"]{margin-bottom:.5rem !important}.bs-popover-top>.popover-arrow,.bs-popover-auto[data-popper-placement^="top"]>.popover-arrow{bottom:calc(-.5rem - 1px)}.bs-popover-top>.popover-arrow::before,.bs-popover-auto[data-popper-placement^="top"]>.popover-arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(51,51,51,0.25)}.bs-popover-top>.popover-arrow::after,.bs-popover-auto[data-popper-placement^="top"]>.popover-arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-end,.bs-popover-auto[data-popper-placement^="right"]{margin-left:.5rem !important}.bs-popover-end>.popover-arrow,.bs-popover-auto[data-popper-placement^="right"]>.popover-arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-end>.popover-arrow::before,.bs-popover-auto[data-popper-placement^="right"]>.popover-arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(51,51,51,0.25)}.bs-popover-end>.popover-arrow::after,.bs-popover-auto[data-popper-placement^="right"]>.popover-arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-bottom,.bs-popover-auto[data-popper-placement^="bottom"]{margin-top:.5rem !important}.bs-popover-bottom>.popover-arrow,.bs-popover-auto[data-popper-placement^="bottom"]>.popover-arrow{top:calc(-.5rem - 1px)}.bs-popover-bottom>.popover-arrow::before,.bs-popover-auto[data-popper-placement^="bottom"]>.popover-arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(51,51,51,0.25)}.bs-popover-bottom>.popover-arrow::after,.bs-popover-auto[data-popper-placement^="bottom"]>.popover-arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-bottom .popover-header::before,.bs-popover-auto[data-popper-placement^="bottom"] .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f0f0f0}.bs-popover-start,.bs-popover-auto[data-popper-placement^="left"]{margin-right:.5rem !important}.bs-popover-start>.popover-arrow,.bs-popover-auto[data-popper-placement^="left"]>.popover-arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-start>.popover-arrow::before,.bs-popover-auto[data-popper-placement^="left"]>.popover-arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(51,51,51,0.25)}.bs-popover-start>.popover-arrow::after,.bs-popover-auto[data-popper-placement^="left"]>.popover-arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem 1rem;margin-bottom:0;font-size:1rem;background-color:#f0f0f0;border-bottom:1px solid #d8d8d8;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:1rem 1rem;color:#333}@keyframes spinner-border{to{transform:rotate(360deg) /* rtl:ignore */}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media (prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{animation-duration:1.5s}}.clearfix::after{display:block;clear:both;content:""}.link-primary{color:#0e3481}.link-primary:hover,.link-primary:focus{color:#0b2a67}.link-secondary{color:#6c757d}.link-secondary:hover,.link-secondary:focus{color:#565e64}.link-success{color:#198754}.link-success:hover,.link-success:focus{color:#146c43}.link-info{color:#0dcaf0}.link-info:hover,.link-info:focus{color:#3dd5f3}.link-warning{color:#ffc107}.link-warning:hover,.link-warning:focus{color:#ffcd39}.link-danger{color:#dc3545}.link-danger:hover,.link-danger:focus{color:#b02a37}.link-light{color:#f8f9fa}.link-light:hover,.link-light:focus{color:#f9fafb}.link-dark{color:#212529}.link-dark:hover,.link-dark:focus{color:#1a1e21}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--aspect-ratio: 100%}.ratio-4x3{--aspect-ratio: calc(3 / 4 * 100%)}.ratio-16x9{--aspect-ratio: calc(9 / 16 * 100%)}.ratio-21x9{--aspect-ratio: calc(9 / 21 * 100%)}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:sticky;top:0;z-index:1020}@media (min-width: 576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}}@media (min-width: 768px){.sticky-md-top{position:sticky;top:0;z-index:1020}}@media (min-width: 992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}}@media (min-width: 1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}}@media (min-width: 1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}}.visually-hidden,.visually-hidden-focusable:not(:focus){position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.align-baseline{vertical-align:baseline !important}.align-top{vertical-align:top !important}.align-middle{vertical-align:middle !important}.align-bottom{vertical-align:bottom !important}.align-text-bottom{vertical-align:text-bottom !important}.align-text-top{vertical-align:text-top !important}.float-start{float:left !important}.float-end{float:right !important}.float-none{float:none !important}.overflow-auto{overflow:auto !important}.overflow-hidden{overflow:hidden !important}.overflow-visible{overflow:visible !important}.overflow-scroll{overflow:scroll !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.d-grid{display:grid !important}.d-table{display:table !important}.d-table-row{display:table-row !important}.d-table-cell{display:table-cell !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}.d-none{display:none !important}.shadow{box-shadow:0 0.5rem 1rem rgba(51,51,51,0.15) !important}.shadow-sm{box-shadow:0 0.125rem 0.25rem rgba(51,51,51,0.075) !important}.shadow-lg{box-shadow:0 1rem 3rem rgba(51,51,51,0.175) !important}.shadow-none{box-shadow:none !important}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}.position-sticky{position:sticky !important}.top-0{top:0 !important}.top-50{top:50% !important}.top-100{top:100% !important}.bottom-0{bottom:0 !important}.bottom-50{bottom:50% !important}.bottom-100{bottom:100% !important}.start-0{left:0 !important}.start-50{left:50% !important}.start-100{left:100% !important}.end-0{right:0 !important}.end-50{right:50% !important}.end-100{right:100% !important}.translate-middle{transform:translate(-50%, -50%) !important}.translate-middle-x{transform:translateX(-50%) !important}.translate-middle-y{transform:translateY(-50%) !important}.border{border:1px solid #dee2e6 !important}.border-0{border:0 !important}.border-top{border-top:1px solid #dee2e6 !important}.border-top-0{border-top:0 !important}.border-end{border-right:1px solid #dee2e6 !important}.border-end-0{border-right:0 !important}.border-bottom{border-bottom:1px solid #dee2e6 !important}.border-bottom-0{border-bottom:0 !important}.border-start{border-left:1px solid #dee2e6 !important}.border-start-0{border-left:0 !important}.border-primary{border-color:#0e3481 !important}.border-secondary{border-color:#6c757d !important}.border-success{border-color:#198754 !important}.border-info{border-color:#0dcaf0 !important}.border-warning{border-color:#ffc107 !important}.border-danger{border-color:#dc3545 !important}.border-light{border-color:#f8f9fa !important}.border-dark{border-color:#212529 !important}.border-white{border-color:#fff !important}.border-0{border-width:0 !important}.border-1{border-width:1px !important}.border-2{border-width:2px !important}.border-3{border-width:3px !important}.border-4{border-width:4px !important}.border-5{border-width:5px !important}.w-25{width:25% !important}.w-50{width:50% !important}.w-75{width:75% !important}.w-100{width:100% !important}.w-auto{width:auto !important}.mw-100{max-width:100% !important}.vw-100{width:100vw !important}.min-vw-100{min-width:100vw !important}.h-25{height:25% !important}.h-50{height:50% !important}.h-75{height:75% !important}.h-100{height:100% !important}.h-auto{height:auto !important}.mh-100{max-height:100% !important}.vh-100{height:100vh !important}.min-vh-100{min-height:100vh !important}.flex-fill{flex:1 1 auto !important}.flex-row{flex-direction:row !important}.flex-column{flex-direction:column !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-grow-0{flex-grow:0 !important}.flex-grow-1{flex-grow:1 !important}.flex-shrink-0{flex-shrink:0 !important}.flex-shrink-1{flex-shrink:1 !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-0{gap:0 !important}.gap-1{gap:.25rem !important}.gap-2{gap:.5rem !important}.gap-3{gap:1rem !important}.gap-4{gap:1.5rem !important}.gap-5{gap:3rem !important}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.justify-content-around{justify-content:space-around !important}.justify-content-evenly{justify-content:space-evenly !important}.align-items-start{align-items:flex-start !important}.align-items-end{align-items:flex-end !important}.align-items-center{align-items:center !important}.align-items-baseline{align-items:baseline !important}.align-items-stretch{align-items:stretch !important}.align-content-start{align-content:flex-start !important}.align-content-end{align-content:flex-end !important}.align-content-center{align-content:center !important}.align-content-between{align-content:space-between !important}.align-content-around{align-content:space-around !important}.align-content-stretch{align-content:stretch !important}.align-self-auto{align-self:auto !important}.align-self-start{align-self:flex-start !important}.align-self-end{align-self:flex-end !important}.align-self-center{align-self:center !important}.align-self-baseline{align-self:baseline !important}.align-self-stretch{align-self:stretch !important}.order-first{order:-1 !important}.order-0{order:0 !important}.order-1{order:1 !important}.order-2{order:2 !important}.order-3{order:3 !important}.order-4{order:4 !important}.order-5{order:5 !important}.order-last{order:6 !important}.m-0{margin:0 !important}.m-1{margin:.25rem !important}.m-2{margin:.5rem !important}.m-3{margin:1rem !important}.m-4{margin:1.5rem !important}.m-5{margin:3rem !important}.m-auto{margin:auto !important}.mx-0{margin-right:0 !important;margin-left:0 !important}.mx-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-3{margin-right:1rem !important;margin-left:1rem !important}.mx-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-5{margin-right:3rem !important;margin-left:3rem !important}.mx-auto{margin-right:auto !important;margin-left:auto !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-0{margin-top:0 !important}.mt-1{margin-top:.25rem !important}.mt-2{margin-top:.5rem !important}.mt-3{margin-top:1rem !important}.mt-4{margin-top:1.5rem !important}.mt-5{margin-top:3rem !important}.mt-auto{margin-top:auto !important}.me-0{margin-right:0 !important}.me-1{margin-right:.25rem !important}.me-2{margin-right:.5rem !important}.me-3{margin-right:1rem !important}.me-4{margin-right:1.5rem !important}.me-5{margin-right:3rem !important}.me-auto{margin-right:auto !important}.mb-0{margin-bottom:0 !important}.mb-1{margin-bottom:.25rem !important}.mb-2{margin-bottom:.5rem !important}.mb-3{margin-bottom:1rem !important}.mb-4{margin-bottom:1.5rem !important}.mb-5{margin-bottom:3rem !important}.mb-auto{margin-bottom:auto !important}.ms-0{margin-left:0 !important}.ms-1{margin-left:.25rem !important}.ms-2{margin-left:.5rem !important}.ms-3{margin-left:1rem !important}.ms-4{margin-left:1.5rem !important}.ms-5{margin-left:3rem !important}.ms-auto{margin-left:auto !important}.p-0{padding:0 !important}.p-1{padding:.25rem !important}.p-2{padding:.5rem !important}.p-3{padding:1rem !important}.p-4{padding:1.5rem !important}.p-5{padding:3rem !important}.px-0{padding-right:0 !important;padding-left:0 !important}.px-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-3{padding-right:1rem !important;padding-left:1rem !important}.px-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-5{padding-right:3rem !important;padding-left:3rem !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.py-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-0{padding-top:0 !important}.pt-1{padding-top:.25rem !important}.pt-2{padding-top:.5rem !important}.pt-3{padding-top:1rem !important}.pt-4{padding-top:1.5rem !important}.pt-5{padding-top:3rem !important}.pe-0{padding-right:0 !important}.pe-1{padding-right:.25rem !important}.pe-2{padding-right:.5rem !important}.pe-3{padding-right:1rem !important}.pe-4{padding-right:1.5rem !important}.pe-5{padding-right:3rem !important}.pb-0{padding-bottom:0 !important}.pb-1{padding-bottom:.25rem !important}.pb-2{padding-bottom:.5rem !important}.pb-3{padding-bottom:1rem !important}.pb-4{padding-bottom:1.5rem !important}.pb-5{padding-bottom:3rem !important}.ps-0{padding-left:0 !important}.ps-1{padding-left:.25rem !important}.ps-2{padding-left:.5rem !important}.ps-3{padding-left:1rem !important}.ps-4{padding-left:1.5rem !important}.ps-5{padding-left:3rem !important}.fs-1{font-size:calc(1.375rem + 1.5vw) !important}.fs-2{font-size:calc(1.325rem + .9vw) !important}.fs-3{font-size:calc(1.265rem + .18vw) !important}.fs-4{font-size:calc(1.275rem + .3vw) !important}.fs-5{font-size:1.25rem !important}.fs-6{font-size:1rem !important}.fst-italic{font-style:italic !important}.fst-normal{font-style:normal !important}.fw-light{font-weight:300 !important}.fw-lighter{font-weight:lighter !important}.fw-normal{font-weight:400 !important}.fw-bold{font-weight:500 !important}.fw-bolder{font-weight:bolder !important}.text-lowercase{text-transform:lowercase !important}.text-uppercase{text-transform:uppercase !important}.text-capitalize{text-transform:capitalize !important}.text-start{text-align:left !important}.text-end{text-align:right !important}.text-center{text-align:center !important}.text-primary{color:#0e3481 !important}.text-secondary{color:#6c757d !important}.text-success{color:#198754 !important}.text-info{color:#0dcaf0 !important}.text-warning{color:#ffc107 !important}.text-danger{color:#dc3545 !important}.text-light{color:#f8f9fa !important}.text-dark{color:#212529 !important}.text-white{color:#fff !important}.text-body{color:#333 !important}.text-muted{color:#6c757d !important}.text-black-50{color:rgba(51,51,51,0.5) !important}.text-white-50{color:rgba(255,255,255,0.5) !important}.text-reset{color:inherit !important}.lh-1{line-height:1 !important}.lh-sm{line-height:1.25 !important}.lh-base{line-height:1.5 !important}.lh-lg{line-height:2 !important}.bg-primary{background-color:#0e3481 !important}.bg-secondary{background-color:#6c757d !important}.bg-success{background-color:#198754 !important}.bg-info{background-color:#0dcaf0 !important}.bg-warning{background-color:#ffc107 !important}.bg-danger{background-color:#dc3545 !important}.bg-light{background-color:#f8f9fa !important}.bg-dark{background-color:#212529 !important}.bg-body{background-color:#fff !important}.bg-white{background-color:#fff !important}.bg-transparent{background-color:rgba(0,0,0,0) !important}.bg-gradient{background-image:var(--bs-gradient) !important}.text-wrap{white-space:normal !important}.text-nowrap{white-space:nowrap !important}.text-decoration-none{text-decoration:none !important}.text-decoration-underline{text-decoration:underline !important}.text-decoration-line-through{text-decoration:line-through !important}.text-break{word-wrap:break-word !important;word-break:break-word !important}.font-monospace{font-family:var(--bs-font-monospace) !important}.user-select-all{-webkit-user-select:all !important;-moz-user-select:all !important;user-select:all !important}.user-select-auto{-webkit-user-select:auto !important;-moz-user-select:auto !important;user-select:auto !important}.user-select-none{-webkit-user-select:none !important;-moz-user-select:none !important;user-select:none !important}.pe-none{pointer-events:none !important}.pe-auto{pointer-events:auto !important}.rounded{border-radius:.25rem !important}.rounded-0{border-radius:0 !important}.rounded-1{border-radius:.2rem !important}.rounded-2{border-radius:.25rem !important}.rounded-3{border-radius:.3rem !important}.rounded-circle{border-radius:50% !important}.rounded-pill{border-radius:50rem !important}.rounded-top{border-top-left-radius:.25rem !important;border-top-right-radius:.25rem !important}.rounded-end{border-top-right-radius:.25rem !important;border-bottom-right-radius:.25rem !important}.rounded-bottom{border-bottom-right-radius:.25rem !important;border-bottom-left-radius:.25rem !important}.rounded-start{border-bottom-left-radius:.25rem !important;border-top-left-radius:.25rem !important}.visible{visibility:visible !important}.invisible{visibility:hidden !important}@media (min-width: 576px){.float-sm-start{float:left !important}.float-sm-end{float:right !important}.float-sm-none{float:none !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-grid{display:grid !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}.d-sm-none{display:none !important}.flex-sm-fill{flex:1 1 auto !important}.flex-sm-row{flex-direction:row !important}.flex-sm-column{flex-direction:column !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column-reverse{flex-direction:column-reverse !important}.flex-sm-grow-0{flex-grow:0 !important}.flex-sm-grow-1{flex-grow:1 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-shrink-1{flex-shrink:1 !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-sm-0{gap:0 !important}.gap-sm-1{gap:.25rem !important}.gap-sm-2{gap:.5rem !important}.gap-sm-3{gap:1rem !important}.gap-sm-4{gap:1.5rem !important}.gap-sm-5{gap:3rem !important}.justify-content-sm-start{justify-content:flex-start !important}.justify-content-sm-end{justify-content:flex-end !important}.justify-content-sm-center{justify-content:center !important}.justify-content-sm-between{justify-content:space-between !important}.justify-content-sm-around{justify-content:space-around !important}.justify-content-sm-evenly{justify-content:space-evenly !important}.align-items-sm-start{align-items:flex-start !important}.align-items-sm-end{align-items:flex-end !important}.align-items-sm-center{align-items:center !important}.align-items-sm-baseline{align-items:baseline !important}.align-items-sm-stretch{align-items:stretch !important}.align-content-sm-start{align-content:flex-start !important}.align-content-sm-end{align-content:flex-end !important}.align-content-sm-center{align-content:center !important}.align-content-sm-between{align-content:space-between !important}.align-content-sm-around{align-content:space-around !important}.align-content-sm-stretch{align-content:stretch !important}.align-self-sm-auto{align-self:auto !important}.align-self-sm-start{align-self:flex-start !important}.align-self-sm-end{align-self:flex-end !important}.align-self-sm-center{align-self:center !important}.align-self-sm-baseline{align-self:baseline !important}.align-self-sm-stretch{align-self:stretch !important}.order-sm-first{order:-1 !important}.order-sm-0{order:0 !important}.order-sm-1{order:1 !important}.order-sm-2{order:2 !important}.order-sm-3{order:3 !important}.order-sm-4{order:4 !important}.order-sm-5{order:5 !important}.order-sm-last{order:6 !important}.m-sm-0{margin:0 !important}.m-sm-1{margin:.25rem !important}.m-sm-2{margin:.5rem !important}.m-sm-3{margin:1rem !important}.m-sm-4{margin:1.5rem !important}.m-sm-5{margin:3rem !important}.m-sm-auto{margin:auto !important}.mx-sm-0{margin-right:0 !important;margin-left:0 !important}.mx-sm-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-sm-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-sm-3{margin-right:1rem !important;margin-left:1rem !important}.mx-sm-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-sm-5{margin-right:3rem !important;margin-left:3rem !important}.mx-sm-auto{margin-right:auto !important;margin-left:auto !important}.my-sm-0{margin-top:0 !important;margin-bottom:0 !important}.my-sm-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-sm-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-sm-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-sm-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-sm-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-sm-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-sm-0{margin-top:0 !important}.mt-sm-1{margin-top:.25rem !important}.mt-sm-2{margin-top:.5rem !important}.mt-sm-3{margin-top:1rem !important}.mt-sm-4{margin-top:1.5rem !important}.mt-sm-5{margin-top:3rem !important}.mt-sm-auto{margin-top:auto !important}.me-sm-0{margin-right:0 !important}.me-sm-1{margin-right:.25rem !important}.me-sm-2{margin-right:.5rem !important}.me-sm-3{margin-right:1rem !important}.me-sm-4{margin-right:1.5rem !important}.me-sm-5{margin-right:3rem !important}.me-sm-auto{margin-right:auto !important}.mb-sm-0{margin-bottom:0 !important}.mb-sm-1{margin-bottom:.25rem !important}.mb-sm-2{margin-bottom:.5rem !important}.mb-sm-3{margin-bottom:1rem !important}.mb-sm-4{margin-bottom:1.5rem !important}.mb-sm-5{margin-bottom:3rem !important}.mb-sm-auto{margin-bottom:auto !important}.ms-sm-0{margin-left:0 !important}.ms-sm-1{margin-left:.25rem !important}.ms-sm-2{margin-left:.5rem !important}.ms-sm-3{margin-left:1rem !important}.ms-sm-4{margin-left:1.5rem !important}.ms-sm-5{margin-left:3rem !important}.ms-sm-auto{margin-left:auto !important}.p-sm-0{padding:0 !important}.p-sm-1{padding:.25rem !important}.p-sm-2{padding:.5rem !important}.p-sm-3{padding:1rem !important}.p-sm-4{padding:1.5rem !important}.p-sm-5{padding:3rem !important}.px-sm-0{padding-right:0 !important;padding-left:0 !important}.px-sm-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-sm-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-sm-3{padding-right:1rem !important;padding-left:1rem !important}.px-sm-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-sm-5{padding-right:3rem !important;padding-left:3rem !important}.py-sm-0{padding-top:0 !important;padding-bottom:0 !important}.py-sm-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-sm-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-sm-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-sm-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-sm-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-sm-0{padding-top:0 !important}.pt-sm-1{padding-top:.25rem !important}.pt-sm-2{padding-top:.5rem !important}.pt-sm-3{padding-top:1rem !important}.pt-sm-4{padding-top:1.5rem !important}.pt-sm-5{padding-top:3rem !important}.pe-sm-0{padding-right:0 !important}.pe-sm-1{padding-right:.25rem !important}.pe-sm-2{padding-right:.5rem !important}.pe-sm-3{padding-right:1rem !important}.pe-sm-4{padding-right:1.5rem !important}.pe-sm-5{padding-right:3rem !important}.pb-sm-0{padding-bottom:0 !important}.pb-sm-1{padding-bottom:.25rem !important}.pb-sm-2{padding-bottom:.5rem !important}.pb-sm-3{padding-bottom:1rem !important}.pb-sm-4{padding-bottom:1.5rem !important}.pb-sm-5{padding-bottom:3rem !important}.ps-sm-0{padding-left:0 !important}.ps-sm-1{padding-left:.25rem !important}.ps-sm-2{padding-left:.5rem !important}.ps-sm-3{padding-left:1rem !important}.ps-sm-4{padding-left:1.5rem !important}.ps-sm-5{padding-left:3rem !important}.text-sm-start{text-align:left !important}.text-sm-end{text-align:right !important}.text-sm-center{text-align:center !important}}@media (min-width: 768px){.float-md-start{float:left !important}.float-md-end{float:right !important}.float-md-none{float:none !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-grid{display:grid !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}.d-md-none{display:none !important}.flex-md-fill{flex:1 1 auto !important}.flex-md-row{flex-direction:row !important}.flex-md-column{flex-direction:column !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column-reverse{flex-direction:column-reverse !important}.flex-md-grow-0{flex-grow:0 !important}.flex-md-grow-1{flex-grow:1 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-shrink-1{flex-shrink:1 !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-md-0{gap:0 !important}.gap-md-1{gap:.25rem !important}.gap-md-2{gap:.5rem !important}.gap-md-3{gap:1rem !important}.gap-md-4{gap:1.5rem !important}.gap-md-5{gap:3rem !important}.justify-content-md-start{justify-content:flex-start !important}.justify-content-md-end{justify-content:flex-end !important}.justify-content-md-center{justify-content:center !important}.justify-content-md-between{justify-content:space-between !important}.justify-content-md-around{justify-content:space-around !important}.justify-content-md-evenly{justify-content:space-evenly !important}.align-items-md-start{align-items:flex-start !important}.align-items-md-end{align-items:flex-end !important}.align-items-md-center{align-items:center !important}.align-items-md-baseline{align-items:baseline !important}.align-items-md-stretch{align-items:stretch !important}.align-content-md-start{align-content:flex-start !important}.align-content-md-end{align-content:flex-end !important}.align-content-md-center{align-content:center !important}.align-content-md-between{align-content:space-between !important}.align-content-md-around{align-content:space-around !important}.align-content-md-stretch{align-content:stretch !important}.align-self-md-auto{align-self:auto !important}.align-self-md-start{align-self:flex-start !important}.align-self-md-end{align-self:flex-end !important}.align-self-md-center{align-self:center !important}.align-self-md-baseline{align-self:baseline !important}.align-self-md-stretch{align-self:stretch !important}.order-md-first{order:-1 !important}.order-md-0{order:0 !important}.order-md-1{order:1 !important}.order-md-2{order:2 !important}.order-md-3{order:3 !important}.order-md-4{order:4 !important}.order-md-5{order:5 !important}.order-md-last{order:6 !important}.m-md-0{margin:0 !important}.m-md-1{margin:.25rem !important}.m-md-2{margin:.5rem !important}.m-md-3{margin:1rem !important}.m-md-4{margin:1.5rem !important}.m-md-5{margin:3rem !important}.m-md-auto{margin:auto !important}.mx-md-0{margin-right:0 !important;margin-left:0 !important}.mx-md-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-md-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-md-3{margin-right:1rem !important;margin-left:1rem !important}.mx-md-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-md-5{margin-right:3rem !important;margin-left:3rem !important}.mx-md-auto{margin-right:auto !important;margin-left:auto !important}.my-md-0{margin-top:0 !important;margin-bottom:0 !important}.my-md-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-md-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-md-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-md-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-md-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-md-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-md-0{margin-top:0 !important}.mt-md-1{margin-top:.25rem !important}.mt-md-2{margin-top:.5rem !important}.mt-md-3{margin-top:1rem !important}.mt-md-4{margin-top:1.5rem !important}.mt-md-5{margin-top:3rem !important}.mt-md-auto{margin-top:auto !important}.me-md-0{margin-right:0 !important}.me-md-1{margin-right:.25rem !important}.me-md-2{margin-right:.5rem !important}.me-md-3{margin-right:1rem !important}.me-md-4{margin-right:1.5rem !important}.me-md-5{margin-right:3rem !important}.me-md-auto{margin-right:auto !important}.mb-md-0{margin-bottom:0 !important}.mb-md-1{margin-bottom:.25rem !important}.mb-md-2{margin-bottom:.5rem !important}.mb-md-3{margin-bottom:1rem !important}.mb-md-4{margin-bottom:1.5rem !important}.mb-md-5{margin-bottom:3rem !important}.mb-md-auto{margin-bottom:auto !important}.ms-md-0{margin-left:0 !important}.ms-md-1{margin-left:.25rem !important}.ms-md-2{margin-left:.5rem !important}.ms-md-3{margin-left:1rem !important}.ms-md-4{margin-left:1.5rem !important}.ms-md-5{margin-left:3rem !important}.ms-md-auto{margin-left:auto !important}.p-md-0{padding:0 !important}.p-md-1{padding:.25rem !important}.p-md-2{padding:.5rem !important}.p-md-3{padding:1rem !important}.p-md-4{padding:1.5rem !important}.p-md-5{padding:3rem !important}.px-md-0{padding-right:0 !important;padding-left:0 !important}.px-md-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-md-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-md-3{padding-right:1rem !important;padding-left:1rem !important}.px-md-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-md-5{padding-right:3rem !important;padding-left:3rem !important}.py-md-0{padding-top:0 !important;padding-bottom:0 !important}.py-md-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-md-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-md-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-md-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-md-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-md-0{padding-top:0 !important}.pt-md-1{padding-top:.25rem !important}.pt-md-2{padding-top:.5rem !important}.pt-md-3{padding-top:1rem !important}.pt-md-4{padding-top:1.5rem !important}.pt-md-5{padding-top:3rem !important}.pe-md-0{padding-right:0 !important}.pe-md-1{padding-right:.25rem !important}.pe-md-2{padding-right:.5rem !important}.pe-md-3{padding-right:1rem !important}.pe-md-4{padding-right:1.5rem !important}.pe-md-5{padding-right:3rem !important}.pb-md-0{padding-bottom:0 !important}.pb-md-1{padding-bottom:.25rem !important}.pb-md-2{padding-bottom:.5rem !important}.pb-md-3{padding-bottom:1rem !important}.pb-md-4{padding-bottom:1.5rem !important}.pb-md-5{padding-bottom:3rem !important}.ps-md-0{padding-left:0 !important}.ps-md-1{padding-left:.25rem !important}.ps-md-2{padding-left:.5rem !important}.ps-md-3{padding-left:1rem !important}.ps-md-4{padding-left:1.5rem !important}.ps-md-5{padding-left:3rem !important}.text-md-start{text-align:left !important}.text-md-end{text-align:right !important}.text-md-center{text-align:center !important}}@media (min-width: 992px){.float-lg-start{float:left !important}.float-lg-end{float:right !important}.float-lg-none{float:none !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !important}.d-lg-grid{display:grid !important}.d-lg-table{display:table !important}.d-lg-table-row{display:table-row !important}.d-lg-table-cell{display:table-cell !important}.d-lg-flex{display:flex !important}.d-lg-inline-flex{display:inline-flex !important}.d-lg-none{display:none !important}.flex-lg-fill{flex:1 1 auto !important}.flex-lg-row{flex-direction:row !important}.flex-lg-column{flex-direction:column !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column-reverse{flex-direction:column-reverse !important}.flex-lg-grow-0{flex-grow:0 !important}.flex-lg-grow-1{flex-grow:1 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-shrink-1{flex-shrink:1 !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-lg-0{gap:0 !important}.gap-lg-1{gap:.25rem !important}.gap-lg-2{gap:.5rem !important}.gap-lg-3{gap:1rem !important}.gap-lg-4{gap:1.5rem !important}.gap-lg-5{gap:3rem !important}.justify-content-lg-start{justify-content:flex-start !important}.justify-content-lg-end{justify-content:flex-end !important}.justify-content-lg-center{justify-content:center !important}.justify-content-lg-between{justify-content:space-between !important}.justify-content-lg-around{justify-content:space-around !important}.justify-content-lg-evenly{justify-content:space-evenly !important}.align-items-lg-start{align-items:flex-start !important}.align-items-lg-end{align-items:flex-end !important}.align-items-lg-center{align-items:center !important}.align-items-lg-baseline{align-items:baseline !important}.align-items-lg-stretch{align-items:stretch !important}.align-content-lg-start{align-content:flex-start !important}.align-content-lg-end{align-content:flex-end !important}.align-content-lg-center{align-content:center !important}.align-content-lg-between{align-content:space-between !important}.align-content-lg-around{align-content:space-around !important}.align-content-lg-stretch{align-content:stretch !important}.align-self-lg-auto{align-self:auto !important}.align-self-lg-start{align-self:flex-start !important}.align-self-lg-end{align-self:flex-end !important}.align-self-lg-center{align-self:center !important}.align-self-lg-baseline{align-self:baseline !important}.align-self-lg-stretch{align-self:stretch !important}.order-lg-first{order:-1 !important}.order-lg-0{order:0 !important}.order-lg-1{order:1 !important}.order-lg-2{order:2 !important}.order-lg-3{order:3 !important}.order-lg-4{order:4 !important}.order-lg-5{order:5 !important}.order-lg-last{order:6 !important}.m-lg-0{margin:0 !important}.m-lg-1{margin:.25rem !important}.m-lg-2{margin:.5rem !important}.m-lg-3{margin:1rem !important}.m-lg-4{margin:1.5rem !important}.m-lg-5{margin:3rem !important}.m-lg-auto{margin:auto !important}.mx-lg-0{margin-right:0 !important;margin-left:0 !important}.mx-lg-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-lg-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-lg-3{margin-right:1rem !important;margin-left:1rem !important}.mx-lg-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-lg-5{margin-right:3rem !important;margin-left:3rem !important}.mx-lg-auto{margin-right:auto !important;margin-left:auto !important}.my-lg-0{margin-top:0 !important;margin-bottom:0 !important}.my-lg-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-lg-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-lg-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-lg-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-lg-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-lg-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-lg-0{margin-top:0 !important}.mt-lg-1{margin-top:.25rem !important}.mt-lg-2{margin-top:.5rem !important}.mt-lg-3{margin-top:1rem !important}.mt-lg-4{margin-top:1.5rem !important}.mt-lg-5{margin-top:3rem !important}.mt-lg-auto{margin-top:auto !important}.me-lg-0{margin-right:0 !important}.me-lg-1{margin-right:.25rem !important}.me-lg-2{margin-right:.5rem !important}.me-lg-3{margin-right:1rem !important}.me-lg-4{margin-right:1.5rem !important}.me-lg-5{margin-right:3rem !important}.me-lg-auto{margin-right:auto !important}.mb-lg-0{margin-bottom:0 !important}.mb-lg-1{margin-bottom:.25rem !important}.mb-lg-2{margin-bottom:.5rem !important}.mb-lg-3{margin-bottom:1rem !important}.mb-lg-4{margin-bottom:1.5rem !important}.mb-lg-5{margin-bottom:3rem !important}.mb-lg-auto{margin-bottom:auto !important}.ms-lg-0{margin-left:0 !important}.ms-lg-1{margin-left:.25rem !important}.ms-lg-2{margin-left:.5rem !important}.ms-lg-3{margin-left:1rem !important}.ms-lg-4{margin-left:1.5rem !important}.ms-lg-5{margin-left:3rem !important}.ms-lg-auto{margin-left:auto !important}.p-lg-0{padding:0 !important}.p-lg-1{padding:.25rem !important}.p-lg-2{padding:.5rem !important}.p-lg-3{padding:1rem !important}.p-lg-4{padding:1.5rem !important}.p-lg-5{padding:3rem !important}.px-lg-0{padding-right:0 !important;padding-left:0 !important}.px-lg-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-lg-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-lg-3{padding-right:1rem !important;padding-left:1rem !important}.px-lg-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-lg-5{padding-right:3rem !important;padding-left:3rem !important}.py-lg-0{padding-top:0 !important;padding-bottom:0 !important}.py-lg-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-lg-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-lg-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-lg-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-lg-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-lg-0{padding-top:0 !important}.pt-lg-1{padding-top:.25rem !important}.pt-lg-2{padding-top:.5rem !important}.pt-lg-3{padding-top:1rem !important}.pt-lg-4{padding-top:1.5rem !important}.pt-lg-5{padding-top:3rem !important}.pe-lg-0{padding-right:0 !important}.pe-lg-1{padding-right:.25rem !important}.pe-lg-2{padding-right:.5rem !important}.pe-lg-3{padding-right:1rem !important}.pe-lg-4{padding-right:1.5rem !important}.pe-lg-5{padding-right:3rem !important}.pb-lg-0{padding-bottom:0 !important}.pb-lg-1{padding-bottom:.25rem !important}.pb-lg-2{padding-bottom:.5rem !important}.pb-lg-3{padding-bottom:1rem !important}.pb-lg-4{padding-bottom:1.5rem !important}.pb-lg-5{padding-bottom:3rem !important}.ps-lg-0{padding-left:0 !important}.ps-lg-1{padding-left:.25rem !important}.ps-lg-2{padding-left:.5rem !important}.ps-lg-3{padding-left:1rem !important}.ps-lg-4{padding-left:1.5rem !important}.ps-lg-5{padding-left:3rem !important}.text-lg-start{text-align:left !important}.text-lg-end{text-align:right !important}.text-lg-center{text-align:center !important}}@media (min-width: 1200px){.float-xl-start{float:left !important}.float-xl-end{float:right !important}.float-xl-none{float:none !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !important}.d-xl-grid{display:grid !important}.d-xl-table{display:table !important}.d-xl-table-row{display:table-row !important}.d-xl-table-cell{display:table-cell !important}.d-xl-flex{display:flex !important}.d-xl-inline-flex{display:inline-flex !important}.d-xl-none{display:none !important}.flex-xl-fill{flex:1 1 auto !important}.flex-xl-row{flex-direction:row !important}.flex-xl-column{flex-direction:column !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column-reverse{flex-direction:column-reverse !important}.flex-xl-grow-0{flex-grow:0 !important}.flex-xl-grow-1{flex-grow:1 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-shrink-1{flex-shrink:1 !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-xl-0{gap:0 !important}.gap-xl-1{gap:.25rem !important}.gap-xl-2{gap:.5rem !important}.gap-xl-3{gap:1rem !important}.gap-xl-4{gap:1.5rem !important}.gap-xl-5{gap:3rem !important}.justify-content-xl-start{justify-content:flex-start !important}.justify-content-xl-end{justify-content:flex-end !important}.justify-content-xl-center{justify-content:center !important}.justify-content-xl-between{justify-content:space-between !important}.justify-content-xl-around{justify-content:space-around !important}.justify-content-xl-evenly{justify-content:space-evenly !important}.align-items-xl-start{align-items:flex-start !important}.align-items-xl-end{align-items:flex-end !important}.align-items-xl-center{align-items:center !important}.align-items-xl-baseline{align-items:baseline !important}.align-items-xl-stretch{align-items:stretch !important}.align-content-xl-start{align-content:flex-start !important}.align-content-xl-end{align-content:flex-end !important}.align-content-xl-center{align-content:center !important}.align-content-xl-between{align-content:space-between !important}.align-content-xl-around{align-content:space-around !important}.align-content-xl-stretch{align-content:stretch !important}.align-self-xl-auto{align-self:auto !important}.align-self-xl-start{align-self:flex-start !important}.align-self-xl-end{align-self:flex-end !important}.align-self-xl-center{align-self:center !important}.align-self-xl-baseline{align-self:baseline !important}.align-self-xl-stretch{align-self:stretch !important}.order-xl-first{order:-1 !important}.order-xl-0{order:0 !important}.order-xl-1{order:1 !important}.order-xl-2{order:2 !important}.order-xl-3{order:3 !important}.order-xl-4{order:4 !important}.order-xl-5{order:5 !important}.order-xl-last{order:6 !important}.m-xl-0{margin:0 !important}.m-xl-1{margin:.25rem !important}.m-xl-2{margin:.5rem !important}.m-xl-3{margin:1rem !important}.m-xl-4{margin:1.5rem !important}.m-xl-5{margin:3rem !important}.m-xl-auto{margin:auto !important}.mx-xl-0{margin-right:0 !important;margin-left:0 !important}.mx-xl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xl-auto{margin-right:auto !important;margin-left:auto !important}.my-xl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xl-0{margin-top:0 !important}.mt-xl-1{margin-top:.25rem !important}.mt-xl-2{margin-top:.5rem !important}.mt-xl-3{margin-top:1rem !important}.mt-xl-4{margin-top:1.5rem !important}.mt-xl-5{margin-top:3rem !important}.mt-xl-auto{margin-top:auto !important}.me-xl-0{margin-right:0 !important}.me-xl-1{margin-right:.25rem !important}.me-xl-2{margin-right:.5rem !important}.me-xl-3{margin-right:1rem !important}.me-xl-4{margin-right:1.5rem !important}.me-xl-5{margin-right:3rem !important}.me-xl-auto{margin-right:auto !important}.mb-xl-0{margin-bottom:0 !important}.mb-xl-1{margin-bottom:.25rem !important}.mb-xl-2{margin-bottom:.5rem !important}.mb-xl-3{margin-bottom:1rem !important}.mb-xl-4{margin-bottom:1.5rem !important}.mb-xl-5{margin-bottom:3rem !important}.mb-xl-auto{margin-bottom:auto !important}.ms-xl-0{margin-left:0 !important}.ms-xl-1{margin-left:.25rem !important}.ms-xl-2{margin-left:.5rem !important}.ms-xl-3{margin-left:1rem !important}.ms-xl-4{margin-left:1.5rem !important}.ms-xl-5{margin-left:3rem !important}.ms-xl-auto{margin-left:auto !important}.p-xl-0{padding:0 !important}.p-xl-1{padding:.25rem !important}.p-xl-2{padding:.5rem !important}.p-xl-3{padding:1rem !important}.p-xl-4{padding:1.5rem !important}.p-xl-5{padding:3rem !important}.px-xl-0{padding-right:0 !important;padding-left:0 !important}.px-xl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xl-0{padding-top:0 !important}.pt-xl-1{padding-top:.25rem !important}.pt-xl-2{padding-top:.5rem !important}.pt-xl-3{padding-top:1rem !important}.pt-xl-4{padding-top:1.5rem !important}.pt-xl-5{padding-top:3rem !important}.pe-xl-0{padding-right:0 !important}.pe-xl-1{padding-right:.25rem !important}.pe-xl-2{padding-right:.5rem !important}.pe-xl-3{padding-right:1rem !important}.pe-xl-4{padding-right:1.5rem !important}.pe-xl-5{padding-right:3rem !important}.pb-xl-0{padding-bottom:0 !important}.pb-xl-1{padding-bottom:.25rem !important}.pb-xl-2{padding-bottom:.5rem !important}.pb-xl-3{padding-bottom:1rem !important}.pb-xl-4{padding-bottom:1.5rem !important}.pb-xl-5{padding-bottom:3rem !important}.ps-xl-0{padding-left:0 !important}.ps-xl-1{padding-left:.25rem !important}.ps-xl-2{padding-left:.5rem !important}.ps-xl-3{padding-left:1rem !important}.ps-xl-4{padding-left:1.5rem !important}.ps-xl-5{padding-left:3rem !important}.text-xl-start{text-align:left !important}.text-xl-end{text-align:right !important}.text-xl-center{text-align:center !important}}@media (min-width: 1400px){.float-xxl-start{float:left !important}.float-xxl-end{float:right !important}.float-xxl-none{float:none !important}.d-xxl-inline{display:inline !important}.d-xxl-inline-block{display:inline-block !important}.d-xxl-block{display:block !important}.d-xxl-grid{display:grid !important}.d-xxl-table{display:table !important}.d-xxl-table-row{display:table-row !important}.d-xxl-table-cell{display:table-cell !important}.d-xxl-flex{display:flex !important}.d-xxl-inline-flex{display:inline-flex !important}.d-xxl-none{display:none !important}.flex-xxl-fill{flex:1 1 auto !important}.flex-xxl-row{flex-direction:row !important}.flex-xxl-column{flex-direction:column !important}.flex-xxl-row-reverse{flex-direction:row-reverse !important}.flex-xxl-column-reverse{flex-direction:column-reverse !important}.flex-xxl-grow-0{flex-grow:0 !important}.flex-xxl-grow-1{flex-grow:1 !important}.flex-xxl-shrink-0{flex-shrink:0 !important}.flex-xxl-shrink-1{flex-shrink:1 !important}.flex-xxl-wrap{flex-wrap:wrap !important}.flex-xxl-nowrap{flex-wrap:nowrap !important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-xxl-0{gap:0 !important}.gap-xxl-1{gap:.25rem !important}.gap-xxl-2{gap:.5rem !important}.gap-xxl-3{gap:1rem !important}.gap-xxl-4{gap:1.5rem !important}.gap-xxl-5{gap:3rem !important}.justify-content-xxl-start{justify-content:flex-start !important}.justify-content-xxl-end{justify-content:flex-end !important}.justify-content-xxl-center{justify-content:center !important}.justify-content-xxl-between{justify-content:space-between !important}.justify-content-xxl-around{justify-content:space-around !important}.justify-content-xxl-evenly{justify-content:space-evenly !important}.align-items-xxl-start{align-items:flex-start !important}.align-items-xxl-end{align-items:flex-end !important}.align-items-xxl-center{align-items:center !important}.align-items-xxl-baseline{align-items:baseline !important}.align-items-xxl-stretch{align-items:stretch !important}.align-content-xxl-start{align-content:flex-start !important}.align-content-xxl-end{align-content:flex-end !important}.align-content-xxl-center{align-content:center !important}.align-content-xxl-between{align-content:space-between !important}.align-content-xxl-around{align-content:space-around !important}.align-content-xxl-stretch{align-content:stretch !important}.align-self-xxl-auto{align-self:auto !important}.align-self-xxl-start{align-self:flex-start !important}.align-self-xxl-end{align-self:flex-end !important}.align-self-xxl-center{align-self:center !important}.align-self-xxl-baseline{align-self:baseline !important}.align-self-xxl-stretch{align-self:stretch !important}.order-xxl-first{order:-1 !important}.order-xxl-0{order:0 !important}.order-xxl-1{order:1 !important}.order-xxl-2{order:2 !important}.order-xxl-3{order:3 !important}.order-xxl-4{order:4 !important}.order-xxl-5{order:5 !important}.order-xxl-last{order:6 !important}.m-xxl-0{margin:0 !important}.m-xxl-1{margin:.25rem !important}.m-xxl-2{margin:.5rem !important}.m-xxl-3{margin:1rem !important}.m-xxl-4{margin:1.5rem !important}.m-xxl-5{margin:3rem !important}.m-xxl-auto{margin:auto !important}.mx-xxl-0{margin-right:0 !important;margin-left:0 !important}.mx-xxl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xxl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xxl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xxl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xxl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xxl-auto{margin-right:auto !important;margin-left:auto !important}.my-xxl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xxl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xxl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xxl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xxl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xxl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xxl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xxl-0{margin-top:0 !important}.mt-xxl-1{margin-top:.25rem !important}.mt-xxl-2{margin-top:.5rem !important}.mt-xxl-3{margin-top:1rem !important}.mt-xxl-4{margin-top:1.5rem !important}.mt-xxl-5{margin-top:3rem !important}.mt-xxl-auto{margin-top:auto !important}.me-xxl-0{margin-right:0 !important}.me-xxl-1{margin-right:.25rem !important}.me-xxl-2{margin-right:.5rem !important}.me-xxl-3{margin-right:1rem !important}.me-xxl-4{margin-right:1.5rem !important}.me-xxl-5{margin-right:3rem !important}.me-xxl-auto{margin-right:auto !important}.mb-xxl-0{margin-bottom:0 !important}.mb-xxl-1{margin-bottom:.25rem !important}.mb-xxl-2{margin-bottom:.5rem !important}.mb-xxl-3{margin-bottom:1rem !important}.mb-xxl-4{margin-bottom:1.5rem !important}.mb-xxl-5{margin-bottom:3rem !important}.mb-xxl-auto{margin-bottom:auto !important}.ms-xxl-0{margin-left:0 !important}.ms-xxl-1{margin-left:.25rem !important}.ms-xxl-2{margin-left:.5rem !important}.ms-xxl-3{margin-left:1rem !important}.ms-xxl-4{margin-left:1.5rem !important}.ms-xxl-5{margin-left:3rem !important}.ms-xxl-auto{margin-left:auto !important}.p-xxl-0{padding:0 !important}.p-xxl-1{padding:.25rem !important}.p-xxl-2{padding:.5rem !important}.p-xxl-3{padding:1rem !important}.p-xxl-4{padding:1.5rem !important}.p-xxl-5{padding:3rem !important}.px-xxl-0{padding-right:0 !important;padding-left:0 !important}.px-xxl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xxl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xxl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xxl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xxl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xxl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xxl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xxl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xxl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xxl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xxl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xxl-0{padding-top:0 !important}.pt-xxl-1{padding-top:.25rem !important}.pt-xxl-2{padding-top:.5rem !important}.pt-xxl-3{padding-top:1rem !important}.pt-xxl-4{padding-top:1.5rem !important}.pt-xxl-5{padding-top:3rem !important}.pe-xxl-0{padding-right:0 !important}.pe-xxl-1{padding-right:.25rem !important}.pe-xxl-2{padding-right:.5rem !important}.pe-xxl-3{padding-right:1rem !important}.pe-xxl-4{padding-right:1.5rem !important}.pe-xxl-5{padding-right:3rem !important}.pb-xxl-0{padding-bottom:0 !important}.pb-xxl-1{padding-bottom:.25rem !important}.pb-xxl-2{padding-bottom:.5rem !important}.pb-xxl-3{padding-bottom:1rem !important}.pb-xxl-4{padding-bottom:1.5rem !important}.pb-xxl-5{padding-bottom:3rem !important}.ps-xxl-0{padding-left:0 !important}.ps-xxl-1{padding-left:.25rem !important}.ps-xxl-2{padding-left:.5rem !important}.ps-xxl-3{padding-left:1rem !important}.ps-xxl-4{padding-left:1.5rem !important}.ps-xxl-5{padding-left:3rem !important}.text-xxl-start{text-align:left !important}.text-xxl-end{text-align:right !important}.text-xxl-center{text-align:center !important}}@media (min-width: 1200px){.fs-1{font-size:2.5rem !important}.fs-2{font-size:2rem !important}.fs-3{font-size:1.4rem !important}.fs-4{font-size:1.5rem !important}.fs-sm-1{font-size:2.5rem !important}.fs-sm-2{font-size:2rem !important}.fs-sm-3{font-size:1.4rem !important}.fs-sm-4{font-size:1.5rem !important}.fs-md-1{font-size:2.5rem !important}.fs-md-2{font-size:2rem !important}.fs-md-3{font-size:1.4rem !important}.fs-md-4{font-size:1.5rem !important}.fs-lg-1{font-size:2.5rem !important}.fs-lg-2{font-size:2rem !important}.fs-lg-3{font-size:1.4rem !important}.fs-lg-4{font-size:1.5rem !important}}@media print{.d-print-inline{display:inline !important}.d-print-inline-block{display:inline-block !important}.d-print-block{display:block !important}.d-print-grid{display:grid !important}.d-print-table{display:table !important}.d-print-table-row{display:table-row !important}.d-print-table-cell{display:table-cell !important}.d-print-flex{display:flex !important}.d-print-inline-flex{display:inline-flex !important}.d-print-none{display:none !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: sticky){.docs-sidebar{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: 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: sticky){.docs-toc{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}.demo-btns-container{display:flex;align-items:center;justify-content:center;gap:10px;margin:1rem 0 2rem 0}.demo-btns-container.dynamic-mode-demo{display:inline-flex;margin:0 10px 0 10px}.demo-btn{text-align:center;font-size:14px}.demo-btn svg{width:18px;margin-right:5px}.demo-btn a{display:flex;align-items:center}.demo-btn-stackblits svg{margin-right:3px}.demo-btn+.demo-btn{margin-left:10px}.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}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-start),.active.carousel-item-end{transform:translateX(100%)}.carousel-item-prev:not(.carousel-item-end),.active.carousel-item-start{transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity 0.15s ease}@media (prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity 0.6s ease}@media (prefers-reduced-motion: reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-prev-icon,.carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators li{background-color:#333}.carousel-dark .carousel-caption{color:#333}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);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}.yt-thumbnail-container{padding-top:4rem;display:flex;flex-direction:column;align-items:center;background-image:linear-gradient(#e8f0ff 0%, white 52.08%)}@media (max-width: 575.98px){.yt-thumbnail-container{padding-left:0px;padding-right:0px}}.yt-thumbnail-page{display:flex;flex-direction:column;justify-content:center;align-items:center}.hero-section-thumbnail{padding-top:60px;display:flex;flex-direction:column;justify-content:center;text-align:center;margin-top:100px}@media (max-width: 767.98px){.hero-section-thumbnail{padding-top:30px;margin-top:50px}}.hero-section-thumbnail-section{padding-left:20px;padding-right:20px}.yt-thumbnail-header{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';color:#0e3481;font-size:50px;font-weight:500}@media (max-width: 575.98px){.yt-thumbnail-header{font-size:36px}}.yt-thumbnail-description-container{display:flex;justify-content:center;align-items:center}.yt-thumbnail-description{color:#0e3481;font-weight:400;margin-top:0px;line-height:1.6;font-size:21px;display:flex;justify-content:center;max-width:700px}@media (max-width: 575.98px){.yt-thumbnail-description{font-size:20px;margin-bottom:48px}}@media (max-width: 991.98px){.yt-thumbnail-description{margin-bottom:48px}}.quality-option{border:1px solid black;max-width:220px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2212%22%20height%3D%2212%22%20viewBox%3D%220%200%2012%2012%22%3E%3Ctitle%3Edown-arrow%3C%2Ftitle%3E%3Cg%20fill%3D%22%230e3481%22%3E%3Cpath%20d%3D%22M10.293%2C3.293%2C6%2C7.586%2C1.707%2C3.293A1%2C1%2C0%2C0%2C0%2C.293%2C4.707l5%2C5a1%2C1%2C0%2C0%2C0%2C1.414%2C0l5-5a1%2C1%2C0%2C1%2C0-1.414-1.414Z%22%20fill%3D%22%230e3481%22%3E%3C%2Fpath%3E%3C%2Fg%3E%3C%2Fsvg%3E");background-size:0.6em;background-position:calc(100% - 1.3em) center;background-repeat:no-repeat}.thumb-form{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%}.url-tab{margin-right:-1px;padding-left:24px;display:flex;align-items:center;height:32px;min-width:0px;outline:transparent solid 2px;outline-offset:2px;position:relative;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-width:1px;border-style:solid;-o-border-image:initial;border-image:initial;border-color:inherit;background:inherit;width:100%;background-color:white;border-color:#e0eafd;border-radius:6px;font-size:16px;color:#333333;height:66px}@media (min-width: 768px){.url-tab{border-radius:6px 0px 0px 6px}}@media (min-width: 992px){.url-tab{width:730px;border-radius:6px 0px 0px 6px}}.url-tab:-webkit-autofill,.url-tab:-webkit-autofill:hover,.url-tab:-webkit-autofill:focus,.url-tab:-webkit-autofill:active{-webkit-background-clip:text;-webkit-text-fill-color:#333333;-webkit-transition:background-color 5000s ease-in-out 0s;transition:background-color 5000s ease-in-out 0s;box-shadow:inset 0 0 40px 40px #fff}.content-area{margin-top:72px;display:flex}@media (max-width: 991.98px){.content-area{display:flex;width:100%}}@media (max-width: 767.98px){.content-area{display:block}}.url-tab-header{margin-bottom:4px;display:inline-block;font-weight:400;line-height:1.5;letter-spacing:0.5px;color:#0e3481;font-size:16px;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'}.content-url-section{margin-right:0px}@media (max-width: 767.98px){.content-url-section{width:100%}}@media (max-width: 991.98px){.content-url-section{width:100%;margin-right:0px;margin-bottom:20px}}@media (max-width: 991.98px){.content-quality-section{margin-right:0px;margin-bottom:20px}}.quality-option-header{margin-bottom:4px;display:inline-block;font-weight:400;line-height:1.5;letter-spacing:0.5px;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';color:#0e3481;font-size:16px}.quality-option{letter-spacing:0.5px;display:inline-block;font-weight:400;line-height:1.5;text-align:center;vertical-align:middle;border-color:#0e3481;color:#0e3481;text-align:center;align-items:center;display:flex;justify-content:center;border-radius:4px;height:40px;width:220px}.quality-value{font-weight:500;color:#0e3481;align-items:center;display:flex;justify-content:center}.preview-button-container{margin-top:0px;margin-left:0px;flex-shrink:0px}@media (max-width: 991.98px){.preview-button-container{margin-top:0px;margin-left:0px}}@media (max-width: 767.98px){.preview-button-container{width:100%}}.preview-button{margin-top:0px;display:inline-block;font-weight:600;line-height:1.5;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:0.375rem 0.75rem;font-size:18px;border-radius:6px;border-top-left-radius:0px;border-bottom-left-radius:0px;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;color:#fff;background-color:#0858fe;border-color:#0858fe;height:66px;padding-top:3px;width:236px}@media (max-width: 991.98px){.preview-button{border-radius:0px, 0px, 6px, 6px}}@media (max-width: 767.98px){.preview-button{border-radius:6px;width:100%}}.preview-button:hover{transition:0.5s;color:#fff;background-color:#0e3481;border-color:#e0eafd;border-color:#0e3481}.faq-section-container{width:100%;background-image:linear-gradient(#f6f9fb 0%, #fdfdfe 52.08%);display:flex;justify-content:center;margin-top:126px}.faq-question-single{color:#0e3481;font-size:22px}.faq-answer-single{color:#0e3481;font-size:18px}.faq-section-header{padding-top:120px;display:flex;color:#0e3481;font-size:32px;font-weight:600}.faq-section-body{display:flex;flex-direction:column}.preview-section-two{max-width:1346px;width:100%;display:flex;justify-content:space-between}.preview-section-one{display:flex;flex-direction:column;align-items:center}.preview-container{border-radius:12px;margin-top:110px;padding:22px;display:flex;flex-direction:column;align-items:center;background-color:#fafcff;border:1px solid #e0eafd}@media (min-width: 768px){.preview-container{padding:32px}}.thumbnail-preview{width:100%;margin-top:32px;display:flex;align-items:center;justify-content:center;flex-direction:column}.download-btn{display:flex;margin-bottom:32px;padding:7px 24px 7px 24px;border-radius:4px;color:#0858fe;border:none;background-color:#e0eafd;text-decoration:none !important}.download-btn:hover{transition:0.4s;color:#e0eafd;background-color:#0858fe}.preview-name{margin-bottom:16px;color:#666666}.btn-text{margin-right:6px}.youtube-thumnail-about-section{max-width:1200px}.about-section-desc-header{color:#0e3481;font-size:32px}.about-seection-desc{color:#0e3481;font-size:18px}.download-icon{stroke:#0858fe}.inner-section{text-align:center}.other-tool-section-tittle{text-align:center;margin-bottom:60px;font-size:24px;color:#0e3481}@media (min-width: 768px){.other-tool-section-tittle{font-size:32px}}.inner-section-subhead{font-size:20px;color:#0e3481}@media (min-width: 768px){.inner-section-subhead{font-size:22px}}.inner-section-desc{color:#666666;font-size:16px}@media (min-width: 768px){.inner-section-desc{font-size:18px}}.other-tool-section{margin-top:110px}.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{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}@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;color:#5b6373}@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}.trusted-by .contents-list-item svg{max-width:110px;max-height:36px}@media (min-width: 768px){.trusted-by .contents-list-item{padding:1.5rem}}.trusted-by h2,.trusted-by .h2{font-size:18px;margin:0 0px 36px 0;color:inherit}@media (min-width: 768px){.trusted-by h2,.trusted-by .h2{font-size:24px}}.trusted-by.trusted-by-blue{color:#2d477c}.pricing-list-item{width:100%;padding:20px;margin:20px;color:#0e3481;border-radius:5px}@media (min-width: 768px){.pricing-list-item{width:260px}}.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;flex-wrap:wrap}.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}.lg-item .lightGallery-captions h4,.lg-item .lightGallery-captions .h4{transform:translate3d(60px, 0, 0px)}.lg-item .lightGallery-captions p{transform:translate3d(-60px, 0, 0px)}.lg-item .lightGallery-captions h4,.lg-item .lightGallery-captions .h4,.lg-item .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}.carousel-control-prev,.carousel-control-next{background-color:transparent;box-shadow:none;border:none}.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{width:100%;height:100%;position:absolute !important}.swiper-lg-wrap{width:1200px;height:0;padding-bottom:65%;position:relative;max-width:100%}#bootstrap-gallery-carousel.carousel .lg-item{display:flex;justify-content:center;align-items:center;height:100%}#bootstrap-gallery-carousel.carousel .lg-item img{width:unset !important;height:500px}#bootstrap-gallery-carousel.carousel .carousel-item .lg-item img{height:600px}#bootstrap-video-carousel.carousel .lg-item{display:flex;justify-content:center;align-items:center;height:100%}#bootstrap-video-carousel.carousel .lg-item img{width:unset !important;height:500px}#bootstrap-video-carousel.carousel .carousel-item .lg-item img{height:600px}#slick-carousel-gallery-demo img{height:500px}#slick-carousel-gallery-demo .slick-track{gap:10px;display:flex}#slick-carousel-gallery-demo .slick-prev,#slick-carousel-gallery-demo .slick-next{padding:10px;position:absolute;top:50%;z-index:1;cursor:pointer;zoom:2}#slick-carousel-gallery-demo .slick-prev{left:-8px}#slick-carousel-gallery-demo .slick-next{right:12px}#flickity-carousel-gallery-demo .flickity-slider{gap:10px;display:flex}#flickity-carousel-gallery-demo .flickity-slider .lg-item img{height:600px}#masonry-gallery-demo{margin:0 auto}#masonry-gallery-demo:after{content:'';display:block;clear:both}#masonry-gallery-demo .grid-sizer,#masonry-gallery-demo .lg-item{width:33.33%}#masonry-gallery-demo .lg-item{float:left;margin-bottom:10px}#masonry-gallery-demo .lg-item img{display:block;max-width:100%}#owl-carousel-gallery-demo .owl-carousel-item img{height:500px}.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}.dynamic-mode-images{position:relative;width:100%;height:auto}.btn-dynamic{color:#333;background-color:white;padding:5px 10px;position:absolute;bottom:15px;right:15px;font-size:14px;z-index:99}.blog-wrap{padding:100px 0 0 0;font-family:'Inter';font-style:normal;font-weight:400;font-size:18px;line-height:32px;color:#1A202C}@media (min-width: 768px){.blog-wrap{padding:100px 75px}}.blog-wrap .docs-hero-image{margin-bottom:60px}.blog-wrap .figure{display:inline-block;margin:1rem 0}@media (min-width: 768px){.blog-wrap .figure{margin:2rem -80px}}.blog-wrap .docs-hero-image{display:block}@media (min-width: 768px){.blog-wrap .docs-hero-image{margin-left:-120px;margin-right:-120px}}.blog-wrap .blog-header{margin-top:40px;margin-bottom:60px;max-width:700px}.blog-wrap .blog-header h1,.blog-wrap .blog-header .h1{font-style:normal;font-weight:700;font-size:36px;line-height:48px;margin:5px 0 24px 0;letter-spacing:0.01em;color:#1A202C}.blog-wrap .blog-header .blog-tags{display:inline-block;margin-right:8px}.blog-contributors .blog-contributors-list{font-weight:400;font-size:14px;line-height:20px;color:#718096}.blog-contributors .contributor-image img{max-width:36px;border-radius:4px;margin-right:8px}.blog-meta{font-family:'Inter';font-style:normal;font-weight:400;font-size:14px;line-height:16px;color:rgba(0,0,0,0.64)}.blog-meta strong{color:#000}.blog-list{padding-top:120px;padding-bottom:60px}.blog-list .blog-list-item+.blog-list-item{border-top:1px solid #e2e2ef;padding-top:48px;margin-top:48px}.blog-list .docs-hero-image{margin-bottom:24px;display:block}.blog-list .blog-meta{margin-bottom:24px}.blog-list .stretched-link:after{content:none}.blog-list h2,.blog-list .h2{margin:0 0 16px 0;font-style:normal;font-weight:700;font-size:34px;line-height:1.2;letter-spacing:0.01em;color:#1A202C}.blog-list .blog-body{font-family:'Inter';font-style:normal;font-weight:400;font-size:16px;line-height:24px;color:#4A5568}.blog-list .blog-contributors{margin-top:16px}.blog-text{color:#ffffff;font-size:12px;line-height:16px;display:flex;align-items:center}.blog-text:hover{color:#ffffff;text-decoration:none}.blog-text span{background-color:#805AD5;border-radius:6px;padding:4px 10px}.container-fluid-max{max-width:1440px}.rjq-main{background-color:var(--main-bg);background-image:linear-gradient(#e8f0ff 0%, white 5%)}.rjq-main .alert-dialogue-box{background-color:#fff3cd;margin:auto;display:none;position:relative;margin-bottom:20px;max-width:390px;border-radius:6px;color:#C05621;border-color:#ffeeba}.rjq-main .alert-box-main-head{padding:16px 22px}.rjq-main .alert-box-head{font-size:16px;font-weight:500;margin:0}.rjq-main .alert-box-sub{font-size:16px;padding-top:5px;margin-bottom:0;font-weight:500;font-style:italic}.rjq-main .alert-close-svg{cursor:pointer;position:absolute;right:10px;top:10px}.rjq-main .chroma{border-radius:4px}.rjq-main .section{padding-bottom:32px}.replace-jq-centre-convert-btn-header{padding-top:80px;margin-bottom:35px;display:flex;flex-direction:column;align-items:center}@media (min-width: 768px){.replace-jq-centre-convert-btn-header{padding-top:126px;margin-bottom:60px}}.replace-jq-centre-convert-btn-head{font-size:28px;font-weight:520;color:#0049a3}@media (min-width: 768px){.replace-jq-centre-convert-btn-head{font-size:35px}}@media (min-width: 992px){.replace-jq-centre-convert-btn-head{font-size:64px}}.replace-jq-centre-convert-btn-subhead{font-size:15px;color:#0049a3;text-align:center;max-width:75%}@media (min-width: 768px){.replace-jq-centre-convert-btn-subhead{font-size:18px}}@media (min-width: 992px){.replace-jq-centre-convert-btn-subhead{font-size:21px;max-width:840px}}.rjq-main-row-sections{display:flex;flex-direction:column;--bs-gutter-x: 0px;justify-content:center;gap:24px;position:relative}@media (min-width: 1200px){.rjq-main-row-sections{flex-direction:row;gap:14px}}.replace-jq-centre-convert-btn-expanded-textfield{width:100%;border-radius:10px}@media (min-width: 1200px){.replace-jq-centre-convert-btn-expanded-textfield{width:50%;border-radius:12px}}.replace-jq-centre-convert-btn-taskbar{border:1px solid #7f9ab9;width:100%;height:62px;margin:0;box-sizing:border-box;position:relative;display:flex;align-items:center;border-bottom:none;background-color:#0e3481;border-top-left-radius:12px;border-top-right-radius:12px;justify-content:space-between}.replace-jq-centre-convert-btn-taskbar-btn-group{float:right;position:relative;vertical-align:middle;gap:16px;padding:14px;display:flex}.replace-jq-main-btn{display:flex;justify-content:center}@media (min-width: 1200px){.replace-jq-main-btn{position:absolute;bottom:32px;left:0;right:0}}.replace-jq-centre-convert-btn-text-area-converter{overflow:auto;outline:none;padding-top:5px;width:100%;height:650px;border:1px solid #e0eafd;background-color:#fafcff;border-bottom-left-radius:12px;border-bottom-right-radius:12px;position:sticky}.section-faq-lite-blue{color:#0049a3}.section-faq-lite-blue .faq-item{border:1px solid #6ea1e0}.section-faq{margin-bottom:0 !important}.section-faq .faq-item{padding:24px 40px;background-color:#fff;box-sizing:border-box;border-radius:12px}.section-faq .faq-item+.faq-item{margin-top:24px}.section-faq .faq-item h4,.section-faq .faq-item .h4{font-style:normal;font-size:18px;line-height:28px;margin:0 0 10px 0}@media (min-width: 1200px){.section-faq .faq-item h4,.section-faq .faq-item .h4{font-size:22px}}.section-faq .faq-item p{font-style:normal;font-weight:normal;font-size:16px;line-height:24px;margin:0;color:#00387c}@media (min-width: 1200px){.section-faq .faq-item p{font-size:16px}}.section-header-sub{margin-top:0;margin-bottom:25px;font-size:30px;font-weight:500px}.fullscreen{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1999}.replace-jq-centre-convert-btn-taskbar-btn{cursor:pointer;position:relative}.minimize-icon{display:none;cursor:pointer;padding-right:25px;padding-left:6px}.replace-jq-tooltiptext{visibility:hidden;opacity:0;width:70px;border-radius:8px;background-color:#fff;border-color:#333;color:#555;text-align:center;padding:5px;position:absolute;z-index:99999;top:100%;left:100%;margin-left:-55px;transition:opacity 0.3s;font-size:14px;font-weight:500;background-color:#e0eafd;margin-top:5px;transition:opacity 0.3s}.replace-jq-btn-convert{float:right;position:relative;vertical-align:middle;font-weight:500;border:none;background-color:#e0eafd;font-size:18px;color:#fff;background-color:#0858FE;border-color:#0858FE;display:flex;gap:6px;padding:12px 20px}.replace-jq-btn-convert:hover{color:#fff;background-color:#0E3481;border-color:#0E3481}.replace-jq-centre-convert-btn-taskbar-title{font-size:18px;line-height:26px;color:#fffdfd}.replace-jq-centre-convert-btn-taskbar-head{float:left;padding-left:16px}.centre-convert-btn{display:flex;justify-content:center;padding-top:16px;padding-bottom:14px}.centre-convert-btn svg{stroke:#0858fe}.centre-convert-btn:hover svg{stroke:#fff}.replace-jq-centre-convert-btn-circle-convert-btn{position:absolute;width:56px;height:56px;border-radius:50%;background-color:#ffffff;border:2px solid #ccc;align-items:center;margin-top:240px;z-index:2;display:none;cursor:pointer}@media (min-width: 1200px){.replace-jq-centre-convert-btn-circle-convert-btn{display:block}}.replace-jq-centre-convert-btn-circle-convert-btn i{font-size:2em;color:#333;transition:color 0.3s}.replace-jq-centre-convert-btn-circle-convert-btn:hover{background-color:#0858fe;border:2px solid #e0eafd}.replace-jq-centre-convert-btn-circle-convert-btn:hover .replace-jq-centre-convert-btn-circle-convert-btn i{color:#fff}.btn-btn-svg :hover{color:white}.editors-wrap{position:relative}@media (min-width: 1200px){.editors-wrap{padding-bottom:107px}}.section-rjq-docs .chroma .k{color:#a11}.section-rjq-docs .chroma .kc{color:#a11}.section-rjq-docs .chroma .nx{color:#708}.section-rjq-docs .chroma .kd{color:#a11}.section-rjq-docs .chroma .kn{color:#a11}.section-rjq-docs .chroma .kp{color:#a11}.section-rjq-docs .chroma .kr{color:#a11}.section-rjq-docs .chroma .kt{color:#2b91af}.section-rjq-docs{color:#0e3481}.section-rjq-docs h2,.section-rjq-docs .h2{text-align:center;margin-top:0;margin-bottom:25px}.section-rjq-docs h5,.section-rjq-docs .h5{margin-top:60px}.rjq-section-header-about{color:#0049a3}.rjq-section-header-about h3,.rjq-section-header-about .h3{margin:0 0 20px 0}.rjq-section-header-about p{font-size:19px;text-align:left;margin:0}.rjq-section-header-about p+p{margin-top:16px} diff --git a/main.a1c0c362e061b96f84eff83912cfda5357d1558ebab4b1996360ae4c4efa5323f0c6a9b38b66748f818a2e584f92840ea93d87abfa3ce3147bd7579ed1a9b073.js b/main.a1c0c362e061b96f84eff83912cfda5357d1558ebab4b1996360ae4c4efa5323f0c6a9b38b66748f818a2e584f92840ea93d87abfa3ce3147bd7579ed1a9b073.js deleted file mode 100644 index 31dbb07a6..000000000 --- a/main.a1c0c362e061b96f84eff83912cfda5357d1558ebab4b1996360ae4c4efa5323f0c6a9b38b66748f818a2e584f92840ea93d87abfa3ce3147bd7579ed1a9b073.js +++ /dev/null @@ -1,7436 +0,0 @@ -/*! 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 0e;e++){var i=h[e];t[i]=0}return t}function n(t){var e=getComputedStyle(t);return e||a("Style returned "+e+". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1"),e}function o(){if(!d){d=!0;var e=document.createElement("div");e.style.width="200px",e.style.padding="1px 2px 3px 4px",e.style.borderStyle="solid",e.style.borderWidth="1px 2px 3px 4px",e.style.boxSizing="border-box";var i=document.body||document.documentElement;i.appendChild(e);var o=n(e);s=200==Math.round(t(o.width)),r.isBoxSizeOuter=s,i.removeChild(e)}}function r(e){if(o(),"string"==typeof e&&(e=document.querySelector(e)),e&&"object"==typeof e&&e.nodeType){var r=n(e);if("none"==r.display)return i();var a={};a.width=e.offsetWidth,a.height=e.offsetHeight;for(var d=a.isBorderBox="border-box"==r.boxSizing,l=0;u>l;l++){var c=h[l],f=r[c],m=parseFloat(f);a[c]=isNaN(m)?0:m}var p=a.paddingLeft+a.paddingRight,g=a.paddingTop+a.paddingBottom,y=a.marginLeft+a.marginRight,v=a.marginTop+a.marginBottom,_=a.borderLeftWidth+a.borderRightWidth,z=a.borderTopWidth+a.borderBottomWidth,E=d&&s,b=t(r.width);b!==!1&&(a.width=b+(E?0:p+_));var x=t(r.height);return x!==!1&&(a.height=x+(E?0:g+z)),a.innerWidth=a.width-(p+_),a.innerHeight=a.height-(g+z),a.outerWidth=a.width+y,a.outerHeight=a.height+v,a}}var s,a="undefined"==typeof console?e:function(t){console.error(t)},h=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],u=h.length,d=!1;return r}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("desandro-matches-selector/matches-selector",e):"object"==typeof module&&module.exports?module.exports=e():t.matchesSelector=e()}(window,function(){"use strict";var t=function(){var t=window.Element.prototype;if(t.matches)return"matches";if(t.matchesSelector)return"matchesSelector";for(var e=["webkit","moz","ms","o"],i=0;is?"round":"floor";r=Math[a](r),this.cols=Math.max(r,1)},n.getContainerWidth=function(){var t=this._getOption("fitWidth"),i=t?this.element.parentNode:this.element,n=e(i);this.containerWidth=n&&n.innerWidth},n._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth%this.columnWidth,i=e&&1>e?"round":"ceil",n=Math[i](t.size.outerWidth/this.columnWidth);n=Math.min(n,this.cols);for(var o=this.options.horizontalOrder?"_getHorizontalColPosition":"_getTopColPosition",r=this[o](n,t),s={x:this.columnWidth*r.col,y:r.y},a=r.y+t.size.outerHeight,h=n+r.col,u=r.col;h>u;u++)this.colYs[u]=a;return s},n._getTopColPosition=function(t){var e=this._getTopColGroup(t),i=Math.min.apply(Math,e);return{col:e.indexOf(i),y:i}},n._getTopColGroup=function(t){if(2>t)return this.colYs;for(var e=[],i=this.cols+1-t,n=0;i>n;n++)e[n]=this._getColGroupY(n,t);return e},n._getColGroupY=function(t,e){if(2>e)return this.colYs[t];var i=this.colYs.slice(t,t+e);return Math.max.apply(Math,i)},n._getHorizontalColPosition=function(t,e){var i=this.horizontalColIndex%this.cols,n=t>1&&i+t>this.cols;i=n?0:i;var o=e.size.outerWidth&&e.size.outerHeight;return this.horizontalColIndex=o?i+t:this.horizontalColIndex,{col:i,y:this._getColGroupY(i,t)}},n._manageStamp=function(t){var i=e(t),n=this._getElementOffset(t),o=this._getOption("originLeft"),r=o?n.left:n.right,s=r+i.outerWidth,a=Math.floor(r/this.columnWidth);a=Math.max(0,a);var h=Math.floor(s/this.columnWidth);h-=s%this.columnWidth?0:1,h=Math.min(this.cols-1,h);for(var u=this._getOption("originTop"),d=(u?n.top:n.bottom)+i.outerHeight,l=a;h>=l;l++)this.colYs[l]=Math.max(d,this.colYs[l])},n._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var t={height:this.maxY};return this._getOption("fitWidth")&&(t.width=this._getContainerFitWidth()),t},n._getContainerFitWidth=function(){for(var t=0,e=this.cols;--e&&0===this.colYs[e];)t++;return(this.cols-t)*this.columnWidth-this.gutter},n.needsResizeLayout=function(){var t=this.containerWidth;return this.getContainerWidth(),t!=this.containerWidth},i}); - -; -/*! - * imagesLoaded PACKAGED v4.1.4 - * JavaScript is all like "You images are done yet or what?" - * MIT License - */ - -/** - * EvEmitter v1.1.0 - * Lil' event emitter - * MIT License - */ - -/* jshint unused: true, undef: true, strict: true */ - -( function( global, factory ) { - // universal module definition - /* jshint strict: false */ /* globals define, module, window */ - if ( typeof define == 'function' && define.amd ) { - // AMD - RequireJS - define( 'ev-emitter/ev-emitter',factory ); - } else if ( typeof module == 'object' && module.exports ) { - // CommonJS - Browserify, Webpack - module.exports = factory(); - } else { - // Browser globals - global.EvEmitter = factory(); - } - - }( typeof window != 'undefined' ? window : this, function() { - - - - function EvEmitter() {} - - var proto = EvEmitter.prototype; - - proto.on = function( eventName, listener ) { - if ( !eventName || !listener ) { - return; - } - // set events hash - var events = this._events = this._events || {}; - // set listeners array - var listeners = events[ eventName ] = events[ eventName ] || []; - // only add once - if ( listeners.indexOf( listener ) == -1 ) { - listeners.push( listener ); - } - - return this; - }; - - proto.once = function( eventName, listener ) { - if ( !eventName || !listener ) { - return; - } - // add event - this.on( eventName, listener ); - // set once flag - // set onceEvents hash - var onceEvents = this._onceEvents = this._onceEvents || {}; - // set onceListeners object - var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {}; - // set flag - onceListeners[ listener ] = true; - - return this; - }; - - proto.off = function( eventName, listener ) { - var listeners = this._events && this._events[ eventName ]; - if ( !listeners || !listeners.length ) { - return; - } - var index = listeners.indexOf( listener ); - if ( index != -1 ) { - listeners.splice( index, 1 ); - } - - return this; - }; - - proto.emitEvent = function( eventName, args ) { - var listeners = this._events && this._events[ eventName ]; - if ( !listeners || !listeners.length ) { - return; - } - // copy over to avoid interference if .off() in listener - listeners = listeners.slice(0); - args = args || []; - // once stuff - var onceListeners = this._onceEvents && this._onceEvents[ eventName ]; - - for ( var i=0; i < listeners.length; i++ ) { - var listener = listeners[i] - var isOnce = onceListeners && onceListeners[ listener ]; - if ( isOnce ) { - // remove listener - // remove before trigger to prevent recursion - this.off( eventName, listener ); - // unset once flag - delete onceListeners[ listener ]; - } - // trigger listener - listener.apply( this, args ); - } - - return this; - }; - - proto.allOff = function() { - delete this._events; - delete this._onceEvents; - }; - - return EvEmitter; - - })); - - /*! - * imagesLoaded v4.1.4 - * JavaScript is all like "You images are done yet or what?" - * MIT License - */ - - ( function( window, factory ) { 'use strict'; - // universal module definition - - /*global define: false, module: false, require: false */ - - if ( typeof define == 'function' && define.amd ) { - // AMD - define( [ - 'ev-emitter/ev-emitter' - ], function( EvEmitter ) { - return factory( window, EvEmitter ); - }); - } else if ( typeof module == 'object' && module.exports ) { - // CommonJS - module.exports = factory( - window, - require('ev-emitter') - ); - } else { - // browser global - window.imagesLoaded = factory( - window, - window.EvEmitter - ); - } - - })( typeof window !== 'undefined' ? window : this, - - // -------------------------- factory -------------------------- // - - function factory( window, EvEmitter ) { - - - - var $ = window.jQuery; - var console = window.console; - - // -------------------------- helpers -------------------------- // - - // extend objects - function extend( a, b ) { - for ( var prop in b ) { - a[ prop ] = b[ prop ]; - } - return a; - } - - var arraySlice = Array.prototype.slice; - - // turn element or nodeList into an array - function makeArray( obj ) { - if ( Array.isArray( obj ) ) { - // use object if already an array - return obj; - } - - var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number'; - if ( isArrayLike ) { - // convert nodeList to array - return arraySlice.call( obj ); - } - - // array of single index - return [ obj ]; - } - - // -------------------------- imagesLoaded -------------------------- // - - /** - * @param {Array, Element, NodeList, String} elem - * @param {Object or Function} options - if function, use as callback - * @param {Function} onAlways - callback function - */ - function ImagesLoaded( elem, options, onAlways ) { - // coerce ImagesLoaded() without new, to be new ImagesLoaded() - if ( !( this instanceof ImagesLoaded ) ) { - return new ImagesLoaded( elem, options, onAlways ); - } - // use elem as selector string - var queryElem = elem; - if ( typeof elem == 'string' ) { - queryElem = document.querySelectorAll( elem ); - } - // bail if bad element - if ( !queryElem ) { - console.error( 'Bad element for imagesLoaded ' + ( queryElem || elem ) ); - return; - } - - this.elements = makeArray( queryElem ); - this.options = extend( {}, this.options ); - // shift arguments if no options set - if ( typeof options == 'function' ) { - onAlways = options; - } else { - extend( this.options, options ); - } - - if ( onAlways ) { - this.on( 'always', onAlways ); - } - - this.getImages(); - - if ( $ ) { - // add jQuery Deferred object - this.jqDeferred = new $.Deferred(); - } - - // HACK check async to allow time to bind listeners - setTimeout( this.check.bind( this ) ); - } - - ImagesLoaded.prototype = Object.create( EvEmitter.prototype ); - - ImagesLoaded.prototype.options = {}; - - ImagesLoaded.prototype.getImages = function() { - this.images = []; - - // filter & find items if we have an item selector - this.elements.forEach( this.addElementImages, this ); - }; - - /** - * @param {Node} element - */ - ImagesLoaded.prototype.addElementImages = function( elem ) { - // filter siblings - if ( elem.nodeName == 'IMG' ) { - this.addImage( elem ); - } - // get background image on element - if ( this.options.background === true ) { - this.addElementBackgroundImages( elem ); - } - - // find children - // no non-element nodes, #143 - var nodeType = elem.nodeType; - if ( !nodeType || !elementNodeTypes[ nodeType ] ) { - return; - } - var childImgs = elem.querySelectorAll('img'); - // concat childElems to filterFound array - for ( var i=0; i < childImgs.length; i++ ) { - var img = childImgs[i]; - this.addImage( img ); - } - - // get child background images - if ( typeof this.options.background == 'string' ) { - var children = elem.querySelectorAll( this.options.background ); - for ( i=0; i < children.length; i++ ) { - var child = children[i]; - this.addElementBackgroundImages( child ); - } - } - }; - - var elementNodeTypes = { - 1: true, - 9: true, - 11: true - }; - - ImagesLoaded.prototype.addElementBackgroundImages = function( elem ) { - var style = getComputedStyle( elem ); - if ( !style ) { - // Firefox returns null if in a hidden iframe https://bugzil.la/548397 - return; - } - // get url inside url("...") - var reURL = /url\((['"])?(.*?)\1\)/gi; - var matches = reURL.exec( style.backgroundImage ); - while ( matches !== null ) { - var url = matches && matches[2]; - if ( url ) { - this.addBackground( url, elem ); - } - matches = reURL.exec( style.backgroundImage ); - } - }; - - /** - * @param {Image} img - */ - ImagesLoaded.prototype.addImage = function( img ) { - var loadingImage = new LoadingImage( img ); - this.images.push( loadingImage ); - }; - - ImagesLoaded.prototype.addBackground = function( url, elem ) { - var background = new Background( url, elem ); - this.images.push( background ); - }; - - ImagesLoaded.prototype.check = function() { - var _this = this; - this.progressedCount = 0; - this.hasAnyBroken = false; - // complete if no images - if ( !this.images.length ) { - this.complete(); - return; - } - - function onProgress( image, elem, message ) { - // HACK - Chrome triggers event before object properties have changed. #83 - setTimeout( function() { - _this.progress( image, elem, message ); - }); - } - - this.images.forEach( function( loadingImage ) { - loadingImage.once( 'progress', onProgress ); - loadingImage.check(); - }); - }; - - ImagesLoaded.prototype.progress = function( image, elem, message ) { - this.progressedCount++; - this.hasAnyBroken = this.hasAnyBroken || !image.isLoaded; - // progress event - this.emitEvent( 'progress', [ this, image, elem ] ); - if ( this.jqDeferred && this.jqDeferred.notify ) { - this.jqDeferred.notify( this, image ); - } - // check if completed - if ( this.progressedCount == this.images.length ) { - this.complete(); - } - - if ( this.options.debug && console ) { - console.log( 'progress: ' + message, image, elem ); - } - }; - - ImagesLoaded.prototype.complete = function() { - var eventName = this.hasAnyBroken ? 'fail' : 'done'; - this.isComplete = true; - this.emitEvent( eventName, [ this ] ); - this.emitEvent( 'always', [ this ] ); - if ( this.jqDeferred ) { - var jqMethod = this.hasAnyBroken ? 'reject' : 'resolve'; - this.jqDeferred[ jqMethod ]( this ); - } - }; - - // -------------------------- -------------------------- // - - function LoadingImage( img ) { - this.img = img; - } - - LoadingImage.prototype = Object.create( EvEmitter.prototype ); - - LoadingImage.prototype.check = function() { - // If complete is true and browser supports natural sizes, - // try to check for image status manually. - var isComplete = this.getIsImageComplete(); - if ( isComplete ) { - // report based on naturalWidth - this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' ); - return; - } - - // If none of the checks above matched, simulate loading on detached element. - this.proxyImage = new Image(); - this.proxyImage.addEventListener( 'load', this ); - this.proxyImage.addEventListener( 'error', this ); - // bind to image as well for Firefox. #191 - this.img.addEventListener( 'load', this ); - this.img.addEventListener( 'error', this ); - this.proxyImage.src = this.img.src; - }; - - LoadingImage.prototype.getIsImageComplete = function() { - // check for non-zero, non-undefined naturalWidth - // fixes Safari+InfiniteScroll+Masonry bug infinite-scroll#671 - return this.img.complete && this.img.naturalWidth; - }; - - LoadingImage.prototype.confirm = function( isLoaded, message ) { - this.isLoaded = isLoaded; - this.emitEvent( 'progress', [ this, this.img, message ] ); - }; - - // ----- events ----- // - - // trigger specified handler for event type - LoadingImage.prototype.handleEvent = function( event ) { - var method = 'on' + event.type; - if ( this[ method ] ) { - this[ method ]( event ); - } - }; - - LoadingImage.prototype.onload = function() { - this.confirm( true, 'onload' ); - this.unbindEvents(); - }; - - LoadingImage.prototype.onerror = function() { - this.confirm( false, 'onerror' ); - this.unbindEvents(); - }; - - LoadingImage.prototype.unbindEvents = function() { - this.proxyImage.removeEventListener( 'load', this ); - this.proxyImage.removeEventListener( 'error', this ); - this.img.removeEventListener( 'load', this ); - this.img.removeEventListener( 'error', this ); - }; - - // -------------------------- Background -------------------------- // - - function Background( url, element ) { - this.url = url; - this.element = element; - this.img = new Image(); - } - - // inherit LoadingImage prototype - Background.prototype = Object.create( LoadingImage.prototype ); - - Background.prototype.check = function() { - this.img.addEventListener( 'load', this ); - this.img.addEventListener( 'error', this ); - this.img.src = this.url; - // check if image is already complete - var isComplete = this.getIsImageComplete(); - if ( isComplete ) { - this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' ); - this.unbindEvents(); - } - }; - - Background.prototype.unbindEvents = function() { - this.img.removeEventListener( 'load', this ); - this.img.removeEventListener( 'error', this ); - }; - - Background.prototype.confirm = function( isLoaded, message ) { - this.isLoaded = isLoaded; - this.emitEvent( 'progress', [ this, this.element, message ] ); - }; - - // -------------------------- jQuery -------------------------- // - - ImagesLoaded.makeJQueryPlugin = function( jQuery ) { - jQuery = jQuery || window.jQuery; - if ( !jQuery ) { - return; - } - // set local variable - $ = jQuery; - // $().imagesLoaded() - $.fn.imagesLoaded = function( options, callback ) { - var instance = new ImagesLoaded( this, options, callback ); - return instance.jqDeferred.promise( $(this) ); - }; - }; - // try making plugin - ImagesLoaded.makeJQueryPlugin(); - - // -------------------------- -------------------------- // - - return ImagesLoaded; - - }); - -; -/** - * Swiper 9.4.1 - * Most modern mobile touch slider and framework with hardware accelerated transitions - * https://swiperjs.com - * - * Copyright 2014-2023 Vladimir Kharlampidi - * - * Released under the MIT License - * - * Released on: June 13, 2023 - */ - -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).Swiper=t()}(this,(function(){"use strict";function e(e){return null!==e&&"object"==typeof e&&"constructor"in e&&e.constructor===Object}function t(s,a){void 0===s&&(s={}),void 0===a&&(a={}),Object.keys(a).forEach((i=>{void 0===s[i]?s[i]=a[i]:e(a[i])&&e(s[i])&&Object.keys(a[i]).length>0&&t(s[i],a[i])}))}const s={body:{},addEventListener(){},removeEventListener(){},activeElement:{blur(){},nodeName:""},querySelector:()=>null,querySelectorAll:()=>[],getElementById:()=>null,createEvent:()=>({initEvent(){}}),createElement:()=>({children:[],childNodes:[],style:{},setAttribute(){},getElementsByTagName:()=>[]}),createElementNS:()=>({}),importNode:()=>null,location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}};function a(){const e="undefined"!=typeof document?document:{};return t(e,s),e}const i={document:s,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState(){},pushState(){},go(){},back(){}},CustomEvent:function(){return this},addEventListener(){},removeEventListener(){},getComputedStyle:()=>({getPropertyValue:()=>""}),Image(){},Date(){},screen:{},setTimeout(){},clearTimeout(){},matchMedia:()=>({}),requestAnimationFrame:e=>"undefined"==typeof setTimeout?(e(),null):setTimeout(e,0),cancelAnimationFrame(e){"undefined"!=typeof setTimeout&&clearTimeout(e)}};function r(){const e="undefined"!=typeof window?window:{};return t(e,i),e}function n(e,t){return void 0===t&&(t=0),setTimeout(e,t)}function l(){return Date.now()}function o(e,t){void 0===t&&(t="x");const s=r();let a,i,n;const l=function(e){const t=r();let s;return t.getComputedStyle&&(s=t.getComputedStyle(e,null)),!s&&e.currentStyle&&(s=e.currentStyle),s||(s=e.style),s}(e);return s.WebKitCSSMatrix?(i=l.transform||l.webkitTransform,i.split(",").length>6&&(i=i.split(", ").map((e=>e.replace(",","."))).join(", ")),n=new s.WebKitCSSMatrix("none"===i?"":i)):(n=l.MozTransform||l.OTransform||l.MsTransform||l.msTransform||l.transform||l.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),a=n.toString().split(",")),"x"===t&&(i=s.WebKitCSSMatrix?n.m41:16===a.length?parseFloat(a[12]):parseFloat(a[4])),"y"===t&&(i=s.WebKitCSSMatrix?n.m42:16===a.length?parseFloat(a[13]):parseFloat(a[5])),i||0}function d(e){return"object"==typeof e&&null!==e&&e.constructor&&"Object"===Object.prototype.toString.call(e).slice(8,-1)}function c(e){return"undefined"!=typeof window&&void 0!==window.HTMLElement?e instanceof HTMLElement:e&&(1===e.nodeType||11===e.nodeType)}function p(){const e=Object(arguments.length<=0?void 0:arguments[0]),t=["__proto__","constructor","prototype"];for(let s=1;st.indexOf(e)<0));for(let t=0,i=s.length;tn?"next":"prev",p=(e,t)=>"next"===c&&e>=t||"prev"===c&&e<=t,u=()=>{l=(new Date).getTime(),null===o&&(o=l);const e=Math.max(Math.min((l-o)/d,1),0),r=.5-Math.cos(e*Math.PI)/2;let c=n+r*(s-n);if(p(c,s)&&(c=s),t.wrapperEl.scrollTo({[a]:c}),p(c,s))return t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.scrollSnapType="",setTimeout((()=>{t.wrapperEl.style.overflow="",t.wrapperEl.scrollTo({[a]:c})})),void i.cancelAnimationFrame(t.cssModeFrameID);t.cssModeFrameID=i.requestAnimationFrame(u)};u()}function h(e){return e.querySelector(".swiper-slide-transform")||e.shadowEl&&e.shadowEl.querySelector(".swiper-slide-transform")||e}function f(e,t){return void 0===t&&(t=""),[...e.children].filter((e=>e.matches(t)))}function g(e,t){void 0===t&&(t=[]);const s=document.createElement(e);return s.classList.add(...Array.isArray(t)?t:[t]),s}function v(e){const t=r(),s=a(),i=e.getBoundingClientRect(),n=s.body,l=e.clientTop||n.clientTop||0,o=e.clientLeft||n.clientLeft||0,d=e===t?t.scrollY:e.scrollTop,c=e===t?t.scrollX:e.scrollLeft;return{top:i.top+d-l,left:i.left+c-o}}function w(e,t){return r().getComputedStyle(e,null).getPropertyValue(t)}function b(e){let t,s=e;if(s){for(t=0;null!==(s=s.previousSibling);)1===s.nodeType&&(t+=1);return t}}function y(e,t){const s=[];let a=e.parentElement;for(;a;)t?a.matches(t)&&s.push(a):s.push(a),a=a.parentElement;return s}function E(e,t){t&&e.addEventListener("transitionend",(function s(a){a.target===e&&(t.call(e,a),e.removeEventListener("transitionend",s))}))}function x(e,t,s){const a=r();return s?e["width"===t?"offsetWidth":"offsetHeight"]+parseFloat(a.getComputedStyle(e,null).getPropertyValue("width"===t?"margin-right":"margin-top"))+parseFloat(a.getComputedStyle(e,null).getPropertyValue("width"===t?"margin-left":"margin-bottom")):e.offsetWidth}let S,T,M;function C(){return S||(S=function(){const e=r(),t=a();return{smoothScroll:t.documentElement&&t.documentElement.style&&"scrollBehavior"in t.documentElement.style,touch:!!("ontouchstart"in e||e.DocumentTouch&&t instanceof e.DocumentTouch)}}()),S}function P(e){return void 0===e&&(e={}),T||(T=function(e){let{userAgent:t}=void 0===e?{}:e;const s=C(),a=r(),i=a.navigator.platform,n=t||a.navigator.userAgent,l={ios:!1,android:!1},o=a.screen.width,d=a.screen.height,c=n.match(/(Android);?[\s\/]+([\d.]+)?/);let p=n.match(/(iPad).*OS\s([\d_]+)/);const u=n.match(/(iPod)(.*OS\s([\d_]+))?/),m=!p&&n.match(/(iPhone\sOS|iOS)\s([\d_]+)/),h="Win32"===i;let f="MacIntel"===i;return!p&&f&&s.touch&&["1024x1366","1366x1024","834x1194","1194x834","834x1112","1112x834","768x1024","1024x768","820x1180","1180x820","810x1080","1080x810"].indexOf(`${o}x${d}`)>=0&&(p=n.match(/(Version)\/([\d.]+)/),p||(p=[0,1,"13_0_0"]),f=!1),c&&!h&&(l.os="android",l.android=!0),(p||m||u)&&(l.os="ios",l.ios=!0),l}(e)),T}function L(){return M||(M=function(){const e=r();let t=!1;function s(){const t=e.navigator.userAgent.toLowerCase();return t.indexOf("safari")>=0&&t.indexOf("chrome")<0&&t.indexOf("android")<0}if(s()){const s=String(e.navigator.userAgent);if(s.includes("Version/")){const[e,a]=s.split("Version/")[1].split(" ")[0].split(".").map((e=>Number(e)));t=e<16||16===e&&a<2}}return{isSafari:t||s(),needPerspectiveFix:t,isWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(e.navigator.userAgent)}}()),M}var z={on(e,t,s){const a=this;if(!a.eventsListeners||a.destroyed)return a;if("function"!=typeof t)return a;const i=s?"unshift":"push";return e.split(" ").forEach((e=>{a.eventsListeners[e]||(a.eventsListeners[e]=[]),a.eventsListeners[e][i](t)})),a},once(e,t,s){const a=this;if(!a.eventsListeners||a.destroyed)return a;if("function"!=typeof t)return a;function i(){a.off(e,i),i.__emitterProxy&&delete i.__emitterProxy;for(var s=arguments.length,r=new Array(s),n=0;n=0&&t.eventsAnyListeners.splice(s,1),t},off(e,t){const s=this;return!s.eventsListeners||s.destroyed?s:s.eventsListeners?(e.split(" ").forEach((e=>{void 0===t?s.eventsListeners[e]=[]:s.eventsListeners[e]&&s.eventsListeners[e].forEach(((a,i)=>{(a===t||a.__emitterProxy&&a.__emitterProxy===t)&&s.eventsListeners[e].splice(i,1)}))})),s):s},emit(){const e=this;if(!e.eventsListeners||e.destroyed)return e;if(!e.eventsListeners)return e;let t,s,a;for(var i=arguments.length,r=new Array(i),n=0;n{e.eventsAnyListeners&&e.eventsAnyListeners.length&&e.eventsAnyListeners.forEach((e=>{e.apply(a,[t,...s])})),e.eventsListeners&&e.eventsListeners[t]&&e.eventsListeners[t].forEach((e=>{e.apply(a,s)}))})),e}};const A=(e,t)=>{if(!e||e.destroyed||!e.params)return;const s=t.closest(e.isElement?"swiper-slide":`.${e.params.slideClass}`);if(s){const t=s.querySelector(`.${e.params.lazyPreloaderClass}`);t&&t.remove()}},$=(e,t)=>{if(!e.slides[t])return;const s=e.slides[t].querySelector('[loading="lazy"]');s&&s.removeAttribute("loading")},I=e=>{if(!e||e.destroyed||!e.params)return;let t=e.params.lazyPreloadPrevNext;const s=e.slides.length;if(!s||!t||t<0)return;t=Math.min(t,s);const a="auto"===e.params.slidesPerView?e.slidesPerViewDynamic():Math.ceil(e.params.slidesPerView),i=e.activeIndex;if(e.params.grid&&e.params.grid.rows>1){const s=i,r=[s-t];return r.push(...Array.from({length:t}).map(((e,t)=>s+a+t))),void e.slides.forEach(((t,s)=>{r.includes(t.column)&&$(e,s)}))}const r=i+a-1;if(e.params.rewind||e.params.loop)for(let a=i-t;a<=r+t;a+=1){const t=(a%s+s)%s;(tr)&&$(e,t)}else for(let a=Math.max(i-t,0);a<=Math.min(r+t,s-1);a+=1)a!==i&&(a>r||a=0?T=parseFloat(T.replace("%",""))/100*n:"string"==typeof T&&(T=parseFloat(T)),e.virtualSize=-T,p.forEach((e=>{l?e.style.marginLeft="":e.style.marginRight="",e.style.marginBottom="",e.style.marginTop=""})),a.centeredSlides&&a.cssMode&&(u(i,"--swiper-centered-offset-before",""),u(i,"--swiper-centered-offset-after",""));const L=a.grid&&a.grid.rows>1&&e.grid;let z;L&&e.grid.initSlides(m);const A="auto"===a.slidesPerView&&a.breakpoints&&Object.keys(a.breakpoints).filter((e=>void 0!==a.breakpoints[e].slidesPerView)).length>0;for(let i=0;i1&&h.push(e.virtualSize-n)}if(d&&a.loop){const t=v[0]+T;if(a.slidesPerGroup>1){const s=Math.ceil((e.virtual.slidesBefore+e.virtual.slidesAfter)/a.slidesPerGroup),i=t*a.slidesPerGroup;for(let e=0;e!(a.cssMode&&!a.loop)||t!==p.length-1)).forEach((e=>{e.style[s]=`${T}px`}))}if(a.centeredSlides&&a.centeredSlidesBounds){let e=0;v.forEach((t=>{e+=t+(T||0)})),e-=T;const t=e-n;h=h.map((e=>e<=0?-b:e>t?t+y:e))}if(a.centerInsufficientSlides){let e=0;if(v.forEach((t=>{e+=t+(T||0)})),e-=T,e{h[s]=e-t})),g.forEach(((e,s)=>{g[s]=e+t}))}}if(Object.assign(e,{slides:p,snapGrid:h,slidesGrid:g,slidesSizesGrid:v}),a.centeredSlides&&a.cssMode&&!a.centeredSlidesBounds){u(i,"--swiper-centered-offset-before",-h[0]+"px"),u(i,"--swiper-centered-offset-after",e.size/2-v[v.length-1]/2+"px");const t=-e.snapGrid[0],s=-e.slidesGrid[0];e.snapGrid=e.snapGrid.map((e=>e+t)),e.slidesGrid=e.slidesGrid.map((e=>e+s))}if(m!==c&&e.emit("slidesLengthChange"),h.length!==E&&(e.params.watchOverflow&&e.checkOverflow(),e.emit("snapGridLengthChange")),g.length!==S&&e.emit("slidesGridLengthChange"),a.watchSlidesProgress&&e.updateSlidesOffset(),!(d||a.cssMode||"slide"!==a.effect&&"fade"!==a.effect)){const t=`${a.containerModifierClass}backface-hidden`,s=e.el.classList.contains(t);m<=a.maxBackfaceHiddenSlides?s||e.el.classList.add(t):s&&e.el.classList.remove(t)}},updateAutoHeight:function(e){const t=this,s=[],a=t.virtual&&t.params.virtual.enabled;let i,r=0;"number"==typeof e?t.setTransition(e):!0===e&&t.setTransition(t.params.speed);const n=e=>a?t.slides[t.getSlideIndexByData(e)]:t.slides[e];if("auto"!==t.params.slidesPerView&&t.params.slidesPerView>1)if(t.params.centeredSlides)(t.visibleSlides||[]).forEach((e=>{s.push(e)}));else for(i=0;it.slides.length&&!a)break;s.push(n(e))}else s.push(n(t.activeIndex));for(i=0;ir?e:r}(r||0===r)&&(t.wrapperEl.style.height=`${r}px`)},updateSlidesOffset:function(){const e=this,t=e.slides,s=e.isElement?e.isHorizontal()?e.wrapperEl.offsetLeft:e.wrapperEl.offsetTop:0;for(let a=0;a{e.classList.remove(s.slideVisibleClass)})),t.visibleSlidesIndexes=[],t.visibleSlides=[];let l=s.spaceBetween;"string"==typeof l&&l.indexOf("%")>=0?l=parseFloat(l.replace("%",""))/100*t.size:"string"==typeof l&&(l=parseFloat(l));for(let e=0;e=0&&u1&&m<=t.size||u<=0&&m>=t.size)&&(t.visibleSlides.push(o),t.visibleSlidesIndexes.push(e),a[e].classList.add(s.slideVisibleClass)),o.progress=i?-c:c,o.originalProgress=i?-p:p}},updateProgress:function(e){const t=this;if(void 0===e){const s=t.rtlTranslate?-1:1;e=t&&t.translate&&t.translate*s||0}const s=t.params,a=t.maxTranslate()-t.minTranslate();let{progress:i,isBeginning:r,isEnd:n,progressLoop:l}=t;const o=r,d=n;if(0===a)i=0,r=!0,n=!0;else{i=(e-t.minTranslate())/a;const s=Math.abs(e-t.minTranslate())<1,l=Math.abs(e-t.maxTranslate())<1;r=s||i<=0,n=l||i>=1,s&&(i=0),l&&(i=1)}if(s.loop){const s=t.getSlideIndexByData(0),a=t.getSlideIndexByData(t.slides.length-1),i=t.slidesGrid[s],r=t.slidesGrid[a],n=t.slidesGrid[t.slidesGrid.length-1],o=Math.abs(e);l=o>=i?(o-i)/n:(o+n-r)/n,l>1&&(l-=1)}Object.assign(t,{progress:i,progressLoop:l,isBeginning:r,isEnd:n}),(s.watchSlidesProgress||s.centeredSlides&&s.autoHeight)&&t.updateSlidesProgress(e),r&&!o&&t.emit("reachBeginning toEdge"),n&&!d&&t.emit("reachEnd toEdge"),(o&&!r||d&&!n)&&t.emit("fromEdge"),t.emit("progress",i)},updateSlidesClasses:function(){const e=this,{slides:t,params:s,slidesEl:a,activeIndex:i}=e,r=e.virtual&&s.virtual.enabled,n=e=>f(a,`.${s.slideClass}${e}, swiper-slide${e}`)[0];let l;if(t.forEach((e=>{e.classList.remove(s.slideActiveClass,s.slideNextClass,s.slidePrevClass)})),r)if(s.loop){let t=i-e.virtual.slidesBefore;t<0&&(t=e.virtual.slides.length+t),t>=e.virtual.slides.length&&(t-=e.virtual.slides.length),l=n(`[data-swiper-slide-index="${t}"]`)}else l=n(`[data-swiper-slide-index="${i}"]`);else l=t[i];if(l){l.classList.add(s.slideActiveClass);let e=function(e,t){const s=[];for(;e.nextElementSibling;){const a=e.nextElementSibling;t?a.matches(t)&&s.push(a):s.push(a),e=a}return s}(l,`.${s.slideClass}, swiper-slide`)[0];s.loop&&!e&&(e=t[0]),e&&e.classList.add(s.slideNextClass);let a=function(e,t){const s=[];for(;e.previousElementSibling;){const a=e.previousElementSibling;t?a.matches(t)&&s.push(a):s.push(a),e=a}return s}(l,`.${s.slideClass}, swiper-slide`)[0];s.loop&&0===!a&&(a=t[t.length-1]),a&&a.classList.add(s.slidePrevClass)}e.emitSlidesClasses()},updateActiveIndex:function(e){const t=this,s=t.rtlTranslate?t.translate:-t.translate,{snapGrid:a,params:i,activeIndex:r,realIndex:n,snapIndex:l}=t;let o,d=e;const c=e=>{let s=e-t.virtual.slidesBefore;return s<0&&(s=t.virtual.slides.length+s),s>=t.virtual.slides.length&&(s-=t.virtual.slides.length),s};if(void 0===d&&(d=function(e){const{slidesGrid:t,params:s}=e,a=e.rtlTranslate?e.translate:-e.translate;let i;for(let e=0;e=t[e]&&a=t[e]&&a=t[e]&&(i=e);return s.normalizeSlideIndex&&(i<0||void 0===i)&&(i=0),i}(t)),a.indexOf(s)>=0)o=a.indexOf(s);else{const e=Math.min(i.slidesPerGroupSkip,d);o=e+Math.floor((d-e)/i.slidesPerGroup)}if(o>=a.length&&(o=a.length-1),d===r)return o!==l&&(t.snapIndex=o,t.emit("snapIndexChange")),void(t.params.loop&&t.virtual&&t.params.virtual.enabled&&(t.realIndex=c(d)));let p;p=t.virtual&&i.virtual.enabled&&i.loop?c(d):t.slides[d]?parseInt(t.slides[d].getAttribute("data-swiper-slide-index")||d,10):d,Object.assign(t,{previousSnapIndex:l,snapIndex:o,previousRealIndex:n,realIndex:p,previousIndex:r,activeIndex:d}),t.initialized&&I(t),t.emit("activeIndexChange"),t.emit("snapIndexChange"),n!==p&&t.emit("realIndexChange"),(t.initialized||t.params.runCallbacksOnInit)&&t.emit("slideChange")},updateClickedSlide:function(e){const t=this,s=t.params,a=e.closest(`.${s.slideClass}, swiper-slide`);let i,r=!1;if(a)for(let e=0;eo?o:a&&en?"next":r=o.length&&(v=o.length-1);const w=-o[v];if(l.normalizeSlideIndex)for(let e=0;e=s&&t=s&&t=s&&(n=e)}if(r.initialized&&n!==p){if(!r.allowSlideNext&&(u?w>r.translate&&w>r.minTranslate():wr.translate&&w>r.maxTranslate()&&(p||0)!==n)return!1}let b;if(n!==(c||0)&&s&&r.emit("beforeSlideChangeStart"),r.updateProgress(w),b=n>p?"next":n0?(r._cssModeVirtualInitialSet=!0,requestAnimationFrame((()=>{h[e?"scrollLeft":"scrollTop"]=s}))):h[e?"scrollLeft":"scrollTop"]=s,t&&requestAnimationFrame((()=>{r.wrapperEl.style.scrollSnapType="",r._immediateVirtual=!1}))}else{if(!r.support.smoothScroll)return m({swiper:r,targetPosition:s,side:e?"left":"top"}),!0;h.scrollTo({[e?"left":"top"]:s,behavior:"smooth"})}return!0}return r.setTransition(t),r.setTranslate(w),r.updateActiveIndex(n),r.updateSlidesClasses(),r.emit("beforeTransitionStart",t,a),r.transitionStart(s,b),0===t?r.transitionEnd(s,b):r.animating||(r.animating=!0,r.onSlideToWrapperTransitionEnd||(r.onSlideToWrapperTransitionEnd=function(e){r&&!r.destroyed&&e.target===this&&(r.wrapperEl.removeEventListener("transitionend",r.onSlideToWrapperTransitionEnd),r.onSlideToWrapperTransitionEnd=null,delete r.onSlideToWrapperTransitionEnd,r.transitionEnd(s,b))}),r.wrapperEl.addEventListener("transitionend",r.onSlideToWrapperTransitionEnd)),!0},slideToLoop:function(e,t,s,a){if(void 0===e&&(e=0),void 0===t&&(t=this.params.speed),void 0===s&&(s=!0),"string"==typeof e){e=parseInt(e,10)}const i=this;let r=e;return i.params.loop&&(i.virtual&&i.params.virtual.enabled?r+=i.virtual.slidesBefore:r=i.getSlideIndexByData(r)),i.slideTo(r,t,s,a)},slideNext:function(e,t,s){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);const a=this,{enabled:i,params:r,animating:n}=a;if(!i)return a;let l=r.slidesPerGroup;"auto"===r.slidesPerView&&1===r.slidesPerGroup&&r.slidesPerGroupAuto&&(l=Math.max(a.slidesPerViewDynamic("current",!0),1));const o=a.activeIndexp(e)));let h=r[m.indexOf(u)-1];if(void 0===h&&i.cssMode){let e;r.forEach(((t,s)=>{u>=t&&(e=s)})),void 0!==e&&(h=r[e>0?e-1:e])}let f=0;if(void 0!==h&&(f=n.indexOf(h),f<0&&(f=a.activeIndex-1),"auto"===i.slidesPerView&&1===i.slidesPerGroup&&i.slidesPerGroupAuto&&(f=f-a.slidesPerViewDynamic("previous",!0)+1,f=Math.max(f,0))),i.rewind&&a.isBeginning){const i=a.params.virtual&&a.params.virtual.enabled&&a.virtual?a.virtual.slides.length-1:a.slides.length-1;return a.slideTo(i,e,t,s)}return a.slideTo(f,e,t,s)},slideReset:function(e,t,s){return void 0===e&&(e=this.params.speed),void 0===t&&(t=!0),this.slideTo(this.activeIndex,e,t,s)},slideToClosest:function(e,t,s,a){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0),void 0===a&&(a=.5);const i=this;let r=i.activeIndex;const n=Math.min(i.params.slidesPerGroupSkip,r),l=n+Math.floor((r-n)/i.params.slidesPerGroup),o=i.rtlTranslate?i.translate:-i.translate;if(o>=i.snapGrid[l]){const e=i.snapGrid[l];o-e>(i.snapGrid[l+1]-e)*a&&(r+=i.params.slidesPerGroup)}else{const e=i.snapGrid[l-1];o-e<=(i.snapGrid[l]-e)*a&&(r-=i.params.slidesPerGroup)}return r=Math.max(r,0),r=Math.min(r,i.slidesGrid.length-1),i.slideTo(r,e,t,s)},slideToClickedSlide:function(){const e=this,{params:t,slidesEl:s}=e,a="auto"===t.slidesPerView?e.slidesPerViewDynamic():t.slidesPerView;let i,r=e.clickedIndex;const l=e.isElement?"swiper-slide":`.${t.slideClass}`;if(t.loop){if(e.animating)return;i=parseInt(e.clickedSlide.getAttribute("data-swiper-slide-index"),10),t.centeredSlides?re.slides.length-e.loopedSlides+a/2?(e.loopFix(),r=e.getSlideIndex(f(s,`${l}[data-swiper-slide-index="${i}"]`)[0]),n((()=>{e.slideTo(r)}))):e.slideTo(r):r>e.slides.length-a?(e.loopFix(),r=e.getSlideIndex(f(s,`${l}[data-swiper-slide-index="${i}"]`)[0]),n((()=>{e.slideTo(r)}))):e.slideTo(r)}else e.slideTo(r)}};var H={loopCreate:function(e){const t=this,{params:s,slidesEl:a}=t;if(!s.loop||t.virtual&&t.params.virtual.enabled)return;f(a,`.${s.slideClass}, swiper-slide`).forEach(((e,t)=>{e.setAttribute("data-swiper-slide-index",t)})),t.loopFix({slideRealIndex:e,direction:s.centeredSlides?void 0:"next"})},loopFix:function(e){let{slideRealIndex:t,slideTo:s=!0,direction:a,setTranslate:i,activeSlideIndex:r,byController:n,byMousewheel:l}=void 0===e?{}:e;const o=this;if(!o.params.loop)return;o.emit("beforeLoopFix");const{slides:d,allowSlidePrev:c,allowSlideNext:p,slidesEl:u,params:m}=o;if(o.allowSlidePrev=!0,o.allowSlideNext=!0,o.virtual&&m.virtual.enabled)return s&&(m.centeredSlides||0!==o.snapIndex?m.centeredSlides&&o.snapIndexe.classList.contains(m.slideActiveClass)))[0]):w=r;const b="next"===a||!a,y="prev"===a||!a;let E=0,x=0;if(ro.slides.length-2*f){x=Math.max(r-(o.slides.length-2*f),m.slidesPerGroup);for(let e=0;e{o.slides[e].swiperLoopMoveDOM=!0,u.prepend(o.slides[e]),o.slides[e].swiperLoopMoveDOM=!1})),b&&v.forEach((e=>{o.slides[e].swiperLoopMoveDOM=!0,u.append(o.slides[e]),o.slides[e].swiperLoopMoveDOM=!1})),o.recalcSlides(),"auto"===m.slidesPerView&&o.updateSlides(),m.watchSlidesProgress&&o.updateSlidesOffset(),s)if(g.length>0&&y)if(void 0===t){const e=o.slidesGrid[w],t=o.slidesGrid[w+E]-e;l?o.setTranslate(o.translate-t):(o.slideTo(w+E,0,!1,!0),i&&(o.touches[o.isHorizontal()?"startX":"startY"]+=t))}else i&&o.slideToLoop(t,0,!1,!0);else if(v.length>0&&b)if(void 0===t){const e=o.slidesGrid[w],t=o.slidesGrid[w-x]-e;l?o.setTranslate(o.translate-t):(o.slideTo(w-x,0,!1,!0),i&&(o.touches[o.isHorizontal()?"startX":"startY"]+=t))}else o.slideToLoop(t,0,!1,!0);if(o.allowSlidePrev=c,o.allowSlideNext=p,o.controller&&o.controller.control&&!n){const e={slideRealIndex:t,slideTo:!1,direction:a,setTranslate:i,activeSlideIndex:r,byController:!0};Array.isArray(o.controller.control)?o.controller.control.forEach((t=>{!t.destroyed&&t.params.loop&&t.loopFix(e)})):o.controller.control instanceof o.constructor&&o.controller.control.params.loop&&o.controller.control.loopFix(e)}o.emit("loopFix")},loopDestroy:function(){const e=this,{params:t,slidesEl:s}=e;if(!t.loop||e.virtual&&e.params.virtual.enabled)return;e.recalcSlides();const a=[];e.slides.forEach((e=>{const t=void 0===e.swiperSlideIndex?1*e.getAttribute("data-swiper-slide-index"):e.swiperSlideIndex;a[t]=e})),e.slides.forEach((e=>{e.removeAttribute("data-swiper-slide-index")})),a.forEach((e=>{s.append(e)})),e.recalcSlides(),e.slideTo(e.realIndex,0)}};function X(e){const t=this,s=a(),i=r(),n=t.touchEventsData;n.evCache.push(e);const{params:o,touches:d,enabled:c}=t;if(!c)return;if(!o.simulateTouch&&"mouse"===e.pointerType)return;if(t.animating&&o.preventInteractionOnTransition)return;!t.animating&&o.cssMode&&o.loop&&t.loopFix();let p=e;p.originalEvent&&(p=p.originalEvent);let u=p.target;if("wrapper"===o.touchEventsTarget&&!t.wrapperEl.contains(u))return;if("which"in p&&3===p.which)return;if("button"in p&&p.button>0)return;if(n.isTouched&&n.isMoved)return;const m=!!o.noSwipingClass&&""!==o.noSwipingClass,h=e.composedPath?e.composedPath():e.path;m&&p.target&&p.target.shadowRoot&&h&&(u=h[0]);const f=o.noSwipingSelector?o.noSwipingSelector:`.${o.noSwipingClass}`,g=!(!p.target||!p.target.shadowRoot);if(o.noSwiping&&(g?function(e,t){return void 0===t&&(t=this),function t(s){if(!s||s===a()||s===r())return null;s.assignedSlot&&(s=s.assignedSlot);const i=s.closest(e);return i||s.getRootNode?i||t(s.getRootNode().host):null}(t)}(f,u):u.closest(f)))return void(t.allowClick=!0);if(o.swipeHandler&&!u.closest(o.swipeHandler))return;d.currentX=p.pageX,d.currentY=p.pageY;const v=d.currentX,w=d.currentY,b=o.edgeSwipeDetection||o.iOSEdgeSwipeDetection,y=o.edgeSwipeThreshold||o.iOSEdgeSwipeThreshold;if(b&&(v<=y||v>=i.innerWidth-y)){if("prevent"!==b)return;e.preventDefault()}Object.assign(n,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),d.startX=v,d.startY=w,n.touchStartTime=l(),t.allowClick=!0,t.updateSize(),t.swipeDirection=void 0,o.threshold>0&&(n.allowThresholdMove=!1);let E=!0;u.matches(n.focusableElements)&&(E=!1,"SELECT"===u.nodeName&&(n.isTouched=!1)),s.activeElement&&s.activeElement.matches(n.focusableElements)&&s.activeElement!==u&&s.activeElement.blur();const x=E&&t.allowTouchMove&&o.touchStartPreventDefault;!o.touchStartForcePreventDefault&&!x||u.isContentEditable||p.preventDefault(),o.freeMode&&o.freeMode.enabled&&t.freeMode&&t.animating&&!o.cssMode&&t.freeMode.onTouchStart(),t.emit("touchStart",p)}function Y(e){const t=a(),s=this,i=s.touchEventsData,{params:r,touches:n,rtlTranslate:o,enabled:d}=s;if(!d)return;if(!r.simulateTouch&&"mouse"===e.pointerType)return;let c=e;if(c.originalEvent&&(c=c.originalEvent),!i.isTouched)return void(i.startMoving&&i.isScrolling&&s.emit("touchMoveOpposite",c));const p=i.evCache.findIndex((e=>e.pointerId===c.pointerId));p>=0&&(i.evCache[p]=c);const u=i.evCache.length>1?i.evCache[0]:c,m=u.pageX,h=u.pageY;if(c.preventedByNestedSwiper)return n.startX=m,void(n.startY=h);if(!s.allowTouchMove)return c.target.matches(i.focusableElements)||(s.allowClick=!1),void(i.isTouched&&(Object.assign(n,{startX:m,startY:h,prevX:s.touches.currentX,prevY:s.touches.currentY,currentX:m,currentY:h}),i.touchStartTime=l()));if(r.touchReleaseOnEdges&&!r.loop)if(s.isVertical()){if(hn.startY&&s.translate>=s.minTranslate())return i.isTouched=!1,void(i.isMoved=!1)}else if(mn.startX&&s.translate>=s.minTranslate())return;if(t.activeElement&&c.target===t.activeElement&&c.target.matches(i.focusableElements))return i.isMoved=!0,void(s.allowClick=!1);if(i.allowTouchCallbacks&&s.emit("touchMove",c),c.targetTouches&&c.targetTouches.length>1)return;n.currentX=m,n.currentY=h;const f=n.currentX-n.startX,g=n.currentY-n.startY;if(s.params.threshold&&Math.sqrt(f**2+g**2)=25&&(e=180*Math.atan2(Math.abs(g),Math.abs(f))/Math.PI,i.isScrolling=s.isHorizontal()?e>r.touchAngle:90-e>r.touchAngle)}if(i.isScrolling&&s.emit("touchMoveOpposite",c),void 0===i.startMoving&&(n.currentX===n.startX&&n.currentY===n.startY||(i.startMoving=!0)),i.isScrolling||s.zoom&&s.params.zoom&&s.params.zoom.enabled&&i.evCache.length>1)return void(i.isTouched=!1);if(!i.startMoving)return;s.allowClick=!1,!r.cssMode&&c.cancelable&&c.preventDefault(),r.touchMoveStopPropagation&&!r.nested&&c.stopPropagation();let v=s.isHorizontal()?f:g,w=s.isHorizontal()?n.currentX-n.previousX:n.currentY-n.previousY;r.oneWayMovement&&(v=Math.abs(v)*(o?1:-1),w=Math.abs(w)*(o?1:-1)),n.diff=v,v*=r.touchRatio,o&&(v=-v,w=-w);const b=s.touchesDirection;s.swipeDirection=v>0?"prev":"next",s.touchesDirection=w>0?"prev":"next";const y=s.params.loop&&!r.cssMode;if(!i.isMoved){if(y&&s.loopFix({direction:s.swipeDirection}),i.startTranslate=s.getTranslate(),s.setTransition(0),s.animating){const e=new window.CustomEvent("transitionend",{bubbles:!0,cancelable:!0});s.wrapperEl.dispatchEvent(e)}i.allowMomentumBounce=!1,!r.grabCursor||!0!==s.allowSlideNext&&!0!==s.allowSlidePrev||s.setGrabCursor(!0),s.emit("sliderFirstMove",c)}let E;i.isMoved&&b!==s.touchesDirection&&y&&Math.abs(v)>=1&&(s.loopFix({direction:s.swipeDirection,setTranslate:!0}),E=!0),s.emit("sliderMove",c),i.isMoved=!0,i.currentTranslate=v+i.startTranslate;let x=!0,S=r.resistanceRatio;if(r.touchReleaseOnEdges&&(S=0),v>0?(y&&!E&&i.currentTranslate>(r.centeredSlides?s.minTranslate()-s.size/2:s.minTranslate())&&s.loopFix({direction:"prev",setTranslate:!0,activeSlideIndex:0}),i.currentTranslate>s.minTranslate()&&(x=!1,r.resistance&&(i.currentTranslate=s.minTranslate()-1+(-s.minTranslate()+i.startTranslate+v)**S))):v<0&&(y&&!E&&i.currentTranslate<(r.centeredSlides?s.maxTranslate()+s.size/2:s.maxTranslate())&&s.loopFix({direction:"next",setTranslate:!0,activeSlideIndex:s.slides.length-("auto"===r.slidesPerView?s.slidesPerViewDynamic():Math.ceil(parseFloat(r.slidesPerView,10)))}),i.currentTranslatei.startTranslate&&(i.currentTranslate=i.startTranslate),s.allowSlidePrev||s.allowSlideNext||(i.currentTranslate=i.startTranslate),r.threshold>0){if(!(Math.abs(v)>r.threshold||i.allowThresholdMove))return void(i.currentTranslate=i.startTranslate);if(!i.allowThresholdMove)return i.allowThresholdMove=!0,n.startX=n.currentX,n.startY=n.currentY,i.currentTranslate=i.startTranslate,void(n.diff=s.isHorizontal()?n.currentX-n.startX:n.currentY-n.startY)}r.followFinger&&!r.cssMode&&((r.freeMode&&r.freeMode.enabled&&s.freeMode||r.watchSlidesProgress)&&(s.updateActiveIndex(),s.updateSlidesClasses()),r.freeMode&&r.freeMode.enabled&&s.freeMode&&s.freeMode.onTouchMove(),s.updateProgress(i.currentTranslate),s.setTranslate(i.currentTranslate))}function B(e){const t=this,s=t.touchEventsData,a=s.evCache.findIndex((t=>t.pointerId===e.pointerId));if(a>=0&&s.evCache.splice(a,1),["pointercancel","pointerout","pointerleave"].includes(e.type)){if(!("pointercancel"===e.type&&(t.browser.isSafari||t.browser.isWebView)))return}const{params:i,touches:r,rtlTranslate:o,slidesGrid:d,enabled:c}=t;if(!c)return;if(!i.simulateTouch&&"mouse"===e.pointerType)return;let p=e;if(p.originalEvent&&(p=p.originalEvent),s.allowTouchCallbacks&&t.emit("touchEnd",p),s.allowTouchCallbacks=!1,!s.isTouched)return s.isMoved&&i.grabCursor&&t.setGrabCursor(!1),s.isMoved=!1,void(s.startMoving=!1);i.grabCursor&&s.isMoved&&s.isTouched&&(!0===t.allowSlideNext||!0===t.allowSlidePrev)&&t.setGrabCursor(!1);const u=l(),m=u-s.touchStartTime;if(t.allowClick){const e=p.path||p.composedPath&&p.composedPath();t.updateClickedSlide(e&&e[0]||p.target),t.emit("tap click",p),m<300&&u-s.lastClickTime<300&&t.emit("doubleTap doubleClick",p)}if(s.lastClickTime=l(),n((()=>{t.destroyed||(t.allowClick=!0)})),!s.isTouched||!s.isMoved||!t.swipeDirection||0===r.diff||s.currentTranslate===s.startTranslate)return s.isTouched=!1,s.isMoved=!1,void(s.startMoving=!1);let h;if(s.isTouched=!1,s.isMoved=!1,s.startMoving=!1,h=i.followFinger?o?t.translate:-t.translate:-s.currentTranslate,i.cssMode)return;if(i.freeMode&&i.freeMode.enabled)return void t.freeMode.onTouchEnd({currentPos:h});let f=0,g=t.slidesSizesGrid[0];for(let e=0;e=d[e]&&h=d[e]&&(f=e,g=d[d.length-1]-d[d.length-2])}let v=null,w=null;i.rewind&&(t.isBeginning?w=i.virtual&&i.virtual.enabled&&t.virtual?t.virtual.slides.length-1:t.slides.length-1:t.isEnd&&(v=0));const b=(h-d[f])/g,y=fi.longSwipesMs){if(!i.longSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&(b>=i.longSwipesRatio?t.slideTo(i.rewind&&t.isEnd?v:f+y):t.slideTo(f)),"prev"===t.swipeDirection&&(b>1-i.longSwipesRatio?t.slideTo(f+y):null!==w&&b<0&&Math.abs(b)>i.longSwipesRatio?t.slideTo(w):t.slideTo(f))}else{if(!i.shortSwipes)return void t.slideTo(t.activeIndex);t.navigation&&(p.target===t.navigation.nextEl||p.target===t.navigation.prevEl)?p.target===t.navigation.nextEl?t.slideTo(f+y):t.slideTo(f):("next"===t.swipeDirection&&t.slideTo(null!==v?v:f+y),"prev"===t.swipeDirection&&t.slideTo(null!==w?w:f))}}function N(){const e=this,{params:t,el:s}=e;if(s&&0===s.offsetWidth)return;t.breakpoints&&e.setBreakpoint();const{allowSlideNext:a,allowSlidePrev:i,snapGrid:r}=e,n=e.virtual&&e.params.virtual.enabled;e.allowSlideNext=!0,e.allowSlidePrev=!0,e.updateSize(),e.updateSlides(),e.updateSlidesClasses();const l=n&&t.loop;!("auto"===t.slidesPerView||t.slidesPerView>1)||!e.isEnd||e.isBeginning||e.params.centeredSlides||l?e.params.loop&&!n?e.slideToLoop(e.realIndex,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0):e.slideTo(e.slides.length-1,0,!1,!0),e.autoplay&&e.autoplay.running&&e.autoplay.paused&&(clearTimeout(e.autoplay.resizeTimeout),e.autoplay.resizeTimeout=setTimeout((()=>{e.autoplay&&e.autoplay.running&&e.autoplay.paused&&e.autoplay.resume()}),500)),e.allowSlidePrev=i,e.allowSlideNext=a,e.params.watchOverflow&&r!==e.snapGrid&&e.checkOverflow()}function q(e){const t=this;t.enabled&&(t.allowClick||(t.params.preventClicks&&e.preventDefault(),t.params.preventClicksPropagation&&t.animating&&(e.stopPropagation(),e.stopImmediatePropagation())))}function R(){const e=this,{wrapperEl:t,rtlTranslate:s,enabled:a}=e;if(!a)return;let i;e.previousTranslate=e.translate,e.isHorizontal()?e.translate=-t.scrollLeft:e.translate=-t.scrollTop,0===e.translate&&(e.translate=0),e.updateActiveIndex(),e.updateSlidesClasses();const r=e.maxTranslate()-e.minTranslate();i=0===r?0:(e.translate-e.minTranslate())/r,i!==e.progress&&e.updateProgress(s?-e.translate:e.translate),e.emit("setTranslate",e.translate,!1)}function F(e){const t=this;A(t,e.target),t.params.cssMode||"auto"!==t.params.slidesPerView&&!t.params.autoHeight||t.update()}let _=!1;function V(){}const j=(e,t)=>{const s=a(),{params:i,el:r,wrapperEl:n,device:l}=e,o=!!i.nested,d="on"===t?"addEventListener":"removeEventListener",c=t;r[d]("pointerdown",e.onTouchStart,{passive:!1}),s[d]("pointermove",e.onTouchMove,{passive:!1,capture:o}),s[d]("pointerup",e.onTouchEnd,{passive:!0}),s[d]("pointercancel",e.onTouchEnd,{passive:!0}),s[d]("pointerout",e.onTouchEnd,{passive:!0}),s[d]("pointerleave",e.onTouchEnd,{passive:!0}),(i.preventClicks||i.preventClicksPropagation)&&r[d]("click",e.onClick,!0),i.cssMode&&n[d]("scroll",e.onScroll),i.updateOnWindowResize?e[c](l.ios||l.android?"resize orientationchange observerUpdate":"resize observerUpdate",N,!0):e[c]("observerUpdate",N,!0),r[d]("load",e.onLoad,{capture:!0})};const W=(e,t)=>e.grid&&t.grid&&t.grid.rows>1;var U={init:!0,direction:"horizontal",oneWayMovement:!1,touchEventsTarget:"wrapper",initialSlide:0,speed:300,cssMode:!1,updateOnWindowResize:!0,resizeObserver:!0,nested:!1,createElements:!1,enabled:!0,focusableElements:"input, select, option, textarea, button, video, label",width:null,height:null,preventInteractionOnTransition:!1,userAgent:null,url:null,edgeSwipeDetection:!1,edgeSwipeThreshold:20,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",breakpoints:void 0,breakpointsBase:"window",spaceBetween:0,slidesPerView:1,slidesPerGroup:1,slidesPerGroupSkip:0,slidesPerGroupAuto:!1,centeredSlides:!1,centeredSlidesBounds:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,normalizeSlideIndex:!0,centerInsufficientSlides:!1,watchOverflow:!0,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,allowTouchMove:!0,threshold:5,touchMoveStopPropagation:!1,touchStartPreventDefault:!0,touchStartForcePreventDefault:!1,touchReleaseOnEdges:!1,uniqueNavElements:!0,resistance:!0,resistanceRatio:.85,watchSlidesProgress:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,loop:!1,loopedSlides:null,loopPreventsSliding:!0,rewind:!1,allowSlidePrev:!0,allowSlideNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",noSwipingSelector:null,passiveListeners:!0,maxBackfaceHiddenSlides:10,containerModifierClass:"swiper-",slideClass:"swiper-slide",slideActiveClass:"swiper-slide-active",slideVisibleClass:"swiper-slide-visible",slideNextClass:"swiper-slide-next",slidePrevClass:"swiper-slide-prev",wrapperClass:"swiper-wrapper",lazyPreloaderClass:"swiper-lazy-preloader",lazyPreloadPrevNext:0,runCallbacksOnInit:!0,_emitClasses:!1};function K(e,t){return function(s){void 0===s&&(s={});const a=Object.keys(s)[0],i=s[a];"object"==typeof i&&null!==i?(["navigation","pagination","scrollbar"].indexOf(a)>=0&&!0===e[a]&&(e[a]={auto:!0}),a in e&&"enabled"in i?(!0===e[a]&&(e[a]={enabled:!0}),"object"!=typeof e[a]||"enabled"in e[a]||(e[a].enabled=!0),e[a]||(e[a]={enabled:!1}),p(t,s)):p(t,s)):p(t,s)}}const Z={eventsEmitter:z,update:k,translate:O,transition:{setTransition:function(e,t){const s=this;s.params.cssMode||(s.wrapperEl.style.transitionDuration=`${e}ms`),s.emit("setTransition",e,t)},transitionStart:function(e,t){void 0===e&&(e=!0);const s=this,{params:a}=s;a.cssMode||(a.autoHeight&&s.updateAutoHeight(),D({swiper:s,runCallbacks:e,direction:t,step:"Start"}))},transitionEnd:function(e,t){void 0===e&&(e=!0);const s=this,{params:a}=s;s.animating=!1,a.cssMode||(s.setTransition(0),D({swiper:s,runCallbacks:e,direction:t,step:"End"}))}},slide:G,loop:H,grabCursor:{setGrabCursor:function(e){const t=this;if(!t.params.simulateTouch||t.params.watchOverflow&&t.isLocked||t.params.cssMode)return;const s="container"===t.params.touchEventsTarget?t.el:t.wrapperEl;t.isElement&&(t.__preventObserver__=!0),s.style.cursor="move",s.style.cursor=e?"grabbing":"grab",t.isElement&&requestAnimationFrame((()=>{t.__preventObserver__=!1}))},unsetGrabCursor:function(){const e=this;e.params.watchOverflow&&e.isLocked||e.params.cssMode||(e.isElement&&(e.__preventObserver__=!0),e["container"===e.params.touchEventsTarget?"el":"wrapperEl"].style.cursor="",e.isElement&&requestAnimationFrame((()=>{e.__preventObserver__=!1})))}},events:{attachEvents:function(){const e=this,t=a(),{params:s}=e;e.onTouchStart=X.bind(e),e.onTouchMove=Y.bind(e),e.onTouchEnd=B.bind(e),s.cssMode&&(e.onScroll=R.bind(e)),e.onClick=q.bind(e),e.onLoad=F.bind(e),_||(t.addEventListener("touchstart",V),_=!0),j(e,"on")},detachEvents:function(){j(this,"off")}},breakpoints:{setBreakpoint:function(){const e=this,{realIndex:t,initialized:s,params:a,el:i}=e,r=a.breakpoints;if(!r||r&&0===Object.keys(r).length)return;const n=e.getBreakpoint(r,e.params.breakpointsBase,e.el);if(!n||e.currentBreakpoint===n)return;const l=(n in r?r[n]:void 0)||e.originalParams,o=W(e,a),d=W(e,l),c=a.enabled;o&&!d?(i.classList.remove(`${a.containerModifierClass}grid`,`${a.containerModifierClass}grid-column`),e.emitContainerClasses()):!o&&d&&(i.classList.add(`${a.containerModifierClass}grid`),(l.grid.fill&&"column"===l.grid.fill||!l.grid.fill&&"column"===a.grid.fill)&&i.classList.add(`${a.containerModifierClass}grid-column`),e.emitContainerClasses()),["navigation","pagination","scrollbar"].forEach((t=>{if(void 0===l[t])return;const s=a[t]&&a[t].enabled,i=l[t]&&l[t].enabled;s&&!i&&e[t].disable(),!s&&i&&e[t].enable()}));const u=l.direction&&l.direction!==a.direction,m=a.loop&&(l.slidesPerView!==a.slidesPerView||u);u&&s&&e.changeDirection(),p(e.params,l);const h=e.params.enabled;Object.assign(e,{allowTouchMove:e.params.allowTouchMove,allowSlideNext:e.params.allowSlideNext,allowSlidePrev:e.params.allowSlidePrev}),c&&!h?e.disable():!c&&h&&e.enable(),e.currentBreakpoint=n,e.emit("_beforeBreakpoint",l),m&&s&&(e.loopDestroy(),e.loopCreate(t),e.updateSlides()),e.emit("breakpoint",l)},getBreakpoint:function(e,t,s){if(void 0===t&&(t="window"),!e||"container"===t&&!s)return;let a=!1;const i=r(),n="window"===t?i.innerHeight:s.clientHeight,l=Object.keys(e).map((e=>{if("string"==typeof e&&0===e.indexOf("@")){const t=parseFloat(e.substr(1));return{value:n*t,point:e}}return{value:e,point:e}}));l.sort(((e,t)=>parseInt(e.value,10)-parseInt(t.value,10)));for(let e=0;es}else e.isLocked=1===e.snapGrid.length;!0===s.allowSlideNext&&(e.allowSlideNext=!e.isLocked),!0===s.allowSlidePrev&&(e.allowSlidePrev=!e.isLocked),t&&t!==e.isLocked&&(e.isEnd=!1),t!==e.isLocked&&e.emit(e.isLocked?"lock":"unlock")}},classes:{addClasses:function(){const e=this,{classNames:t,params:s,rtl:a,el:i,device:r}=e,n=function(e,t){const s=[];return e.forEach((e=>{"object"==typeof e?Object.keys(e).forEach((a=>{e[a]&&s.push(t+a)})):"string"==typeof e&&s.push(t+e)})),s}(["initialized",s.direction,{"free-mode":e.params.freeMode&&s.freeMode.enabled},{autoheight:s.autoHeight},{rtl:a},{grid:s.grid&&s.grid.rows>1},{"grid-column":s.grid&&s.grid.rows>1&&"column"===s.grid.fill},{android:r.android},{ios:r.ios},{"css-mode":s.cssMode},{centered:s.cssMode&&s.centeredSlides},{"watch-progress":s.watchSlidesProgress}],s.containerModifierClass);t.push(...n),i.classList.add(...t),e.emitContainerClasses()},removeClasses:function(){const{el:e,classNames:t}=this;e.classList.remove(...t),this.emitContainerClasses()}}},Q={};class J{constructor(){let e,t;for(var s=arguments.length,i=new Array(s),r=0;r1){const e=[];return n.querySelectorAll(t.el).forEach((s=>{const a=p({},t,{el:s});e.push(new J(a))})),e}const l=this;l.__swiper__=!0,l.support=C(),l.device=P({userAgent:t.userAgent}),l.browser=L(),l.eventsListeners={},l.eventsAnyListeners=[],l.modules=[...l.__modules__],t.modules&&Array.isArray(t.modules)&&l.modules.push(...t.modules);const o={};l.modules.forEach((e=>{e({params:t,swiper:l,extendParams:K(t,o),on:l.on.bind(l),once:l.once.bind(l),off:l.off.bind(l),emit:l.emit.bind(l)})}));const d=p({},U,o);return l.params=p({},d,Q,t),l.originalParams=p({},l.params),l.passedParams=p({},t),l.params&&l.params.on&&Object.keys(l.params.on).forEach((e=>{l.on(e,l.params.on[e])})),l.params&&l.params.onAny&&l.onAny(l.params.onAny),Object.assign(l,{enabled:l.params.enabled,el:e,classNames:[],slides:[],slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal:()=>"horizontal"===l.params.direction,isVertical:()=>"vertical"===l.params.direction,activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,previousTranslate:0,progress:0,velocity:0,animating:!1,cssOverflowAdjustment(){return Math.trunc(this.translate/2**23)*2**23},allowSlideNext:l.params.allowSlideNext,allowSlidePrev:l.params.allowSlidePrev,touchEventsData:{isTouched:void 0,isMoved:void 0,allowTouchCallbacks:void 0,touchStartTime:void 0,isScrolling:void 0,currentTranslate:void 0,startTranslate:void 0,allowThresholdMove:void 0,focusableElements:l.params.focusableElements,lastClickTime:0,clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,startMoving:void 0,evCache:[]},allowClick:!0,allowTouchMove:l.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),l.emit("_swiper"),l.params.init&&l.init(),l}getSlideIndex(e){const{slidesEl:t,params:s}=this,a=b(f(t,`.${s.slideClass}, swiper-slide`)[0]);return b(e)-a}getSlideIndexByData(e){return this.getSlideIndex(this.slides.filter((t=>1*t.getAttribute("data-swiper-slide-index")===e))[0])}recalcSlides(){const{slidesEl:e,params:t}=this;this.slides=f(e,`.${t.slideClass}, swiper-slide`)}enable(){const e=this;e.enabled||(e.enabled=!0,e.params.grabCursor&&e.setGrabCursor(),e.emit("enable"))}disable(){const e=this;e.enabled&&(e.enabled=!1,e.params.grabCursor&&e.unsetGrabCursor(),e.emit("disable"))}setProgress(e,t){const s=this;e=Math.min(Math.max(e,0),1);const a=s.minTranslate(),i=(s.maxTranslate()-a)*e+a;s.translateTo(i,void 0===t?0:t),s.updateActiveIndex(),s.updateSlidesClasses()}emitContainerClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const t=e.el.className.split(" ").filter((t=>0===t.indexOf("swiper")||0===t.indexOf(e.params.containerModifierClass)));e.emit("_containerClasses",t.join(" "))}getSlideClasses(e){const t=this;return t.destroyed?"":e.className.split(" ").filter((e=>0===e.indexOf("swiper-slide")||0===e.indexOf(t.params.slideClass))).join(" ")}emitSlidesClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const t=[];e.slides.forEach((s=>{const a=e.getSlideClasses(s);t.push({slideEl:s,classNames:a}),e.emit("_slideClass",s,a)})),e.emit("_slideClasses",t)}slidesPerViewDynamic(e,t){void 0===e&&(e="current"),void 0===t&&(t=!1);const{params:s,slides:a,slidesGrid:i,slidesSizesGrid:r,size:n,activeIndex:l}=this;let o=1;if(s.centeredSlides){let e,t=a[l]?a[l].swiperSlideSize:0;for(let s=l+1;sn&&(e=!0));for(let s=l-1;s>=0;s-=1)a[s]&&!e&&(t+=a[s].swiperSlideSize,o+=1,t>n&&(e=!0))}else if("current"===e)for(let e=l+1;e=0;e-=1){i[l]-i[e]{t.complete&&A(e,t)})),e.updateSize(),e.updateSlides(),e.updateProgress(),e.updateSlidesClasses(),s.freeMode&&s.freeMode.enabled&&!s.cssMode)a(),s.autoHeight&&e.updateAutoHeight();else{if(("auto"===s.slidesPerView||s.slidesPerView>1)&&e.isEnd&&!s.centeredSlides){const t=e.virtual&&s.virtual.enabled?e.virtual.slides:e.slides;i=e.slideTo(t.length-1,0,!1,!0)}else i=e.slideTo(e.activeIndex,0,!1,!0);i||a()}s.watchOverflow&&t!==e.snapGrid&&e.checkOverflow(),e.emit("update")}changeDirection(e,t){void 0===t&&(t=!0);const s=this,a=s.params.direction;return e||(e="horizontal"===a?"vertical":"horizontal"),e===a||"horizontal"!==e&&"vertical"!==e||(s.el.classList.remove(`${s.params.containerModifierClass}${a}`),s.el.classList.add(`${s.params.containerModifierClass}${e}`),s.emitContainerClasses(),s.params.direction=e,s.slides.forEach((t=>{"vertical"===e?t.style.width="":t.style.height=""})),s.emit("changeDirection"),t&&s.update()),s}changeLanguageDirection(e){const t=this;t.rtl&&"rtl"===e||!t.rtl&&"ltr"===e||(t.rtl="rtl"===e,t.rtlTranslate="horizontal"===t.params.direction&&t.rtl,t.rtl?(t.el.classList.add(`${t.params.containerModifierClass}rtl`),t.el.dir="rtl"):(t.el.classList.remove(`${t.params.containerModifierClass}rtl`),t.el.dir="ltr"),t.update())}mount(e){const t=this;if(t.mounted)return!0;let s=e||t.params.el;if("string"==typeof s&&(s=document.querySelector(s)),!s)return!1;s.swiper=t,s.shadowEl&&(t.isElement=!0);const a=()=>`.${(t.params.wrapperClass||"").trim().split(" ").join(".")}`;let i=(()=>{if(s&&s.shadowRoot&&s.shadowRoot.querySelector){return s.shadowRoot.querySelector(a())}return f(s,a())[0]})();return!i&&t.params.createElements&&(i=g("div",t.params.wrapperClass),s.append(i),f(s,`.${t.params.slideClass}`).forEach((e=>{i.append(e)}))),Object.assign(t,{el:s,wrapperEl:i,slidesEl:t.isElement?s:i,mounted:!0,rtl:"rtl"===s.dir.toLowerCase()||"rtl"===w(s,"direction"),rtlTranslate:"horizontal"===t.params.direction&&("rtl"===s.dir.toLowerCase()||"rtl"===w(s,"direction")),wrongRTL:"-webkit-box"===w(i,"display")}),!0}init(e){const t=this;if(t.initialized)return t;return!1===t.mount(e)||(t.emit("beforeInit"),t.params.breakpoints&&t.setBreakpoint(),t.addClasses(),t.updateSize(),t.updateSlides(),t.params.watchOverflow&&t.checkOverflow(),t.params.grabCursor&&t.enabled&&t.setGrabCursor(),t.params.loop&&t.virtual&&t.params.virtual.enabled?t.slideTo(t.params.initialSlide+t.virtual.slidesBefore,0,t.params.runCallbacksOnInit,!1,!0):t.slideTo(t.params.initialSlide,0,t.params.runCallbacksOnInit,!1,!0),t.params.loop&&t.loopCreate(),t.attachEvents(),[...t.el.querySelectorAll('[loading="lazy"]')].forEach((e=>{e.complete?A(t,e):e.addEventListener("load",(e=>{A(t,e.target)}))})),I(t),t.initialized=!0,I(t),t.emit("init"),t.emit("afterInit")),t}destroy(e,t){void 0===e&&(e=!0),void 0===t&&(t=!0);const s=this,{params:a,el:i,wrapperEl:r,slides:n}=s;return void 0===s.params||s.destroyed||(s.emit("beforeDestroy"),s.initialized=!1,s.detachEvents(),a.loop&&s.loopDestroy(),t&&(s.removeClasses(),i.removeAttribute("style"),r.removeAttribute("style"),n&&n.length&&n.forEach((e=>{e.classList.remove(a.slideVisibleClass,a.slideActiveClass,a.slideNextClass,a.slidePrevClass),e.removeAttribute("style"),e.removeAttribute("data-swiper-slide-index")}))),s.emit("destroy"),Object.keys(s.eventsListeners).forEach((e=>{s.off(e)})),!1!==e&&(s.el.swiper=null,function(e){const t=e;Object.keys(t).forEach((e=>{try{t[e]=null}catch(e){}try{delete t[e]}catch(e){}}))}(s)),s.destroyed=!0),null}static extendDefaults(e){p(Q,e)}static get extendedDefaults(){return Q}static get defaults(){return U}static installModule(e){J.prototype.__modules__||(J.prototype.__modules__=[]);const t=J.prototype.__modules__;"function"==typeof e&&t.indexOf(e)<0&&t.push(e)}static use(e){return Array.isArray(e)?(e.forEach((e=>J.installModule(e))),J):(J.installModule(e),J)}}function ee(e,t,s,a){return e.params.createElements&&Object.keys(a).forEach((i=>{if(!s[i]&&!0===s.auto){let r=f(e.el,`.${a[i]}`)[0];r||(r=g("div",a[i]),r.className=a[i],e.el.append(r)),s[i]=r,t[i]=r}})),s}function te(e){return void 0===e&&(e=""),`.${e.trim().replace(/([\.:!+\/])/g,"\\$1").replace(/ /g,".")}`}function se(e){const t=this,{params:s,slidesEl:a}=t;s.loop&&t.loopDestroy();const i=e=>{if("string"==typeof e){const t=document.createElement("div");t.innerHTML=e,a.append(t.children[0]),t.innerHTML=""}else a.append(e)};if("object"==typeof e&&"length"in e)for(let t=0;t{if("string"==typeof e){const t=document.createElement("div");t.innerHTML=e,i.prepend(t.children[0]),t.innerHTML=""}else i.prepend(e)};if("object"==typeof e&&"length"in e){for(let t=0;t=l)return void s.appendSlide(t);let o=n>e?n+1:n;const d=[];for(let t=l-1;t>=e;t-=1){const e=s.slides[t];e.remove(),d.unshift(e)}if("object"==typeof t&&"length"in t){for(let e=0;ee?n+t.length:n}else r.append(t);for(let e=0;e{if(s.params.effect!==t)return;s.classNames.push(`${s.params.containerModifierClass}${t}`),l&&l()&&s.classNames.push(`${s.params.containerModifierClass}3d`);const e=n?n():{};Object.assign(s.params,e),Object.assign(s.originalParams,e)})),a("setTranslate",(()=>{s.params.effect===t&&i()})),a("setTransition",((e,a)=>{s.params.effect===t&&r(a)})),a("transitionEnd",(()=>{if(s.params.effect===t&&o){if(!d||!d().slideShadows)return;s.slides.forEach((e=>{e.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((e=>e.remove()))})),o()}})),a("virtualUpdate",(()=>{s.params.effect===t&&(s.slides.length||(c=!0),requestAnimationFrame((()=>{c&&s.slides&&s.slides.length&&(i(),c=!1)})))}))}function oe(e,t){const s=h(t);return s!==t&&(s.style.backfaceVisibility="hidden",s.style["-webkit-backface-visibility"]="hidden"),s}function de(e){let{swiper:t,duration:s,transformElements:a,allSlides:i}=e;const{activeIndex:r}=t;if(t.params.virtualTranslate&&0!==s){let e,s=!1;e=i?a:a.filter((e=>{const s=e.classList.contains("swiper-slide-transform")?(e=>{if(!e.parentElement)return t.slides.filter((t=>t.shadowEl&&t.shadowEl===e.parentNode))[0];return e.parentElement})(e):e;return t.getSlideIndex(s)===r})),e.forEach((e=>{E(e,(()=>{if(s)return;if(!t||t.destroyed)return;s=!0,t.animating=!1;const e=new window.CustomEvent("transitionend",{bubbles:!0,cancelable:!0});t.wrapperEl.dispatchEvent(e)}))}))}}function ce(e,t,s){const a="swiper-slide-shadow"+(s?`-${s}`:""),i=h(t);let r=i.querySelector(`.${a}`);return r||(r=g("div","swiper-slide-shadow"+(s?`-${s}`:"")),i.append(r)),r}Object.keys(Z).forEach((e=>{Object.keys(Z[e]).forEach((t=>{J.prototype[t]=Z[e][t]}))})),J.use([function(e){let{swiper:t,on:s,emit:a}=e;const i=r();let n=null,l=null;const o=()=>{t&&!t.destroyed&&t.initialized&&(a("beforeResize"),a("resize"))},d=()=>{t&&!t.destroyed&&t.initialized&&a("orientationchange")};s("init",(()=>{t.params.resizeObserver&&void 0!==i.ResizeObserver?t&&!t.destroyed&&t.initialized&&(n=new ResizeObserver((e=>{l=i.requestAnimationFrame((()=>{const{width:s,height:a}=t;let i=s,r=a;e.forEach((e=>{let{contentBoxSize:s,contentRect:a,target:n}=e;n&&n!==t.el||(i=a?a.width:(s[0]||s).inlineSize,r=a?a.height:(s[0]||s).blockSize)})),i===s&&r===a||o()}))})),n.observe(t.el)):(i.addEventListener("resize",o),i.addEventListener("orientationchange",d))})),s("destroy",(()=>{l&&i.cancelAnimationFrame(l),n&&n.unobserve&&t.el&&(n.unobserve(t.el),n=null),i.removeEventListener("resize",o),i.removeEventListener("orientationchange",d)}))},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const n=[],l=r(),o=function(e,s){void 0===s&&(s={});const a=new(l.MutationObserver||l.WebkitMutationObserver)((e=>{if(t.__preventObserver__)return;if(1===e.length)return void i("observerUpdate",e[0]);const s=function(){i("observerUpdate",e[0])};l.requestAnimationFrame?l.requestAnimationFrame(s):l.setTimeout(s,0)}));a.observe(e,{attributes:void 0===s.attributes||s.attributes,childList:void 0===s.childList||s.childList,characterData:void 0===s.characterData||s.characterData}),n.push(a)};s({observer:!1,observeParents:!1,observeSlideChildren:!1}),a("init",(()=>{if(t.params.observer){if(t.params.observeParents){const e=y(t.el);for(let t=0;t{n.forEach((e=>{e.disconnect()})),n.splice(0,n.length)}))}]);const pe=[function(e){let t,{swiper:s,extendParams:i,on:r,emit:n}=e;i({virtual:{enabled:!1,slides:[],cache:!0,renderSlide:null,renderExternal:null,renderExternalUpdate:!0,addSlidesBefore:0,addSlidesAfter:0}});const l=a();s.virtual={cache:{},from:void 0,to:void 0,slides:[],offset:0,slidesGrid:[]};const o=l.createElement("div");function d(e,t){const a=s.params.virtual;if(a.cache&&s.virtual.cache[t])return s.virtual.cache[t];let i;return a.renderSlide?(i=a.renderSlide.call(s,e,t),"string"==typeof i&&(o.innerHTML=i,i=o.children[0])):i=s.isElement?g("swiper-slide"):g("div",s.params.slideClass),i.setAttribute("data-swiper-slide-index",t),a.renderSlide||(i.innerHTML=e),a.cache&&(s.virtual.cache[t]=i),i}function c(e){const{slidesPerView:t,slidesPerGroup:a,centeredSlides:i,loop:r}=s.params,{addSlidesBefore:l,addSlidesAfter:o}=s.params.virtual,{from:c,to:p,slides:u,slidesGrid:m,offset:h}=s.virtual;s.params.cssMode||s.updateActiveIndex();const g=s.activeIndex||0;let v,w,b;v=s.rtlTranslate?"right":s.isHorizontal()?"left":"top",i?(w=Math.floor(t/2)+a+o,b=Math.floor(t/2)+a+l):(w=t+(a-1)+o,b=(r?t:a)+l);let y=g-b,E=g+w;r||(y=Math.max(y,0),E=Math.min(E,u.length-1));let x=(s.slidesGrid[y]||0)-(s.slidesGrid[0]||0);function S(){s.updateSlides(),s.updateProgress(),s.updateSlidesClasses(),n("virtualUpdate")}if(r&&g>=b?(y-=b,i||(x+=s.slidesGrid[0])):r&&g{e.style[v]=x-Math.abs(s.cssOverflowAdjustment())+"px"})),s.updateProgress(),void n("virtualUpdate");if(s.params.virtual.renderExternal)return s.params.virtual.renderExternal.call(s,{offset:x,from:y,to:E,slides:function(){const e=[];for(let t=y;t<=E;t+=1)e.push(u[t]);return e}()}),void(s.params.virtual.renderExternalUpdate?S():n("virtualUpdate"));const T=[],M=[],C=e=>{let t=e;return e<0?t=u.length+e:t>=u.length&&(t-=u.length),t};if(e)s.slidesEl.querySelectorAll(`.${s.params.slideClass}, swiper-slide`).forEach((e=>{e.remove()}));else for(let e=c;e<=p;e+=1)if(eE){const t=C(e);s.slidesEl.querySelectorAll(`.${s.params.slideClass}[data-swiper-slide-index="${t}"], swiper-slide[data-swiper-slide-index="${t}"]`).forEach((e=>{e.remove()}))}const P=r?-u.length:0,L=r?2*u.length:u.length;for(let t=P;t=y&&t<=E){const s=C(t);void 0===p||e?M.push(s):(t>p&&M.push(s),t{s.slidesEl.append(d(u[e],e))})),r)for(let e=T.length-1;e>=0;e-=1){const t=T[e];s.slidesEl.prepend(d(u[t],t))}else T.sort(((e,t)=>t-e)),T.forEach((e=>{s.slidesEl.prepend(d(u[e],e))}));f(s.slidesEl,".swiper-slide, swiper-slide").forEach((e=>{e.style[v]=x-Math.abs(s.cssOverflowAdjustment())+"px"})),S()}r("beforeInit",(()=>{if(!s.params.virtual.enabled)return;let e;if(void 0===s.passedParams.virtual.slides){const t=[...s.slidesEl.children].filter((e=>e.matches(`.${s.params.slideClass}, swiper-slide`)));t&&t.length&&(s.virtual.slides=[...t],e=!0,t.forEach(((e,t)=>{e.setAttribute("data-swiper-slide-index",t),s.virtual.cache[t]=e,e.remove()})))}e||(s.virtual.slides=s.params.virtual.slides),s.classNames.push(`${s.params.containerModifierClass}virtual`),s.params.watchSlidesProgress=!0,s.originalParams.watchSlidesProgress=!0,s.params.initialSlide||c()})),r("setTranslate",(()=>{s.params.virtual.enabled&&(s.params.cssMode&&!s._immediateVirtual?(clearTimeout(t),t=setTimeout((()=>{c()}),100)):c())})),r("init update resize",(()=>{s.params.virtual.enabled&&s.params.cssMode&&u(s.wrapperEl,"--swiper-virtual-size",`${s.virtualSize}px`)})),Object.assign(s.virtual,{appendSlide:function(e){if("object"==typeof e&&"length"in e)for(let t=0;t{const a=e[s],r=a.getAttribute("data-swiper-slide-index");r&&a.setAttribute("data-swiper-slide-index",parseInt(r,10)+i),t[parseInt(s,10)+i]=a})),s.virtual.cache=t}c(!0),s.slideTo(a,0)},removeSlide:function(e){if(null==e)return;let t=s.activeIndex;if(Array.isArray(e))for(let a=e.length-1;a>=0;a-=1)s.virtual.slides.splice(e[a],1),s.params.virtual.cache&&delete s.virtual.cache[e[a]],e[a]0&&0===y(t.el,`.${t.params.slideActiveClass}`).length)return;const a=t.el,i=a.clientWidth,r=a.clientHeight,n=o.innerWidth,l=o.innerHeight,d=v(a);s&&(d.left-=a.scrollLeft);const c=[[d.left,d.top],[d.left+i,d.top],[d.left,d.top+r],[d.left+i,d.top+r]];for(let t=0;t=0&&s[0]<=n&&s[1]>=0&&s[1]<=l){if(0===s[0]&&0===s[1])continue;e=!0}}if(!e)return}t.isHorizontal()?((d||c||p||u)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),((c||u)&&!s||(d||p)&&s)&&t.slideNext(),((d||p)&&!s||(c||u)&&s)&&t.slidePrev()):((d||c||m||h)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),(c||h)&&t.slideNext(),(d||m)&&t.slidePrev()),n("keyPress",i)}}function c(){t.keyboard.enabled||(l.addEventListener("keydown",d),t.keyboard.enabled=!0)}function p(){t.keyboard.enabled&&(l.removeEventListener("keydown",d),t.keyboard.enabled=!1)}t.keyboard={enabled:!1},s({keyboard:{enabled:!1,onlyInViewport:!0,pageUpDown:!0}}),i("init",(()=>{t.params.keyboard.enabled&&c()})),i("destroy",(()=>{t.keyboard.enabled&&p()})),Object.assign(t.keyboard,{enable:c,disable:p})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const o=r();let d;s({mousewheel:{enabled:!1,releaseOnEdges:!1,invert:!1,forceToAxis:!1,sensitivity:1,eventsTarget:"container",thresholdDelta:null,thresholdTime:null,noMousewheelClass:"swiper-no-mousewheel"}}),t.mousewheel={enabled:!1};let c,p=l();const u=[];function m(){t.enabled&&(t.mouseEntered=!0)}function h(){t.enabled&&(t.mouseEntered=!1)}function f(e){return!(t.params.mousewheel.thresholdDelta&&e.delta=6&&l()-p<60||(e.direction<0?t.isEnd&&!t.params.loop||t.animating||(t.slideNext(),i("scroll",e.raw)):t.isBeginning&&!t.params.loop||t.animating||(t.slidePrev(),i("scroll",e.raw)),p=(new o.Date).getTime(),!1)))}function g(e){let s=e,a=!0;if(!t.enabled)return;if(e.target.closest(`.${t.params.mousewheel.noMousewheelClass}`))return;const r=t.params.mousewheel;t.params.cssMode&&s.preventDefault();let o=t.el;"container"!==t.params.mousewheel.eventsTarget&&(o=document.querySelector(t.params.mousewheel.eventsTarget));const p=o&&o.contains(s.target);if(!t.mouseEntered&&!p&&!r.releaseOnEdges)return!0;s.originalEvent&&(s=s.originalEvent);let m=0;const h=t.rtlTranslate?-1:1,g=function(e){let t=0,s=0,a=0,i=0;return"detail"in e&&(s=e.detail),"wheelDelta"in e&&(s=-e.wheelDelta/120),"wheelDeltaY"in e&&(s=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=s,s=0),a=10*t,i=10*s,"deltaY"in e&&(i=e.deltaY),"deltaX"in e&&(a=e.deltaX),e.shiftKey&&!a&&(a=i,i=0),(a||i)&&e.deltaMode&&(1===e.deltaMode?(a*=40,i*=40):(a*=800,i*=800)),a&&!t&&(t=a<1?-1:1),i&&!s&&(s=i<1?-1:1),{spinX:t,spinY:s,pixelX:a,pixelY:i}}(s);if(r.forceToAxis)if(t.isHorizontal()){if(!(Math.abs(g.pixelX)>Math.abs(g.pixelY)))return!0;m=-g.pixelX*h}else{if(!(Math.abs(g.pixelY)>Math.abs(g.pixelX)))return!0;m=-g.pixelY}else m=Math.abs(g.pixelX)>Math.abs(g.pixelY)?-g.pixelX*h:-g.pixelY;if(0===m)return!0;r.invert&&(m=-m);let v=t.getTranslate()+m*r.sensitivity;if(v>=t.minTranslate()&&(v=t.minTranslate()),v<=t.maxTranslate()&&(v=t.maxTranslate()),a=!!t.params.loop||!(v===t.minTranslate()||v===t.maxTranslate()),a&&t.params.nested&&s.stopPropagation(),t.params.freeMode&&t.params.freeMode.enabled){const e={time:l(),delta:Math.abs(m),direction:Math.sign(m)},a=c&&e.time=t.minTranslate()&&(l=t.minTranslate()),l<=t.maxTranslate()&&(l=t.maxTranslate()),t.setTransition(0),t.setTranslate(l),t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses(),(!o&&t.isBeginning||!p&&t.isEnd)&&t.updateSlidesClasses(),t.params.loop&&t.loopFix({direction:e.direction<0?"next":"prev",byMousewheel:!0}),t.params.freeMode.sticky){clearTimeout(d),d=void 0,u.length>=15&&u.shift();const s=u.length?u[u.length-1]:void 0,a=u[0];if(u.push(e),s&&(e.delta>s.delta||e.direction!==s.direction))u.splice(0);else if(u.length>=15&&e.time-a.time<500&&a.delta-e.delta>=1&&e.delta<=6){const s=m>0?.8:.2;c=e,u.splice(0),d=n((()=>{t.slideToClosest(t.params.speed,!0,void 0,s)}),0)}d||(d=n((()=>{c=e,u.splice(0),t.slideToClosest(t.params.speed,!0,void 0,.5)}),500))}if(a||i("scroll",s),t.params.autoplay&&t.params.autoplayDisableOnInteraction&&t.autoplay.stop(),l===t.minTranslate()||l===t.maxTranslate())return!0}}else{const s={time:l(),delta:Math.abs(m),direction:Math.sign(m),raw:e};u.length>=2&&u.shift();const a=u.length?u[u.length-1]:void 0;if(u.push(s),a?(s.direction!==a.direction||s.delta>a.delta||s.time>a.time+150)&&f(s):f(s),function(e){const s=t.params.mousewheel;if(e.direction<0){if(t.isEnd&&!t.params.loop&&s.releaseOnEdges)return!0}else if(t.isBeginning&&!t.params.loop&&s.releaseOnEdges)return!0;return!1}(s))return!0}return s.preventDefault?s.preventDefault():s.returnValue=!1,!1}function v(e){let s=t.el;"container"!==t.params.mousewheel.eventsTarget&&(s=document.querySelector(t.params.mousewheel.eventsTarget)),s[e]("mouseenter",m),s[e]("mouseleave",h),s[e]("wheel",g)}function w(){return t.params.cssMode?(t.wrapperEl.removeEventListener("wheel",g),!0):!t.mousewheel.enabled&&(v("addEventListener"),t.mousewheel.enabled=!0,!0)}function b(){return t.params.cssMode?(t.wrapperEl.addEventListener(event,g),!0):!!t.mousewheel.enabled&&(v("removeEventListener"),t.mousewheel.enabled=!1,!0)}a("init",(()=>{!t.params.mousewheel.enabled&&t.params.cssMode&&b(),t.params.mousewheel.enabled&&w()})),a("destroy",(()=>{t.params.cssMode&&w(),t.mousewheel.enabled&&b()})),Object.assign(t.mousewheel,{enable:w,disable:b})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;s({navigation:{nextEl:null,prevEl:null,hideOnClick:!1,disabledClass:"swiper-button-disabled",hiddenClass:"swiper-button-hidden",lockClass:"swiper-button-lock",navigationDisabledClass:"swiper-navigation-disabled"}}),t.navigation={nextEl:null,prevEl:null};const r=e=>(Array.isArray(e)||(e=[e].filter((e=>!!e))),e);function n(e){let s;return e&&"string"==typeof e&&t.isElement&&(s=t.el.shadowRoot.querySelector(e),s)?s:(e&&("string"==typeof e&&(s=[...document.querySelectorAll(e)]),t.params.uniqueNavElements&&"string"==typeof e&&s.length>1&&1===t.el.querySelectorAll(e).length&&(s=t.el.querySelector(e))),e&&!s?e:s)}function l(e,s){const a=t.params.navigation;(e=r(e)).forEach((e=>{e&&(e.classList[s?"add":"remove"](...a.disabledClass.split(" ")),"BUTTON"===e.tagName&&(e.disabled=s),t.params.watchOverflow&&t.enabled&&e.classList[t.isLocked?"add":"remove"](a.lockClass))}))}function o(){const{nextEl:e,prevEl:s}=t.navigation;if(t.params.loop)return l(s,!1),void l(e,!1);l(s,t.isBeginning&&!t.params.rewind),l(e,t.isEnd&&!t.params.rewind)}function d(e){e.preventDefault(),(!t.isBeginning||t.params.loop||t.params.rewind)&&(t.slidePrev(),i("navigationPrev"))}function c(e){e.preventDefault(),(!t.isEnd||t.params.loop||t.params.rewind)&&(t.slideNext(),i("navigationNext"))}function p(){const e=t.params.navigation;if(t.params.navigation=ee(t,t.originalParams.navigation,t.params.navigation,{nextEl:"swiper-button-next",prevEl:"swiper-button-prev"}),!e.nextEl&&!e.prevEl)return;let s=n(e.nextEl),a=n(e.prevEl);Object.assign(t.navigation,{nextEl:s,prevEl:a}),s=r(s),a=r(a);const i=(s,a)=>{s&&s.addEventListener("click","next"===a?c:d),!t.enabled&&s&&s.classList.add(...e.lockClass.split(" "))};s.forEach((e=>i(e,"next"))),a.forEach((e=>i(e,"prev")))}function u(){let{nextEl:e,prevEl:s}=t.navigation;e=r(e),s=r(s);const a=(e,s)=>{e.removeEventListener("click","next"===s?c:d),e.classList.remove(...t.params.navigation.disabledClass.split(" "))};e.forEach((e=>a(e,"next"))),s.forEach((e=>a(e,"prev")))}a("init",(()=>{!1===t.params.navigation.enabled?m():(p(),o())})),a("toEdge fromEdge lock unlock",(()=>{o()})),a("destroy",(()=>{u()})),a("enable disable",(()=>{let{nextEl:e,prevEl:s}=t.navigation;e=r(e),s=r(s),[...e,...s].filter((e=>!!e)).forEach((e=>e.classList[t.enabled?"remove":"add"](t.params.navigation.lockClass)))})),a("click",((e,s)=>{let{nextEl:a,prevEl:n}=t.navigation;a=r(a),n=r(n);const l=s.target;if(t.params.navigation.hideOnClick&&!n.includes(l)&&!a.includes(l)){if(t.pagination&&t.params.pagination&&t.params.pagination.clickable&&(t.pagination.el===l||t.pagination.el.contains(l)))return;let e;a.length?e=a[0].classList.contains(t.params.navigation.hiddenClass):n.length&&(e=n[0].classList.contains(t.params.navigation.hiddenClass)),i(!0===e?"navigationShow":"navigationHide"),[...a,...n].filter((e=>!!e)).forEach((e=>e.classList.toggle(t.params.navigation.hiddenClass)))}}));const m=()=>{t.el.classList.add(...t.params.navigation.navigationDisabledClass.split(" ")),u()};Object.assign(t.navigation,{enable:()=>{t.el.classList.remove(...t.params.navigation.navigationDisabledClass.split(" ")),p(),o()},disable:m,update:o,init:p,destroy:u})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const r="swiper-pagination";let n;s({pagination:{el:null,bulletElement:"span",clickable:!1,hideOnClick:!1,renderBullet:null,renderProgressbar:null,renderFraction:null,renderCustom:null,progressbarOpposite:!1,type:"bullets",dynamicBullets:!1,dynamicMainBullets:1,formatFractionCurrent:e=>e,formatFractionTotal:e=>e,bulletClass:`${r}-bullet`,bulletActiveClass:`${r}-bullet-active`,modifierClass:`${r}-`,currentClass:`${r}-current`,totalClass:`${r}-total`,hiddenClass:`${r}-hidden`,progressbarFillClass:`${r}-progressbar-fill`,progressbarOppositeClass:`${r}-progressbar-opposite`,clickableClass:`${r}-clickable`,lockClass:`${r}-lock`,horizontalClass:`${r}-horizontal`,verticalClass:`${r}-vertical`,paginationDisabledClass:`${r}-disabled`}}),t.pagination={el:null,bullets:[]};let l=0;const o=e=>(Array.isArray(e)||(e=[e].filter((e=>!!e))),e);function d(){return!t.params.pagination.el||!t.pagination.el||Array.isArray(t.pagination.el)&&0===t.pagination.el.length}function c(e,s){const{bulletActiveClass:a}=t.params.pagination;e&&(e=e[("prev"===s?"previous":"next")+"ElementSibling"])&&(e.classList.add(`${a}-${s}`),(e=e[("prev"===s?"previous":"next")+"ElementSibling"])&&e.classList.add(`${a}-${s}-${s}`))}function p(e){const s=e.target.closest(te(t.params.pagination.bulletClass));if(!s)return;e.preventDefault();const a=b(s)*t.params.slidesPerGroup;if(t.params.loop){if(t.realIndex===a)return;const e=t.getSlideIndexByData(a),s=t.getSlideIndexByData(t.realIndex);e>t.slides.length-t.loopedSlides&&t.loopFix({direction:e>s?"next":"prev",activeSlideIndex:e,slideTo:!1}),t.slideToLoop(a)}else t.slideTo(a)}function u(){const e=t.rtl,s=t.params.pagination;if(d())return;let a,r,p=t.pagination.el;p=o(p);const u=t.virtual&&t.params.virtual.enabled?t.virtual.slides.length:t.slides.length,m=t.params.loop?Math.ceil(u/t.params.slidesPerGroup):t.snapGrid.length;if(t.params.loop?(r=t.previousRealIndex||0,a=t.params.slidesPerGroup>1?Math.floor(t.realIndex/t.params.slidesPerGroup):t.realIndex):void 0!==t.snapIndex?(a=t.snapIndex,r=t.previousSnapIndex):(r=t.previousIndex||0,a=t.activeIndex||0),"bullets"===s.type&&t.pagination.bullets&&t.pagination.bullets.length>0){const i=t.pagination.bullets;let o,d,u;if(s.dynamicBullets&&(n=x(i[0],t.isHorizontal()?"width":"height",!0),p.forEach((e=>{e.style[t.isHorizontal()?"width":"height"]=n*(s.dynamicMainBullets+4)+"px"})),s.dynamicMainBullets>1&&void 0!==r&&(l+=a-(r||0),l>s.dynamicMainBullets-1?l=s.dynamicMainBullets-1:l<0&&(l=0)),o=Math.max(a-l,0),d=o+(Math.min(i.length,s.dynamicMainBullets)-1),u=(d+o)/2),i.forEach((e=>{const t=[...["","-next","-next-next","-prev","-prev-prev","-main"].map((e=>`${s.bulletActiveClass}${e}`))].map((e=>"string"==typeof e&&e.includes(" ")?e.split(" "):e)).flat();e.classList.remove(...t)})),p.length>1)i.forEach((e=>{const i=b(e);i===a?e.classList.add(...s.bulletActiveClass.split(" ")):t.isElement&&e.setAttribute("part","bullet"),s.dynamicBullets&&(i>=o&&i<=d&&e.classList.add(...`${s.bulletActiveClass}-main`.split(" ")),i===o&&c(e,"prev"),i===d&&c(e,"next"))}));else{const e=i[a];if(e&&e.classList.add(...s.bulletActiveClass.split(" ")),t.isElement&&i.forEach(((e,t)=>{e.setAttribute("part",t===a?"bullet-active":"bullet")})),s.dynamicBullets){const e=i[o],t=i[d];for(let e=o;e<=d;e+=1)i[e]&&i[e].classList.add(...`${s.bulletActiveClass}-main`.split(" "));c(e,"prev"),c(t,"next")}}if(s.dynamicBullets){const a=Math.min(i.length,s.dynamicMainBullets+4),r=(n*a-n)/2-u*n,l=e?"right":"left";i.forEach((e=>{e.style[t.isHorizontal()?l:"top"]=`${r}px`}))}}p.forEach(((e,r)=>{if("fraction"===s.type&&(e.querySelectorAll(te(s.currentClass)).forEach((e=>{e.textContent=s.formatFractionCurrent(a+1)})),e.querySelectorAll(te(s.totalClass)).forEach((e=>{e.textContent=s.formatFractionTotal(m)}))),"progressbar"===s.type){let i;i=s.progressbarOpposite?t.isHorizontal()?"vertical":"horizontal":t.isHorizontal()?"horizontal":"vertical";const r=(a+1)/m;let n=1,l=1;"horizontal"===i?n=r:l=r,e.querySelectorAll(te(s.progressbarFillClass)).forEach((e=>{e.style.transform=`translate3d(0,0,0) scaleX(${n}) scaleY(${l})`,e.style.transitionDuration=`${t.params.speed}ms`}))}"custom"===s.type&&s.renderCustom?(e.innerHTML=s.renderCustom(t,a+1,m),0===r&&i("paginationRender",e)):(0===r&&i("paginationRender",e),i("paginationUpdate",e)),t.params.watchOverflow&&t.enabled&&e.classList[t.isLocked?"add":"remove"](s.lockClass)}))}function m(){const e=t.params.pagination;if(d())return;const s=t.virtual&&t.params.virtual.enabled?t.virtual.slides.length:t.slides.length;let a=t.pagination.el;a=o(a);let r="";if("bullets"===e.type){let a=t.params.loop?Math.ceil(s/t.params.slidesPerGroup):t.snapGrid.length;t.params.freeMode&&t.params.freeMode.enabled&&a>s&&(a=s);for(let s=0;s`}"fraction"===e.type&&(r=e.renderFraction?e.renderFraction.call(t,e.currentClass,e.totalClass):` / `),"progressbar"===e.type&&(r=e.renderProgressbar?e.renderProgressbar.call(t,e.progressbarFillClass):``),t.pagination.bullets=[],a.forEach((s=>{"custom"!==e.type&&(s.innerHTML=r||""),"bullets"===e.type&&t.pagination.bullets.push(...s.querySelectorAll(te(e.bulletClass)))})),"custom"!==e.type&&i("paginationRender",a[0])}function h(){t.params.pagination=ee(t,t.originalParams.pagination,t.params.pagination,{el:"swiper-pagination"});const e=t.params.pagination;if(!e.el)return;let s;"string"==typeof e.el&&t.isElement&&(s=t.el.shadowRoot.querySelector(e.el)),s||"string"!=typeof e.el||(s=[...document.querySelectorAll(e.el)]),s||(s=e.el),s&&0!==s.length&&(t.params.uniqueNavElements&&"string"==typeof e.el&&Array.isArray(s)&&s.length>1&&(s=[...t.el.querySelectorAll(e.el)],s.length>1&&(s=s.filter((e=>y(e,".swiper")[0]===t.el))[0])),Array.isArray(s)&&1===s.length&&(s=s[0]),Object.assign(t.pagination,{el:s}),s=o(s),s.forEach((s=>{"bullets"===e.type&&e.clickable&&s.classList.add(e.clickableClass),s.classList.add(e.modifierClass+e.type),s.classList.add(t.isHorizontal()?e.horizontalClass:e.verticalClass),"bullets"===e.type&&e.dynamicBullets&&(s.classList.add(`${e.modifierClass}${e.type}-dynamic`),l=0,e.dynamicMainBullets<1&&(e.dynamicMainBullets=1)),"progressbar"===e.type&&e.progressbarOpposite&&s.classList.add(e.progressbarOppositeClass),e.clickable&&s.addEventListener("click",p),t.enabled||s.classList.add(e.lockClass)})))}function f(){const e=t.params.pagination;if(d())return;let s=t.pagination.el;s&&(s=o(s),s.forEach((s=>{s.classList.remove(e.hiddenClass),s.classList.remove(e.modifierClass+e.type),s.classList.remove(t.isHorizontal()?e.horizontalClass:e.verticalClass),e.clickable&&s.removeEventListener("click",p)}))),t.pagination.bullets&&t.pagination.bullets.forEach((t=>t.classList.remove(...e.bulletActiveClass.split(" "))))}a("changeDirection",(()=>{if(!t.pagination||!t.pagination.el)return;const e=t.params.pagination;let{el:s}=t.pagination;s=o(s),s.forEach((s=>{s.classList.remove(e.horizontalClass,e.verticalClass),s.classList.add(t.isHorizontal()?e.horizontalClass:e.verticalClass)}))})),a("init",(()=>{!1===t.params.pagination.enabled?g():(h(),m(),u())})),a("activeIndexChange",(()=>{void 0===t.snapIndex&&u()})),a("snapIndexChange",(()=>{u()})),a("snapGridLengthChange",(()=>{m(),u()})),a("destroy",(()=>{f()})),a("enable disable",(()=>{let{el:e}=t.pagination;e&&(e=o(e),e.forEach((e=>e.classList[t.enabled?"remove":"add"](t.params.pagination.lockClass))))})),a("lock unlock",(()=>{u()})),a("click",((e,s)=>{const a=s.target;let{el:r}=t.pagination;if(Array.isArray(r)||(r=[r].filter((e=>!!e))),t.params.pagination.el&&t.params.pagination.hideOnClick&&r&&r.length>0&&!a.classList.contains(t.params.pagination.bulletClass)){if(t.navigation&&(t.navigation.nextEl&&a===t.navigation.nextEl||t.navigation.prevEl&&a===t.navigation.prevEl))return;const e=r[0].classList.contains(t.params.pagination.hiddenClass);i(!0===e?"paginationShow":"paginationHide"),r.forEach((e=>e.classList.toggle(t.params.pagination.hiddenClass)))}}));const g=()=>{t.el.classList.add(t.params.pagination.paginationDisabledClass);let{el:e}=t.pagination;e&&(e=o(e),e.forEach((e=>e.classList.add(t.params.pagination.paginationDisabledClass)))),f()};Object.assign(t.pagination,{enable:()=>{t.el.classList.remove(t.params.pagination.paginationDisabledClass);let{el:e}=t.pagination;e&&(e=o(e),e.forEach((e=>e.classList.remove(t.params.pagination.paginationDisabledClass)))),h(),m(),u()},disable:g,render:m,update:u,init:h,destroy:f})},function(e){let{swiper:t,extendParams:s,on:i,emit:r}=e;const l=a();let o,d,c,p,u=!1,m=null,h=null;function f(){if(!t.params.scrollbar.el||!t.scrollbar.el)return;const{scrollbar:e,rtlTranslate:s}=t,{dragEl:a,el:i}=e,r=t.params.scrollbar,n=t.params.loop?t.progressLoop:t.progress;let l=d,o=(c-d)*n;s?(o=-o,o>0?(l=d-o,o=0):-o+d>c&&(l=c+o)):o<0?(l=d+o,o=0):o+d>c&&(l=c-o),t.isHorizontal()?(a.style.transform=`translate3d(${o}px, 0, 0)`,a.style.width=`${l}px`):(a.style.transform=`translate3d(0px, ${o}px, 0)`,a.style.height=`${l}px`),r.hide&&(clearTimeout(m),i.style.opacity=1,m=setTimeout((()=>{i.style.opacity=0,i.style.transitionDuration="400ms"}),1e3))}function w(){if(!t.params.scrollbar.el||!t.scrollbar.el)return;const{scrollbar:e}=t,{dragEl:s,el:a}=e;s.style.width="",s.style.height="",c=t.isHorizontal()?a.offsetWidth:a.offsetHeight,p=t.size/(t.virtualSize+t.params.slidesOffsetBefore-(t.params.centeredSlides?t.snapGrid[0]:0)),d="auto"===t.params.scrollbar.dragSize?c*p:parseInt(t.params.scrollbar.dragSize,10),t.isHorizontal()?s.style.width=`${d}px`:s.style.height=`${d}px`,a.style.display=p>=1?"none":"",t.params.scrollbar.hide&&(a.style.opacity=0),t.params.watchOverflow&&t.enabled&&e.el.classList[t.isLocked?"add":"remove"](t.params.scrollbar.lockClass)}function b(e){return t.isHorizontal()?e.clientX:e.clientY}function y(e){const{scrollbar:s,rtlTranslate:a}=t,{el:i}=s;let r;r=(b(e)-v(i)[t.isHorizontal()?"left":"top"]-(null!==o?o:d/2))/(c-d),r=Math.max(Math.min(r,1),0),a&&(r=1-r);const n=t.minTranslate()+(t.maxTranslate()-t.minTranslate())*r;t.updateProgress(n),t.setTranslate(n),t.updateActiveIndex(),t.updateSlidesClasses()}function E(e){const s=t.params.scrollbar,{scrollbar:a,wrapperEl:i}=t,{el:n,dragEl:l}=a;u=!0,o=e.target===l?b(e)-e.target.getBoundingClientRect()[t.isHorizontal()?"left":"top"]:null,e.preventDefault(),e.stopPropagation(),i.style.transitionDuration="100ms",l.style.transitionDuration="100ms",y(e),clearTimeout(h),n.style.transitionDuration="0ms",s.hide&&(n.style.opacity=1),t.params.cssMode&&(t.wrapperEl.style["scroll-snap-type"]="none"),r("scrollbarDragStart",e)}function x(e){const{scrollbar:s,wrapperEl:a}=t,{el:i,dragEl:n}=s;u&&(e.preventDefault?e.preventDefault():e.returnValue=!1,y(e),a.style.transitionDuration="0ms",i.style.transitionDuration="0ms",n.style.transitionDuration="0ms",r("scrollbarDragMove",e))}function S(e){const s=t.params.scrollbar,{scrollbar:a,wrapperEl:i}=t,{el:l}=a;u&&(u=!1,t.params.cssMode&&(t.wrapperEl.style["scroll-snap-type"]="",i.style.transitionDuration=""),s.hide&&(clearTimeout(h),h=n((()=>{l.style.opacity=0,l.style.transitionDuration="400ms"}),1e3)),r("scrollbarDragEnd",e),s.snapOnRelease&&t.slideToClosest())}function T(e){const{scrollbar:s,params:a}=t,i=s.el;if(!i)return;const r=i,n=!!a.passiveListeners&&{passive:!1,capture:!1},o=!!a.passiveListeners&&{passive:!0,capture:!1};if(!r)return;const d="on"===e?"addEventListener":"removeEventListener";r[d]("pointerdown",E,n),l[d]("pointermove",x,n),l[d]("pointerup",S,o)}function M(){const{scrollbar:e,el:s}=t;t.params.scrollbar=ee(t,t.originalParams.scrollbar,t.params.scrollbar,{el:"swiper-scrollbar"});const a=t.params.scrollbar;if(!a.el)return;let i,r;"string"==typeof a.el&&t.isElement&&(i=t.el.shadowRoot.querySelector(a.el)),i||"string"!=typeof a.el?i||(i=a.el):i=l.querySelectorAll(a.el),t.params.uniqueNavElements&&"string"==typeof a.el&&i.length>1&&1===s.querySelectorAll(a.el).length&&(i=s.querySelector(a.el)),i.length>0&&(i=i[0]),i.classList.add(t.isHorizontal()?a.horizontalClass:a.verticalClass),i&&(r=i.querySelector(`.${t.params.scrollbar.dragClass}`),r||(r=g("div",t.params.scrollbar.dragClass),i.append(r))),Object.assign(e,{el:i,dragEl:r}),a.draggable&&t.params.scrollbar.el&&t.scrollbar.el&&T("on"),i&&i.classList[t.enabled?"remove":"add"](t.params.scrollbar.lockClass)}function C(){const e=t.params.scrollbar,s=t.scrollbar.el;s&&s.classList.remove(t.isHorizontal()?e.horizontalClass:e.verticalClass),t.params.scrollbar.el&&t.scrollbar.el&&T("off")}s({scrollbar:{el:null,dragSize:"auto",hide:!1,draggable:!1,snapOnRelease:!0,lockClass:"swiper-scrollbar-lock",dragClass:"swiper-scrollbar-drag",scrollbarDisabledClass:"swiper-scrollbar-disabled",horizontalClass:"swiper-scrollbar-horizontal",verticalClass:"swiper-scrollbar-vertical"}}),t.scrollbar={el:null,dragEl:null},i("init",(()=>{!1===t.params.scrollbar.enabled?P():(M(),w(),f())})),i("update resize observerUpdate lock unlock",(()=>{w()})),i("setTranslate",(()=>{f()})),i("setTransition",((e,s)=>{!function(e){t.params.scrollbar.el&&t.scrollbar.el&&(t.scrollbar.dragEl.style.transitionDuration=`${e}ms`)}(s)})),i("enable disable",(()=>{const{el:e}=t.scrollbar;e&&e.classList[t.enabled?"remove":"add"](t.params.scrollbar.lockClass)})),i("destroy",(()=>{C()}));const P=()=>{t.el.classList.add(t.params.scrollbar.scrollbarDisabledClass),t.scrollbar.el&&t.scrollbar.el.classList.add(t.params.scrollbar.scrollbarDisabledClass),C()};Object.assign(t.scrollbar,{enable:()=>{t.el.classList.remove(t.params.scrollbar.scrollbarDisabledClass),t.scrollbar.el&&t.scrollbar.el.classList.remove(t.params.scrollbar.scrollbarDisabledClass),M(),w(),f()},disable:P,updateSize:w,setTranslate:f,init:M,destroy:C})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({parallax:{enabled:!1}});const i=(e,s)=>{const{rtl:a}=t,i=a?-1:1,r=e.getAttribute("data-swiper-parallax")||"0";let n=e.getAttribute("data-swiper-parallax-x"),l=e.getAttribute("data-swiper-parallax-y");const o=e.getAttribute("data-swiper-parallax-scale"),d=e.getAttribute("data-swiper-parallax-opacity"),c=e.getAttribute("data-swiper-parallax-rotate");if(n||l?(n=n||"0",l=l||"0"):t.isHorizontal()?(n=r,l="0"):(l=r,n="0"),n=n.indexOf("%")>=0?parseInt(n,10)*s*i+"%":n*s*i+"px",l=l.indexOf("%")>=0?parseInt(l,10)*s+"%":l*s+"px",null!=d){const t=d-(d-1)*(1-Math.abs(s));e.style.opacity=t}let p=`translate3d(${n}, ${l}, 0px)`;if(null!=o){p+=` scale(${o-(o-1)*(1-Math.abs(s))})`}if(c&&null!=c){p+=` rotate(${c*s*-1}deg)`}e.style.transform=p},r=()=>{const{el:e,slides:s,progress:a,snapGrid:r}=t;f(e,"[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").forEach((e=>{i(e,a)})),s.forEach(((e,s)=>{let n=e.progress;t.params.slidesPerGroup>1&&"auto"!==t.params.slidesPerView&&(n+=Math.ceil(s/2)-a*(r.length-1)),n=Math.min(Math.max(n,-1),1),e.querySelectorAll("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale], [data-swiper-parallax-rotate]").forEach((e=>{i(e,n)}))}))};a("beforeInit",(()=>{t.params.parallax.enabled&&(t.params.watchSlidesProgress=!0,t.originalParams.watchSlidesProgress=!0)})),a("init",(()=>{t.params.parallax.enabled&&r()})),a("setTranslate",(()=>{t.params.parallax.enabled&&r()})),a("setTransition",((e,s)=>{t.params.parallax.enabled&&function(e){void 0===e&&(e=t.params.speed);const{el:s}=t;s.querySelectorAll("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").forEach((t=>{let s=parseInt(t.getAttribute("data-swiper-parallax-duration"),10)||e;0===e&&(s=0),t.style.transitionDuration=`${s}ms`}))}(s)}))},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const n=r();s({zoom:{enabled:!1,maxRatio:3,minRatio:1,toggle:!0,containerClass:"swiper-zoom-container",zoomedSlideClass:"swiper-slide-zoomed"}}),t.zoom={enabled:!1};let l,d,c=1,p=!1;const u=[],m={originX:0,originY:0,slideEl:void 0,slideWidth:void 0,slideHeight:void 0,imageEl:void 0,imageWrapEl:void 0,maxRatio:3},h={isTouched:void 0,isMoved:void 0,currentX:void 0,currentY:void 0,minX:void 0,minY:void 0,maxX:void 0,maxY:void 0,width:void 0,height:void 0,startX:void 0,startY:void 0,touchesStart:{},touchesCurrent:{}},g={x:void 0,y:void 0,prevPositionX:void 0,prevPositionY:void 0,prevTime:void 0};let w=1;function b(){if(u.length<2)return 1;const e=u[0].pageX,t=u[0].pageY,s=u[1].pageX,a=u[1].pageY;return Math.sqrt((s-e)**2+(a-t)**2)}function E(e){const s=t.isElement?"swiper-slide":`.${t.params.slideClass}`;return!!e.target.matches(s)||t.slides.filter((t=>t.contains(e.target))).length>0}function x(e){if("mouse"===e.pointerType&&u.splice(0,u.length),!E(e))return;const s=t.params.zoom;if(l=!1,d=!1,u.push(e),!(u.length<2)){if(l=!0,m.scaleStart=b(),!m.slideEl){m.slideEl=e.target.closest(`.${t.params.slideClass}, swiper-slide`),m.slideEl||(m.slideEl=t.slides[t.activeIndex]);let a=m.slideEl.querySelector(`.${s.containerClass}`);if(a&&(a=a.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),m.imageEl=a,m.imageWrapEl=a?y(m.imageEl,`.${s.containerClass}`)[0]:void 0,!m.imageWrapEl)return void(m.imageEl=void 0);m.maxRatio=m.imageWrapEl.getAttribute("data-swiper-zoom")||s.maxRatio}if(m.imageEl){const[e,t]=function(){if(u.length<2)return{x:null,y:null};const e=m.imageEl.getBoundingClientRect();return[(u[0].pageX+(u[1].pageX-u[0].pageX)/2-e.x)/c,(u[0].pageY+(u[1].pageY-u[0].pageY)/2-e.y)/c]}();m.originX=e,m.originY=t,m.imageEl.style.transitionDuration="0ms"}p=!0}}function S(e){if(!E(e))return;const s=t.params.zoom,a=t.zoom,i=u.findIndex((t=>t.pointerId===e.pointerId));i>=0&&(u[i]=e),u.length<2||(d=!0,m.scaleMove=b(),m.imageEl&&(a.scale=m.scaleMove/m.scaleStart*c,a.scale>m.maxRatio&&(a.scale=m.maxRatio-1+(a.scale-m.maxRatio+1)**.5),a.scalet.pointerId===e.pointerId));i>=0&&u.splice(i,1),l&&d&&(l=!1,d=!1,m.imageEl&&(a.scale=Math.max(Math.min(a.scale,m.maxRatio),s.minRatio),m.imageEl.style.transitionDuration=`${t.params.speed}ms`,m.imageEl.style.transform=`translate3d(0,0,0) scale(${a.scale})`,c=a.scale,p=!1,a.scale>1&&m.slideEl?m.slideEl.classList.add(`${s.zoomedSlideClass}`):a.scale<=1&&m.slideEl&&m.slideEl.classList.remove(`${s.zoomedSlideClass}`),1===a.scale&&(m.originX=0,m.originY=0,m.slideEl=void 0)))}function M(e){if(!E(e)||!function(e){const s=`.${t.params.zoom.containerClass}`;return!!e.target.matches(s)||[...t.el.querySelectorAll(s)].filter((t=>t.contains(e.target))).length>0}(e))return;const s=t.zoom;if(!m.imageEl)return;if(!h.isTouched||!m.slideEl)return;h.isMoved||(h.width=m.imageEl.offsetWidth,h.height=m.imageEl.offsetHeight,h.startX=o(m.imageWrapEl,"x")||0,h.startY=o(m.imageWrapEl,"y")||0,m.slideWidth=m.slideEl.offsetWidth,m.slideHeight=m.slideEl.offsetHeight,m.imageWrapEl.style.transitionDuration="0ms");const a=h.width*s.scale,i=h.height*s.scale;if(a0?u[0].pageX:e.pageX,h.touchesCurrent.y=u.length>0?u[0].pageY:e.pageY;if(Math.max(Math.abs(h.touchesCurrent.x-h.touchesStart.x),Math.abs(h.touchesCurrent.y-h.touchesStart.y))>5&&(t.allowClick=!1),!h.isMoved&&!p){if(t.isHorizontal()&&(Math.floor(h.minX)===Math.floor(h.startX)&&h.touchesCurrent.xh.touchesStart.x))return void(h.isTouched=!1);if(!t.isHorizontal()&&(Math.floor(h.minY)===Math.floor(h.startY)&&h.touchesCurrent.yh.touchesStart.y))return void(h.isTouched=!1)}e.cancelable&&e.preventDefault(),e.stopPropagation(),h.isMoved=!0;const r=(s.scale-c)/(m.maxRatio-t.params.zoom.minRatio),{originX:n,originY:l}=m;h.currentX=h.touchesCurrent.x-h.touchesStart.x+h.startX+r*(h.width-2*n),h.currentY=h.touchesCurrent.y-h.touchesStart.y+h.startY+r*(h.height-2*l),h.currentXh.maxX&&(h.currentX=h.maxX-1+(h.currentX-h.maxX+1)**.8),h.currentYh.maxY&&(h.currentY=h.maxY-1+(h.currentY-h.maxY+1)**.8),g.prevPositionX||(g.prevPositionX=h.touchesCurrent.x),g.prevPositionY||(g.prevPositionY=h.touchesCurrent.y),g.prevTime||(g.prevTime=Date.now()),g.x=(h.touchesCurrent.x-g.prevPositionX)/(Date.now()-g.prevTime)/2,g.y=(h.touchesCurrent.y-g.prevPositionY)/(Date.now()-g.prevTime)/2,Math.abs(h.touchesCurrent.x-g.prevPositionX)<2&&(g.x=0),Math.abs(h.touchesCurrent.y-g.prevPositionY)<2&&(g.y=0),g.prevPositionX=h.touchesCurrent.x,g.prevPositionY=h.touchesCurrent.y,g.prevTime=Date.now(),m.imageWrapEl.style.transform=`translate3d(${h.currentX}px, ${h.currentY}px,0)`}function C(){const e=t.zoom;m.slideEl&&t.activeIndex!==t.slides.indexOf(m.slideEl)&&(m.imageEl&&(m.imageEl.style.transform="translate3d(0,0,0) scale(1)"),m.imageWrapEl&&(m.imageWrapEl.style.transform="translate3d(0,0,0)"),m.slideEl.classList.remove(`${t.params.zoom.zoomedSlideClass}`),e.scale=1,c=1,m.slideEl=void 0,m.imageEl=void 0,m.imageWrapEl=void 0,m.originX=0,m.originY=0)}function P(e){const s=t.zoom,a=t.params.zoom;if(!m.slideEl){e&&e.target&&(m.slideEl=e.target.closest(`.${t.params.slideClass}, swiper-slide`)),m.slideEl||(t.params.virtual&&t.params.virtual.enabled&&t.virtual?m.slideEl=f(t.slidesEl,`.${t.params.slideActiveClass}`)[0]:m.slideEl=t.slides[t.activeIndex]);let s=m.slideEl.querySelector(`.${a.containerClass}`);s&&(s=s.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),m.imageEl=s,m.imageWrapEl=s?y(m.imageEl,`.${a.containerClass}`)[0]:void 0}if(!m.imageEl||!m.imageWrapEl)return;let i,r,l,o,d,p,u,g,w,b,E,x,S,T,M,C,P,L;t.params.cssMode&&(t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.touchAction="none"),m.slideEl.classList.add(`${a.zoomedSlideClass}`),void 0===h.touchesStart.x&&e?(i=e.pageX,r=e.pageY):(i=h.touchesStart.x,r=h.touchesStart.y);const z="number"==typeof e?e:null;1===c&&z&&(i=void 0,r=void 0),s.scale=z||m.imageWrapEl.getAttribute("data-swiper-zoom")||a.maxRatio,c=z||m.imageWrapEl.getAttribute("data-swiper-zoom")||a.maxRatio,!e||1===c&&z?(u=0,g=0):(P=m.slideEl.offsetWidth,L=m.slideEl.offsetHeight,l=v(m.slideEl).left+n.scrollX,o=v(m.slideEl).top+n.scrollY,d=l+P/2-i,p=o+L/2-r,w=m.imageEl.offsetWidth,b=m.imageEl.offsetHeight,E=w*s.scale,x=b*s.scale,S=Math.min(P/2-E/2,0),T=Math.min(L/2-x/2,0),M=-S,C=-T,u=d*s.scale,g=p*s.scale,uM&&(u=M),gC&&(g=C)),z&&1===s.scale&&(m.originX=0,m.originY=0),m.imageWrapEl.style.transitionDuration="300ms",m.imageWrapEl.style.transform=`translate3d(${u}px, ${g}px,0)`,m.imageEl.style.transitionDuration="300ms",m.imageEl.style.transform=`translate3d(0,0,0) scale(${s.scale})`}function L(){const e=t.zoom,s=t.params.zoom;if(!m.slideEl){t.params.virtual&&t.params.virtual.enabled&&t.virtual?m.slideEl=f(t.slidesEl,`.${t.params.slideActiveClass}`)[0]:m.slideEl=t.slides[t.activeIndex];let e=m.slideEl.querySelector(`.${s.containerClass}`);e&&(e=e.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),m.imageEl=e,m.imageWrapEl=e?y(m.imageEl,`.${s.containerClass}`)[0]:void 0}m.imageEl&&m.imageWrapEl&&(t.params.cssMode&&(t.wrapperEl.style.overflow="",t.wrapperEl.style.touchAction=""),e.scale=1,c=1,m.imageWrapEl.style.transitionDuration="300ms",m.imageWrapEl.style.transform="translate3d(0,0,0)",m.imageEl.style.transitionDuration="300ms",m.imageEl.style.transform="translate3d(0,0,0) scale(1)",m.slideEl.classList.remove(`${s.zoomedSlideClass}`),m.slideEl=void 0,m.originX=0,m.originY=0)}function z(e){const s=t.zoom;s.scale&&1!==s.scale?L():P(e)}function A(){return{passiveListener:!!t.params.passiveListeners&&{passive:!0,capture:!1},activeListenerWithCapture:!t.params.passiveListeners||{passive:!1,capture:!0}}}function $(){const e=t.zoom;if(e.enabled)return;e.enabled=!0;const{passiveListener:s,activeListenerWithCapture:a}=A();t.wrapperEl.addEventListener("pointerdown",x,s),t.wrapperEl.addEventListener("pointermove",S,a),["pointerup","pointercancel","pointerout"].forEach((e=>{t.wrapperEl.addEventListener(e,T,s)})),t.wrapperEl.addEventListener("pointermove",M,a)}function I(){const e=t.zoom;if(!e.enabled)return;e.enabled=!1;const{passiveListener:s,activeListenerWithCapture:a}=A();t.wrapperEl.removeEventListener("pointerdown",x,s),t.wrapperEl.removeEventListener("pointermove",S,a),["pointerup","pointercancel","pointerout"].forEach((e=>{t.wrapperEl.removeEventListener(e,T,s)})),t.wrapperEl.removeEventListener("pointermove",M,a)}Object.defineProperty(t.zoom,"scale",{get:()=>w,set(e){if(w!==e){const t=m.imageEl,s=m.slideEl;i("zoomChange",e,t,s)}w=e}}),a("init",(()=>{t.params.zoom.enabled&&$()})),a("destroy",(()=>{I()})),a("touchStart",((e,s)=>{t.zoom.enabled&&function(e){const s=t.device;if(!m.imageEl)return;if(h.isTouched)return;s.android&&e.cancelable&&e.preventDefault(),h.isTouched=!0;const a=u.length>0?u[0]:e;h.touchesStart.x=a.pageX,h.touchesStart.y=a.pageY}(s)})),a("touchEnd",((e,s)=>{t.zoom.enabled&&function(){const e=t.zoom;if(!m.imageEl)return;if(!h.isTouched||!h.isMoved)return h.isTouched=!1,void(h.isMoved=!1);h.isTouched=!1,h.isMoved=!1;let s=300,a=300;const i=g.x*s,r=h.currentX+i,n=g.y*a,l=h.currentY+n;0!==g.x&&(s=Math.abs((r-h.currentX)/g.x)),0!==g.y&&(a=Math.abs((l-h.currentY)/g.y));const o=Math.max(s,a);h.currentX=r,h.currentY=l;const d=h.width*e.scale,c=h.height*e.scale;h.minX=Math.min(m.slideWidth/2-d/2,0),h.maxX=-h.minX,h.minY=Math.min(m.slideHeight/2-c/2,0),h.maxY=-h.minY,h.currentX=Math.max(Math.min(h.currentX,h.maxX),h.minX),h.currentY=Math.max(Math.min(h.currentY,h.maxY),h.minY),m.imageWrapEl.style.transitionDuration=`${o}ms`,m.imageWrapEl.style.transform=`translate3d(${h.currentX}px, ${h.currentY}px,0)`}()})),a("doubleTap",((e,s)=>{!t.animating&&t.params.zoom.enabled&&t.zoom.enabled&&t.params.zoom.toggle&&z(s)})),a("transitionEnd",(()=>{t.zoom.enabled&&t.params.zoom.enabled&&C()})),a("slideChange",(()=>{t.zoom.enabled&&t.params.zoom.enabled&&t.params.cssMode&&C()})),Object.assign(t.zoom,{enable:$,disable:I,in:P,out:L,toggle:z})},function(e){let{swiper:t,extendParams:s,on:a}=e;function i(e,t){const s=function(){let e,t,s;return(a,i)=>{for(t=-1,e=a.length;e-t>1;)s=e+t>>1,a[s]<=i?t=s:e=s;return e}}();let a,i;return this.x=e,this.y=t,this.lastIndex=e.length-1,this.interpolate=function(e){return e?(i=s(this.x,e),a=i-1,(e-this.x[a])*(this.y[i]-this.y[a])/(this.x[i]-this.x[a])+this.y[a]):0},this}function r(){t.controller.control&&t.controller.spline&&(t.controller.spline=void 0,delete t.controller.spline)}s({controller:{control:void 0,inverse:!1,by:"slide"}}),t.controller={control:void 0},a("beforeInit",(()=>{if("undefined"!=typeof window&&("string"==typeof t.params.controller.control||t.params.controller.control instanceof HTMLElement)){const e=document.querySelector(t.params.controller.control);if(e&&e.swiper)t.controller.control=e.swiper;else if(e){const s=a=>{t.controller.control=a.detail[0],t.update(),e.removeEventListener("init",s)};e.addEventListener("init",s)}}else t.controller.control=t.params.controller.control})),a("update",(()=>{r()})),a("resize",(()=>{r()})),a("observerUpdate",(()=>{r()})),a("setTranslate",((e,s,a)=>{t.controller.control&&!t.controller.control.destroyed&&t.controller.setTranslate(s,a)})),a("setTransition",((e,s,a)=>{t.controller.control&&!t.controller.control.destroyed&&t.controller.setTransition(s,a)})),Object.assign(t.controller,{setTranslate:function(e,s){const a=t.controller.control;let r,n;const l=t.constructor;function o(e){if(e.destroyed)return;const s=t.rtlTranslate?-t.translate:t.translate;"slide"===t.params.controller.by&&(!function(e){t.controller.spline=t.params.loop?new i(t.slidesGrid,e.slidesGrid):new i(t.snapGrid,e.snapGrid)}(e),n=-t.controller.spline.interpolate(-s)),n&&"container"!==t.params.controller.by||(r=(e.maxTranslate()-e.minTranslate())/(t.maxTranslate()-t.minTranslate()),!Number.isNaN(r)&&Number.isFinite(r)||(r=1),n=(s-t.minTranslate())*r+e.minTranslate()),t.params.controller.inverse&&(n=e.maxTranslate()-n),e.updateProgress(n),e.setTranslate(n,t),e.updateActiveIndex(),e.updateSlidesClasses()}if(Array.isArray(a))for(let e=0;e{s.updateAutoHeight()})),E(s.wrapperEl,(()=>{i&&s.transitionEnd()}))))}if(Array.isArray(i))for(r=0;r(Array.isArray(e)||(e=[e].filter((e=>!!e))),e);function l(e){(e=n(e)).forEach((e=>{e.setAttribute("tabIndex","0")}))}function o(e){(e=n(e)).forEach((e=>{e.setAttribute("tabIndex","-1")}))}function d(e,t){(e=n(e)).forEach((e=>{e.setAttribute("role",t)}))}function c(e,t){(e=n(e)).forEach((e=>{e.setAttribute("aria-roledescription",t)}))}function p(e,t){(e=n(e)).forEach((e=>{e.setAttribute("aria-label",t)}))}function u(e){(e=n(e)).forEach((e=>{e.setAttribute("aria-disabled",!0)}))}function m(e){(e=n(e)).forEach((e=>{e.setAttribute("aria-disabled",!1)}))}function h(e){if(13!==e.keyCode&&32!==e.keyCode)return;const s=t.params.a11y,a=e.target;t.pagination&&t.pagination.el&&(a===t.pagination.el||t.pagination.el.contains(e.target))&&!e.target.matches(te(t.params.pagination.bulletClass))||(t.navigation&&t.navigation.nextEl&&a===t.navigation.nextEl&&(t.isEnd&&!t.params.loop||t.slideNext(),t.isEnd?r(s.lastSlideMessage):r(s.nextSlideMessage)),t.navigation&&t.navigation.prevEl&&a===t.navigation.prevEl&&(t.isBeginning&&!t.params.loop||t.slidePrev(),t.isBeginning?r(s.firstSlideMessage):r(s.prevSlideMessage)),t.pagination&&a.matches(te(t.params.pagination.bulletClass))&&a.click())}function f(){return t.pagination&&t.pagination.bullets&&t.pagination.bullets.length}function v(){return f()&&t.params.pagination.clickable}const w=(e,t,s)=>{l(e),"BUTTON"!==e.tagName&&(d(e,"button"),e.addEventListener("keydown",h)),p(e,s),function(e,t){(e=n(e)).forEach((e=>{e.setAttribute("aria-controls",t)}))}(e,t)},y=()=>{t.a11y.clicked=!0},E=()=>{requestAnimationFrame((()=>{requestAnimationFrame((()=>{t.destroyed||(t.a11y.clicked=!1)}))}))},x=e=>{if(t.a11y.clicked)return;const s=e.target.closest(`.${t.params.slideClass}, swiper-slide`);if(!s||!t.slides.includes(s))return;const a=t.slides.indexOf(s)===t.activeIndex,i=t.params.watchSlidesProgress&&t.visibleSlides&&t.visibleSlides.includes(s);a||i||e.sourceCapabilities&&e.sourceCapabilities.firesTouchEvents||(t.isHorizontal()?t.el.scrollLeft=0:t.el.scrollTop=0,t.slideTo(t.slides.indexOf(s),0))},S=()=>{const e=t.params.a11y;e.itemRoleDescriptionMessage&&c(t.slides,e.itemRoleDescriptionMessage),e.slideRole&&d(t.slides,e.slideRole);const s=t.slides.length;e.slideLabelMessage&&t.slides.forEach(((a,i)=>{const r=t.params.loop?parseInt(a.getAttribute("data-swiper-slide-index"),10):i;p(a,e.slideLabelMessage.replace(/\{\{index\}\}/,r+1).replace(/\{\{slidesLength\}\}/,s))}))},T=()=>{const e=t.params.a11y;t.isElement?t.el.shadowEl.append(i):t.el.append(i);const s=t.el;e.containerRoleDescriptionMessage&&c(s,e.containerRoleDescriptionMessage),e.containerMessage&&p(s,e.containerMessage);const a=t.wrapperEl,r=e.id||a.getAttribute("id")||`swiper-wrapper-${l=16,void 0===l&&(l=16),"x".repeat(l).replace(/x/g,(()=>Math.round(16*Math.random()).toString(16)))}`;var l;const o=t.params.autoplay&&t.params.autoplay.enabled?"off":"polite";var d;d=r,n(a).forEach((e=>{e.setAttribute("id",d)})),function(e,t){(e=n(e)).forEach((e=>{e.setAttribute("aria-live",t)}))}(a,o),S();let{nextEl:u,prevEl:m}=t.navigation?t.navigation:{};if(u=n(u),m=n(m),u&&u.forEach((t=>w(t,r,e.nextSlideMessage))),m&&m.forEach((t=>w(t,r,e.prevSlideMessage))),v()){(Array.isArray(t.pagination.el)?t.pagination.el:[t.pagination.el]).forEach((e=>{e.addEventListener("keydown",h)}))}t.el.addEventListener("focus",x,!0),t.el.addEventListener("pointerdown",y,!0),t.el.addEventListener("pointerup",E,!0)};a("beforeInit",(()=>{i=g("span",t.params.a11y.notificationClass),i.setAttribute("aria-live","assertive"),i.setAttribute("aria-atomic","true")})),a("afterInit",(()=>{t.params.a11y.enabled&&T()})),a("slidesLengthChange snapGridLengthChange slidesGridLengthChange",(()=>{t.params.a11y.enabled&&S()})),a("fromEdge toEdge afterInit lock unlock",(()=>{t.params.a11y.enabled&&function(){if(t.params.loop||t.params.rewind||!t.navigation)return;const{nextEl:e,prevEl:s}=t.navigation;s&&(t.isBeginning?(u(s),o(s)):(m(s),l(s))),e&&(t.isEnd?(u(e),o(e)):(m(e),l(e)))}()})),a("paginationUpdate",(()=>{t.params.a11y.enabled&&function(){const e=t.params.a11y;f()&&t.pagination.bullets.forEach((s=>{t.params.pagination.clickable&&(l(s),t.params.pagination.renderBullet||(d(s,"button"),p(s,e.paginationBulletMessage.replace(/\{\{index\}\}/,b(s)+1)))),s.matches(te(t.params.pagination.bulletActiveClass))?s.setAttribute("aria-current","true"):s.removeAttribute("aria-current")}))}()})),a("destroy",(()=>{t.params.a11y.enabled&&function(){i&&i.remove();let{nextEl:e,prevEl:s}=t.navigation?t.navigation:{};e=n(e),s=n(s),e&&e.forEach((e=>e.removeEventListener("keydown",h))),s&&s.forEach((e=>e.removeEventListener("keydown",h))),v()&&(Array.isArray(t.pagination.el)?t.pagination.el:[t.pagination.el]).forEach((e=>{e.removeEventListener("keydown",h)}));t.el.removeEventListener("focus",x,!0),t.el.removeEventListener("pointerdown",y,!0),t.el.removeEventListener("pointerup",E,!0)}()}))},function(e){let{swiper:t,extendParams:s,on:a}=e;s({history:{enabled:!1,root:"",replaceState:!1,key:"slides",keepQuery:!1}});let i=!1,n={};const l=e=>e.toString().replace(/\s+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,""),o=e=>{const t=r();let s;s=e?new URL(e):t.location;const a=s.pathname.slice(1).split("/").filter((e=>""!==e)),i=a.length;return{key:a[i-2],value:a[i-1]}},d=(e,s)=>{const a=r();if(!i||!t.params.history.enabled)return;let n;n=t.params.url?new URL(t.params.url):a.location;const o=t.slides[s];let d=l(o.getAttribute("data-history"));if(t.params.history.root.length>0){let s=t.params.history.root;"/"===s[s.length-1]&&(s=s.slice(0,s.length-1)),d=`${s}/${e?`${e}/`:""}${d}`}else n.pathname.includes(e)||(d=`${e?`${e}/`:""}${d}`);t.params.history.keepQuery&&(d+=n.search);const c=a.history.state;c&&c.value===d||(t.params.history.replaceState?a.history.replaceState({value:d},null,d):a.history.pushState({value:d},null,d))},c=(e,s,a)=>{if(s)for(let i=0,r=t.slides.length;i{n=o(t.params.url),c(t.params.speed,n.value,!1)};a("init",(()=>{t.params.history.enabled&&(()=>{const e=r();if(t.params.history){if(!e.history||!e.history.pushState)return t.params.history.enabled=!1,void(t.params.hashNavigation.enabled=!0);i=!0,n=o(t.params.url),n.key||n.value?(c(0,n.value,t.params.runCallbacksOnInit),t.params.history.replaceState||e.addEventListener("popstate",p)):t.params.history.replaceState||e.addEventListener("popstate",p)}})()})),a("destroy",(()=>{t.params.history.enabled&&(()=>{const e=r();t.params.history.replaceState||e.removeEventListener("popstate",p)})()})),a("transitionEnd _freeModeNoMomentumRelease",(()=>{i&&d(t.params.history.key,t.activeIndex)})),a("slideChange",(()=>{i&&t.params.cssMode&&d(t.params.history.key,t.activeIndex)}))},function(e){let{swiper:t,extendParams:s,emit:i,on:n}=e,l=!1;const o=a(),d=r();s({hashNavigation:{enabled:!1,replaceState:!1,watchState:!1,getSlideIndex(e,s){if(t.virtual&&t.params.virtual.enabled){const e=t.slides.filter((e=>e.getAttribute("data-hash")===s))[0];if(!e)return 0;return parseInt(e.getAttribute("data-swiper-slide-index"),10)}return t.getSlideIndex(f(t.slidesEl,`.${t.params.slideClass}[data-hash="${s}"], swiper-slide[data-hash="${s}"]`)[0])}}});const c=()=>{i("hashChange");const e=o.location.hash.replace("#",""),s=t.virtual&&t.params.virtual.enabled?t.slidesEl.querySelector(`[data-swiper-slide-index="${t.activeIndex}"]`):t.slides[t.activeIndex];if(e!==(s?s.getAttribute("data-hash"):"")){const s=t.params.hashNavigation.getSlideIndex(t,e);if(void 0===s||Number.isNaN(s))return;t.slideTo(s)}},p=()=>{if(!l||!t.params.hashNavigation.enabled)return;const e=t.virtual&&t.params.virtual.enabled?t.slidesEl.querySelector(`[data-swiper-slide-index="${t.activeIndex}"]`):t.slides[t.activeIndex],s=e?e.getAttribute("data-hash")||e.getAttribute("data-history"):"";t.params.hashNavigation.replaceState&&d.history&&d.history.replaceState?(d.history.replaceState(null,null,`#${s}`||""),i("hashSet")):(o.location.hash=s||"",i("hashSet"))};n("init",(()=>{t.params.hashNavigation.enabled&&(()=>{if(!t.params.hashNavigation.enabled||t.params.history&&t.params.history.enabled)return;l=!0;const e=o.location.hash.replace("#","");if(e){const s=0,a=t.params.hashNavigation.getSlideIndex(t,e);t.slideTo(a||0,s,t.params.runCallbacksOnInit,!0)}t.params.hashNavigation.watchState&&d.addEventListener("hashchange",c)})()})),n("destroy",(()=>{t.params.hashNavigation.enabled&&t.params.hashNavigation.watchState&&d.removeEventListener("hashchange",c)})),n("transitionEnd _freeModeNoMomentumRelease",(()=>{l&&p()})),n("slideChange",(()=>{l&&t.params.cssMode&&p()}))},function(e){let t,s,{swiper:i,extendParams:r,on:n,emit:l,params:o}=e;i.autoplay={running:!1,paused:!1,timeLeft:0},r({autoplay:{enabled:!1,delay:3e3,waitForTransition:!0,disableOnInteraction:!0,stopOnLastSlide:!1,reverseDirection:!1,pauseOnMouseEnter:!1}});let d,c,p,u,m,h,f,g=o&&o.autoplay?o.autoplay.delay:3e3,v=o&&o.autoplay?o.autoplay.delay:3e3,w=(new Date).getTime;function b(e){i&&!i.destroyed&&i.wrapperEl&&e.target===i.wrapperEl&&(i.wrapperEl.removeEventListener("transitionend",b),M())}const y=()=>{if(i.destroyed||!i.autoplay.running)return;i.autoplay.paused?c=!0:c&&(v=d,c=!1);const e=i.autoplay.paused?d:w+v-(new Date).getTime();i.autoplay.timeLeft=e,l("autoplayTimeLeft",e,e/g),s=requestAnimationFrame((()=>{y()}))},E=e=>{if(i.destroyed||!i.autoplay.running)return;cancelAnimationFrame(s),y();let a=void 0===e?i.params.autoplay.delay:e;g=i.params.autoplay.delay,v=i.params.autoplay.delay;const r=(()=>{let e;if(e=i.virtual&&i.params.virtual.enabled?i.slides.filter((e=>e.classList.contains("swiper-slide-active")))[0]:i.slides[i.activeIndex],!e)return;return parseInt(e.getAttribute("data-swiper-autoplay"),10)})();!Number.isNaN(r)&&r>0&&void 0===e&&(a=r,g=r,v=r),d=a;const n=i.params.speed,o=()=>{i&&!i.destroyed&&(i.params.autoplay.reverseDirection?!i.isBeginning||i.params.loop||i.params.rewind?(i.slidePrev(n,!0,!0),l("autoplay")):i.params.autoplay.stopOnLastSlide||(i.slideTo(i.slides.length-1,n,!0,!0),l("autoplay")):!i.isEnd||i.params.loop||i.params.rewind?(i.slideNext(n,!0,!0),l("autoplay")):i.params.autoplay.stopOnLastSlide||(i.slideTo(0,n,!0,!0),l("autoplay")),i.params.cssMode&&(w=(new Date).getTime(),requestAnimationFrame((()=>{E()}))))};return a>0?(clearTimeout(t),t=setTimeout((()=>{o()}),a)):requestAnimationFrame((()=>{o()})),a},x=()=>{i.autoplay.running=!0,E(),l("autoplayStart")},S=()=>{i.autoplay.running=!1,clearTimeout(t),cancelAnimationFrame(s),l("autoplayStop")},T=(e,s)=>{if(i.destroyed||!i.autoplay.running)return;clearTimeout(t),e||(f=!0);const a=()=>{l("autoplayPause"),i.params.autoplay.waitForTransition?i.wrapperEl.addEventListener("transitionend",b):M()};if(i.autoplay.paused=!0,s)return h&&(d=i.params.autoplay.delay),h=!1,void a();const r=d||i.params.autoplay.delay;d=r-((new Date).getTime()-w),i.isEnd&&d<0&&!i.params.loop||(d<0&&(d=0),a())},M=()=>{i.isEnd&&d<0&&!i.params.loop||i.destroyed||!i.autoplay.running||(w=(new Date).getTime(),f?(f=!1,E(d)):E(),i.autoplay.paused=!1,l("autoplayResume"))},C=()=>{if(i.destroyed||!i.autoplay.running)return;const e=a();"hidden"===e.visibilityState&&(f=!0,T(!0)),"visible"===e.visibilityState&&M()},P=e=>{"mouse"===e.pointerType&&(f=!0,T(!0))},L=e=>{"mouse"===e.pointerType&&i.autoplay.paused&&M()};n("init",(()=>{i.params.autoplay.enabled&&(i.params.autoplay.pauseOnMouseEnter&&(i.el.addEventListener("pointerenter",P),i.el.addEventListener("pointerleave",L)),a().addEventListener("visibilitychange",C),w=(new Date).getTime(),x())})),n("destroy",(()=>{i.el.removeEventListener("pointerenter",P),i.el.removeEventListener("pointerleave",L),a().removeEventListener("visibilitychange",C),i.autoplay.running&&S()})),n("beforeTransitionStart",((e,t,s)=>{!i.destroyed&&i.autoplay.running&&(s||!i.params.autoplay.disableOnInteraction?T(!0,!0):S())})),n("sliderFirstMove",(()=>{!i.destroyed&&i.autoplay.running&&(i.params.autoplay.disableOnInteraction?S():(p=!0,u=!1,f=!1,m=setTimeout((()=>{f=!0,u=!0,T(!0)}),200)))})),n("touchEnd",(()=>{if(!i.destroyed&&i.autoplay.running&&p){if(clearTimeout(m),clearTimeout(t),i.params.autoplay.disableOnInteraction)return u=!1,void(p=!1);u&&i.params.cssMode&&M(),u=!1,p=!1}})),n("slideChange",(()=>{!i.destroyed&&i.autoplay.running&&(h=!0)})),Object.assign(i.autoplay,{start:x,stop:S,pause:T,resume:M})},function(e){let{swiper:t,extendParams:s,on:i}=e;s({thumbs:{swiper:null,multipleActiveThumbs:!0,autoScrollOffset:0,slideThumbActiveClass:"swiper-slide-thumb-active",thumbsContainerClass:"swiper-thumbs"}});let r=!1,n=!1;function l(){const e=t.thumbs.swiper;if(!e||e.destroyed)return;const s=e.clickedIndex,a=e.clickedSlide;if(a&&a.classList.contains(t.params.thumbs.slideThumbActiveClass))return;if(null==s)return;let i;i=e.params.loop?parseInt(e.clickedSlide.getAttribute("data-swiper-slide-index"),10):s,t.params.loop?t.slideToLoop(i):t.slideTo(i)}function o(){const{thumbs:e}=t.params;if(r)return!1;r=!0;const s=t.constructor;if(e.swiper instanceof s)t.thumbs.swiper=e.swiper,Object.assign(t.thumbs.swiper.originalParams,{watchSlidesProgress:!0,slideToClickedSlide:!1}),Object.assign(t.thumbs.swiper.params,{watchSlidesProgress:!0,slideToClickedSlide:!1}),t.thumbs.swiper.update();else if(d(e.swiper)){const a=Object.assign({},e.swiper);Object.assign(a,{watchSlidesProgress:!0,slideToClickedSlide:!1}),t.thumbs.swiper=new s(a),n=!0}return t.thumbs.swiper.el.classList.add(t.params.thumbs.thumbsContainerClass),t.thumbs.swiper.on("tap",l),!0}function c(e){const s=t.thumbs.swiper;if(!s||s.destroyed)return;const a="auto"===s.params.slidesPerView?s.slidesPerViewDynamic():s.params.slidesPerView;let i=1;const r=t.params.thumbs.slideThumbActiveClass;if(t.params.slidesPerView>1&&!t.params.centeredSlides&&(i=t.params.slidesPerView),t.params.thumbs.multipleActiveThumbs||(i=1),i=Math.floor(i),s.slides.forEach((e=>e.classList.remove(r))),s.params.loop||s.params.virtual&&s.params.virtual.enabled)for(let e=0;e{e.classList.add(r)}));else for(let e=0;ee.getAttribute("data-swiper-slide-index")===`${t.realIndex}`))[0];r=s.slides.indexOf(e),o=t.activeIndex>t.previousIndex?"next":"prev"}else r=t.realIndex,o=r>t.previousIndex?"next":"prev";l&&(r+="next"===o?n:-1*n),s.visibleSlidesIndexes&&s.visibleSlidesIndexes.indexOf(r)<0&&(s.params.centeredSlides?r=r>i?r-Math.floor(a/2)+1:r+Math.floor(a/2)-1:r>i&&s.params.slidesPerGroup,s.slideTo(r,e?0:void 0))}}t.thumbs={swiper:null},i("beforeInit",(()=>{const{thumbs:e}=t.params;if(e&&e.swiper)if("string"==typeof e.swiper||e.swiper instanceof HTMLElement){const s=a(),i=()=>{const a="string"==typeof e.swiper?s.querySelector(e.swiper):e.swiper;if(a&&a.swiper)e.swiper=a.swiper,o(),c(!0);else if(a){const s=i=>{e.swiper=i.detail[0],a.removeEventListener("init",s),o(),c(!0),e.swiper.update(),t.update()};a.addEventListener("init",s)}return a},r=()=>{if(t.destroyed)return;i()||requestAnimationFrame(r)};requestAnimationFrame(r)}else o(),c(!0)})),i("slideChange update resize observerUpdate",(()=>{c()})),i("setTransition",((e,s)=>{const a=t.thumbs.swiper;a&&!a.destroyed&&a.setTransition(s)})),i("beforeDestroy",(()=>{const e=t.thumbs.swiper;e&&!e.destroyed&&n&&e.destroy()})),Object.assign(t.thumbs,{init:o,update:c})},function(e){let{swiper:t,extendParams:s,emit:a,once:i}=e;s({freeMode:{enabled:!1,momentum:!0,momentumRatio:1,momentumBounce:!0,momentumBounceRatio:1,momentumVelocityRatio:1,sticky:!1,minimumVelocity:.02}}),Object.assign(t,{freeMode:{onTouchStart:function(){if(t.params.cssMode)return;const e=t.getTranslate();t.setTranslate(e),t.setTransition(0),t.touchEventsData.velocities.length=0,t.freeMode.onTouchEnd({currentPos:t.rtl?t.translate:-t.translate})},onTouchMove:function(){if(t.params.cssMode)return;const{touchEventsData:e,touches:s}=t;0===e.velocities.length&&e.velocities.push({position:s[t.isHorizontal()?"startX":"startY"],time:e.touchStartTime}),e.velocities.push({position:s[t.isHorizontal()?"currentX":"currentY"],time:l()})},onTouchEnd:function(e){let{currentPos:s}=e;if(t.params.cssMode)return;const{params:r,wrapperEl:n,rtlTranslate:o,snapGrid:d,touchEventsData:c}=t,p=l()-c.touchStartTime;if(s<-t.minTranslate())t.slideTo(t.activeIndex);else if(s>-t.maxTranslate())t.slides.length1){const e=c.velocities.pop(),s=c.velocities.pop(),a=e.position-s.position,i=e.time-s.time;t.velocity=a/i,t.velocity/=2,Math.abs(t.velocity)150||l()-e.time>300)&&(t.velocity=0)}else t.velocity=0;t.velocity*=r.freeMode.momentumVelocityRatio,c.velocities.length=0;let e=1e3*r.freeMode.momentumRatio;const s=t.velocity*e;let p=t.translate+s;o&&(p=-p);let u,m=!1;const h=20*Math.abs(t.velocity)*r.freeMode.momentumBounceRatio;let f;if(pt.minTranslate())r.freeMode.momentumBounce?(p-t.minTranslate()>h&&(p=t.minTranslate()+h),u=t.minTranslate(),m=!0,c.allowMomentumBounce=!0):p=t.minTranslate(),r.loop&&r.centeredSlides&&(f=!0);else if(r.freeMode.sticky){let e;for(let t=0;t-p){e=t;break}p=Math.abs(d[e]-p){t.loopFix()})),0!==t.velocity){if(e=o?Math.abs((-p-t.translate)/t.velocity):Math.abs((p-t.translate)/t.velocity),r.freeMode.sticky){const s=Math.abs((o?-p:p)-t.translate),a=t.slidesSizesGrid[t.activeIndex];e=s{t&&!t.destroyed&&c.allowMomentumBounce&&(a("momentumBounce"),t.setTransition(r.speed),setTimeout((()=>{t.setTranslate(u),E(n,(()=>{t&&!t.destroyed&&t.transitionEnd()}))}),0))}))):t.velocity?(a("_freeModeNoMomentumRelease"),t.updateProgress(p),t.setTransition(e),t.setTranslate(p),t.transitionStart(!0,t.swipeDirection),t.animating||(t.animating=!0,E(n,(()=>{t&&!t.destroyed&&t.transitionEnd()})))):t.updateProgress(p),t.updateActiveIndex(),t.updateSlidesClasses()}else{if(r.freeMode.sticky)return void t.slideToClosest();r.freeMode&&a("_freeModeNoMomentumRelease")}(!r.freeMode.momentum||p>=r.longSwipesMs)&&(t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses())}}}})},function(e){let t,s,a,{swiper:i,extendParams:r}=e;r({grid:{rows:1,fill:"column"}});const n=()=>{let e=i.params.spaceBetween;return"string"==typeof e&&e.indexOf("%")>=0?e=parseFloat(e.replace("%",""))/100*i.size:"string"==typeof e&&(e=parseFloat(e)),e};i.grid={initSlides:e=>{const{slidesPerView:r}=i.params,{rows:n,fill:l}=i.params.grid;a=Math.floor(e/n),t=Math.floor(e/n)===e/n?e:Math.ceil(e/n)*n,"auto"!==r&&"row"===l&&(t=Math.max(t,r*n)),s=t/n},updateSlide:(e,r,l,o)=>{const{slidesPerGroup:d}=i.params,c=n(),{rows:p,fill:u}=i.params.grid;let m,h,f;if("row"===u&&d>1){const s=Math.floor(e/(d*p)),a=e-p*d*s,i=0===s?d:Math.min(Math.ceil((l-s*p*d)/p),d);f=Math.floor(a/i),h=a-f*i+s*d,m=h+f*t/p,r.style.order=m}else"column"===u?(h=Math.floor(e/p),f=e-h*p,(h>a||h===a&&f===p-1)&&(f+=1,f>=p&&(f=0,h+=1))):(f=Math.floor(e/s),h=e-f*s);r.row=f,r.column=h,r.style[o("margin-top")]=0!==f?c&&`${c}px`:""},updateWrapperSize:(e,s,a)=>{const{centeredSlides:r,roundLengths:l}=i.params,o=n(),{rows:d}=i.params.grid;if(i.virtualSize=(e+o)*t,i.virtualSize=Math.ceil(i.virtualSize/d)-o,i.wrapperEl.style[a("width")]=`${i.virtualSize+o}px`,r){const e=[];for(let t=0;t{const{slides:e}=t;t.params.fadeEffect;for(let s=0;s{const s=t.slides.map((e=>h(e)));s.forEach((t=>{t.style.transitionDuration=`${e}ms`})),de({swiper:t,duration:e,transformElements:s,allSlides:!0})},overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({cubeEffect:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94}});const i=(e,t,s)=>{let a=s?e.querySelector(".swiper-slide-shadow-left"):e.querySelector(".swiper-slide-shadow-top"),i=s?e.querySelector(".swiper-slide-shadow-right"):e.querySelector(".swiper-slide-shadow-bottom");a||(a=g("div","swiper-slide-shadow-"+(s?"left":"top")),e.append(a)),i||(i=g("div","swiper-slide-shadow-"+(s?"right":"bottom")),e.append(i)),a&&(a.style.opacity=Math.max(-t,0)),i&&(i.style.opacity=Math.max(t,0))};le({effect:"cube",swiper:t,on:a,setTranslate:()=>{const{el:e,wrapperEl:s,slides:a,width:r,height:n,rtlTranslate:l,size:o,browser:d}=t,c=t.params.cubeEffect,p=t.isHorizontal(),u=t.virtual&&t.params.virtual.enabled;let m,h=0;c.shadow&&(p?(m=t.slidesEl.querySelector(".swiper-cube-shadow"),m||(m=g("div","swiper-cube-shadow"),t.slidesEl.append(m)),m.style.height=`${r}px`):(m=e.querySelector(".swiper-cube-shadow"),m||(m=g("div","swiper-cube-shadow"),e.append(m))));for(let e=0;e-1&&(h=90*s+90*d,l&&(h=90*-s-90*d)),t.style.transform=v,c.slideShadows&&i(t,d,p)}if(s.style.transformOrigin=`50% 50% -${o/2}px`,s.style["-webkit-transform-origin"]=`50% 50% -${o/2}px`,c.shadow)if(p)m.style.transform=`translate3d(0px, ${r/2+c.shadowOffset}px, ${-r/2}px) rotateX(90deg) rotateZ(0deg) scale(${c.shadowScale})`;else{const e=Math.abs(h)-90*Math.floor(Math.abs(h)/90),t=1.5-(Math.sin(2*e*Math.PI/360)/2+Math.cos(2*e*Math.PI/360)/2),s=c.shadowScale,a=c.shadowScale/t,i=c.shadowOffset;m.style.transform=`scale3d(${s}, 1, ${a}) translate3d(0px, ${n/2+i}px, ${-n/2/a}px) rotateX(-90deg)`}const f=(d.isSafari||d.isWebView)&&d.needPerspectiveFix?-o/2:0;s.style.transform=`translate3d(0px,0,${f}px) rotateX(${t.isHorizontal()?0:h}deg) rotateY(${t.isHorizontal()?-h:0}deg)`,s.style.setProperty("--swiper-cube-translate-z",`${f}px`)},setTransition:e=>{const{el:s,slides:a}=t;if(a.forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((t=>{t.style.transitionDuration=`${e}ms`}))})),t.params.cubeEffect.shadow&&!t.isHorizontal()){const t=s.querySelector(".swiper-cube-shadow");t&&(t.style.transitionDuration=`${e}ms`)}},recreateShadows:()=>{const e=t.isHorizontal();t.slides.forEach((t=>{const s=Math.max(Math.min(t.progress,1),-1);i(t,s,e)}))},getEffectParams:()=>t.params.cubeEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,resistanceRatio:0,spaceBetween:0,centeredSlides:!1,virtualTranslate:!0})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({flipEffect:{slideShadows:!0,limitRotation:!0}});const i=(e,s,a)=>{let i=t.isHorizontal()?e.querySelector(".swiper-slide-shadow-left"):e.querySelector(".swiper-slide-shadow-top"),r=t.isHorizontal()?e.querySelector(".swiper-slide-shadow-right"):e.querySelector(".swiper-slide-shadow-bottom");i||(i=ce(0,e,t.isHorizontal()?"left":"top")),r||(r=ce(0,e,t.isHorizontal()?"right":"bottom")),i&&(i.style.opacity=Math.max(-s,0)),r&&(r.style.opacity=Math.max(s,0))};le({effect:"flip",swiper:t,on:a,setTranslate:()=>{const{slides:e,rtlTranslate:s}=t,a=t.params.flipEffect;for(let r=0;r{const s=t.slides.map((e=>h(e)));s.forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((t=>{t.style.transitionDuration=`${e}ms`}))})),de({swiper:t,duration:e,transformElements:s})},recreateShadows:()=>{t.params.flipEffect;t.slides.forEach((e=>{let s=e.progress;t.params.flipEffect.limitRotation&&(s=Math.max(Math.min(e.progress,1),-1)),i(e,s)}))},getEffectParams:()=>t.params.flipEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({coverflowEffect:{rotate:50,stretch:0,depth:100,scale:1,modifier:1,slideShadows:!0}}),le({effect:"coverflow",swiper:t,on:a,setTranslate:()=>{const{width:e,height:s,slides:a,slidesSizesGrid:i}=t,r=t.params.coverflowEffect,n=t.isHorizontal(),l=t.translate,o=n?e/2-l:s/2-l,d=n?r.rotate:-r.rotate,c=r.depth;for(let e=0,t=a.length;e0?p:0),s&&(s.style.opacity=-p>0?-p:0)}}},setTransition:e=>{t.slides.map((e=>h(e))).forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((t=>{t.style.transitionDuration=`${e}ms`}))}))},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({creativeEffect:{limitProgress:1,shadowPerProgress:!1,progressMultiplier:1,perspective:!0,prev:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1},next:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1}}});const i=e=>"string"==typeof e?e:`${e}px`;le({effect:"creative",swiper:t,on:a,setTranslate:()=>{const{slides:e,wrapperEl:s,slidesSizesGrid:a}=t,r=t.params.creativeEffect,{progressMultiplier:n}=r,l=t.params.centeredSlides;if(l){const e=a[0]/2-t.params.slidesOffsetBefore||0;s.style.transform=`translateX(calc(50% - ${e}px))`}for(let s=0;s0&&(f=r.prev,h=!0),u.forEach(((e,t)=>{u[t]=`calc(${e}px + (${i(f.translate[t])} * ${Math.abs(d*n)}))`})),m.forEach(((e,t)=>{m[t]=f.rotate[t]*Math.abs(d*n)})),a.style.zIndex=-Math.abs(Math.round(o))+e.length;const g=u.join(", "),v=`rotateX(${m[0]}deg) rotateY(${m[1]}deg) rotateZ(${m[2]}deg)`,w=c<0?`scale(${1+(1-f.scale)*c*n})`:`scale(${1-(1-f.scale)*c*n})`,b=c<0?1+(1-f.opacity)*c*n:1-(1-f.opacity)*c*n,y=`translate3d(${g}) ${v} ${w}`;if(h&&f.shadow||!h){let e=a.querySelector(".swiper-slide-shadow");if(!e&&f.shadow&&(e=ce(0,a)),e){const t=r.shadowPerProgress?d*(1/r.limitProgress):d;e.style.opacity=Math.min(Math.max(Math.abs(t),0),1)}}const E=oe(0,a);E.style.transform=y,E.style.opacity=b,f.origin&&(E.style.transformOrigin=f.origin)}},setTransition:e=>{const s=t.slides.map((e=>h(e)));s.forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow").forEach((t=>{t.style.transitionDuration=`${e}ms`}))})),de({swiper:t,duration:e,transformElements:s,allSlides:!0})},perspective:()=>t.params.creativeEffect.perspective,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({cardsEffect:{slideShadows:!0,rotate:!0,perSlideRotate:2,perSlideOffset:8}}),le({effect:"cards",swiper:t,on:a,setTranslate:()=>{const{slides:e,activeIndex:s,rtlTranslate:a}=t,i=t.params.cardsEffect,{startTranslate:r,isTouched:n}=t.touchEventsData,l=a?-t.translate:t.translate;for(let o=0;o0&&p<1&&(n||t.params.cssMode)&&l-1&&(n||t.params.cssMode)&&l>r;if(y||E){const e=(1-Math.abs((Math.abs(p)-.5)/.5))**.5;v+=-28*p*e,g+=-.5*e,w+=96*e,h=-25*e*Math.abs(p)+"%"}if(m=p<0?`calc(${m}px ${a?"-":"+"} (${w*Math.abs(p)}%))`:p>0?`calc(${m}px ${a?"-":"+"} (-${w*Math.abs(p)}%))`:`${m}px`,!t.isHorizontal()){const e=h;h=m,m=e}const x=p<0?""+(1+(1-g)*p):""+(1-(1-g)*p),S=`\n translate3d(${m}, ${h}, ${f}px)\n rotateZ(${i.rotate?a?-v:v:0}deg)\n scale(${x})\n `;if(i.slideShadows){let e=d.querySelector(".swiper-slide-shadow");e||(e=ce(0,d)),e&&(e.style.opacity=Math.min(Math.max((Math.abs(p)-.5)/.5,0),1))}d.style.zIndex=-Math.abs(Math.round(c))+e.length;oe(0,d).style.transform=S}},setTransition:e=>{const s=t.slides.map((e=>h(e)));s.forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow").forEach((t=>{t.style.transitionDuration=`${e}ms`}))})),de({swiper:t,duration:e,transformElements:s})},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!t.params.cssMode})})}];return J.use(pe),J})); -//# sourceMappingURL=swiper-bundle.min.js.map - -; -!function(i){"use strict";"function"==typeof define&&define.amd?define(["jquery"],i):"undefined"!=typeof exports?module.exports=i(require("jquery")):i(jQuery)}(function(i){"use strict";var e=window.Slick||{};(e=function(){var e=0;return function(t,o){var s,n=this;n.defaults={accessibility:!0,adaptiveHeight:!1,appendArrows:i(t),appendDots:i(t),arrows:!0,asNavFor:null,prevArrow:'',nextArrow:'',autoplay:!1,autoplaySpeed:3e3,centerMode:!1,centerPadding:"50px",cssEase:"ease",customPaging:function(e,t){return i('\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) { - utils.fetchCaptionFromUrl(subHtmlUrl, this.outer.find('.lg-sub-html'), 'replace'); - } - else { - this.outer.find('.lg-sub-html').html(subHtml); - } - } - else { - var currentSlide = $LG(this.getSlideItemId(index)); - if (subHtmlUrl) { - utils.fetchCaptionFromUrl(subHtmlUrl, currentSlide, 'append'); - } - 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 dummyImgContentImg = document.createElement('img'); - dummyImgContentImg.alt = alt || ''; - dummyImgContentImg.src = _dummyImgSrc; - dummyImgContentImg.className = "lg-dummy-img"; - dummyImgContentImg.style.cssText = imgStyle; - $currentSlide.addClass('lg-first-slide'); - this.outer.addClass('lg-first-slide-loading'); - return dummyImgContentImg; - } - 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 picture = document.createElement('picture'); - picture.className = 'lg-img-wrap'; - $LG(picture).append(imgContent); - $currentSlide.prepend(picture); - }; - 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('' + - _this.settings.strings['mediaLoadingFailed'] + - ''); - }); - }; - 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') || - target.hasClass('lg-img-rotate')); - }; - 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.8.0-beta.1 | April 8th 2024 - * 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 defaultVimeoPlayerParams = Object.assign({}, { - autoplay: 0, - muted: 1, - }, defaultParams); - var defaultPlayerParams = defaultVimeoPlayerParams && - Object.keys(defaultVimeoPlayerParams).length !== 0 - ? param(defaultVimeoPlayerParams) - : ''; - // 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 || ''; - var privateUrlParams = isPrivate ? "h=" + hash : ''; - defaultPlayerParams = privateUrlParams - ? "&" + defaultPlayerParams - : defaultPlayerParams; - var vimeoPlayerParams = "?" + privateUrlParams + 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++) { - var type = html5Video.source[i].type; - var typeAttr = type ? "type=\"" + type + "\"" : ''; - 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.8.0-beta.1 | April 8th 2024 - * 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.8.0-beta.1 | April 8th 2024 - * 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.8.0-beta.1 | April 8th 2024 - * 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.8.0-beta.1 | April 8th 2024 - * 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 div = document.createElement('div'); - div.setAttribute('data-lg-item-id', index + ''); - div.className = "lg-thumb-item " + (index === this.core.index ? 'active' : ''); - div.style.cssText = "width: " + this.settings.thumbWidth + "px; height: " + this.settings.thumbHeight + "; margin-right: " + this.settings.thumbMargin + "px;"; - var img = document.createElement('img'); - img.alt = alt || ''; - img.setAttribute('data-lg-item-id', index + ''); - img.src = thumbImg; - div.appendChild(img); - return div; - }; - Thumbnail.prototype.setThumbItemHtml = function (items) { - for (var i = 0; i < items.length; i++) { - var thumb = this.getThumbHtml(items[i].thumb, i, items[i].alt); - this.$lgThumb.append(thumb); - } - }; - 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.8.0-beta.1 | April 8th 2024 - * 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.8.0-beta.1 | April 8th 2024 - * 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.8.0-beta.1 | April 8th 2024 - * 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.8.0-beta.1 | April 8th 2024 - * 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.8.0-beta.1 | April 8th 2024 - * 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.8.0-beta.1 | April 8th 2024 - * 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.8.0-beta.1 | April 8th 2024 - * 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.8.0-beta.1 | April 8th 2024 - * 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,$dynamicimgGallery,dynamicimgEl,dynamicimgGallery,$infiniteScrollingGallery,infiniteScrollingGallery,images,$lgSwiper,swiper,$lgInlineVideoContainer,_inlineGallery,$flickityLG,flkty,container;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:!0,download:!0,slideDelay:400,plugins:[lgZoom,lgAutoplay,lgFullscreen,lgShare,lgThumbnail,lgRotate],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)}),$dynamicimgGallery=jQuery('#dynamic-mode-images'),dynamicimgEl=[{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=80'},{src:'https://images.unsplash.com/photo-1526281216101-e55f00f0db7a?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=1600&q=80',thumb:'https://images.unsplash.com/photo-1526281216101-e55f00f0db7a?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=240&q=80'},{src:'https://images.unsplash.com/photo-1418065460487-3e41a6c84dc5?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1600&q=80',thumb:'https://images.unsplash.com/photo-1418065460487-3e41a6c84dc5?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&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=1600&q=80',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=1600&q=80',thumb:'https://images.unsplash.com/photo-1477322524744-0eece9e79640?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&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',thumb:'https://images.unsplash.com/photo-1469474968028-56623f02e42e?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80'},{src:"https://images.unsplash.com/photo-1510414842594-a61c69b5ae57?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1510414842594-a61c69b5ae57?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=2407&q=80"},{src:"https://images.unsplash.com/photo-1596370743446-6a7ef43a36f9?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1596370743446-6a7ef43a36f9?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1464852045489-bccb7d17fe39?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1464852045489-bccb7d17fe39?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1483728642387-6c3bdd6c93e5?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1483728642387-6c3bdd6c93e5?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1510011560141-62c7e8fc7908?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1510011560141-62c7e8fc7908?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1586276393635-5ecd8a851acc?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1586276393635-5ecd8a851acc?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1471931452361-f5ff1faa15ad?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1471931452361-f5ff1faa15ad?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1508766206392-8bd5cf550d1c?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1508766206392-8bd5cf550d1c?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1610448721566-47369c768e70?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1610448721566-47369c768e70?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"}],dynamicimgGallery=window.lightGallery($dynamicimgGallery[0],{dynamic:!0,hash:!1,rotate:!1,plugins:[lgZoom,lgAutoplay,lgFullscreen,lgPager,lgRotate,lgShare,lgVideo],dynamicEl:dynamicimgEl}),$dynamicimgGallery.on('click',function(){dynamicimgGallery.openGallery(5)}),$('#gallery-dynamic-thumbnails .gallery-item').on('click',function(){var a=$(this).index();dynamicimgGallery.openGallery(a)}),jQuery('#gallery-dynamic-thumbnails').justifiedGallery({captions:!1,lastRow:'justify',rowHeight:180,margins:5}),$('#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]}),lightGallery(document.querySelector('.blog-wrapper'),{selector:'.blog-images',getCaptionFromTitleOrAlt:!1,backgroundColor:"#FFF",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)})}}})),$lgInlineVideoContainer=document.getElementById('inline-video-gallery-container'),$lgInlineVideoContainer&&(_inlineGallery=window.lightGallery($lgInlineVideoContainer,_objectSpread(_objectSpread({container:$lgInlineVideoContainer,dynamic:!0,thumbnail:!0,swipeToClose:!1,addClass:'lg-inline',mode:'lg-scale-up',slideShowAutoplay:!1,hash:!1,pager:!1,closable:!1,showMaximizeIcon:!0,rotate:!0,download:!0,slideDelay:400,plugins:[lgZoom,lgAutoplay,lgFullscreen,lgPager,lgRotate,lgShare,lgThumbnail,lgVideo],appendSubHtmlTo:'.lg-item'},getResponsiveThumbnailsSettings()),{},{dynamicEl:[{src:'//vimeo.com/112836958',poster:location.origin+'/images/demo/vimeo-video-poster.jpg',thumb:location.origin+'/images/demo/vimeo-video-poster.jpg',subHtml:"

    Nature

    Video by Charlie Kaye

    "},{size:'1280-720',src:'//www.youtube.com/watch?v=EIUJfXk3_3w',poster:'https://img.youtube.com/vi/EIUJfXk3_3w/maxresdefault.jpg',thumb:'https://img.youtube.com/vi/EIUJfXk3_3w/maxresdefault.jpg',subHtml:'

    Puffin Hunts Fish To Feed Puffling | Blue Planet II | BBC Earth

    This puffin parent must go out to sea to feed his chick, but he must evade other birds that would rob him.

    '},{source:[{src:location.origin+'/videos/video1.mp4',type:'video/mp4'}],tracks:[{src:location.origin+'/videos/title.txt',kind:'captions',srclang:'en',label:'English',default:'true'}],attributes:{preload:!1,controls:!0},poster:location.origin+'/images/demo/html5-video-poster.jpg',thumb:location.origin+'/images/demo/html5-video-poster.jpg',subHtml:"

    'Peck Pocketed' by Kevin Herron | Disney Favorite

    "},{src:'https://private-sharing.wistia.com/medias/mwhrulrucj',poster:location.origin+'/images/demo/wistia-video-poster.jpeg',thumb:location.origin+'/images/demo/wistia-video-poster.jpeg',subHtml:'

    Thank You!

    Sample Wistia video

    '}]})),_inlineGallery.openGallery()),jQuery(document).ready(function(){var d=document.getElementById('bootstrap-gallery-carousel'),a,e,f,g,b,h,c;d&&(a=!1,e=jQuery('#bootstrap-gallery-carousel'),e.carousel({keyboard:!0}),a=!0,a&&(f=document.querySelector('.carousel-inner'),window.lightGallery(f,{thumbnail:!0,zoomFromOrigin:!1,pager:!1,plugins:[lgZoom,lgAutoplay,lgFullscreen,lgRotate,lgShare],hash:!1,preload:4,selector:'.lg-item'}))),g=document.getElementById('owl-carousel-gallery-demo'),g&&(b=jQuery('#owl-carousel-gallery-demo'),b.on('initialized.owl.carousel',function(b){var a=document.querySelector('.owl-stage');window.lightGallery(a,{plugins:[lgZoom,lgAutoplay,lgFullscreen,lgRotate,lgShare,lgThumbnail],selector:'.carousel-cell'})}),b.owlCarousel({center:!0,items:1,loop:!1,margin:10,nav:!0})),h=document.getElementById('slick-carousel-gallery-demo'),h&&(c=$('#slick-carousel-gallery-demo'),c.on('init',function(b,c,d){console.log('Slick slider initialized');var a=document.querySelector('.slick-track');window.lightGallery(a,{pager:!1,plugins:[lgZoom,lgAutoplay,lgFullscreen,lgRotate,lgShare,lgThumbnail],hash:!1,preload:4})}),c.slick({centerMode:!0,centerPadding:'60px',slidesToShow:3,customPaging:'10px',focusOnSelect:!0,swipe:!1,variableWidth:!0,responsive:[{breakpoint:768,settings:{arrows:!1,centerMode:!0,centerPadding:'40px',slidesToShow:3}},{breakpoint:480,settings:{arrows:!1,centerMode:!0,centerPadding:'40px',slidesToShow:1}}]}))}),$flickityLG=document.querySelector('#flickity-carousel-gallery-demo'),$flickityLG&&(flkty=new Flickity($flickityLG,{cellAlign:'center',pageDots:!1,contain:!0,autoPlay:!0,on:{ready:function(){var a=document.querySelector('.flickity-slider');window.lightGallery(a,{selector:'.lg-item',plugins:[lgZoom,lgAutoplay,lgFullscreen,lgRotate,lgShare,lgThumbnail]})}}})),container=document.querySelector('#bootstrap-image-gallery'),window.lightGallery(container,{selector:'.lg-item',zoomFromOrigin:!0,download:!0,thumbnail:!0,plugins:[lgZoom,lgAutoplay,lgFullscreen,lgRotate,lgShare,lgThumbnail]}),$(document).ready(function(){var a=document.querySelector('#masonry-gallery-demo'),b=new Masonry(a,{itemSelector:'.lg-item',columnWidth:'.grid-sizer',percentPosition:!0,gutter:10,horizontalOrder:!0,fitWidth:!0});imagesLoaded(a).on('progress',function(){b.layout()}),window.lightGallery(a,{thumbnail:!0,pager:!0,plugins:[lgAutoplay,lgFullscreen,lgShare,lgThumbnail,lgVideo,lgRotate],hash:!1,preload:0,selector:'.lg-item'})}),window.lightGallery(document.getElementById('bootstrap-video-gallery'),{thumbnail:!0,pager:!0,plugins:[lgAutoplay,lgFullscreen,lgShare,lgThumbnail,lgVideo,lgRotate],hash:!1,preload:0}),window.lightGallery(document.getElementById('bootstrap-video-carousel'),{thumbnail:!0,pager:!0,plugins:[lgAutoplay,lgFullscreen,lgShare,lgThumbnail,lgVideo,lgRotate],hash:!1,preload:0,selector:'.lg-item'}) \ No newline at end of file diff --git a/main.b6d5debf593bbb8b54dd341324e40be2788dc39a9d03d20f3aa6d8013faa9f10f409574ea0bad3268e64cd0e6b5eb7d63080afb5dabdf51541cfd0232702db02.css b/main.b6d5debf593bbb8b54dd341324e40be2788dc39a9d03d20f3aa6d8013faa9f10f409574ea0bad3268e64cd0e6b5eb7d63080afb5dabdf51541cfd0232702db02.css deleted file mode 100644 index e4946d343..000000000 --- a/main.b6d5debf593bbb8b54dd341324e40be2788dc39a9d03d20f3aa6d8013faa9f10f409574ea0bad3268e64cd0e6b5eb7d63080afb5dabdf51541cfd0232702db02.css +++ /dev/null @@ -1,11 +0,0 @@ -/*! - * 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,strong{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="reset"],[type="submit"]{-webkit-appearance:button}button:not(:disabled),[type="button"]:not(:disabled),[type="reset"]: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)}.row-cols-1>*{flex:0 0 auto;width:100%}.col-4{flex:0 0 auto;width:33.33333333%}@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){.row-cols-lg-2>*{flex:0 0 auto;width:50%}.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-6{flex:0 0 auto;width:50%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}}.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}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}@-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}.visually-hidden{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.d-block{display:block !important}.d-grid{display:grid !important}.d-flex{display:flex !important}.d-none{display:none !important}.border{border:1px solid #dee2e6 !important}.w-100{width:100% !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.align-self-center{align-self:center !important}.mx-0{margin-right:0 !important;margin-left:0 !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}.mb-3{margin-bottom:1rem !important}.mb-4{margin-bottom:1.5rem !important}.ms-auto{margin-left:auto !important}.p-1{padding:.25rem !important}.px-0{padding-right:0 !important;padding-left:0 !important}.px-2{padding-right:.5rem !important;padding-left:.5rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.text-center{text-align:center !important}.text-body{color:#333 !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){.order-lg-0{order:0 !important}.order-lg-1{order:1 !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}.demo-btns-container{display:flex;align-items:center;justify-content:center;gap:10px;margin:1rem 0 2rem 0}.demo-btns-container.dynamic-mode-demo{display:inline-flex;margin:0 10px 0 10px}.demo-btn{text-align:center;font-size:14px}.demo-btn svg{width:18px;margin-right:5px}.demo-btn a{display:flex;align-items:center}.demo-btn-stackblits svg{margin-right:3px}.demo-btn+.demo-btn{margin-left:10px}.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}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-start),.active.carousel-item-end{transform:translateX(100%)}.carousel-item-prev:not(.carousel-item-end),.active.carousel-item-start{transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity 0.15s ease}@media (prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity 0.6s ease}@media (prefers-reduced-motion: reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-prev-icon,.carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators li{background-color:#333}.carousel-dark .carousel-caption{color:#333}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;color:#5b6373}@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}.trusted-by .contents-list-item svg{max-width:110px;max-height:36px}@media (min-width: 768px){.trusted-by .contents-list-item{padding:1.5rem}}.trusted-by h2,.trusted-by .h2{font-size:18px;margin:0 0px 36px 0;color:inherit}@media (min-width: 768px){.trusted-by h2,.trusted-by .h2{font-size:24px}}.trusted-by.trusted-by-blue{color:#2d477c}.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}.lg-item .lightGallery-captions h4,.lg-item .lightGallery-captions .h4{transform:translate3d(60px, 0, 0px)}.lg-item .lightGallery-captions p{transform:translate3d(-60px, 0, 0px)}.lg-item .lightGallery-captions h4,.lg-item .lightGallery-captions .h4,.lg-item .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}.carousel-control-prev,.carousel-control-next{background-color:transparent;box-shadow:none;border:none}.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{width:100%;height:100%;position:absolute !important}.swiper-lg-wrap{width:1200px;height:0;padding-bottom:65%;position:relative;max-width:100%}#bootstrap-gallery-carousel.carousel .lg-item{display:flex;justify-content:center;align-items:center;height:100%}#bootstrap-gallery-carousel.carousel .lg-item img{width:unset !important;height:500px}#bootstrap-gallery-carousel.carousel .carousel-item .lg-item img{height:600px}#bootstrap-video-carousel.carousel .lg-item{display:flex;justify-content:center;align-items:center;height:100%}#bootstrap-video-carousel.carousel .lg-item img{width:unset !important;height:500px}#bootstrap-video-carousel.carousel .carousel-item .lg-item img{height:600px}#slick-carousel-gallery-demo img{height:500px}#slick-carousel-gallery-demo .slick-track{gap:10px;display:flex}#slick-carousel-gallery-demo .slick-prev,#slick-carousel-gallery-demo .slick-next{padding:10px;position:absolute;top:50%;z-index:1;cursor:pointer;zoom:2}#slick-carousel-gallery-demo .slick-prev{left:-8px}#slick-carousel-gallery-demo .slick-next{right:12px}#flickity-carousel-gallery-demo .flickity-slider{gap:10px;display:flex}#flickity-carousel-gallery-demo .flickity-slider .lg-item img{height:600px}#masonry-gallery-demo{margin:0 auto}#masonry-gallery-demo:after{content:'';display:block;clear:both}#masonry-gallery-demo .grid-sizer,#masonry-gallery-demo .lg-item{width:33.33%}#masonry-gallery-demo .lg-item{float:left;margin-bottom:10px}#masonry-gallery-demo .lg-item img{display:block;max-width:100%}#owl-carousel-gallery-demo .owl-carousel-item img{height:500px}.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}.dynamic-mode-images{position:relative;width:100%;height:auto}.btn-dynamic{color:#333;background-color:white;padding:5px 10px;position:absolute;bottom:15px;right:15px;font-size:14px;z-index:99}.blog-wrap{padding:100px 0 0 0;font-family:'Inter';font-style:normal;font-weight:400;font-size:18px;line-height:32px;color:#1A202C}@media (min-width: 768px){.blog-wrap{padding:100px 75px}}.blog-wrap .docs-hero-image{margin-bottom:60px}.blog-wrap .figure{display:inline-block;margin:1rem 0}@media (min-width: 768px){.blog-wrap .figure{margin:2rem -80px}}.blog-wrap .docs-hero-image{display:block}@media (min-width: 768px){.blog-wrap .docs-hero-image{margin-left:-120px;margin-right:-120px}}.blog-wrap .blog-header{margin-top:40px;margin-bottom:60px;max-width:700px}.blog-wrap .blog-header h1,.blog-wrap .blog-header .h1{font-style:normal;font-weight:700;font-size:36px;line-height:48px;margin:5px 0 24px 0;letter-spacing:0.01em;color:#1A202C}.blog-wrap .blog-header .blog-tags{display:inline-block;margin-right:8px}.blog-contributors .blog-contributors-list{font-weight:400;font-size:14px;line-height:20px;color:#718096}.blog-contributors .contributor-image img{max-width:36px;border-radius:4px;margin-right:8px}.blog-meta{font-family:'Inter';font-style:normal;font-weight:400;font-size:14px;line-height:16px;color:rgba(0,0,0,0.64)}.blog-meta strong{color:#000}.blog-list{padding-top:120px;padding-bottom:60px}.blog-list .blog-list-item+.blog-list-item{border-top:1px solid #e2e2ef;padding-top:48px;margin-top:48px}.blog-list .docs-hero-image{margin-bottom:24px;display:block}.blog-list .blog-meta{margin-bottom:24px}.blog-list .stretched-link:after{content:none}.blog-list h2,.blog-list .h2{margin:0 0 16px 0;font-style:normal;font-weight:700;font-size:34px;line-height:1.2;letter-spacing:0.01em;color:#1A202C}.blog-list .blog-body{font-family:'Inter';font-style:normal;font-weight:400;font-size:16px;line-height:24px;color:#4A5568}.blog-list .blog-contributors{margin-top:16px}.blog-text{color:#ffffff;font-size:12px;line-height:16px;display:flex;align-items:center}.blog-text:hover{color:#ffffff;text-decoration:none}.blog-text span{background-color:#805AD5;border-radius:6px;padding:4px 10px} diff --git a/main.e7f525c1ef91d6f04dd785ccf4ef42165d39505af877d93a3990fdfea3fed630498d76a3c00f12fc3274cb792a2c4eaa2dc93d7d2f5d46e708d3b849bac72344.js b/main.e7f525c1ef91d6f04dd785ccf4ef42165d39505af877d93a3990fdfea3fed630498d76a3c00f12fc3274cb792a2c4eaa2dc93d7d2f5d46e708d3b849bac72344.js deleted file mode 100644 index fa172c1db..000000000 --- a/main.e7f525c1ef91d6f04dd785ccf4ef42165d39505af877d93a3990fdfea3fed630498d76a3c00f12fc3274cb792a2c4eaa2dc93d7d2f5d46e708d3b849bac72344.js +++ /dev/null @@ -1,6781 +0,0 @@ -/*! 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 | November 8th 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', - mediaLoadingFailed: 'Oops... Failed to load content...', - }, - }; - - 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('' + - _this.settings.strings['mediaLoadingFailed'] + - ''); - }); - }; - 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 | November 8th 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 | November 8th 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 | November 8th 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 | November 8th 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 | November 8th 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 | November 8th 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 | November 8th 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 | November 8th 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 | November 8th 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 | November 8th 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 | November 8th 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 | November 8th 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 | November 8th 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,$dynamicimgGallery,dynamicimgEl,dynamicimgGallery,$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)}),$dynamicimgGallery=jQuery('#dynamic-mode-images'),dynamicimgEl=[{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=80'},{src:'https://images.unsplash.com/photo-1526281216101-e55f00f0db7a?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=1600&q=80',thumb:'https://images.unsplash.com/photo-1526281216101-e55f00f0db7a?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=240&q=80'},{src:'https://images.unsplash.com/photo-1418065460487-3e41a6c84dc5?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1600&q=80',thumb:'https://images.unsplash.com/photo-1418065460487-3e41a6c84dc5?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&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=1600&q=80',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=1600&q=80',thumb:'https://images.unsplash.com/photo-1477322524744-0eece9e79640?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&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',thumb:'https://images.unsplash.com/photo-1469474968028-56623f02e42e?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80'},{src:"https://images.unsplash.com/photo-1510414842594-a61c69b5ae57?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1510414842594-a61c69b5ae57?ixlib=rb-1.2.1&ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&auto=format&fit=crop&w=2407&q=80"},{src:"https://images.unsplash.com/photo-1596370743446-6a7ef43a36f9?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1596370743446-6a7ef43a36f9?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1464852045489-bccb7d17fe39?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1464852045489-bccb7d17fe39?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1483728642387-6c3bdd6c93e5?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1483728642387-6c3bdd6c93e5?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1510011560141-62c7e8fc7908?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1510011560141-62c7e8fc7908?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1586276393635-5ecd8a851acc?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1586276393635-5ecd8a851acc?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1471931452361-f5ff1faa15ad?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1471931452361-f5ff1faa15ad?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1508766206392-8bd5cf550d1c?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1508766206392-8bd5cf550d1c?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"},{src:"https://images.unsplash.com/photo-1610448721566-47369c768e70?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1440&q=80",thumb:"https://images.unsplash.com/photo-1610448721566-47369c768e70?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=240&q=80"}],dynamicimgGallery=window.lightGallery($dynamicimgGallery[0],{dynamic:!0,hash:!1,rotate:!1,plugins:[lgZoom,lgAutoplay,lgFullscreen,lgPager,lgRotate,lgShare,lgVideo],dynamicEl:dynamicimgEl}),$dynamicimgGallery.on('click',function(){dynamicimgGallery.openGallery(5)}),$('#gallery-dynamic-thumbnails .gallery-item').on('click',function(){var a=$(this).index();dynamicimgGallery.openGallery(a)}),jQuery('#gallery-dynamic-thumbnails').justifiedGallery({captions:!1,lastRow:'justify',rowHeight:180,margins:5}),$('#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 0d46f966a..f7c3e7bda 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/2023-11-13T08:36:53+05:30monthly0.5https://www.lightgalleryjs.com/demos/video-gallery/2024-03-24T13:09:10+05:30monthly0.5https://www.lightgalleryjs.com/docs/settings/2022-07-13T11:56:18+05:30monthly0.5https://www.lightgalleryjs.com/docs/events/2021-11-17T15:57:59+05:30monthly0.5https://www.lightgalleryjs.com/demos/share/2023-11-13T08:36:53+05:30monthly0.5https://www.lightgalleryjs.com/demos/bootstrap-image-carousel/2024-04-08T16:03:33+05:30monthly0.5https://www.lightgalleryjs.com/demos/carousel-gallery/2024-02-10T11:47:47+05:30monthly0.5https://www.lightgalleryjs.com/docs/methods/2021-05-29T09:20:37+05:30monthly0.5https://www.lightgalleryjs.com/demos/react-carousel/2024-03-24T13:41:52+05:30monthly0.5https://www.lightgalleryjs.com/demos/video-carousel/2024-03-24T13:09:10+05:30monthly0.5https://www.lightgalleryjs.com/docs/dynamic-variables/2021-05-29T09:20:37+05:30monthly0.5https://www.lightgalleryjs.com/demos/hash/2023-11-13T08:36:53+05:30monthly0.5https://www.lightgalleryjs.com/docs/attributes/2021-05-29T09:20:37+05:30monthly0.5https://www.lightgalleryjs.com/demos/responsive/2023-11-08T14:41:26+05:30monthly0.5https://www.lightgalleryjs.com/docs/react-image-video-gallery/2023-11-08T15:07:53+05:30monthly0.5https://www.lightgalleryjs.com/demos/mixed-contents/2023-11-08T14:41:26+05:30monthly0.5https://www.lightgalleryjs.com/demos/iframe/2023-11-08T14:41:26+05:30monthly0.5https://www.lightgalleryjs.com/docs/vue-image-video-gallery/2023-11-08T15:07:53+05:30monthly0.5https://www.lightgalleryjs.com/demos/dynamic-mode/2023-11-13T08:36:53+05:30monthly0.5https://www.lightgalleryjs.com/docs/angular-image-video-gallery/2023-11-08T15:07:53+05:30monthly0.5https://www.lightgalleryjs.com/docs/license/2023-04-05T20:10:18+05:30monthly0.5https://www.lightgalleryjs.com/demos/update-slides/2023-11-13T08:36:53+05:30monthly0.5https://www.lightgalleryjs.com/demos/transitions/2023-11-08T14:41:26+05:30monthly0.5https://www.lightgalleryjs.com/demos/methods/2023-11-13T08:36:53+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/2024-03-26T19:44:09+05:30monthly0.5https://www.lightgalleryjs.com/demos/infinite-scrolling/2021-05-29T09:20:37+05:30monthly0.5https://www.lightgalleryjs.com/demos/comment-box/2023-11-08T14:41:26+05:30monthly0.5https://www.lightgalleryjs.com/demos/medium-zoom/2023-11-08T14:41:26+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-11-08T14:41:26+05:30monthly0.5https://www.lightgalleryjs.com/demos/react-image-gallery/2024-04-08T16:03:33+05:30monthly0.5https://www.lightgalleryjs.com/demos/react-video-gallery/2024-03-24T13:09:10+05:30monthly0.5https://www.lightgalleryjs.com/demos/bootstrap-image-gallery/2024-04-08T16:03:33+05:30monthly0.5https://www.lightgalleryjs.com/demos/bootstrap-video-carousel/2024-04-08T16:03:33+05:30monthly0.5https://www.lightgalleryjs.com/demos/swiper/2024-02-21T20:08:53+05:30monthly0.5https://www.lightgalleryjs.com/demos/bootstrap-video-gallery/2024-04-08T16:03:33+05:30monthly0.5https://www.lightgalleryjs.com/demos/flickity-demo/2024-02-10T11:47:47+05:30monthly0.5https://www.lightgalleryjs.com/demos/owl-carousel-with-lightbox/2024-02-13T19:17:47+05:30monthly0.5https://www.lightgalleryjs.com/demos/slick-carousel-demo/2024-04-08T16:03:33+05:30monthly0.5https://www.lightgalleryjs.com/blog/top-6-javascript-lightbox-galleries./2024-02-05T12:54:40+05:30monthly0.5https://www.lightgalleryjs.com/blog/7-best-react-image-gallery-libraries/2024-02-05T12:54:40+05:30monthly0.5https://www.lightgalleryjs.com/demos/react-video-carousel/2024-03-24T13:41:52+05:30monthly0.5https://www.lightgalleryjs.com/demos/2024-04-08T16:03:33+05:30monthly0.5https://www.lightgalleryjs.com/docs/2023-11-08T15:07:53+05:30monthly0.5https://www.lightgalleryjs.com/blog/2023-11-27T13:41:23+05:30monthly0.5https://www.lightgalleryjs.com/2023-12-23T11:10:22+05:30monthly0.5https://www.lightgalleryjs.com/license/2024-04-06T15:25:29+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-11-13T08:36:53+05:30monthly0.5https://www.lightgalleryjs.com/demos/video-gallery/2024-03-24T13:09:10+05:30monthly0.5https://www.lightgalleryjs.com/docs/settings/2022-07-13T11:56:18+05:30monthly0.5https://www.lightgalleryjs.com/docs/events/2021-11-17T15:57:59+05:30monthly0.5https://www.lightgalleryjs.com/demos/share/2023-11-13T08:36:53+05:30monthly0.5https://www.lightgalleryjs.com/demos/bootstrap-image-carousel/2024-04-08T16:03:33+05:30monthly0.5https://www.lightgalleryjs.com/demos/carousel-gallery/2024-02-10T11:47:47+05:30monthly0.5https://www.lightgalleryjs.com/docs/methods/2021-05-29T09:20:37+05:30monthly0.5https://www.lightgalleryjs.com/demos/react-carousel/2024-03-24T13:41:52+05:30monthly0.5https://www.lightgalleryjs.com/demos/video-carousel/2024-03-24T13:09:10+05:30monthly0.5https://www.lightgalleryjs.com/docs/dynamic-variables/2021-05-29T09:20:37+05:30monthly0.5https://www.lightgalleryjs.com/demos/hash/2023-11-13T08:36:53+05:30monthly0.5https://www.lightgalleryjs.com/docs/attributes/2021-05-29T09:20:37+05:30monthly0.5https://www.lightgalleryjs.com/demos/responsive/2023-11-08T14:41:26+05:30monthly0.5https://www.lightgalleryjs.com/docs/react-image-video-gallery/2023-11-08T15:07:53+05:30monthly0.5https://www.lightgalleryjs.com/demos/mixed-contents/2023-11-08T14:41:26+05:30monthly0.5https://www.lightgalleryjs.com/demos/iframe/2023-11-08T14:41:26+05:30monthly0.5https://www.lightgalleryjs.com/docs/vue-image-video-gallery/2023-11-08T15:07:53+05:30monthly0.5https://www.lightgalleryjs.com/demos/dynamic-mode/2023-11-13T08:36:53+05:30monthly0.5https://www.lightgalleryjs.com/docs/angular-image-video-gallery/2023-11-08T15:07:53+05:30monthly0.5https://www.lightgalleryjs.com/docs/license/2023-04-05T20:10:18+05:30monthly0.5https://www.lightgalleryjs.com/demos/update-slides/2023-11-13T08:36:53+05:30monthly0.5https://www.lightgalleryjs.com/demos/transitions/2023-11-08T14:41:26+05:30monthly0.5https://www.lightgalleryjs.com/demos/methods/2023-11-13T08:36:53+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/2024-03-26T19:44:09+05:30monthly0.5https://www.lightgalleryjs.com/demos/infinite-scrolling/2021-05-29T09:20:37+05:30monthly0.5https://www.lightgalleryjs.com/demos/comment-box/2023-11-08T14:41:26+05:30monthly0.5https://www.lightgalleryjs.com/demos/medium-zoom/2023-11-08T14:41:26+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-11-08T14:41:26+05:30monthly0.5https://www.lightgalleryjs.com/demos/react-image-gallery/2024-04-08T16:03:33+05:30monthly0.5https://www.lightgalleryjs.com/demos/react-video-gallery/2024-03-24T13:09:10+05:30monthly0.5https://www.lightgalleryjs.com/demos/bootstrap-image-gallery/2024-04-08T16:03:33+05:30monthly0.5https://www.lightgalleryjs.com/demos/bootstrap-video-carousel/2024-04-08T16:03:33+05:30monthly0.5https://www.lightgalleryjs.com/demos/swiper/2024-02-21T20:08:53+05:30monthly0.5https://www.lightgalleryjs.com/demos/bootstrap-video-gallery/2024-04-08T16:03:33+05:30monthly0.5https://www.lightgalleryjs.com/demos/flickity-demo/2024-02-10T11:47:47+05:30monthly0.5https://www.lightgalleryjs.com/demos/owl-carousel-with-lightbox/2024-02-13T19:17:47+05:30monthly0.5https://www.lightgalleryjs.com/demos/slick-carousel-demo/2024-04-08T16:03:33+05:30monthly0.5https://www.lightgalleryjs.com/blog/top-6-javascript-lightbox-galleries./2024-02-05T12:54:40+05:30monthly0.5https://www.lightgalleryjs.com/blog/7-best-react-image-gallery-libraries/2024-02-05T12:54:40+05:30monthly0.5https://www.lightgalleryjs.com/demos/react-video-carousel/2024-03-24T13:41:52+05:30monthly0.5https://www.lightgalleryjs.com/download-youtube-thumbnails/2024-05-01T08:48:57+00:00monthly0.5https://www.lightgalleryjs.com/jquery-to-js-converter/2024-05-01T08:48:57+00:00monthly0.5https://www.lightgalleryjs.com/demos/2024-04-08T16:03:33+05:30monthly0.5https://www.lightgalleryjs.com/docs/2023-11-08T15:07:53+05:30monthly0.5https://www.lightgalleryjs.com/blog/2023-11-27T13:41:23+05:30monthly0.5https://www.lightgalleryjs.com/2023-12-23T11:10:22+05:30monthly0.5https://www.lightgalleryjs.com/license/2024-04-06T15:25:29+05:30monthly0.5 \ No newline at end of file