diff --git a/build/assets/css/style.css b/build/assets/css/style.css deleted file mode 100644 index dade4ae..0000000 --- a/build/assets/css/style.css +++ /dev/null @@ -1,4784 +0,0 @@ -/* -! tailwindcss v3.2.4 | MIT License | https://tailwindcss.com -*//* -1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4) -2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116) -*/ - -*, -::before, -::after { - box-sizing: border-box; /* 1 */ - border-width: 0; /* 2 */ - border-style: solid; /* 2 */ - border-color: currentColor; /* 2 */ -} - -::before, -::after { - --tw-content: ''; -} - -/* -1. Use a consistent sensible line-height in all browsers. -2. Prevent adjustments of font size after orientation changes in iOS. -3. Use a more readable tab size. -4. Use the user's configured `sans` font-family by default. -5. Use the user's configured `sans` font-feature-settings by default. -*/ - -html { - line-height: 1.5; /* 1 */ - -webkit-text-size-adjust: 100%; /* 2 */ - -moz-tab-size: 4; /* 3 */ - -o-tab-size: 4; - tab-size: 4; /* 3 */ - font-family: Standard, sans-serif; /* 4 */ - font-feature-settings: normal; /* 5 */ -} - -/* -1. Remove the margin in all browsers. -2. Inherit line-height from `html` so users can set them as a class directly on the `html` element. -*/ - -body { - margin: 0; /* 1 */ - line-height: inherit; /* 2 */ -} - -/* -1. Add the correct height in Firefox. -2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655) -3. Ensure horizontal rules are visible by default. -*/ - -hr { - height: 0; /* 1 */ - color: inherit; /* 2 */ - border-top-width: 1px; /* 3 */ -} - -/* -Add the correct text decoration in Chrome, Edge, and Safari. -*/ - -abbr:where([title]) { - -webkit-text-decoration: underline dotted; - text-decoration: underline dotted; -} - -/* -Remove the default font size and weight for headings. -*/ - -h1, -h2, -h3, -h4, -h5, -h6 { - font-size: inherit; - font-weight: inherit; -} - -/* -Reset links to optimize for opt-in styling instead of opt-out. -*/ - -a { - color: inherit; - text-decoration: inherit; -} - -/* -Add the correct font weight in Edge and Safari. -*/ - -b, -strong { - font-weight: bolder; -} - -/* -1. Use the user's configured `mono` font family by default. -2. Correct the odd `em` font sizing in all browsers. -*/ - -code, -kbd, -samp, -pre { - font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/* -Add the correct font size in all browsers. -*/ - -small { - font-size: 80%; -} - -/* -Prevent `sub` and `sup` elements from affecting the line height in all browsers. -*/ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sub { - bottom: -0.25em; -} - -sup { - top: -0.5em; -} - -/* -1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297) -2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016) -3. Remove gaps between table borders by default. -*/ - -table { - text-indent: 0; /* 1 */ - border-color: inherit; /* 2 */ - border-collapse: collapse; /* 3 */ -} - -/* -1. Change the font styles in all browsers. -2. Remove the margin in Firefox and Safari. -3. Remove default padding in all browsers. -*/ - -button, -input, -optgroup, -select, -textarea { - font-family: inherit; /* 1 */ - font-size: 100%; /* 1 */ - font-weight: inherit; /* 1 */ - line-height: inherit; /* 1 */ - color: inherit; /* 1 */ - margin: 0; /* 2 */ - padding: 0; /* 3 */ -} - -/* -Remove the inheritance of text transform in Edge and Firefox. -*/ - -button, -select { - text-transform: none; -} - -/* -1. Correct the inability to style clickable types in iOS and Safari. -2. Remove default button styles. -*/ - -button, -[type='button'], -[type='reset'], -[type='submit'] { - -webkit-appearance: button; /* 1 */ - background-color: transparent; /* 2 */ - background-image: none; /* 2 */ -} - -/* -Use the modern Firefox focus style for all focusable elements. -*/ - -:-moz-focusring { - outline: auto; -} - -/* -Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737) -*/ - -:-moz-ui-invalid { - box-shadow: none; -} - -/* -Add the correct vertical alignment in Chrome and Firefox. -*/ - -progress { - vertical-align: baseline; -} - -/* -Correct the cursor style of increment and decrement buttons in Safari. -*/ - -::-webkit-inner-spin-button, -::-webkit-outer-spin-button { - height: auto; -} - -/* -1. Correct the odd appearance in Chrome and Safari. -2. Correct the outline style in Safari. -*/ - -[type='search'] { - -webkit-appearance: textfield; /* 1 */ - outline-offset: -2px; /* 2 */ -} - -/* -Remove the inner padding in Chrome and Safari on macOS. -*/ - -::-webkit-search-decoration { - -webkit-appearance: none; -} - -/* -1. Correct the inability to style clickable types in iOS and Safari. -2. Change font properties to `inherit` in Safari. -*/ - -::-webkit-file-upload-button { - -webkit-appearance: button; /* 1 */ - font: inherit; /* 2 */ -} - -/* -Add the correct display in Chrome and Safari. -*/ - -summary { - display: list-item; -} - -/* -Removes the default spacing and border for appropriate elements. -*/ - -blockquote, -dl, -dd, -h1, -h2, -h3, -h4, -h5, -h6, -hr, -figure, -p, -pre { - margin: 0; -} - -fieldset { - margin: 0; - padding: 0; -} - -legend { - padding: 0; -} - -ol, -ul, -menu { - list-style: none; - margin: 0; - padding: 0; -} - -/* -Prevent resizing textareas horizontally by default. -*/ - -textarea { - resize: vertical; -} - -/* -1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300) -2. Set the default placeholder color to the user's configured gray 400 color. -*/ - -input::-moz-placeholder, textarea::-moz-placeholder { - opacity: 1; /* 1 */ - color: #9ca3af; /* 2 */ -} - -input::placeholder, -textarea::placeholder { - opacity: 1; /* 1 */ - color: #9ca3af; /* 2 */ -} - -/* -Set the default cursor for buttons. -*/ - -button, -[role="button"] { - cursor: pointer; -} - -/* -Make sure disabled buttons don't get the pointer cursor. -*/ -:disabled { - cursor: default; -} - -/* -1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14) -2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210) - This can trigger a poorly considered lint error in some tools but is included by design. -*/ - -img, -svg, -video, -canvas, -audio, -iframe, -embed, -object { - display: block; /* 1 */ - vertical-align: middle; /* 2 */ -} - -/* -Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14) -*/ - -img, -video { - max-width: 100%; - height: auto; -} - -/* Make elements with the HTML hidden attribute stay hidden by default */ -[hidden] { - display: none; -} - -*, ::before, ::after{ - --tw-border-spacing-x: 0; - --tw-border-spacing-y: 0; - --tw-translate-x: 0; - --tw-translate-y: 0; - --tw-rotate: 0; - --tw-skew-x: 0; - --tw-skew-y: 0; - --tw-scale-x: 1; - --tw-scale-y: 1; - --tw-pan-x: ; - --tw-pan-y: ; - --tw-pinch-zoom: ; - --tw-scroll-snap-strictness: proximity; - --tw-ordinal: ; - --tw-slashed-zero: ; - --tw-numeric-figure: ; - --tw-numeric-spacing: ; - --tw-numeric-fraction: ; - --tw-ring-inset: ; - --tw-ring-offset-width: 0px; - --tw-ring-offset-color: #fff; - --tw-ring-color: rgb(59 130 246 / 0.5); - --tw-ring-offset-shadow: 0 0 #0000; - --tw-ring-shadow: 0 0 #0000; - --tw-shadow: 0 0 #0000; - --tw-shadow-colored: 0 0 #0000; - --tw-blur: ; - --tw-brightness: ; - --tw-contrast: ; - --tw-grayscale: ; - --tw-hue-rotate: ; - --tw-invert: ; - --tw-saturate: ; - --tw-sepia: ; - --tw-drop-shadow: ; - --tw-backdrop-blur: ; - --tw-backdrop-brightness: ; - --tw-backdrop-contrast: ; - --tw-backdrop-grayscale: ; - --tw-backdrop-hue-rotate: ; - --tw-backdrop-invert: ; - --tw-backdrop-opacity: ; - --tw-backdrop-saturate: ; - --tw-backdrop-sepia: ; -} - -::backdrop{ - --tw-border-spacing-x: 0; - --tw-border-spacing-y: 0; - --tw-translate-x: 0; - --tw-translate-y: 0; - --tw-rotate: 0; - --tw-skew-x: 0; - --tw-skew-y: 0; - --tw-scale-x: 1; - --tw-scale-y: 1; - --tw-pan-x: ; - --tw-pan-y: ; - --tw-pinch-zoom: ; - --tw-scroll-snap-strictness: proximity; - --tw-ordinal: ; - --tw-slashed-zero: ; - --tw-numeric-figure: ; - --tw-numeric-spacing: ; - --tw-numeric-fraction: ; - --tw-ring-inset: ; - --tw-ring-offset-width: 0px; - --tw-ring-offset-color: #fff; - --tw-ring-color: rgb(59 130 246 / 0.5); - --tw-ring-offset-shadow: 0 0 #0000; - --tw-ring-shadow: 0 0 #0000; - --tw-shadow: 0 0 #0000; - --tw-shadow-colored: 0 0 #0000; - --tw-blur: ; - --tw-brightness: ; - --tw-contrast: ; - --tw-grayscale: ; - --tw-hue-rotate: ; - --tw-invert: ; - --tw-saturate: ; - --tw-sepia: ; - --tw-drop-shadow: ; - --tw-backdrop-blur: ; - --tw-backdrop-brightness: ; - --tw-backdrop-contrast: ; - --tw-backdrop-grayscale: ; - --tw-backdrop-hue-rotate: ; - --tw-backdrop-invert: ; - --tw-backdrop-opacity: ; - --tw-backdrop-saturate: ; - --tw-backdrop-sepia: ; -} -/** -* Non-graphical global CSS rules -*/ -html{ - min-height: 100vh; -} -.content{ - /* @apply overflow-hidden; */ -} -/** Mockup **/ -body{ -} -:root{ - --vh: 100vh; - --spacing-size: 0.625rem; -} -/* 10px */ -@media (min-width: 62rem){ -:root{ - --spacing-size: var(--grid-gutter) -} - } -/** -* Graphical global CSS rules -*/ -html{ -} -body{ - --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity)); -} -.content{ - height: 100%; -} -body.has-menu-toggled #site-content-wrapper{ - position: fixed; - top: var(--header-height); - left: 0px; - width: 100%; -} -.skip-link{ - position: absolute; - top: -9999px; - left: -9999px; - display: block; - height: 0px; -} -.skip-link a:focus{ - position: fixed; - top: 1.25rem; - left: 1.25rem; - z-index: 50; - height: auto; - border-width: 1px; - --tw-border-opacity: 1; - border-color: rgb(0 0 0 / var(--tw-border-opacity)); - --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity)); - padding: 1rem; - --tw-text-opacity: 1; - color: rgb(0 0 0 / var(--tw-text-opacity)); -} -@font-face { - font-family: 'Standard'; - src: url('../fonts/standard-book-webfont.woff2') format('woff2'), - url('../fonts/standard-book-webfont.woff') format('woff'), - url('../fonts/standard-book-webfont.ttf') format('truetype'); - font-weight: normal; - font-style: normal; -} -@font-face { - font-family: 'Standard'; - src: url('../fonts/standard-book-italic-webfont.woff2') format('woff2'), - url('../fonts/standard-book-italic-webfont.woff') format('woff'), - url('../fonts/standard-book-italic-webfont.ttf') format('truetype'); - font-weight: normal; - font-style: italic; -} -@font-face { - font-family: 'Standard'; - src: url('../fonts/standard-bold-webfont.woff2') format('woff2'), - url('../fonts/standard-bold-webfont.woff') format('woff'), - url('../fonts/standard-bold-webfont.ttf') format('truetype'); - font-weight: bold; - font-style: normal; -} -@font-face { - font-family: 'Standard'; - src: url('../fonts/standard-bold-italic-webfont.woff2') format('woff2'), - url('../fonts/standard-bold-italic-webfont.woff') format('woff'), - url('../fonts/standard-bold-italic-webfont.ttf') format('truetype'); - font-weight: bold; - font-style: italic; -} -html{ - text-rendering: geometricPrecision; -} -h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{ - /* @apply font-bold; */ -} -h1{ - /* @apply font-bold; */ -} -h2{ - /* @apply font-bold; */ -} -h3{ - /* @apply font-bold; */ -} -h4{ - /* @apply font-bold; */ -} -h5{ - /* @apply font-bold; */ -} -h6{ - /* @apply font-bold; */ -} -p{ - margin-bottom: 0.9375rem; - --tw-text-opacity: 1; - color: rgb(0 0 0 / var(--tw-text-opacity)); - font-size: 16px; - font-size: 1rem; - line-height: 25px; - line-height: 1.5625rem; -} -@media (min-width: 48rem){ - - p{ - margin-bottom: 3.125rem; - } -} -p a{ - text-decoration-line: underline; -} -:root{ - --grid-offset: 0; -} -@media (min-width: 48rem){ -:root{ - --grid-offset: 120px -} - } -:root{ - --grid-gutter: 0.46875rem; -} -/* 7.5px */ -@media (min-width: 80rem){ -:root{ - --grid-gutter: 0.625rem /* 10px */ -} - } -.grid-container, .block-container{ - width: 100%; - padding-left: calc(var(--grid-gutter) * 2); - padding-right: calc(var(--grid-gutter) * 2); -} -@media (min-width: 48rem){ - - .grid-container, .block-container{ - padding-left: 0px; - padding-left: 0; - padding-right: 0px; - padding-right: 0; - } -} -.grid-container, .block-container{ - margin-left: var(--grid-offset); - } -@media (min-width: 48rem){ - .grid-container, .block-container{ - width: calc(100vw - var(--grid-offset) - var(--grid-gutter)*2) - } - } -@media (min-width: 120rem){ - .grid-container, .block-container{ - max-width: 120rem; - margin-left: max(var(--grid-offset), calc((100vw - 120rem)/2)) - } - } -.grid-container :where(.grid-container), .grid-container :where(.block-container), .block-container :where(.grid-container), .block-container :where(.block-container){ - margin-left: 0px; - margin-left: 0; - margin-right: 0px; - margin-right: 0; - width: 100%; - padding-left: 0px; - padding-left: 0; - padding-right: 0px; - padding-right: 0; -} -.columns{ - margin-left: calc(var(--grid-gutter) * -1); - margin-right: calc(var(--grid-gutter) * -1); - display: flex; - flex-wrap: wrap; -} -.column{ - padding-left: var(--grid-gutter); - padding-right: var(--grid-gutter); -} -:root{ - --spacing-lg: 3.125rem; -} -@layer utilties{ - .spacing-base{ - margin-bottom: 1.5625rem; - } - @media (min-width: 48rem){ - - .spacing-base{ - margin-bottom: 2.1875rem; - } - } - .spacing-lg{ - margin-bottom: 2.1875rem; - } - @media (min-width: 48rem){ - - .spacing-lg{ - margin-bottom: 4.5rem; - } - } - .spacing-xl{ - margin-bottom: 4.5rem; - } - @media (min-width: 80rem){ - - .spacing-xl{ - margin-bottom: 7.5rem; - } - } -} -.container{ - width: 100%; -} -@media (min-width: 40rem){ - - .container{ - max-width: 40rem; - } -} -@media (min-width: 48rem){ - - .container{ - max-width: 48rem; - } -} -@media (min-width: 62rem){ - - .container{ - max-width: 62rem; - } -} -@media (min-width: 80rem){ - - .container{ - max-width: 80rem; - } -} -@media (min-width: 120rem){ - - .container{ - max-width: 120rem; - } -} -@media (min-width: 128rem){ - - .container{ - max-width: 128rem; - } -} -.mt-12{ - margin-top: 3rem; -} -.mt-16{ - margin-top: 4rem; -} -.mt-20{ - margin-top: 5rem; -} -.mt-24{ - margin-top: 6rem; -} -.mt-32{ - margin-top: 8rem; -} -.mt-40{ - margin-top: 10rem; -} -.mb-16{ - margin-bottom: 4rem; -} -.mb-20{ - margin-bottom: 5rem; -} -.mb-24{ - margin-bottom: 6rem; -} -.mb-32{ - margin-bottom: 8rem; -} -.mb-40{ - margin-bottom: 10rem; -} -.block{ - display: block; -} -.hidden{ - display: none; -} -.w-full{ - width: 100%; -} -.grow{ - flex-grow: 1; -} -.resize{ - resize: both; -} -.overflow-x-clip{ - overflow-x: clip; -} -/* .h1{ - @apply text-3xl lg:text-4xl xl:text-5xl leading-snug; - } - - .h2{ - @apply text-2xl lg:text-3xl xl:text-4xl leading-snug; - } - - .h3{ - @apply text-2xl lg:text-4xl xl:text-3xl leading-snug; - } - - .h4{ - @apply text-lg lg:text-xl xl:text-2xl leading-snug; - } - - .h5{ - @apply text-lg xl:text-xl leading-snug; - } - - .h6{ - @apply text-base leading-snug; - } */ -.row{ - width: 100%; - padding-left: calc(var(--grid-gutter) * 2); - padding-right: calc(var(--grid-gutter) * 2); -} -@media (min-width: 48rem){ - - .row{ - padding-left: 0px; - padding-left: 0; - padding-right: 0px; - padding-right: 0; - } -} -.row{ - margin-left: var(--grid-offset); - } -@media (min-width: 48rem){ - .row{ - width: calc(100vw - var(--grid-offset) - var(--grid-gutter)*2) - } - } -/* margin-right: calc(var(--grid-gutter) * 2); */ -@media (min-width: 120rem){ - .row{ - max-width: 120rem; - margin-left: max(var(--grid-offset), calc((100vw - 120rem)/2)) - } - } -.block-container{ - width: 100%; - padding-left: calc(var(--grid-gutter) * 2); - padding-right: calc(var(--grid-gutter) * 2); -} -@media (min-width: 48rem){ - - .block-container{ - padding-left: 0px; - padding-left: 0; - padding-right: 0px; - padding-right: 0; - } -} -.block-container{ - margin-left: var(--grid-offset); - } -@media (min-width: 48rem){ - .block-container{ - width: calc(100vw - var(--grid-offset) - var(--grid-gutter)*2) - } - } -@media (min-width: 120rem){ - .block-container{ - max-width: 120rem; - margin-left: max(var(--grid-offset), calc((100vw - 120rem)/2)) - } - } -.block-container :where(.block-container), .block-container :where(.grid-container){ - margin-left: 0px; - margin-left: 0; - width: 100%; - padding-left: 0px; - padding-left: 0; - padding-right: 0px; - padding-right: 0; -} -.block-composition{ - margin-bottom: 2.1875rem; -} -@media (min-width: 48rem){ - - .block-composition{ - margin-bottom: 4.5rem; - } -} -.block-has-margin{ - margin-bottom: 2.1875rem; -} -@media (min-width: 48rem){ - - .block-has-margin{ - margin-bottom: 4.5rem; - } -} -.block-has-margin-sm{ - margin-bottom: 2.1875rem; -} -@media (min-width: 48rem){ - - .block-has-margin-sm{ - margin-bottom: 3.125rem; - } -} -.block-accordion__inner{ - border-top-width: 1px; - --tw-border-opacity: 1; - border-color: rgb(211 216 216 / var(--tw-border-opacity)); -} -.block-accordion__inner:last-child:not(:first-child){ - border-bottom-width: 1px; -} -.block-accordion__inner > span{ - position: relative; - display: flex; - min-height: 2.25rem; - width: 100%; - cursor: pointer; - align-items: center; - padding-top: 0.25rem; - padding-bottom: 0.25rem; - padding-left: 3rem; - padding-right: 1.25rem; - font-size: 20px; - font-size: 1.25rem; - line-height: 30px; - line-height: 1.875rem; -} -@media (min-width: 48rem){ - - .block-accordion__inner > span{ - font-size: 26px; - font-size: 1.625rem; - line-height: 35px; - line-height: 2.1875rem; - } -} -@media (min-width: 80rem){ - - .block-accordion__inner > span{ - font-size: 30px; - font-size: 1.875rem; - line-height: 40px; - line-height: 2.5rem; - padding-left: 4rem; - } -} -.block-accordion__inner > span::before{ - content: ''; - background-image: url("data:image/svg+xml,%3Csvg width='50' height='50' viewBox='0 0 50 50' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M37.5 26H12.5V24H37.5V26Z' fill='black'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M24 37.5L24 12.5L26 12.5L26 37.5L24 37.5Z' fill='black'/%3E%3C/svg%3E%0A"); - background-size: 100%; - transition: transform .2s ease; - position: absolute; - top: 0px; - left: 0px; - aspect-ratio: 1 / 1; - width: 2.25rem; - --tw-rotate: 0deg; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); - background-position: center; - background-repeat: no-repeat; - } -@media (min-width: 80rem){ - - .block-accordion__inner > span::before{ - width: 3.125rem; - } -} -.block-accordion__inner > span:hover{ - --tw-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--tw-bg-opacity)); - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); -} -.block-accordion__inner > span:hover::before{ - background-image: url("data:image/svg+xml,%3Csvg width='50' height='50' viewBox='0 0 50 50' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M37.5 26H12.5V24H37.5V26Z' fill='white'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M24 37.5L24 12.5L26 12.5L26 37.5L24 37.5Z' fill='white'/%3E%3C/svg%3E%0A"); - } -.block-accordion__inner > div{ - padding-top: 1.125rem; - padding-bottom: 2.1875rem; - padding-left: 3rem; - padding-right: calc(var(--grid-gutter) * 2); -} -@media (min-width: 80rem){ - - .block-accordion__inner > div{ - padding-left: 4rem; - } -} -.block-accordion__inner > div > p{ - margin-bottom: 0px; - margin-bottom: 0; - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); -} -.block-accordion__inner > div div[class^="block-"]{ - margin-bottom: 0px; - margin-bottom: 0; -} -.block-accordion__inner > div div[class^="block-"] p{ - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); -} -.block-accordion__inner.is-toggled{ - --tw-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--tw-bg-opacity)); - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); -} -.block-accordion__inner.is-toggled > span::before{ - background-image: url("data:image/svg+xml,%3Csvg width='50' height='50' viewBox='0 0 50 50' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M37.5 26H12.5V24H37.5V26Z' fill='white'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M24 37.5L24 12.5L26 12.5L26 37.5L24 37.5Z' fill='white'/%3E%3C/svg%3E%0A"); - --tw-rotate: 45deg; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); - /* background-image: url("data:image/svg+xml,%3Csvg fill='none' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 50 50'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M34.545 16.868 16.867 34.546l-1.414-1.414 17.678-17.678 1.414 1.414Z' fill='%23fff'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M33.13 34.546 15.454 16.868l1.414-1.414 17.678 17.678-1.414 1.414Z' fill='%23fff'/%3E%3C/svg%3E"); */ - } -.block-accordion__inner.is-toggled .block-link::before{ - background-image: url("data:image/svg+xml,%3Csvg fill='none' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 50 50'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='m34.711 24-6.778-7.32 1.467-1.36L38.363 25 29.4 34.68l-1.467-1.36L34.71 26H12v-2h22.711Z' fill='%23fff'/%3E%3C/svg%3E"); - } -.block-accordion__inner.is-toggled .block-link{ - --tw-border-opacity: 1; - border-color: rgb(83 90 90 / var(--tw-border-opacity)); -} -.block-accordion__inner.is-toggled .block-link:hover{ - --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity)); - --tw-text-opacity: 1; - color: rgb(0 0 0 / var(--tw-text-opacity)); -} -.block-accordion__inner.is-toggled .block-link:hover::before{ - background-image: url("data:image/svg+xml,%3Csvg fill='none' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 50 50'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='m34.711 24-6.778-7.32 1.467-1.36L38.363 25 29.4 34.68l-1.467-1.36L34.71 26H12v-2h22.711Z' fill='%23000'/%3E%3C/svg%3E"); - } -.block-accordion__inner.is-toggled .block-link[href]:not(:where( - - [href^="#"], - - [href^="/"]:not([href^="//"]),))::before{ - background-image: url("data:image/svg+xml,%3Csvg width='50' height='50' viewBox='0 0 50 50' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M31.0124 17.0725L21.043 16.6891L21.1198 14.6906L34.3016 15.1975L34.8086 28.3793L32.81 28.4562L32.4266 18.4867L16.3673 34.546L14.9531 33.1318L31.0124 17.0725Z' fill='white'/%3E%3C/svg%3E%0A"); - } -.block-accordion__inner.is-toggled .block-link[href]:not(:where( - - [href^="#"], - - [href^="/"]:not([href^="//"]),)):hover::before{ - background-image: url("data:image/svg+xml,%3Csvg width='50' height='50' viewBox='0 0 50 50' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M31.0124 17.0725L21.043 16.6891L21.1198 14.6906L34.3016 15.1975L34.8086 28.3793L32.81 28.4562L32.4266 18.4867L16.3673 34.546L14.9531 33.1318L31.0124 17.0725Z' fill='black'/%3E%3C/svg%3E%0A"); - } -.block-accordion--2cols{ - -moz-column-gap: calc(var(--grid-gutter) * 2); - column-gap: calc(var(--grid-gutter) * 2); -} -@media (min-width: 80rem){ - - .block-accordion--2cols{ - display: grid; - grid-template-columns: repeat(2, minmax(0, 1fr)); - } -} -/* @apply lg:w-1/2; */ -.block-accordion--sm .block-accordion__inner > span{ - padding-left: calc(2.25rem + 0.625rem); - font-size: 20px; - font-size: 1.25rem; - line-height: 30px; - line-height: 1.875rem; -} -.block-accordion--sm .block-accordion__inner > span::before{ - width: 2.25rem; - --tw-translate-y: -0px; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); -} -.block-accordion--sm .block-accordion__inner > div{ - padding-top: 1rem; - padding-bottom: 1rem; - padding-left: calc(2.25rem + 0.625rem); -} -.block-carousel{ - width: 100%; -} -.block-carousel .swiper .swiper-button-prev, .block-carousel .swiper .swiper-button-next{ - top: 0px; - margin-top: 0px; - margin-top: 0; - height: var(--carousel-img-height); - width: 50%; -} -.block-carousel .swiper .swiper-button-prev::after,.block-carousel .swiper .swiper-button-next::after{ - content: none; - } -.block-carousel .swiper .swiper-button-prev{ - left: 0px; -} -.block-carousel .swiper .swiper-button-next{ - right: 0px; -} -.block-carousel .swiper .swiper-slide{ - height: auto; - --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity)); -} -.block-carousel .swiper .swiper-slide__img{ - aspect-ratio: 3/2; - height: auto; -} -.block-carousel .swiper .swiper-slide__img img{ - height: 100%; - width: 100%; - -o-object-fit: cover; - object-fit: cover; -} -.block-carousel .swiper .swiper-slide__caption p{ - margin-top: 2.1875rem; - margin-bottom: 0px; - margin-bottom: 0; - height: 100%; - --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity)); - font-size: 13px; - font-size: 0.8125rem; - line-height: 20px; - line-height: 1.25rem; -} -.block-carousel .swiper .swiper-pagination{ - position: absolute; - top: calc(var(--carousel-img-height) + 0.625rem); - display: flex; - -moz-column-gap: 0.625rem; - column-gap: 0.625rem; -} -.block-carousel .swiper .swiper-pagination .swiper-pagination-bullet{ - margin: 0px; - margin: 0; - height: 1px; - width: 100%; - border-radius: 0px; - --tw-bg-opacity: 1; - background-color: rgb(163 173 173 / var(--tw-bg-opacity)); - opacity: 1; -} -.block-carousel .swiper .swiper-pagination .swiper-pagination-bullet-active{ - height: 3px; - --tw-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--tw-bg-opacity)); -} -.block-events-list-row{ - width: 100%; - padding-left: calc(var(--grid-gutter) * 2); - padding-right: calc(var(--grid-gutter) * 2); -} -@media (min-width: 48rem){ - - .block-events-list-row{ - padding-left: 0px; - padding-left: 0; - padding-right: 0px; - padding-right: 0; - } -} -.block-events-list-row{ - margin-left: var(--grid-offset); - } -@media (min-width: 48rem){ - .block-events-list-row{ - width: calc(100vw - var(--grid-offset) - var(--grid-gutter)*2) - } - } -@media (min-width: 120rem){ - .block-events-list-row{ - max-width: 120rem; - margin-left: max(var(--grid-offset), calc((100vw - 120rem)/2)) - } - } -.block-events-list-row :where(.grid-container),.block-events-list-row :where(.block-container), .block-container :where(.block-events-list-row){ - margin-left: 0px; - margin-left: 0; - margin-right: 0px; - margin-right: 0; - width: 100%; - padding-left: 0px; - padding-left: 0; - padding-right: 0px; - padding-right: 0; -} - .block-container :where(.block-events-list-row){ - margin-left: 0px; - margin-left: 0; - width: 100%; - padding-left: 0px; - padding-left: 0; - padding-right: 0px; - padding-right: 0; -} -.block-events-list-row__title{ - border-top-width: 1px; - --tw-border-opacity: 1; - border-color: rgb(0 0 0 / var(--tw-border-opacity)); - padding-top: 0.75rem; - padding-bottom: 0.75rem; -} -.block-events-list-row__title h3{ - font-size: 30px; - font-size: 1.875rem; - line-height: 40px; - line-height: 2.5rem; -} -@media (min-width: 48rem){ - - .block-events-list-row__title h3{ - font-size: 40px; - font-size: 2.5rem; - line-height: 50px; - line-height: 3.125rem; - } -} -@media (min-width: 80rem){ - - .block-events-list-row__title h3{ - font-size: 44px; - font-size: 2.75rem; - line-height: 55px; - line-height: 3.4375rem; - } -} -.block-events-list-row-item{ - display: grid; - min-height: 96px; - grid-template-columns: repeat(12, minmax(0, 1fr)); - align-items: center; - -moz-column-gap: 1.25rem; - column-gap: 1.25rem; - border-top-width: 1px; - --tw-border-opacity: 1; - border-color: rgb(211 216 216 / var(--tw-border-opacity)); - padding-top: 0.625rem; - padding-bottom: 0.625rem; -} -.block-events-list-row-item__img{ - position: relative; - display: none; - height: 100%; -} -.block-events-list-row-item__img img{ - position: absolute; - top: 0px; - left: 0px; - height: 100%; - width: 100%; - -o-object-fit: cover; - object-fit: cover; -} -.block-events-list-row-item__date{ - grid-area: 1 / 1 / 2 / 7; - } -.block-events-list-row-item__date span{ - display: block; -} -.block-events-list-row-item__date span:first-child{ - font-weight: 700; -} -.block-events-list-row-item__title{ - grid-area: 1 / 7 / 2 / 13; - } -.block-events-list-row-item__title p{ - display: inline; - font-weight: 700; - font-size: 26px; - font-size: 1.625rem; - line-height: 35px; - line-height: 2.1875rem; -} -@media (min-width: 48rem){ - - .block-events-list-row-item__title p{ - font-size: 26px; - font-size: 1.625rem; - line-height: 35px; - line-height: 2.1875rem; - } -} -.block-events-list-row-item__title span{ - margin-left: 1rem; - --tw-text-opacity: 1; - color: rgb(163 173 173 / var(--tw-text-opacity)); -} -.block-events-list-row-item:hover .block-events-list-row-item__img{ - grid-area: 1 / 1 / 2 / 3; - display: block; - } -.block-events-list-row-item:hover .block-events-list-row-item__date{ - grid-area: 1 / 3 / 2 / 7; - } -.block-featured-content-stacked{ - margin-top: 3.125rem; - --tw-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--tw-bg-opacity)); - padding-top: 1.5625rem; - padding-bottom: 1.5625rem; - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); -} -@media (min-width: 80rem){ - - .block-featured-content-stacked{ - margin-top: 4.5rem; - padding-top: 2.1875rem; - padding-bottom: 2.1875rem; - } -} -.block-featured-content-stacked p{ - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); -} -.block-featured-content-stacked__inner .block-featured-content-stacked__img{ - aspect-ratio: 3/2; -} -@media (min-width: 62rem){ - - .block-featured-content-stacked__inner .block-featured-content-stacked__img{ - aspect-ratio: 2/1; - } -} -@media (min-width: 80rem){ - - .block-featured-content-stacked__inner .block-featured-content-stacked__img{ - aspect-ratio: 21/9; - } -} -.block-featured-content-stacked__inner .block-featured-content-stacked__img img{ - height: 100%; - width: 100%; - -o-object-fit: cover; - object-fit: cover; -} -.block-featured-content-stacked__inner .block-paragraph{ - margin-top: 2.1875rem; -} -@media (min-width: 62rem){ - - .block-featured-content-stacked__inner .block-paragraph{ - width: 91.666667%; - } -} -.block-featured-content-stacked__inner .block-paragraph p{ - margin-bottom: 0px; - margin-bottom: 0; - font-size: 26px; - font-size: 1.625rem; - line-height: 35px; - line-height: 2.1875rem; -} -@media (min-width: 48rem){ - - .block-featured-content-stacked__inner .block-paragraph p{ - font-size: 26px; - font-size: 1.625rem; - line-height: 35px; - line-height: 2.1875rem; - } -} -.block-featured-content-columns{ - margin-top: 3.125rem; - --tw-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--tw-bg-opacity)); - padding-top: 1.5625rem; - padding-bottom: 1.5625rem; - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); -} -@media (min-width: 80rem){ - - .block-featured-content-columns{ - margin-top: 4.5rem; - padding-top: 2.1875rem; - padding-bottom: 2.1875rem; - } -} -.block-featured-content-columns p{ - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); -} -.block-featured-content-columns__inner{ - grid-template-columns: repeat(2, minmax(0, 1fr)); - -moz-column-gap: calc(var(--grid-gutter) * 2); - column-gap: calc(var(--grid-gutter) * 2); -} -@media (min-width: 62rem){ - - .block-featured-content-columns__inner{ - display: grid; - } -} -.block-featured-content-columns__inner .block-featured-content-columns__img{ - margin-bottom: 1.5625rem; - height: 100%; -} -@media (min-width: 62rem){ - - .block-featured-content-columns__inner .block-featured-content-columns__img{ - order: 2; - margin-bottom: 0px; - margin-bottom: 0; - } -} -.block-featured-content-columns__inner .block-featured-content-columns__img img{ - height: 100%; - width: 100%; - -o-object-fit: cover; - object-fit: cover; -} -.block-featured-content-columns__inner .block-featured-content-columns__content{ - display: flex; - flex-direction: column; -} -@media (min-width: 62rem){ - - .block-featured-content-columns__inner .block-featured-content-columns__content{ - order: 1; - } -} -.block-featured-content-columns__inner .block-featured-content-columns__content .block-title{ - } -.block-featured-content-columns__inner .block-featured-content-columns__content .block-paragraph{ - margin-bottom: 1.5625rem; - align-self: flex-end; -} -@media (min-width: 48rem){ - - .block-featured-content-columns__inner .block-featured-content-columns__content .block-paragraph{ - margin-bottom: 3.125rem; - } -} -.block-featured-content-columns__inner .block-featured-content-columns__content .block-paragraph p{ - margin-bottom: 0px; - margin-bottom: 0; - font-size: 20px; - font-size: 1.25rem; - line-height: 30px; - line-height: 1.875rem; -} -@media (min-width: 62rem){ - - .block-featured-content-columns__inner .block-featured-content-columns__content .block-link{ - align-self: flex-end; - } -} -.block-featured-content-cover{ - position: relative; - margin-bottom: 2.1875rem; - aspect-ratio: 16 / 9; -} -.block-featured-content-cover__content{ - position: absolute; - right: 1.25rem; - bottom: 1.25rem; - z-index: 10; - display: flex; - aspect-ratio: 1 / 1; - max-width: 25vw; - flex-direction: column; - justify-content: space-between; - --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity)); - padding-top: 1rem; - padding-bottom: 1rem; - padding-left: 0.75rem; - padding-right: 0.75rem; - --tw-text-opacity: 1; - color: rgb(0 0 0 / var(--tw-text-opacity)); -} -.block-featured-content-cover__content p{ - font-weight: 700; - font-size: 20px; - font-size: 1.25rem; - line-height: 30px; - line-height: 1.875rem; -} -@media (min-width: 48rem){ - - .block-featured-content-cover__content p{ - font-size: 26px; - font-size: 1.625rem; - line-height: 35px; - line-height: 2.1875rem; - } -} -@media (min-width: 80rem){ - - .block-featured-content-cover__content p{ - font-size: 30px; - font-size: 1.875rem; - line-height: 40px; - line-height: 2.5rem; - } -} -.block-featured-content-cover__content a{ - display: block; - --tw-text-opacity: 1; - color: rgb(163 173 173 / var(--tw-text-opacity)); -} -.block-featured-content-cover__img{ - height: 100%; - width: 100%; -} -.block-featured-content-cover__img img{ - height: 100%; - width: 100%; - -o-object-fit: cover; - object-fit: cover; -} -.block-featured-tabs{ - --tw-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--tw-bg-opacity)); - padding-top: 1.5625rem; - padding-bottom: 1.5625rem; - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); -} -@media (min-width: 48rem){ - - .block-featured-tabs{ - padding-top: 2.1875rem; - padding-bottom: 2.1875rem; - } -} -@media (min-width: 62rem){ - - .block-featured-tabs{ - padding-top: 0px; - padding-top: 0; - } -} -.block-featured-tabs__tabs{ - display: flex; - padding-bottom: 1.5625rem; - font-size: 20px; - font-size: 1.25rem; - line-height: 30px; - line-height: 1.875rem; -} -@media (min-width: 48rem){ - - .block-featured-tabs__tabs{ - font-size: 26px; - font-size: 1.625rem; - line-height: 35px; - line-height: 2.1875rem; - } -} -@media (min-width: 80rem){ - - .block-featured-tabs__tabs{ - font-size: 30px; - font-size: 1.875rem; - line-height: 40px; - line-height: 2.5rem; - } -} -@media (min-width: 48rem){ - - .block-featured-tabs__tabs{ - padding-bottom: 2.1875rem; - } -} -@media (min-width: 62rem){ - - .block-featured-tabs__tabs{ - --tw-translate-y: 100%; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); - padding-bottom: 0px; - padding-bottom: 0; - } -} -.block-featured-tabs__tabs button{ - display: block; - --tw-text-opacity: 1; - color: rgb(163 173 173 / var(--tw-text-opacity)); -} -.block-featured-tabs__tabs button:not(:first-child){ - margin-left: 0.5rem; -} -.block-featured-tabs__tabs button.is-selected{ - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); -} -.block-featured-tabs-tab{ - display: none; -} -.block-featured-tabs-tab > div{ - grid-template-columns: repeat(2, minmax(0, 1fr)); - -moz-column-gap: calc(var(--grid-gutter) * 2); - column-gap: calc(var(--grid-gutter) * 2); -} -@media (min-width: 62rem){ - - .block-featured-tabs-tab > div{ - display: grid; - } - - .block-featured-tabs-tab .block-featured-tabs-tab__content{ - order: 1; - align-self: flex-end; - } -} -.block-featured-tabs-tab .block-featured-tabs-tab__content p{ - margin-bottom: 0px; - margin-bottom: 0; - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); - font-size: 20px; - font-size: 1.25rem; - line-height: 30px; - line-height: 1.875rem; -} -.block-featured-tabs-tab .block-featured-tabs-tab__img{ - margin-bottom: 1.5625rem; - aspect-ratio: 3/2; -} -@media (min-width: 48rem){ - - .block-featured-tabs-tab .block-featured-tabs-tab__img{ - margin-bottom: 2.1875rem; - } -} -@media (min-width: 62rem){ - - .block-featured-tabs-tab .block-featured-tabs-tab__img{ - order: 2; - margin-bottom: 0px; - margin-bottom: 0; - } -} -.block-featured-tabs-tab .block-featured-tabs-tab__img img{ - height: 100%; - width: 100%; - -o-object-fit: cover; - object-fit: cover; -} -.block-files-list__inner > p{ - margin-bottom: 1rem; - font-weight: 700; -} -.block-files-list__inner ul{ - display: flex; - flex-wrap: wrap; - gap: 0.9375rem; -} -.block-files-list__inner ul li a{ - min-height: 2.25rem; - position: relative; - display: inline-flex; - align-items: center; - --tw-bg-opacity: 1; - background-color: rgb(237 242 242 / var(--tw-bg-opacity)); - padding-top: 0.375rem; - padding-bottom: 0.375rem; - padding-left: 2.5rem; - padding-right: 0.75rem; - } -.block-files-list__inner ul li a::before{ - content: ''; - background-image: url("data:image/svg+xml,%3Csvg fill='none' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 37 37'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='m24.852 19.834-6.354 6.353-6.354-6.353.708-.708 5.146 5.147V9.5h1v14.773l5.146-5.147.708.708ZM27 28H10v-1h17v1Z' fill='%23000'/%3E%3C/svg%3E"); - position: absolute; - top: 0px; - left: 0px; - aspect-ratio: 1 / 1; - width: 2.25rem; - background-position: center; - background-repeat: no-repeat; - } -.block-files-list__inner ul li:hover a{ - --tw-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--tw-bg-opacity)); - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); -} -.block-files-list__inner ul li:hover a::before{ - background-image: url("data:image/svg+xml,%3Csvg fill='none' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 37 37'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='m24.852 19.834-6.354 6.353-6.354-6.353.708-.708 5.146 5.147V9.5h1v14.773l5.146-5.147.708.708ZM27 28H10v-1h17v1Z' fill='%23fff'/%3E%3C/svg%3E"); - } -.block-grid-list{ - container-type: inline-size; -} -.block-grid-list__inner{ - display: grid; - -moz-column-gap: calc(var(--grid-gutter) * 2); - column-gap: calc(var(--grid-gutter) * 2); - row-gap: 2.1875rem; -} -@media (min-width: 62rem){ - - .block-grid-list__inner{ - grid-template-columns: repeat(2, minmax(0, 1fr)); - } -} -@media (min-width: 80rem){ - - .block-grid-list__inner{ - grid-template-columns: repeat(4, minmax(0, 1fr)); - } -} -.block-grid-list__inner > div{ - border-top-width: 1px; - --tw-border-opacity: 1; - border-color: rgb(211 216 216 / var(--tw-border-opacity)); - padding-top: 0.5rem; -} -.block-grid-list__inner > div p{ - margin-bottom: 0px; - margin-bottom: 0; - font-size: 16px; - font-size: 1rem; - line-height: 25px; - line-height: 1.5625rem; -} -.block-grid-list__inner > div p:first-child{ - --tw-text-opacity: 1; - color: rgb(163 173 173 / var(--tw-text-opacity)); -} -@container (min-width: 35rem){ - @media (min-width: 48rem){ - - .block-grid-list__inner{ - grid-template-columns: repeat(2, minmax(0, 1fr)); - } - } -} -@container (min-width: 56rem) { - @media (min-width: 62rem){ - - .block-grid-list__inner{ - grid-template-columns: repeat(3, minmax(0, 1fr)); - } - } -} -@container (min-width: 62rem) { - @media (min-width: 80rem){ - - .block-grid-list__inner{ - grid-template-columns: repeat(4, minmax(0, 1fr)); - } - } -} -.block-hero-banner{ - height: var(--hero-banner-height); - margin-bottom: 2.5rem; - overflow: hidden; - width: 100%; - padding-left: calc(var(--grid-gutter) * 2); - padding-right: calc(var(--grid-gutter) * 2); -} -@media (min-width: 48rem){ - - .block-hero-banner{ - padding-left: 0px; - padding-left: 0; - padding-right: 0px; - padding-right: 0; - } -} -.block-hero-banner{ - margin-left: var(--grid-offset); - } -@media (min-width: 48rem){ - .block-hero-banner{ - width: calc(100vw - var(--grid-offset) - var(--grid-gutter)*2) - } - } -@media (min-width: 120rem){ - .block-hero-banner{ - max-width: 120rem; - margin-left: max(var(--grid-offset), calc((100vw - 120rem)/2)) - } - } -.block-hero-banner :where(.grid-container),.block-hero-banner :where(.block-container), .block-container :where(.block-hero-banner){ - margin-left: 0px; - margin-left: 0; - margin-right: 0px; - margin-right: 0; - width: 100%; - padding-left: 0px; - padding-left: 0; - padding-right: 0px; - padding-right: 0; -} - .block-container :where(.block-hero-banner){ - margin-left: 0px; - margin-left: 0; - width: 100%; - padding-left: 0px; - padding-left: 0; - padding-right: 0px; - padding-right: 0; -} -.block-hero-banner__img{ - height: 100%; - width: 100%; -} -.block-hero-banner__img img{ - height: 100%; - width: 100%; - -o-object-fit: cover; - object-fit: cover; -} -.block-banner-scroll{ - /* @apply h-[900px]; */ - height: 160vh; - position: relative; - margin-bottom: 2.5rem; -} -.block-banner-scroll__content{ - position: sticky; - top: 100px; - z-index: 10; - padding-top: 2rem; -} -.block-banner-scroll__content h1{ - font-size: 5.75vw; - line-height: 110%; - } -.block-banner-scroll__content h1 span{ - background: transparent; - position: relative; - } -/* &::after{ - content: ''; - height: 90%; - top: 10%; - @apply absolute left-0 inline-block w-full bg-accent-200 -z-10; - - } */ -.block-banner-scroll__content h1 span.is-active{ - } -.block-banner-scroll__images{ - margin-left: var(--grid-offset); - width: calc(100% - var(--grid-offset)); - position: absolute; - top: 0px; - left: 0px; - z-index: 0; - height: 100%; - } -.block-banner-scroll__images .block-banner-scroll-img{ - transition: opacity .1s ease; - position: absolute; - width: 30vw; - opacity: 0; - } -.block-banner-scroll__images .block-banner-scroll-img picture{ - aspect-ratio: 1 / 1; -} -.block-banner-scroll__images .block-banner-scroll-img picture img{ - height: 100%; - width: 100%; - -o-object-fit: cover; - object-fit: cover; -} -.block-banner-scroll__images .block-banner-scroll-img:first-child{ - right: 10vw; - top: 30vh; - opacity: 1 !important; - } -.block-banner-scroll__images .block-banner-scroll-img:nth-child(2){ - left: 5vw; - top: 70vh; - opacity: 1 !important; - } -.block-banner-scroll__images .block-banner-scroll-img:nth-child(3){ - right: 30vw; - top: 200vh; - } -.block-banner-scroll__images .block-banner-scroll-img:nth-child(4){ - right: 5vw; - top: 150vh; - } -.block-banner-scroll__images .block-banner-scroll-img.is-visible{ - /* @apply opacity-100; */ - } -.block-images-grid--black{ - --tw-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--tw-bg-opacity)); - padding-top: 3rem; - padding-bottom: 3rem; -} -.block-images-grid__inner{ - display: grid; - grid-template-columns: repeat(12, minmax(0, 1fr)); - grid-template-rows: repeat(2, minmax(0, 1fr)); - gap: 1.25rem; -} -.block-images-grid__inner > div{ - position: relative; -} -.block-images-grid__inner > div:first-child{ - grid-area: 1 / 1 / 4 / 7; - aspect-ratio: 4/5; - } -.block-images-grid__inner > div:nth-child(2){ - grid-area: 1 / 7 / 2 / 10; - } -.block-images-grid__inner > div:nth-child(3){ - grid-area: 1 / 10 / 2 / 13; - } -.block-images-grid__inner > div:nth-child(4){ - grid-area: 2 / 7 / 4 / 10; - } -.block-images-grid__inner > div:nth-child(5){ - grid-area: 2 / 10 / 4 / 13; - } -.block-images-grid__inner > div img{ - position: absolute; - top: 0px; - left: 0px; - height: 100%; - width: 100%; - -o-object-fit: cover; - object-fit: cover; -} -.block-link{ - /* @apply grid grid-cols-2 items-center; */ - position: relative; - display: flex; - border-top-width: 1px; - --tw-border-opacity: 1; - border-color: rgb(211 216 216 / var(--tw-border-opacity)); - font-size: 20px; - font-size: 1.25rem; - line-height: 30px; - line-height: 1.875rem; -} -@media (min-width: 48rem){ - - .block-link{ - font-size: 26px; - font-size: 1.625rem; - line-height: 35px; - line-height: 2.1875rem; - } -} -@media (min-width: 80rem){ - - .block-link{ - font-size: 30px; - font-size: 1.875rem; - line-height: 40px; - line-height: 2.5rem; - } -} -.block-link:last-child:not(:first-child){ - border-bottom-width: 1px; -} -.block-link::before{ - content: ''; - background-image: url("data:image/svg+xml,%3Csvg fill='none' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 50 50'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='m34.711 24-6.778-7.32 1.467-1.36L38.363 25 29.4 34.68l-1.467-1.36L34.71 26H12v-2h22.711Z' fill='%23000'/%3E%3C/svg%3E"); - background-size: 100%; - position: absolute; - top: 0px; - left: 0px; - aspect-ratio: 1 / 1; - width: 2.25rem; - background-position: center; - background-repeat: no-repeat; - } -@media (min-width: 80rem){ - - .block-link::before{ - width: 3.125rem; - } -} -.block-link > span{ - display: flex; - min-height: 2.25rem; - align-items: center; - padding-top: 0.125rem; - padding-bottom: 0.125rem; - padding-left: 3rem; - padding-right: 1.25rem; -} -@media (min-width: 80rem){ - - .block-link > span{ - padding-top: 0.375rem; - padding-bottom: 0.375rem; - padding-left: 4rem; - } -} -.block-link:hover{ - --tw-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--tw-bg-opacity)); - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); -} -.block-link:hover::before{ - background-image: url("data:image/svg+xml,%3Csvg fill='none' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 50 50'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='m34.711 24-6.778-7.32 1.467-1.36L38.363 25 29.4 34.68l-1.467-1.36L34.71 26H12v-2h22.711Z' fill='%23fff'/%3E%3C/svg%3E"); - } -.block-link[href]:not(:where( - - [href^="#"], - - [href^="/"]:not([href^="//"]),))::before{ - background-image: url("data:image/svg+xml,%3Csvg width='50' height='50' viewBox='0 0 50 50' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M31.0124 17.0725L21.043 16.6891L21.1198 14.6906L34.3016 15.1975L34.8086 28.3793L32.81 28.4562L32.4266 18.4867L16.3673 34.546L14.9531 33.1318L31.0124 17.0725Z' fill='black'/%3E%3C/svg%3E%0A"); - } -.block-link[href]:not(:where( - - [href^="#"], - - [href^="/"]:not([href^="//"]),)) span span{ - margin-left: 0.9375rem; - --tw-translate-y: 0.125rem; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); - align-self: flex-start; - --tw-text-opacity: 1; - color: rgb(163 173 173 / var(--tw-text-opacity)); - font-size: 13px; - font-size: 0.8125rem; - line-height: 20px; - line-height: 1.25rem; -} -.block-link[href]:not(:where( - - [href^="#"], - - [href^="/"]:not([href^="//"]),)):hover::before{ - background-image: url("data:image/svg+xml,%3Csvg width='50' height='50' viewBox='0 0 50 50' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M31.0124 17.0725L21.043 16.6891L21.1198 14.6906L34.3016 15.1975L34.8086 28.3793L32.81 28.4562L32.4266 18.4867L16.3673 34.546L14.9531 33.1318L31.0124 17.0725Z' fill='white'/%3E%3C/svg%3E%0A"); - } -.block-link--white{ - --tw-border-opacity: 1; - border-color: rgb(83 90 90 / var(--tw-border-opacity)); - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); -} -.block-link--white::before{ - background-image: url("data:image/svg+xml,%3Csvg fill='none' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 50 50'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='m34.711 24-6.778-7.32 1.467-1.36L38.363 25 29.4 34.68l-1.467-1.36L34.71 26H12v-2h22.711Z' fill='white'/%3E%3C/svg%3E"); - } -.block-link--white[href]:not(:where( - - [href^="#"], - - [href^="/"]:not([href^="//"]),))::before{ - background-image: url("data:image/svg+xml,%3Csvg width='50' height='50' viewBox='0 0 50 50' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M31.0124 17.0725L21.043 16.6891L21.1198 14.6906L34.3016 15.1975L34.8086 28.3793L32.81 28.4562L32.4266 18.4867L16.3673 34.546L14.9531 33.1318L31.0124 17.0725Z' fill='white'/%3E%3C/svg%3E%0A"); - } -.block-links-list-columns{ - margin-bottom: 4rem; -} -@media (min-width: 62rem){ -.block-links-list-columns ul{ - -moz-columns: 2; - columns: 2; - gap: calc(var(--grid-gutter)*2) - } - } -/* @apply -mx-[var(--grid-gutter)]; */ -.block-links-list-columns ul li{ - /* @apply w-full px-[var(--grid-gutter)]; */ - /* @apply border-t border-grey-200 flex items-center h-[3.5vw]; */ - /* a{ - @apply flex items-center h-full w-full text-size-lg; - &::before{ - content: ''; - background-image: url("data:image/svg+xml,%3Csvg fill='none' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 27 20'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='m22.711 9-6.778-7.32L17.4.32 26.363 10 17.4 19.68l-1.467-1.36L22.71 11H0V9h22.711Z' fill='%23000'/%3E%3C/svg%3E"); - background-size: 24px 18px; - @apply w-[50px] h-[50px] bg-no-repeat inline-block bg-center mr-4; - } - } - &:nth-last-child(2), &:last-child{ - @apply border-b; - } */ - } -.block-page-title-banner{ - margin-bottom: 2.1875rem; -} -@media (min-width: 48rem){ - - .block-page-title-banner{ - margin-bottom: 4.5rem; - } -} -@media (min-width: 80rem){ - - .block-page-title-banner{ - margin-bottom: 7.5rem; - } -} -@media (min-width: 62rem){ -.block-page-title-banner__img{ - height: calc(var(--page-title-banner-img-height) - var(--grid-gutter)*2) - } - } -.block-page-title-banner__img{ - position: relative; - z-index: 20; - margin-bottom: calc(var(--grid-gutter) * 2); - aspect-ratio: 16 / 9; - overflow: hidden; - width: 100%; - padding-left: calc(var(--grid-gutter) * 2); - padding-right: calc(var(--grid-gutter) * 2); -} -@media (min-width: 48rem){ - - .block-page-title-banner__img{ - padding-left: 0px; - padding-left: 0; - padding-right: 0px; - padding-right: 0; - } -} -.block-page-title-banner__img{ - margin-left: var(--grid-offset); - } -@media (min-width: 48rem){ - .block-page-title-banner__img{ - width: calc(100vw - var(--grid-offset) - var(--grid-gutter)*2) - } - } -@media (min-width: 120rem){ - .block-page-title-banner__img{ - max-width: 120rem; - margin-left: max(var(--grid-offset), calc((100vw - 120rem)/2)) - } - } -.block-page-title-banner__img :where(.grid-container),.block-page-title-banner__img :where(.block-container), .block-container :where(.block-page-title-banner__img){ - margin-left: 0px; - margin-left: 0; - margin-right: 0px; - margin-right: 0; - width: 100%; - padding-left: 0px; - padding-left: 0; - padding-right: 0px; - padding-right: 0; -} - .block-container :where(.block-page-title-banner__img){ - margin-left: 0px; - margin-left: 0; - width: 100%; - padding-left: 0px; - padding-left: 0; - padding-right: 0px; - padding-right: 0; -} -@media (min-width: 48rem){ - - .block-page-title-banner__img{ - aspect-ratio: auto; - } -} -.block-page-title-banner__img img{ - height: 100%; - width: 100%; - -o-object-fit: cover; - object-fit: cover; -} -@media (min-width: 62rem){ -.block-page-title-banner__video{ - height: calc(var(--page-title-banner-img-height) - var(--grid-gutter)*2) - } - } -.block-page-title-banner__video{ - position: relative; - z-index: 20; - margin-bottom: calc(var(--grid-gutter) * 2); - aspect-ratio: 16 / 9; - overflow: hidden; - width: 100%; - padding-left: calc(var(--grid-gutter) * 2); - padding-right: calc(var(--grid-gutter) * 2); -} -@media (min-width: 48rem){ - - .block-page-title-banner__video{ - padding-left: 0px; - padding-left: 0; - padding-right: 0px; - padding-right: 0; - } -} -.block-page-title-banner__video{ - margin-left: var(--grid-offset); - } -@media (min-width: 48rem){ - .block-page-title-banner__video{ - width: calc(100vw - var(--grid-offset) - var(--grid-gutter)*2) - } - } -@media (min-width: 120rem){ - .block-page-title-banner__video{ - max-width: 120rem; - margin-left: max(var(--grid-offset), calc((100vw - 120rem)/2)) - } - } -.block-page-title-banner__video :where(.grid-container),.block-page-title-banner__video :where(.block-container), .block-container :where(.block-page-title-banner__video){ - margin-left: 0px; - margin-left: 0; - margin-right: 0px; - margin-right: 0; - width: 100%; - padding-left: 0px; - padding-left: 0; - padding-right: 0px; - padding-right: 0; -} - .block-container :where(.block-page-title-banner__video){ - margin-left: 0px; - margin-left: 0; - width: 100%; - padding-left: 0px; - padding-left: 0; - padding-right: 0px; - padding-right: 0; -} -@media (min-width: 48rem){ - - .block-page-title-banner__video{ - aspect-ratio: auto; - } -} -.block-page-title-banner__video video{ - height: 100%; - width: 100%; - -o-object-fit: cover; - object-fit: cover; -} -.block-page-title-banner .block-title{ - bottom: calc(var(--grid-gutter) * 2); - z-index: 10; - margin-bottom: 0px; - margin-bottom: 0; -} -@media (min-width: 48rem){ - - .block-page-title-banner .block-title{ - padding-top: calc(var(--grid-gutter) * 2); - } -} -@media (min-width: 62rem){ - - .block-page-title-banner .block-title{ - position: sticky; - } -} -.block-paragraph{ - container: paragraph / inline-size; -} -.block-paragraph p{ - font-size: 16px; - font-size: 1rem; - line-height: 25px; - line-height: 1.5625rem; -} -@media (min-width: 48rem){ - - @media not all and (min-width: 80rem){ - - .block-paragraph--lg p{ - max-width: 48rem; - } - } -} -@media (min-width: 80rem){ - .block-paragraph--lg p{ - font-size: 20px; - font-size: 1.25rem; - line-height: 30px; - line-height: 1.875rem; - } - .block-paragraph--1col{ - width: 50%; - } -} -@container paragraph (min-width: 80rem){ - .block-paragraph p{ - width: 75%; - } -} -.query-loop__inner{ - grid-template-columns: repeat(1, minmax(0,1fr)); - } -@media (min-width: 62rem){ -.query-loop__inner{ - grid-template-columns: repeat(var(--query-loop-columns-per-row), minmax(0, 1fr)); - } - } -.query-loop__inner{ - display: grid; - -moz-column-gap: var(--size-ratio-base); - column-gap: var(--size-ratio-base); - row-gap: var(-xl); -} -@layer utilties{ - .block-tease-row{ - margin-bottom: 4.5rem; - } - @media (min-width: 80rem){ - - .block-tease-row{ - margin-bottom: 7.5rem; - } - } - .block-title{ - margin-bottom: 1.5625rem; - } - @media (min-width: 48rem){ - - .block-title{ - margin-bottom: 2.1875rem; - } - } -} -.block-title h1,.block-title h2,.block-title h3,.block-title h4,.block-title h5,.block-title h6{ - margin-bottom: 0px; - margin-bottom: 0; - font-size: 30px; - font-size: 1.875rem; - line-height: 40px; - line-height: 2.5rem; -} -@media (min-width: 48rem){ - - .block-title h1,.block-title h2,.block-title h3,.block-title h4,.block-title h5,.block-title h6{ - font-size: 54px; - font-size: 3.375rem; - line-height: 65px; - line-height: 4.0625rem; - } -} -@media (min-width: 80rem){ - - .block-title h1,.block-title h2,.block-title h3,.block-title h4,.block-title h5,.block-title h6{ - font-size: 58px; - font-size: 3.625rem; - line-height: 70px; - line-height: 4.375rem; - } -} -.block-title h1 + a,.block-title h2 + a,.block-title h3 + a,.block-title h4 + a,.block-title h5 + a,.block-title h6 + a{ - flex-shrink: 0; - --tw-text-opacity: 1; - color: rgb(163 173 173 / var(--tw-text-opacity)); - font-size: 20px; - font-size: 1.25rem; - line-height: 30px; - line-height: 1.875rem; -} -@media (min-width: 48rem){ - - .block-title h1 + a,.block-title h2 + a,.block-title h3 + a,.block-title h4 + a,.block-title h5 + a,.block-title h6 + a{ - font-size: 26px; - font-size: 1.625rem; - line-height: 35px; - line-height: 2.1875rem; - } -} -@media (min-width: 80rem){ - - .block-title h1 + a,.block-title h2 + a,.block-title h3 + a,.block-title h4 + a,.block-title h5 + a,.block-title h6 + a{ - font-size: 30px; - font-size: 1.875rem; - line-height: 40px; - line-height: 2.5rem; - } -} -.block-title .block-title__inner{ - width: 91.666667%; -} -/* .column{ - @apply flex justify-between items-baseline; - } - + .block-links-list-columns{ - @apply mt-16; - } */ -.block-title--xs h1,.block-title--xs h2,.block-title--xs h3,.block-title--xs h4,.block-title--xs h5,.block-title--xs h6{ - font-weight: 700; - font-size: 16px; - font-size: 1rem; - line-height: 25px; - line-height: 1.5625rem; -} -.block-title--sm h1,.block-title--sm h2,.block-title--sm h3,.block-title--sm h4,.block-title--sm h5,.block-title--sm h6{ - font-size: 20px; - font-size: 1.25rem; - line-height: 30px; - line-height: 1.875rem; -} -@media (min-width: 48rem){ - - .block-title--sm h1,.block-title--sm h2,.block-title--sm h3,.block-title--sm h4,.block-title--sm h5,.block-title--sm h6{ - font-size: 26px; - font-size: 1.625rem; - line-height: 35px; - line-height: 2.1875rem; - } -} -@media (min-width: 80rem){ - - .block-title--sm h1,.block-title--sm h2,.block-title--sm h3,.block-title--sm h4,.block-title--sm h5,.block-title--sm h6{ - font-size: 30px; - font-size: 1.875rem; - line-height: 40px; - line-height: 2.5rem; - } -} -.block-title--lg h1,.block-title--lg h2,.block-title--lg h3,.block-title--lg h4,.block-title--lg h5,.block-title--lg h6{ - font-size: 30px; - font-size: 1.875rem; - line-height: 40px; - line-height: 2.5rem; -} -@media (min-width: 48rem){ - - .block-title--lg h1,.block-title--lg h2,.block-title--lg h3,.block-title--lg h4,.block-title--lg h5,.block-title--lg h6{ - font-size: 54px; - font-size: 3.375rem; - line-height: 65px; - line-height: 4.0625rem; - } -} -@media (min-width: 80rem){ - - .block-title--lg h1,.block-title--lg h2,.block-title--lg h3,.block-title--lg h4,.block-title--lg h5,.block-title--lg h6{ - font-size: 90px; - font-size: 5.625rem; - line-height: 105px; - line-height: 6.5625rem; - } -} -.block-title--divider .block-title__inner{ - width: 100%; - border-top-width: 1px; - --tw-border-opacity: 1; - border-color: rgb(0 0 0 / var(--tw-border-opacity)); - padding-top: 0.75rem; -} -.block-title--link .block-title__inner{ - width: 100%; - align-items: baseline; - justify-content: space-between; -} -@media (min-width: 62rem){ - - .block-title--link .block-title__inner{ - display: flex; - } -} -.block-title--link .block-title__inner h1,.block-title--link .block-title__inner h2,.block-title--link .block-title__inner h3,.block-title--link .block-title__inner h4,.block-title--link .block-title__inner h5,.block-title--link .block-title__inner h6{ - margin-right: 1rem; -} -/* .block-container + .block-title{ - @apply mt-[5.5vw] -} */ -.block-video__inner{ - position: relative; - aspect-ratio: 16 / 9; -} -.block-video__inner video{ - position: absolute; - left: 0px; - top: 0px; - height: 100%; - width: 100%; -} -.block-video__caption p{ - margin-top: 1.125rem; - margin-bottom: 0px; - margin-bottom: 0; - font-size: 13px; - font-size: 0.8125rem; - line-height: 20px; - line-height: 1.25rem; -} -.breadcrumbs{ - margin-top: 1.5625rem; - margin-bottom: 2.1875rem; - width: 100%; - padding-left: calc(var(--grid-gutter) * 2); - padding-right: calc(var(--grid-gutter) * 2); -} -@media (min-width: 48rem){ - - .breadcrumbs{ - padding-left: 0px; - padding-left: 0; - padding-right: 0px; - padding-right: 0; - } -} -.breadcrumbs{ - margin-left: var(--grid-offset); - } -@media (min-width: 48rem){ - .breadcrumbs{ - width: calc(100vw - var(--grid-offset) - var(--grid-gutter)*2) - } - } -@media (min-width: 120rem){ - .breadcrumbs{ - max-width: 120rem; - margin-left: max(var(--grid-offset), calc((100vw - 120rem)/2)) - } - } -.breadcrumbs :where(.grid-container),.breadcrumbs :where(.block-container), .block-container :where(.breadcrumbs){ - margin-left: 0px; - margin-left: 0; - margin-right: 0px; - margin-right: 0; - width: 100%; - padding-left: 0px; - padding-left: 0; - padding-right: 0px; - padding-right: 0; -} - .block-container :where(.breadcrumbs){ - margin-left: 0px; - margin-left: 0; - width: 100%; - padding-left: 0px; - padding-left: 0; - padding-right: 0px; - padding-right: 0; -} -@media (min-width: 48rem){ - - .breadcrumbs{ - margin-top: 3.125rem; - margin-bottom: 4.5rem; - } -} -@media (min-width: 80rem){ - - .breadcrumbs{ - margin-top: 6.25rem; - margin-bottom: 2.1875rem; - } -} -.breadcrumbs ul{ - display: flex; - flex-wrap: wrap; -} -.breadcrumbs ul li{ - font-size: 20px; - font-size: 1.25rem; - line-height: 30px; - line-height: 1.875rem; -} -@media (min-width: 48rem){ - - .breadcrumbs ul li{ - font-size: 26px; - font-size: 1.625rem; - line-height: 35px; - line-height: 2.1875rem; - } -} -@media (min-width: 80rem){ - - .breadcrumbs ul li{ - font-size: 30px; - font-size: 1.875rem; - line-height: 40px; - line-height: 2.5rem; - } -} -.breadcrumbs ul li:not(:last-child)::after{ - content: '/'; - margin-left: 0.75vw; - margin-right: 0.75vw; - } -.breadcrumbs ul li a, .breadcrumbs ul li span{ - --tw-text-opacity: 1; - color: rgb(163 173 173 / var(--tw-text-opacity)); -} -.breadcrumbs ul li:last-child span{ - --tw-text-opacity: 1; - color: rgb(0 0 0 / var(--tw-text-opacity)); -} -button, input[type="submit"]{ - text-rendering: geometricPrecision; -} -.btn{ - -} -.card{ - position: relative; - --tw-bg-opacity: 1; - background-color: rgb(237 242 242 / var(--tw-bg-opacity)); - padding: 1rem; -} -.card--black{ - --tw-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--tw-bg-opacity)); -} -.card--black p, .card--black span{ - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); -} -.card__content{ - display: flex; - aspect-ratio: 1 / 1; - flex-direction: column; - justify-content: space-between; -} -.card .card-header, .card .card-main{ - position: relative; - z-index: 10; -} -.card .card-header{ - display: flex; - justify-content: space-between; - --tw-text-opacity: 1; - color: rgb(163 173 173 / var(--tw-text-opacity)); -} -.card .card-date{ - font-size: 13px; - font-size: 0.8125rem; - line-height: 20px; - line-height: 1.25rem; -} -.card .card-title{ - font-weight: 700; - font-size: 20px; - font-size: 1.25rem; - line-height: 30px; - line-height: 1.875rem; -} -.card .card-bg{ - pointer-events: none; - position: absolute; - left: 0px; - top: 0px; - height: 100%; - width: 100%; - transform-origin: center; - --tw-scale-x: 1.25; - --tw-scale-y: 1.25; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); - --tw-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--tw-bg-opacity)); - opacity: 0; -} -.card .card-bg img{ - z-index: 10; - height: 100%; - width: 100%; - -o-object-fit: cover; - object-fit: cover; - opacity: 0.75; -} -.card--has-background.is-hovered{ - z-index: 20; - background-color: transparent; -} -.card--has-background.is-hovered p, .card--has-background.is-hovered span{ - --tw-text-opacity: 1; - color: rgb(255 204 0 / var(--tw-text-opacity)); -} -.card--has-background.is-hovered .card-bg{ - opacity: 1; -} -.card--has-background.is-hovered::after{ - content: ''; - position: absolute; - left: 0px; - top: 0px; - height: 100%; - width: 100%; - border-width: 1px; - --tw-border-opacity: 1; - border-color: rgb(255 204 0 / var(--tw-border-opacity)); - } -.card--has-keyword .card-keyword{ - font-size: calc(70vw / var(--card-keyword-chars)); - pointer-events: none; - position: absolute; - top: 50%; - left: 50%; - z-index: 50; - --tw-translate-y: -50%; - --tw-translate-x: -50%; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); - white-space: nowrap; - --tw-text-opacity: 1; - color: rgb(255 204 0 / var(--tw-text-opacity)); - opacity: 0; - } -.card--has-keyword.is-hovered{ - z-index: 20; - --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity)); -} -.card--has-keyword.is-hovered .card-header span{ - --tw-text-opacity: 1; - color: rgb(163 173 173 / var(--tw-text-opacity)); -} -.card--has-keyword.is-hovered .card-main p, .card--has-keyword.is-hovered .card-main span{ - --tw-text-opacity: 1; - color: rgb(0 0 0 / var(--tw-text-opacity)); -} -.card--has-keyword.is-hovered .card-keyword{ - opacity: 1; -} -.card--has-keyword.is-hovered::after{ - content: ''; - position: absolute; - left: 0px; - top: 0px; - height: 100%; - width: 100%; - border-width: 1px; - --tw-border-opacity: 1; - border-color: rgb(211 216 216 / var(--tw-border-opacity)); - } -.chip{ -} -.contacts-section{ - margin-top: 2.1875rem; - --tw-bg-opacity: 1; - background-color: rgb(255 204 0 / var(--tw-bg-opacity)); - padding-top: 1.5625rem; - padding-bottom: 1.5625rem; -} -@media (min-width: 80rem){ - - .contacts-section{ - margin-top: 4.5rem; - padding-top: 2.1875rem; - padding-bottom: 2.1875rem; - } -} -.contacts-section .block-title__inner a{ - --tw-text-opacity: 1; - color: rgb(158 127 0 / var(--tw-text-opacity)); -} -.contacts-section-cards-row{ - width: 100%; - padding-left: calc(var(--grid-gutter) * 2); - padding-right: calc(var(--grid-gutter) * 2); -} -@media (min-width: 48rem){ - - .contacts-section-cards-row{ - padding-left: 0px; - padding-left: 0; - padding-right: 0px; - padding-right: 0; - } -} -.contacts-section-cards-row{ - margin-left: var(--grid-offset); - } -@media (min-width: 48rem){ - .contacts-section-cards-row{ - width: calc(100vw - var(--grid-offset) - var(--grid-gutter)*2) - } - } -@media (min-width: 120rem){ - .contacts-section-cards-row{ - max-width: 120rem; - margin-left: max(var(--grid-offset), calc((100vw - 120rem)/2)) - } - } -.contacts-section-cards-row :where(.grid-container),.contacts-section-cards-row :where(.block-container), .block-container :where(.contacts-section-cards-row){ - margin-left: 0px; - margin-left: 0; - margin-right: 0px; - margin-right: 0; - width: 100%; - padding-left: 0px; - padding-left: 0; - padding-right: 0px; - padding-right: 0; -} -@layer utilties{ - .contacts-section-cards-row{ - margin-bottom: 1.5625rem; - } - @media (min-width: 48rem){ - - .contacts-section-cards-row{ - margin-bottom: 2.1875rem; - } - } -} - .block-container :where(.contacts-section-cards-row){ - margin-left: 0px; - margin-left: 0; - width: 100%; - padding-left: 0px; - padding-left: 0; - padding-right: 0px; - padding-right: 0; -} -.contacts-section-cards-row__inner{ - display: grid; - grid-template-columns: repeat(1, minmax(0, 1fr)); - gap: calc(var(--grid-gutter) * 2); -} -@media (min-width: 48rem){ - - .contacts-section-cards-row__inner{ - grid-template-columns: repeat(2, minmax(0, 1fr)); - } -} -@media (min-width: 80rem){ - - .contacts-section-cards-row__inner{ - grid-template-columns: repeat(4, minmax(0, 1fr)); - } -} -@media not all and (min-width: 80rem){ - - @media (min-width: 62rem){ - - .contacts-section-cards-row__inner-squares{ - grid-template-columns: repeat(3, minmax(0, 1fr)); - } - } -} -.contacts-section-cards-row > p{ - margin-bottom: 1rem; - font-weight: 700; -} -.contacts-section-card{ - grid-template-columns: repeat(2, minmax(0, 1fr)); - align-items: flex-start; - --tw-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--tw-bg-opacity)); - padding: calc(var(--grid-gutter) * 2); - --tw-text-opacity: 1; - color: rgb(255 204 0 / var(--tw-text-opacity)); -} -@media (min-width: 80rem){ - - .contacts-section-card{ - display: grid; - } -} -.contacts-section-card p{ - --tw-text-opacity: 1; - color: rgb(255 204 0 / var(--tw-text-opacity)); -} -.contacts-section-card a{ - text-decoration-line: underline; -} -.contacts-section-card header{ - margin-bottom: 2.1875rem; -} -@media (min-width: 80rem){ - - .contacts-section-card header{ - margin-bottom: 0px; - margin-bottom: 0; - } -} -.contacts-section-card header p{ - margin-bottom: 0px; - margin-bottom: 0; - font-size: 26px; - font-size: 1.625rem; - line-height: 35px; - line-height: 2.1875rem; -} -@media (min-width: 48rem){ - - .contacts-section-card header p{ - font-size: 26px; - font-size: 1.625rem; - line-height: 35px; - line-height: 2.1875rem; - } -} -.contacts-section-card header p:last-child:not(:first-child){ - font-size: 16px; - font-size: 1rem; - line-height: 25px; - line-height: 1.5625rem; -} -@media (min-width: 80rem){ - - .contacts-section-card > div{ - aspect-ratio: 1 / 1; - } -} -.contacts-section-card > div:first-child{ - display: flex; - flex-direction: column; -} -@media (min-width: 80rem){ - - .contacts-section-card > div:first-child{ - height: 100%; - } -} -.contacts-section-card > div:first-child header{ - flex-grow: 1; -} -.contacts-section-card > div:first-child:last-child{ - grid-column: span 2; - } -.contacts-section-card:not(.contacts-section-card--span) > div{ - aspect-ratio: 1 / 1; -} -.contacts-section-card--span{ - align-self: flex-start; -} -@media (min-width: 80rem){ -.contacts-section-card--span{ - align-self: inherit; - grid-column: span 2 - } - } -.contacts-section-card--span footer{ - margin-bottom: 2.1875rem; -} -@media (min-width: 80rem){ - - .contacts-section-card--span footer{ - margin-bottom: 0px; - margin-bottom: 0; - } -} -.contacts-section + .site-footer{ - margin-top: 0px !important; - margin-top: 0 !important; -} -.contacts-section--noMargin{ - margin-top: 0px; - margin-top: 0; -} -.content-section{ - margin-top: 3.125rem; -} -@media (min-width: 62rem){ - - .content-section{ - margin-top: 4.5rem; - } -} -.content-section--noMargin{ - margin-top: 0px; - margin-top: 0; -} -.degree-curricula{ - --tw-bg-opacity: 1; - background-color: rgb(237 242 242 / var(--tw-bg-opacity)); -} -.degree-curricula__tabs{ - padding-top: 2.1875rem; - padding-bottom: 2.1875rem; - font-size: 20px; - font-size: 1.25rem; - line-height: 30px; - line-height: 1.875rem; -} -@media (min-width: 48rem){ - - .degree-curricula__tabs{ - font-size: 26px; - font-size: 1.625rem; - line-height: 35px; - line-height: 2.1875rem; - } -} -@media (min-width: 80rem){ - - .degree-curricula__tabs{ - font-size: 30px; - font-size: 1.875rem; - line-height: 40px; - line-height: 2.5rem; - } -} -@media (min-width: 62rem){ - - .degree-curricula__tabs{ - display: flex; - flex-wrap: nowrap; - } -} -.degree-curricula__tabs button{ - display: block; - --tw-text-opacity: 1; - color: rgb(163 173 173 / var(--tw-text-opacity)); -} -@media (min-width: 62rem){ - - .degree-curricula__tabs button:not(:first-child){ - margin-left: 0.5rem; - } -} -.degree-curricula__tabs button.is-selected{ - --tw-text-opacity: 1; - color: rgb(0 0 0 / var(--tw-text-opacity)); -} -.degree-curriculum{ - /*fix for using margin of last child element as real inner margin*/ - padding-bottom: 1px; - padding-bottom: 0.0625rem; -} -.degree-curriculum__marquee{ - margin-left: calc(var(--grid-offset) * -1); - width: 100vw; -} -.degree-curriculum__excerpt{ - margin-bottom: 2.1875rem; - font-size: 26px; - font-size: 1.625rem; - line-height: 35px; - line-height: 2.1875rem; -} -@media (min-width: 48rem){ - - .degree-curriculum__excerpt{ - font-size: 26px; - font-size: 1.625rem; - line-height: 35px; - line-height: 2.1875rem; - } -} -.degree-curriculum__cols{ - margin-bottom: 4.5rem; - grid-template-columns: repeat(2, minmax(0, 1fr)); - -moz-column-gap: calc(var(--grid-gutter) * 2); - column-gap: calc(var(--grid-gutter) * 2); -} -@media (min-width: 62rem){ - - .degree-curriculum__cols{ - display: grid; - } -} -@media (min-width: 80rem){ - .degree-curriculum__cols > *:last-child p{ - font-size: 20px; - font-size: 1.25rem; - line-height: 30px; - line-height: 1.875rem; - } -} -.degree-curriculum__cols > *:last-child p:last-child{ - margin-bottom: 0px; - margin-bottom: 0; -} -.degree-curriculum .block-accordion{ - margin-bottom: 3.125rem; -} -.degree-curriculum .block-accordion + *{ - margin-bottom: 1.5625rem; -} -[data-tab-index]{ - display: none; -} -.events-posts__day{ - position: sticky; - top: -1px; - border-top-width: 1px; - --tw-border-opacity: 1; - border-color: rgb(0 0 0 / var(--tw-border-opacity)); - --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity)); - padding-top: 0.75rem; - padding-bottom: 0.75rem; -} -.events-posts__day span{ - font-size: 30px; - font-size: 1.875rem; - line-height: 40px; - line-height: 2.5rem; -} -@media (min-width: 48rem){ - - .events-posts__day span{ - font-size: 40px; - font-size: 2.5rem; - line-height: 50px; - line-height: 3.125rem; - } -} -@media (min-width: 80rem){ - - .events-posts__day span{ - font-size: 44px; - font-size: 2.75rem; - line-height: 55px; - line-height: 3.4375rem; - } -} -.event-item{ - display: grid; - min-height: 96px; - grid-template-columns: repeat(12, minmax(0, 1fr)); - -moz-column-gap: 1.25rem; - column-gap: 1.25rem; - border-top-width: 1px; - --tw-border-opacity: 1; - border-color: rgb(211 216 216 / var(--tw-border-opacity)); - padding-top: 1.25rem; - padding-bottom: 1.25rem; -} -.event-item > *:first-child{ - grid-area: 1 / 1 / 3 / 7; - font-size: 16px; - font-size: 1rem; - line-height: 25px; - line-height: 1.5625rem; - } -.event-item > *:last-child{ - grid-area: 1 / 7 / 3 / 13; - } -.event-item__info{ - display: flex; - flex-direction: column; - justify-content: space-between; -} -.event-item__date{ - font-size: 26px; - font-size: 1.625rem; - line-height: 35px; - line-height: 2.1875rem; -} -@media (min-width: 48rem){ - - .event-item__date{ - font-size: 26px; - font-size: 1.625rem; - line-height: 35px; - line-height: 2.1875rem; - } -} -.event-item__date span{ - display: block; -} -.event-item__date span + span{ - --tw-text-opacity: 1; - color: rgb(163 173 173 / var(--tw-text-opacity)); -} -.event-item__title{ - font-weight: 700; - font-size: 26px; - font-size: 1.625rem; - line-height: 35px; - line-height: 2.1875rem; -} -@media (min-width: 48rem){ - - .event-item__title{ - font-size: 26px; - font-size: 1.625rem; - line-height: 35px; - line-height: 2.1875rem; - } -} -.event-item__title + p{ - margin-top: 1.5rem; -} -.event-item-ongoing{ - padding-top: 1.25rem; - padding-bottom: 1.25rem; -} -.event-item-ongoing:first-child{ - padding-top: 0px; - padding-top: 0; -} -.event-item-ongoing:first-child span{ - font-size: 16px; - font-size: 1rem; - line-height: 25px; - line-height: 1.5625rem; -} -.event-item-ongoing:last-child{ - padding-bottom: 0px; - padding-bottom: 0; -} -.event-item-ongoing:not(:last-child){ - border-bottom-width: 1px; - --tw-border-opacity: 1; - border-color: rgb(211 216 216 / var(--tw-border-opacity)); -} -.event-item-ongoing p{ - margin-bottom: 0px; - margin-bottom: 0; - font-weight: 700; - font-size: 16px; - font-size: 1rem; - line-height: 25px; - line-height: 1.5625rem; -} -.event-item-ongoing p span{ - margin-left: 0.75rem; - --tw-text-opacity: 1; - color: rgb(163 173 173 / var(--tw-text-opacity)); -} -.site-footer{ - position: relative; - --tw-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--tw-bg-opacity)); - padding-bottom: 2.5rem; - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); - font-size: 13px; - font-size: 0.8125rem; - line-height: 20px; - line-height: 1.25rem; -} -@media (min-width: 48rem){ - .site-footer{ - font-size: 16px; - font-size: 1rem; - line-height: 25px; - line-height: 1.5625rem; - } -} -.site-footer__backTop{ - background-image: url("data:image/svg+xml,%3Csvg fill='none' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 25 27'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='m11.5 4.289-7.32 6.778L2.82 9.6 12.5.637 22.18 9.6l-1.36 1.467L13.5 4.29V27h-2V4.289Z' fill='%23fff'/%3E%3C/svg%3E"); - background-size: 24px; - position: absolute; - top: 1.875rem; - right: calc(var(--grid-gutter) * 2); - height: 2rem; - width: 2rem; - background-repeat: no-repeat; - text-indent: -9999px; - } -.site-footer__title{ - margin-bottom: 3.125rem; - display: flex; - align-items: flex-start; - padding-top: 2rem; -} -@media (min-width: 48rem){ - - .site-footer__title{ - padding-top: 1.5625rem; - } -} -.site-footer__title svg{ - margin-right: 1.25rem; - width: 1.875rem; -} -@media (min-width: 48rem){ - - .site-footer__title svg{ - display: none; - } -} -.site-footer__title p{ - --tw-translate-y: -0.5rem; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); - font-size: 20px; - font-size: 1.25rem; - line-height: 30px; - line-height: 1.875rem; -} -@media (min-width: 48rem){ - - .site-footer__title p{ - --tw-translate-y: 0px; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); - font-weight: 700; - font-size: 16px; - font-size: 1rem; - line-height: 25px; - line-height: 1.5625rem; - } -} -.site-footer__title p span{ - display: block; -} -@media (min-width: 48rem){ - - .site-footer__title p span{ - display: inline; - } -} -.site-footer__main{ - display: grid; - grid-template-columns: repeat(1, minmax(0, 1fr)); - gap: 1.875rem; -} -@media (min-width: 48rem){ - - .site-footer__main{ - grid-template-columns: repeat(2, minmax(0, 1fr)); - row-gap: 3.125rem; - } -} -@media (min-width: 80rem){ - - .site-footer__main{ - grid-template-columns: repeat(4, minmax(0, 1fr)); - } -} -.site-footer__main > div p{ - margin-bottom: 0px; - margin-bottom: 0; - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); - font-size: 13px; - font-size: 0.8125rem; - line-height: 20px; - line-height: 1.25rem; -} -@media (min-width: 48rem){ - .site-footer__main > div p{ - font-size: 16px; - font-size: 1rem; - line-height: 25px; - line-height: 1.5625rem; - } -} -.site-footer__main > div > span{ - font-weight: 700; -} -.site-footer__nav ul,.site-footer__social-links ul{ - margin-top: 0.9375rem; -} -.site-footer__nav ul li,.site-footer__social-links ul li{ - display: flex; - align-items: center; - border-top-width: 1px; - --tw-border-opacity: 1; - border-color: rgb(83 90 90 / var(--tw-border-opacity)); -} -@media (min-width: 48rem){ - - .site-footer__nav ul li,.site-footer__social-links ul li{ - border-top-width: 0px; - } -} -.site-footer__nav ul li:last-child,.site-footer__social-links ul li:last-child{ - border-bottom-width: 1px; -} -@media (min-width: 48rem){ - - .site-footer__nav ul li:last-child,.site-footer__social-links ul li:last-child{ - border-bottom-width: 0px; - } -} -.site-footer__nav ul li::before,.site-footer__social-links ul li::before{ - content: ''; - } -@media (min-width: 48rem){ -.site-footer__nav ul li::before,.site-footer__social-links ul li::before{ - content: none; - } - } -.site-footer__nav ul li::before,.site-footer__social-links ul li::before{ - background-image: url("data:image/svg+xml,%3Csvg fill='none' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 37 37'%3E%3Cpath d='m21.441 12.5 5.556 6m0 0-5.556 6m5.556-6H10' stroke='%23fff'/%3E%3C/svg%3E"); - margin-right: 0.625rem; - display: inline-block; - height: 2.25rem; - width: 2.25rem; - background-repeat: no-repeat; -} -.site-footer__colophon nav{ - margin-top: 3.125rem; - border-top-width: 1px; - --tw-border-opacity: 1; - border-color: rgb(255 255 255 / var(--tw-border-opacity)); - padding-top: 1.5625rem; -} -.site-footer__colophon nav ul{ - display: flex; -} -.site-footer__colophon nav ul li:not(:last-child){ - margin-right: 1.875rem; -} -.site-footer__colophon nav ul li a{ - font-size: 13px; - font-size: 0.8125rem; - line-height: 20px; - line-height: 1.25rem; -} -@media (min-width: 48rem){ - - .site-footer__colophon nav ul li a{ - font-size: 16px; - font-size: 1rem; - line-height: 25px; - line-height: 1.5625rem; - } -} -.hamburger-btn { - --hamburgerPadding: 8px; - --hamburgerWidth: 50px; - --hamburgerHeight: 50px; - --hamburgerLineWidth: 24px; - --hamburgerLineHeight: 2px; - --hamburgerMargin: 6px; - --hamburgerBackground: true; - --hamburgerBackgroundColor: transparent; - --hamburgerColor: #242424; - --hamburgerBorderRadius: false; - --hamburgerBorderRadiusPx: 0; - padding: var(--hamburgerPadding); - width: var(--hamburgerWidth); - height: var(--hamburgerHeight); - border-radius: var(--hamburgerBorderRadiusPx); - background: var(--hamburgerBackgroundColor); - position: relative; - display: flex; - cursor: pointer; - align-items: center; -} -.hamburger-btn:focus{ - /* outline: none; */ - } -.hamburger-btn span{ - margin: 0 auto; - display: inline-block; - position: relative; - top: 0; - width: var(--hamburgerLineWidth); - height: var(--hamburgerLineHeight); - border-radius: 5px; - background-color: var(--hamburgerColor); - /* transition: background-color .1s .1s ease; */ - display: block; - } -.hamburger-btn span::before, .hamburger-btn span::after{ - content: ''; - position: absolute; - width: var(--hamburgerLineWidth); - height: var(--hamburgerLineHeight); - border-radius: 5px; - background-color: var(--hamburgerColor); - display: block; - } -.hamburger-btn span::before{ - margin-top: calc(var(--hamburgerMargin) * -1); - transform: rotate(0deg); - /* transition: margin .2s .2s ease, transform .2s ease; */ - } -.hamburger-btn span::after{ - margin-top: var(--hamburgerMargin); - transform: rotate(0deg); - /* transition: margin .2s .2s ease, transform .2s ease; */ - } -.hamburger-btn.is-toggled span{ - background-color: transparent !important; - } -/* transition: background-color .2s ease; */ -.hamburger-btn.is-toggled span:before{ - margin-top: 0; - transform: rotate(45deg); - /* transition: margin .2s ease, transform .2s .2s ease; */ - } -.hamburger-btn.is-toggled span:after{ - margin-top: 0; - transform: rotate(-45deg); - /* transition: margin .2s ease, transform .2s .2s ease; */ - } -.site-header{ - transition: transform .5s ease; - position: sticky; - top: 0px; - z-index: 40; - --tw-translate-y: 0px; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); -} -body.has-menu-toggled .site-header{ - border-bottom-width: 1px; - --tw-border-opacity: 1; - border-color: rgb(0 0 0 / var(--tw-border-opacity)); -} -@media (min-width: 48rem){ - - body.has-menu-toggled .site-header{ - border-bottom-width: 0px; - } -} -@media (min-width: 80rem){ - - .site-header.is-hidden{ - --tw-translate-y: -100%; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); - } -} -.site-header-topbar{ - display: none; - height: 2.5rem; - align-items: center; - --tw-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--tw-bg-opacity)); - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); -} -@media (min-width: 80rem){ - - .site-header-topbar{ - display: flex; - } -} -.site-header-topbar__container{ - display: flex; - align-items: center; - justify-content: space-between; - font-size: 13px; - font-size: 0.8125rem; - line-height: 20px; - line-height: 1.25rem; -} -.site-header-topbar__container nav ul{ - display: flex; - align-items: center; -} -.site-header-topbar__container nav ul li a{ - } -.site-header-topbar__container nav ul li:not(:last-child){ - margin-right: 1.25rem; -} -.site-header-topbar__actions{ - display: flex; - align-items: center; -} -.site-header-topbar__actions .site-header-topbar__lang{ - margin-right: 0.9375rem; -} -.site-header-topbar__actions .site-header-topbar__search svg{ - display: block; - height: 2.25rem; - width: 22px; -} -.site-header-navbar{ - display: flex; - height: 3.125rem; - align-items: center; - --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity)); -} -@media (min-width: 80rem){ - - .site-header-navbar{ - height: 3.75rem; - } -} -.site-header-navbar__inner{ - display: flex; - align-items: center; - justify-content: space-between; - width: 100%; - padding-left: calc(var(--grid-gutter) * 2); - padding-right: calc(var(--grid-gutter) * 2); -} -@media (min-width: 48rem){ - - .site-header-navbar__inner{ - padding-left: 0px; - padding-left: 0; - padding-right: 0px; - padding-right: 0; - } -} -.site-header-navbar__inner{ - margin-left: var(--grid-offset); - } -@media (min-width: 48rem){ - .site-header-navbar__inner{ - width: calc(100vw - var(--grid-offset) - var(--grid-gutter)*2) - } - } -@media (min-width: 120rem){ - .site-header-navbar__inner{ - max-width: 120rem; - margin-left: max(var(--grid-offset), calc((100vw - 120rem)/2)) - } - } -.site-header-navbar__inner :where(.grid-container),.site-header-navbar__inner :where(.block-container), .block-container :where(.site-header-navbar__inner){ - margin-left: 0px; - margin-left: 0; - margin-right: 0px; - margin-right: 0; - width: 100%; - padding-left: 0px; - padding-left: 0; - padding-right: 0px; - padding-right: 0; -} - .block-container :where(.site-header-navbar__inner){ - margin-left: 0px; - margin-left: 0; - width: 100%; - padding-left: 0px; - padding-left: 0; - padding-right: 0px; - padding-right: 0; -} -.site-header-navbar__main{ - display: flex; - align-items: center; - justify-content: space-between; -} -@media (min-width: 80rem){ - - .site-header-navbar__main{ - width: 75%; - } -} -.site-header-navbar__main nav{ - display: none; -} -@media (min-width: 80rem){ - - .site-header-navbar__main nav{ - display: block; - } -} -.site-header-navbar__main nav ul li{ - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; -} -.site-header-navbar__main nav > ul{ - display: flex; - align-items: center; -} -.site-header-navbar__main nav > ul > li:not(:last-child){ - margin-right: 1.5rem; -} -@media (min-width: 80rem){ - - .site-header-navbar__main nav > ul > li:not(:last-child){ - margin-right: 2rem; - } -} -.site-header-navbar__main nav > ul > li > a{ - display: block; -} -.site-header-navbar__main nav > ul > li.is-toggled > a{ - font-weight: 700; -} -.site-header-navbar__main .site-header-navbar__actions{ - display: flex; - --tw-translate-x: calc(var(--grid-gutter) * 1.75); - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); - align-items: center; -} -@media (min-width: 80rem){ - - .site-header-navbar__main .site-header-navbar__actions{ - --tw-translate-x: calc(var(--grid-gutter) * 1.25); - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); - } -} -.site-header-navbar__main .site-header-navbar__actions > a{ - margin-right: 0.5rem; - --tw-translate-y: 1px; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); -} -@media (min-width: 80rem){ - - .site-header-navbar__main .site-header-navbar__actions > a{ - display: none; - } - - .site-header-navbar__main .site-header-navbar__actions .hamburger-btn{ - display: none; - } - - .site-header-navbar__main .site-header-navbar__actions .hamburger-btn.is-active{ - display: flex; - } -} -.site-header-navbar__title{ - font-weight: 700; -} -@media (min-width: 80rem){ - - .site-header-navbar__title{ - width: 25%; - } -} -.site-header-navbar-submenu li{ - /* .menu-item{ - @apply relative overflow-hidden; - &-overlay{ - @apply absolute z-10 !important; - @apply bg-black w-full h-full block overflow-hidden top-0 left-0 pointer-events-none opacity-100; - } - > a{ - transition: color .4s ease; - @apply block text-black; - } - &:hover{ - > a{ - @apply relative text-white z-20; - } - } - } */ - } -.site-header-navbar-submenu > li{ - margin-right: 0px; - margin-right: 0; -} -.site-header-navbar-submenu > li > a{ - display: inline-block; - width: 100%; - padding-top: 0.5rem; - padding-bottom: 0.5rem; - font-size: 13px; - font-size: 0.8125rem; - line-height: 20px; - line-height: 1.25rem; -} -.site-header-navbar-submenu > li > a:hover{ - --tw-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--tw-bg-opacity)); - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); -} -.site-header-navbar-submenu-0{ - padding-left: var(--grid-offset); - padding-right: calc(var(--grid-gutter) * 2); - orphans: 1; - transform: translateZ(0) translateY(calc(100% - 2px)); - pointer-events: none; - visibility: hidden; - position: absolute; - bottom: 0px; - left: 0px; - width: 100%; - -moz-columns: 3; - columns: 3; - -moz-column-gap: calc(var(--grid-gutter) * 2); - column-gap: calc(var(--grid-gutter) * 2); - --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity)); - padding-top: 2.5rem; - padding-bottom: 3.125rem; - opacity: 0; - } -.site-header-navbar-submenu-0.is-visible{ - pointer-events: auto; - visibility: visible; - opacity: 1; -} -.site-header-navbar-submenu-0.is-visible > li{ - opacity: 1; -} -.site-header-navbar-submenu-0.is-visible.is-closing > li{ - transition: opacity .1s ease; - opacity: 0; - } -.site-header.is-hidden .site-header-navbar__main .site-header-navbar-submenu-0{ - display: none; -} -.site-header-navbar-submenu-0 > li { - transition: opacity .25s ease .25s; - -moz-column-break-inside: avoid; - break-inside: avoid; - opacity: 0; - } -.site-header-navbar__main nav.is-toggled .site-header-navbar-submenu-0 > li{ - transition: none; -} -.site-header-navbar-submenu-0 > li > a{ - border-top-width: 1px; - border-bottom-width: 1px; - border-top-color: rgb(0 0 0 / var(--tw-border-opacity)); - --tw-border-opacity: 1; - border-bottom-color: rgb(211 216 216 / var(--tw-border-opacity)); - font-weight: 700; -} -.site-header-navbar-submenu-0 > li > a:first-child:last-child{ - border-bottom-width: 1px; - --tw-border-opacity: 1; - border-bottom-color: rgb(211 216 216 / var(--tw-border-opacity)); -} -.site-header-navbar-submenu:not(.site-header-navbar-submenu-0) > li{ - border-bottom-width: 1px; - --tw-border-opacity: 1; - border-color: rgb(211 216 216 / var(--tw-border-opacity)); -} -.site-header-navbar-submenu:not(.site-header-navbar-submenu-0) > li:hover > a{ - --tw-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--tw-bg-opacity)); - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); -} -.site-header-navbar-submenu:not(.site-header-navbar-submenu-0) > li > a{ - display: grid; - grid-template-columns: repeat(4, minmax(0, 1fr)); - -moz-column-gap: var(--size-ratio-base); - column-gap: var(--size-ratio-base); -} -.site-header-navbar-submenu:not(.site-header-navbar-submenu-0) > li > a > span{ - grid-column: 2 / 5; - } -#overlay{ - transition: all .5s ease; - pointer-events: none; - visibility: hidden; - position: fixed; - top: 0px; - left: 0px; - z-index: 30; - height: 100vh; - width: 100%; - background-color: rgb(0 0 0 / var(--tw-bg-opacity)); - --tw-bg-opacity: 0.5; - opacity: 0; -} -#overlay.is-active{ - pointer-events: auto; - visibility: visible; - opacity: 1; -} -.site-logo{ - transition: all .2s ease; - transform: translateY(0) translateX(-2px); - position: fixed; - bottom: 2.5rem; - left: 2.5rem; - z-index: 20; - display: none; - mix-blend-mode: difference; -} -@media (min-width: 48rem){ - - .site-logo{ - display: block; - } -} -.site-logo svg{ - width: 40px; - display: block; - } -.site-logo.is-visible{ - transform: translateY(0) translateX(-50%); - left: 0px; - } -body.footer-in-viewport .site-logo.is-visible{ - transform: translateY(0) translateX(-2px); - left: 2.5rem; -} -.block-marquee-images{ - --marquee-item-width: 66vw; -} -@media (min-width: 48rem){ -.block-marquee-images{ - --marquee-item-width: 40vw -} - } -@media (min-width: 62rem){ -.block-marquee-images{ - --marquee-item-width: 33vw -} - } -@media (min-width: 80rem){ -.block-marquee-images{ - --marquee-item-width: 25vw -} - } -.block-marquee-images{ - overflow-x: clip; - margin-bottom: 2.1875rem; - margin-left: calc(calc(var(--grid-gutter) * 2) * -1); -} -@media (min-width: 62rem){ - - .block-marquee-images{ - margin-left: 0px; - margin-left: 0; - } -} -/* @apply overflow-hidden mb-5; */ -.block-marquee-images__inner{ - display: flex; -} -.block-marquee-images__inner .block-marquee-images-item{ - width: var(--marquee-item-width); - margin-right: calc(var(--grid-gutter) * 2); - aspect-ratio: 1 / 1; - } -.block-marquee-images__inner .block-marquee-images-item img{ - height: 100%; - width: 100%; - -o-object-fit: cover; - object-fit: cover; -} -.block-marquee-images.is-hovered{ - position: relative; - z-index: 10; -} -/* .marquee-card{ - @apply relative bg-grey-100 p-4; - &--black{ - @apply bg-black; - p, span{ - @apply text-white; - } - } - &__content{ - @apply aspect-square flex flex-col justify-between; - } - .marquee-card-header, .marquee-card-main{ - @apply relative z-10; - } - .marquee-card-header{ - @apply flex justify-between text-grey-300; - } - .marquee-card-date{ - @apply text-size-sm; - } - .marquee-card-title{ - @apply text-size-md font-bold; - } - .marquee-card-bg{ - @apply absolute left-0 top-0 w-full h-full scale-125 origin-center opacity-0 pointer-events-none bg-black; - img{ - @apply w-full h-full bg-cover z-10 opacity-75; - } - } - &--has-background{ - &.is-hovered{ - @apply bg-transparent z-20; - p, span{ - @apply text-accent-200; - } - .marquee-card-bg{ - @apply opacity-100; - } - &::after{ - content: ''; - @apply w-full h-full border border-accent-200 absolute left-0 top-0; - } - } - } - &--has-keyword{ - .marquee-card-keyword{ - font-size: calc(70vw / var(--marquee-card-keyword-chars)); - @apply absolute top-[50%] left-[50%] translate-y-[-50%] translate-x-[-50%] opacity-0 pointer-events-none text-accent-200 whitespace-nowrap z-50; - } - &.is-hovered{ - @apply z-20 bg-white; - .marquee-card-header{ - span{ - @apply text-grey-300; - } - } - .marquee-card-main{ - p, span{ - @apply text-black; - } - } - .marquee-card-keyword{ - @apply opacity-100; - } - &::after{ - content: ''; - @apply w-full h-full border border-grey-200 absolute left-0 top-0; - } - } - } -} */ -.block-marquee-posts-grid{ - display: grid; - grid-template-columns: repeat(4, minmax(0, 1fr)); - gap: 1.25rem; -} -.block-marquee-posts-row{ - --marquee-card-width: 27.5vw; - /* @apply overflow-hidden mb-5; */ - overflow-x: clip; - margin-bottom: 1.25rem; -} -.block-marquee-posts-row__wrapper{ - display: flex; -} -.block-marquee-posts-row__wrapper .card{ - width: var(--marquee-card-width); - margin-right: 1.25rem; - } -.block-marquee-posts-row.is-hovered{ - position: relative; - z-index: 10; -} -/* .marquee-card{ - @apply relative bg-grey-100 p-4; - &--black{ - @apply bg-black; - p, span{ - @apply text-white; - } - } - &__content{ - @apply aspect-square flex flex-col justify-between; - } - .marquee-card-header, .marquee-card-main{ - @apply relative z-10; - } - .marquee-card-header{ - @apply flex justify-between text-grey-300; - } - .marquee-card-date{ - @apply text-size-sm; - } - .marquee-card-title{ - @apply text-size-md font-bold; - } - .marquee-card-bg{ - @apply absolute left-0 top-0 w-full h-full scale-125 origin-center opacity-0 pointer-events-none bg-black; - img{ - @apply w-full h-full bg-cover z-10 opacity-75; - } - } - &--has-background{ - &.is-hovered{ - @apply bg-transparent z-20; - p, span{ - @apply text-accent-200; - } - .marquee-card-bg{ - @apply opacity-100; - } - &::after{ - content: ''; - @apply w-full h-full border border-accent-200 absolute left-0 top-0; - } - } - } - &--has-keyword{ - .marquee-card-keyword{ - font-size: calc(70vw / var(--marquee-card-keyword-chars)); - @apply absolute top-[50%] left-[50%] translate-y-[-50%] translate-x-[-50%] opacity-0 pointer-events-none text-accent-200 whitespace-nowrap z-50; - } - &.is-hovered{ - @apply z-20 bg-white; - .marquee-card-header{ - span{ - @apply text-grey-300; - } - } - .marquee-card-main{ - p, span{ - @apply text-black; - } - } - .marquee-card-keyword{ - @apply opacity-100; - } - &::after{ - content: ''; - @apply w-full h-full border border-grey-200 absolute left-0 top-0; - } - } - } -} */ -.block-marquee-posts-grid{ - display: grid; - grid-template-columns: repeat(4, minmax(0, 1fr)); - gap: 1.25rem; -} -.menu-mobile{ - pointer-events: none; - visibility: hidden; - position: absolute; - z-index: 30; - margin-left: auto; - width: 100%; - max-width: 48rem; - overflow: hidden; - --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity)); - --tw-text-opacity: 1; - color: rgb(0 0 0 / var(--tw-text-opacity)); - opacity: 0; -} -@media (min-width: 48rem){ - - .menu-mobile{ - min-height: calc(var(--vh) - var(--header-height)); - width: calc((100% - (var(--grid-offset) - var(--grid-gutter) * 2))); - } -} -@media (min-width: 80rem){ - - .menu-mobile{ - display: none; - } -} -.menu-mobile.is-toggled{ - pointer-events: auto; - visibility: visible; - position: relative; - opacity: 1; -} -.menu-mobile nav ul li a{ - display: block; - padding-left: calc(var(--grid-gutter) * 2); - padding-right: calc(var(--grid-gutter) * 2); - padding-top: 0.375rem; -} -.menu-mobile .menu-mobile__primary{ - --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity)); - --tw-text-opacity: 1; - color: rgb(0 0 0 / var(--tw-text-opacity)); -} -.menu-mobile .menu-mobile__primary ul li{ - position: relative; -} -.menu-mobile .menu-mobile__primary ul li .menu-mobile-accordion-container{ - display: flex; -} -.menu-mobile .menu-mobile__primary ul li .menu-mobile-accordion-container a{ - min-height: 3.125rem; - width: calc(100% - 3.125rem); - display: block; - border-bottom-width: 1px; - border-right-width: 1px; - --tw-border-opacity: 1; - border-color: rgb(211 216 216 / var(--tw-border-opacity)); - padding-top: 0.875rem; - padding-bottom: 0.625rem; - font-weight: 700; - } -.menu-mobile .menu-mobile__primary ul li .menu-mobile-accordion-container button{ - display: flex; - width: 3.125rem; - flex-shrink: 0; - align-items: flex-start; - border-bottom-width: 1px; - --tw-border-opacity: 1; - border-color: rgb(211 216 216 / var(--tw-border-opacity)); -} -.menu-mobile .menu-mobile__primary ul li .menu-mobile-accordion-container button svg{ - pointer-events: none; - width: 100%; -} -.menu-mobile .menu-mobile__primary ul li ul{ - display: none; -} -.menu-mobile .menu-mobile__primary ul li ul li a{ - padding-left: calc(var(--grid-gutter) * 6); -} -.menu-mobile .menu-mobile__primary ul li.is-toggled > .menu-mobile-accordion-container button svg{ - --tw-rotate: 180deg; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); -} -.menu-mobile .menu-mobile__primary ul li.is-toggled > .menu-mobile-accordion-container + ul{ - display: block; - /* li{ - &:last-child{ - a{ - @apply border-b-black; - &:first-child:last-child{ - &::after{ - @apply border-black; - } - } - } - button{ - @apply border-black; - } - } - } */ -} -.menu-mobile .menu-mobile__primary ul:not(.menu-mobile-level-last) > li > .menu-mobile-accordion-container > a:first-child:last-child::after{ - content: ''; - position: absolute; - bottom: 0px; - right: 0px; - display: block; - width: 3.125rem; - border-bottom-width: 1px; - --tw-border-opacity: 1; - border-color: rgb(211 216 216 / var(--tw-border-opacity)); - } -.menu-mobile .menu-mobile__primary ul.menu-mobile-level-0 > li:not(.is-toggled) > .menu-mobile-accordion-container > a{ - --tw-border-opacity: 1; - border-bottom-color: rgb(0 0 0 / var(--tw-border-opacity)); -} -.menu-mobile .menu-mobile__primary ul.menu-mobile-level-0 > li:not(.is-toggled) > .menu-mobile-accordion-container > a:first-child:last-child::after{ - --tw-border-opacity: 1; - border-color: rgb(0 0 0 / var(--tw-border-opacity)); -} -.menu-mobile .menu-mobile__primary ul.menu-mobile-level-0 > li:not(.is-toggled) > .menu-mobile-accordion-container button{ - --tw-border-opacity: 1; - border-color: rgb(0 0 0 / var(--tw-border-opacity)); -} -.menu-mobile .menu-mobile__primary ul.menu-mobile-level-0 > li.is-toggled > ul > li:last-child > .menu-mobile-accordion-container > a{ - --tw-border-opacity: 1; - border-bottom-color: rgb(0 0 0 / var(--tw-border-opacity)); -} -.menu-mobile .menu-mobile__primary ul.menu-mobile-level-0 > li.is-toggled > ul > li:last-child > .menu-mobile-accordion-container > a:first-child:last-child::after{ - --tw-border-opacity: 1; - border-color: rgb(0 0 0 / var(--tw-border-opacity)); -} -.menu-mobile .menu-mobile__primary ul.menu-mobile-level-0 > li.is-toggled > ul > li:last-child > .menu-mobile-accordion-container button{ - --tw-border-opacity: 1; - border-color: rgb(0 0 0 / var(--tw-border-opacity)); -} -.menu-mobile .menu-mobile__primary ul.menu-mobile-level-last > li > .menu-mobile-accordion-container > a{ - font-weight: 400; -} -.menu-mobile .menu-mobile__primary ul.menu-mobile-level-last > li:last-child > .menu-mobile-accordion-container > a:first-child:last-child::after{ - content: ''; - position: absolute; - bottom: 0px; - right: 0px; - display: block; - width: 3.125rem; - border-bottom-width: 1px; - --tw-border-opacity: 1; - border-color: rgb(211 216 216 / var(--tw-border-opacity)); - } -.menu-mobile__secondary{ - --tw-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--tw-bg-opacity)); - padding-top: 0.625rem; - padding-bottom: 1.25rem; - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); -} -.post-archive-header{ - margin-top: 8rem; - margin-bottom: 4rem; - display: grid; - grid-template-columns: repeat(2, minmax(0, 1fr)); - -moz-column-gap: 1.25rem; - column-gap: 1.25rem; -} -.post-archive-header nav ul{ - display: flex; -} -.post-archive-header nav ul li a{ - --tw-text-opacity: 1; - color: rgb(163 173 173 / var(--tw-text-opacity)); - font-size: 20px; - font-size: 1.25rem; - line-height: 30px; - line-height: 1.875rem; -} -@media (min-width: 48rem){ - - .post-archive-header nav ul li a{ - font-size: 26px; - font-size: 1.625rem; - line-height: 35px; - line-height: 2.1875rem; - } -} -@media (min-width: 80rem){ - - .post-archive-header nav ul li a{ - font-size: 30px; - font-size: 1.875rem; - line-height: 40px; - line-height: 2.5rem; - } -} -.post-archive-header nav ul li a span{ - margin-left: 0.625rem; - margin-right: 0.25rem; - display: inline-block; - vertical-align: top; - font-size: 13px; - font-size: 0.8125rem; - line-height: 20px; - line-height: 1.25rem; -} -.post-archive-header nav ul li.is-active a{ - --tw-text-opacity: 1; - color: rgb(0 0 0 / var(--tw-text-opacity)); -} -.post-archive-header nav ul li:not(:last-child){ - margin-right: 1rem; -} -.post-archive-header nav ul li:not(:last-child)::after{ - content: ','; - --tw-text-opacity: 1; - color: rgb(0 0 0 / var(--tw-text-opacity)); - font-size: 20px; - font-size: 1.25rem; - line-height: 30px; - line-height: 1.875rem; - } -@media (min-width: 48rem){ - - .post-archive-header nav ul li:not(:last-child)::after{ - font-size: 26px; - font-size: 1.625rem; - line-height: 35px; - line-height: 2.1875rem; - } -} -@media (min-width: 80rem){ - - .post-archive-header nav ul li:not(:last-child)::after{ - font-size: 30px; - font-size: 1.875rem; - line-height: 40px; - line-height: 2.5rem; - } -} -.post-archive-header__description{ - margin-top: 0.5vw; - font-size: 20px; - font-size: 1.25rem; - line-height: 30px; - line-height: 1.875rem; - } -.post-archive-posts{ - margin-bottom: 10rem; -} -.secondary-nav-trigger{ - display: block; - height: 1px; - width: 100%; - background-color: transparent; -} -.secondary-nav{ - transition: top .5s ease, opacity .2s ease; - position: fixed; - top: var(--header-height); - z-index: 30; - display: flex; - width: 100vw; - align-items: center; - --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity)); - opacity: 0; -} -@media (min-width: 62rem){ - - .secondary-nav{ - top: 0px; - } -} -.secondary-nav::before{ - content: ''; - width: calc(100vw - var(--grid-gutter)*4); - } -@media (min-width: 48rem){ -.secondary-nav::before{ - width: calc(100vw - var(--grid-gutter)*2 - var(--grid-offset)); - } - } -.secondary-nav::before{ - position: absolute; - top: 0px; - left: calc(var(--grid-gutter) * 2); - height: 1px; - --tw-bg-opacity: 1; - background-color: rgb(211 216 216 / var(--tw-bg-opacity)); -} -@media (min-width: 48rem){ - - .secondary-nav::before{ - left: var(--grid-offset); - } -} -@media (min-width: 62rem){ - - .secondary-nav::before{ - display: none; - } -} -.secondary-nav::after{ - content: ''; - background: rgb(255,255,255); - background: linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 80%); - pointer-events: none; - position: absolute; - right: 0px; - height: 100%; - width: 3rem; - } -.secondary-nav ul{ - padding-left: calc(var(--grid-gutter) * 2); - padding-right: calc(var(--grid-gutter) * 2); - } -@media (min-width: 48rem){ -.secondary-nav ul{ - padding-left: var(--grid-offset); - padding-right: var(--secondary-nav-button-width) - } - } -.secondary-nav ul{ - display: flex; - overflow: auto; - white-space: nowrap; - -ms-overflow-style: none; - scrollbar-width: none; -} -/* IE and Edge */ -/* Firefox */ -.secondary-nav ul::-webkit-scrollbar { - display: none; - } -.secondary-nav ul{ - display: flex; - height: 3.125rem; - align-items: center; -} -@media (min-width: 80rem){ - - .secondary-nav ul{ - height: 3.75rem; - } -} -.secondary-nav ul li a{ - font-size: 16px; - font-size: 1rem; - line-height: 25px; - line-height: 1.5625rem; -} -.secondary-nav ul li:not(:last-child){ - margin-right: 1.875rem; -} -.secondary-nav > a{ - position: absolute; - right: -0px; - top: 0px; - z-index: 10; - display: none; - height: 100%; - align-items: center; - padding-top: 0.75rem; - padding-bottom: 0.75rem; - --tw-text-opacity: 1; - color: rgb(163 173 173 / var(--tw-text-opacity)); - font-size: 16px; - font-size: 1rem; - line-height: 25px; - line-height: 1.5625rem; -} -@media (min-width: 62rem){ - - .secondary-nav > a{ - display: flex; - } -} -.secondary-nav > a span{ - display: inline-flex; - align-items: center; - --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity)); - padding-right: calc(var(--grid-gutter) * 2); -} -.secondary-nav > a span::after{ - content: ''; - background-image: url("data:image/svg+xml,%3Csvg fill='none' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 25 25'%3E%3Cpath d='m14.333 8 4.167 4.5m0 0L14.333 17m4.167-4.5H6' stroke='%23A3ADAD'/%3E%3C/svg%3E"); - background-size: 100%; - margin-left: 0.625rem; - aspect-ratio: 1 / 1; - width: 1.875rem; - background-position: center; - background-repeat: no-repeat; - } -.secondary-nav > a::before{ - content: ''; - background: rgb(255,255,255); - background: linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 80%); - height: 100%; - width: 4rem; - } -.secondary-nav.is-stacked{ - top: var(--header-height); -} -.secondary-nav.is-visible{ - opacity: 1; -} -.tease-wrapper{ - display: grid; - -moz-column-gap: 1.25rem; - column-gap: 1.25rem; - row-gap: 3.5rem; -} -@media (min-width: 48rem){ - - .tease-wrapper{ - grid-template-columns: repeat(2, minmax(0, 1fr)); - } -} -@media (min-width: 62rem){ - - .tease-wrapper{ - grid-template-columns: repeat(3, minmax(0, 1fr)); - } -} -@media (min-width: 80rem){ - - .tease-wrapper{ - grid-template-columns: repeat(4, minmax(0, 1fr)); - } -} -/* @TODO */ -@media not all and (min-width: 80rem){ - - @media (min-width: 62rem){ - - .tease-wrapper .tease:nth-child(4){ - display: none; - } - } -} -.tease__title{ - margin-bottom: var(--size-ratio-base); - font-size: 30px; - font-size: 1.875rem; - line-height: 40px; - line-height: 2.5rem; -} -@media (min-width: 48rem){ - - .tease__title{ - font-size: 40px; - font-size: 2.5rem; - line-height: 50px; - line-height: 3.125rem; - } -} -@media (min-width: 80rem){ - - .tease__title{ - font-size: 44px; - font-size: 2.75rem; - line-height: 55px; - line-height: 3.4375rem; - } -} -.tease__img{ - margin-bottom: var(--size-ratio-base); - aspect-ratio: 3/2; -} -.tease__img img{ - height: 100%; - width: 100%; - -o-object-fit: cover; - object-fit: cover; - -o-object-position: top; - object-position: top; -} -/* @todo */ -.tease--sm{ - position: relative; - aspect-ratio: 1 / 1; - overflow: hidden; -} -.tease--sm .tease__img{ - transition: height .2s ease; - position: absolute; - top: 0px; - left: 0px; - width: 100%; - --tw-bg-opacity: 1; - background-color: rgb(237 242 242 / var(--tw-bg-opacity)); - } -.tease--sm .tease__main .tease-main-header{ - display: flex; - justify-content: space-between; - padding-top: 0.75rem; - padding-bottom: 0.75rem; - --tw-text-opacity: 1; - color: rgb(163 173 173 / var(--tw-text-opacity)); - font-size: 13px; - font-size: 0.8125rem; - line-height: 20px; - line-height: 1.25rem; -} -.tease--sm .tease__main .tease-main-title{ - font-weight: 700; - font-size: 20px; - font-size: 1.25rem; - line-height: 30px; - line-height: 1.875rem; -} -.tease--sm:hover .tease__img{ - height: 100% !important; -} -.tease--sm:hover .tease__main{ - } -.archive-degrees-degree{ - margin-bottom: 4.5rem; -} -.archive-degrees-degree h2{ - font-size: 30px; - font-size: 1.875rem; - line-height: 40px; - line-height: 2.5rem; -} -@media (min-width: 48rem){ - - .archive-degrees-degree h2{ - font-size: 40px; - font-size: 2.5rem; - line-height: 50px; - line-height: 3.125rem; - } -} -@media (min-width: 80rem){ - - .archive-degrees-degree h2{ - font-size: 58px; - font-size: 3.625rem; - line-height: 70px; - line-height: 4.375rem; - } -} -.archive-degrees-degree .block-grid-list{ - margin-top: 4.5rem; -} -.archive-degrees-degree a.block-link{ - margin-top: 3.125rem; -} -.course-module{ - margin-top: 4.5rem; -} -.course-module + .course-module{ - margin-top: 3.125rem; -} -.course-module__title{ - margin-bottom: 1.125rem; - font-weight: 700; - width: 100%; - padding-left: calc(var(--grid-gutter) * 2); - padding-right: calc(var(--grid-gutter) * 2); -} -@media (min-width: 48rem){ - - .course-module__title{ - padding-left: 0px; - padding-left: 0; - padding-right: 0px; - padding-right: 0; - } -} -.course-module__title{ - margin-left: var(--grid-offset); - } -@media (min-width: 48rem){ - .course-module__title{ - width: calc(100vw - var(--grid-offset) - var(--grid-gutter)*2) - } - } -@media (min-width: 120rem){ - .course-module__title{ - max-width: 120rem; - margin-left: max(var(--grid-offset), calc((100vw - 120rem)/2)) - } - } -.course-module__title :where(.grid-container),.course-module__title :where(.block-container), .block-container :where(.course-module__title){ - margin-left: 0px; - margin-left: 0; - margin-right: 0px; - margin-right: 0; - width: 100%; - padding-left: 0px; - padding-left: 0; - padding-right: 0px; - padding-right: 0; -} - .block-container :where(.course-module__title){ - margin-left: 0px; - margin-left: 0; - width: 100%; - padding-left: 0px; - padding-left: 0; - padding-right: 0px; - padding-right: 0; -} -.degree-cols{ - /* grid-auto-rows: auto; - @apply grid-container grid lg:grid-cols-2 gap-x-[calc(var(--grid-gutter)*2)] pt-[var(--grid-offset)]; */ - margin-top: 0px; - margin-top: 0; - -moz-column-gap: calc(var(--grid-gutter) * 2); - column-gap: calc(var(--grid-gutter) * 2); - width: 100%; - padding-left: calc(var(--grid-gutter) * 2); - padding-right: calc(var(--grid-gutter) * 2); -} -@media (min-width: 48rem){ - - .degree-cols{ - padding-left: 0px; - padding-left: 0; - padding-right: 0px; - padding-right: 0; - } -} -.degree-cols{ - margin-left: var(--grid-offset); - } -@media (min-width: 48rem){ - .degree-cols{ - width: calc(100vw - var(--grid-offset) - var(--grid-gutter)*2) - } - } -@media (min-width: 120rem){ - .degree-cols{ - max-width: 120rem; - margin-left: max(var(--grid-offset), calc((100vw - 120rem)/2)) - } - } -.degree-cols :where(.grid-container),.degree-cols :where(.block-container), .block-container :where(.degree-cols){ - margin-left: 0px; - margin-left: 0; - margin-right: 0px; - margin-right: 0; - width: 100%; - padding-left: 0px; - padding-left: 0; - padding-right: 0px; - padding-right: 0; -} - .block-container :where(.degree-cols){ - margin-left: 0px; - margin-left: 0; - width: 100%; - padding-left: 0px; - padding-left: 0; - padding-right: 0px; - padding-right: 0; -} -@media (min-width: 62rem){ - - .degree-cols{ - display: flex; - } - - .degree-cols > *{ - width: 50%; - } - - .degree-cols__col{ - order: 2; - } -} -.degree-cols__col:not(.course-cols__col-info){ - margin-bottom: 4.5rem; -} -@media (min-width: 62rem){ - - .degree-cols__col:not(.course-cols__col-info){ - margin-bottom: 0px; - margin-bottom: 0; - } -} -.degree-cols__col-info{ - top: 4rem; - height: 100%; -} -@media (min-width: 62rem){ - - .degree-cols__col-info{ - order: 1; - } -} -@media (min-width: 80rem){ - - .degree-cols__col-info{ - position: sticky; - } -} -.degree-cols__col-info .block-grid-list{ - margin-bottom: 3.125rem; -} -body.single-degree section{ - scroll-margin-top: var(--secondary-nav-height); - } -@media (min-width: 62rem){ - - .lg\:block{ - display: block; - } - - .lg\:hidden{ - display: none; - } - - .lg\:w-3\/4{ - width: 75%; - } - - .lg\:w-1\/2{ - width: 50%; - } -} \ No newline at end of file diff --git a/build/assets/fonts/standard-bold-italic-webfont.eot b/build/assets/fonts/standard-bold-italic-webfont.eot deleted file mode 100755 index d2d33b9..0000000 --- a/build/assets/fonts/standard-bold-italic-webfont.eot +++ /dev/null Binary files differ diff --git a/build/assets/fonts/standard-bold-italic-webfont.ttf b/build/assets/fonts/standard-bold-italic-webfont.ttf deleted file mode 100755 index 7bb1e33..0000000 --- a/build/assets/fonts/standard-bold-italic-webfont.ttf +++ /dev/null Binary files differ diff --git a/build/assets/fonts/standard-bold-italic-webfont.woff b/build/assets/fonts/standard-bold-italic-webfont.woff deleted file mode 100755 index 57d9ef5..0000000 --- a/build/assets/fonts/standard-bold-italic-webfont.woff +++ /dev/null Binary files differ diff --git a/build/assets/fonts/standard-bold-italic-webfont.woff2 b/build/assets/fonts/standard-bold-italic-webfont.woff2 deleted file mode 100755 index bc6c49c..0000000 --- a/build/assets/fonts/standard-bold-italic-webfont.woff2 +++ /dev/null Binary files differ diff --git a/build/assets/fonts/standard-bold-webfont.eot b/build/assets/fonts/standard-bold-webfont.eot deleted file mode 100755 index 4fc3f04..0000000 --- a/build/assets/fonts/standard-bold-webfont.eot +++ /dev/null Binary files differ diff --git a/build/assets/fonts/standard-bold-webfont.ttf b/build/assets/fonts/standard-bold-webfont.ttf deleted file mode 100755 index 387901b..0000000 --- a/build/assets/fonts/standard-bold-webfont.ttf +++ /dev/null Binary files differ diff --git a/build/assets/fonts/standard-bold-webfont.woff b/build/assets/fonts/standard-bold-webfont.woff deleted file mode 100755 index 7d85e52..0000000 --- a/build/assets/fonts/standard-bold-webfont.woff +++ /dev/null Binary files differ diff --git a/build/assets/fonts/standard-bold-webfont.woff2 b/build/assets/fonts/standard-bold-webfont.woff2 deleted file mode 100755 index 2a34b70..0000000 --- a/build/assets/fonts/standard-bold-webfont.woff2 +++ /dev/null Binary files differ diff --git a/build/assets/fonts/standard-book-italic-webfont.eot b/build/assets/fonts/standard-book-italic-webfont.eot deleted file mode 100755 index 18b2bcc..0000000 --- a/build/assets/fonts/standard-book-italic-webfont.eot +++ /dev/null Binary files differ diff --git a/build/assets/fonts/standard-book-italic-webfont.ttf b/build/assets/fonts/standard-book-italic-webfont.ttf deleted file mode 100755 index 9f8c229..0000000 --- a/build/assets/fonts/standard-book-italic-webfont.ttf +++ /dev/null Binary files differ diff --git a/build/assets/fonts/standard-book-italic-webfont.woff b/build/assets/fonts/standard-book-italic-webfont.woff deleted file mode 100755 index c8fd81c..0000000 --- a/build/assets/fonts/standard-book-italic-webfont.woff +++ /dev/null Binary files differ diff --git a/build/assets/fonts/standard-book-italic-webfont.woff2 b/build/assets/fonts/standard-book-italic-webfont.woff2 deleted file mode 100755 index e7da342..0000000 --- a/build/assets/fonts/standard-book-italic-webfont.woff2 +++ /dev/null Binary files differ diff --git a/build/assets/fonts/standard-book-webfont.eot b/build/assets/fonts/standard-book-webfont.eot deleted file mode 100755 index 8772c38..0000000 --- a/build/assets/fonts/standard-book-webfont.eot +++ /dev/null Binary files differ diff --git a/build/assets/fonts/standard-book-webfont.ttf b/build/assets/fonts/standard-book-webfont.ttf deleted file mode 100755 index cd01fe5..0000000 --- a/build/assets/fonts/standard-book-webfont.ttf +++ /dev/null Binary files differ diff --git a/build/assets/fonts/standard-book-webfont.woff b/build/assets/fonts/standard-book-webfont.woff deleted file mode 100755 index ba0e4a3..0000000 --- a/build/assets/fonts/standard-book-webfont.woff +++ /dev/null Binary files differ diff --git a/build/assets/fonts/standard-book-webfont.woff2 b/build/assets/fonts/standard-book-webfont.woff2 deleted file mode 100755 index 7926e8d..0000000 --- a/build/assets/fonts/standard-book-webfont.woff2 +++ /dev/null Binary files differ diff --git a/build/assets/img/blocks/hero-banner/hero-1.jpeg b/build/assets/img/blocks/hero-banner/hero-1.jpeg deleted file mode 100644 index 765ed6d..0000000 --- a/build/assets/img/blocks/hero-banner/hero-1.jpeg +++ /dev/null Binary files differ diff --git a/build/assets/img/blocks/hero-banner/hero-1.webp b/build/assets/img/blocks/hero-banner/hero-1.webp deleted file mode 100644 index e37db5a..0000000 --- a/build/assets/img/blocks/hero-banner/hero-1.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/blocks/hero-banner/hero-2.jpeg b/build/assets/img/blocks/hero-banner/hero-2.jpeg deleted file mode 100644 index 43ec913..0000000 --- a/build/assets/img/blocks/hero-banner/hero-2.jpeg +++ /dev/null Binary files differ diff --git a/build/assets/img/blocks/hero-banner/hero-2.webp b/build/assets/img/blocks/hero-banner/hero-2.webp deleted file mode 100644 index b706540..0000000 --- a/build/assets/img/blocks/hero-banner/hero-2.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/blocks/hero-banner/hero-3.jpeg b/build/assets/img/blocks/hero-banner/hero-3.jpeg deleted file mode 100644 index 7263c01..0000000 --- a/build/assets/img/blocks/hero-banner/hero-3.jpeg +++ /dev/null Binary files differ diff --git a/build/assets/img/blocks/hero-banner/hero-3.webp b/build/assets/img/blocks/hero-banner/hero-3.webp deleted file mode 100644 index c85be17..0000000 --- a/build/assets/img/blocks/hero-banner/hero-3.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/blocks/hero-banner/hero-4.jpeg b/build/assets/img/blocks/hero-banner/hero-4.jpeg deleted file mode 100644 index 8963e5c..0000000 --- a/build/assets/img/blocks/hero-banner/hero-4.jpeg +++ /dev/null Binary files differ diff --git a/build/assets/img/blocks/hero-banner/hero-4.webp b/build/assets/img/blocks/hero-banner/hero-4.webp deleted file mode 100644 index 9a59f62..0000000 --- a/build/assets/img/blocks/hero-banner/hero-4.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/blocks/hero-banner/hero-banner-architettura.jpg b/build/assets/img/blocks/hero-banner/hero-banner-architettura.jpg deleted file mode 100644 index bad64f7..0000000 --- a/build/assets/img/blocks/hero-banner/hero-banner-architettura.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/blocks/hero-banner/hero-banner-architettura.webp b/build/assets/img/blocks/hero-banner/hero-banner-architettura.webp deleted file mode 100644 index f3ce73e..0000000 --- a/build/assets/img/blocks/hero-banner/hero-banner-architettura.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/blocks/hero-banner/hero-banner-arti.jpg b/build/assets/img/blocks/hero-banner/hero-banner-arti.jpg deleted file mode 100644 index 49f286c..0000000 --- a/build/assets/img/blocks/hero-banner/hero-banner-arti.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/blocks/hero-banner/hero-banner-arti.webp b/build/assets/img/blocks/hero-banner/hero-banner-arti.webp deleted file mode 100644 index 35e75ed..0000000 --- a/build/assets/img/blocks/hero-banner/hero-banner-arti.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/blocks/hero-banner/hero-banner-design.jpg b/build/assets/img/blocks/hero-banner/hero-banner-design.jpg deleted file mode 100644 index 0ad00af..0000000 --- a/build/assets/img/blocks/hero-banner/hero-banner-design.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/blocks/hero-banner/hero-banner-design.webp b/build/assets/img/blocks/hero-banner/hero-banner-design.webp deleted file mode 100644 index 45eb3ab..0000000 --- a/build/assets/img/blocks/hero-banner/hero-banner-design.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/blocks/hero-banner/hero-banner-territorio.jpg b/build/assets/img/blocks/hero-banner/hero-banner-territorio.jpg deleted file mode 100644 index 36bac19..0000000 --- a/build/assets/img/blocks/hero-banner/hero-banner-territorio.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/blocks/hero-banner/hero-banner-territorio.webp b/build/assets/img/blocks/hero-banner/hero-banner-territorio.webp deleted file mode 100644 index 6acb4f7..0000000 --- a/build/assets/img/blocks/hero-banner/hero-banner-territorio.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/blocks/images-grid/gallery-1.jpeg b/build/assets/img/blocks/images-grid/gallery-1.jpeg deleted file mode 100644 index 372e21c..0000000 --- a/build/assets/img/blocks/images-grid/gallery-1.jpeg +++ /dev/null Binary files differ diff --git a/build/assets/img/blocks/images-grid/gallery-1.webp b/build/assets/img/blocks/images-grid/gallery-1.webp deleted file mode 100644 index fa334be..0000000 --- a/build/assets/img/blocks/images-grid/gallery-1.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/blocks/images-grid/gallery-2.jpeg b/build/assets/img/blocks/images-grid/gallery-2.jpeg deleted file mode 100644 index ce7acf9..0000000 --- a/build/assets/img/blocks/images-grid/gallery-2.jpeg +++ /dev/null Binary files differ diff --git a/build/assets/img/blocks/images-grid/gallery-2.webp b/build/assets/img/blocks/images-grid/gallery-2.webp deleted file mode 100644 index a294e26..0000000 --- a/build/assets/img/blocks/images-grid/gallery-2.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/blocks/images-grid/gallery-3.jpeg b/build/assets/img/blocks/images-grid/gallery-3.jpeg deleted file mode 100644 index f4a9f41..0000000 --- a/build/assets/img/blocks/images-grid/gallery-3.jpeg +++ /dev/null Binary files differ diff --git a/build/assets/img/blocks/images-grid/gallery-3.webp b/build/assets/img/blocks/images-grid/gallery-3.webp deleted file mode 100644 index c462dd0..0000000 --- a/build/assets/img/blocks/images-grid/gallery-3.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/blocks/images-grid/gallery-4.jpeg b/build/assets/img/blocks/images-grid/gallery-4.jpeg deleted file mode 100644 index 13ca777..0000000 --- a/build/assets/img/blocks/images-grid/gallery-4.jpeg +++ /dev/null Binary files differ diff --git a/build/assets/img/blocks/images-grid/gallery-4.webp b/build/assets/img/blocks/images-grid/gallery-4.webp deleted file mode 100644 index aeb8720..0000000 --- a/build/assets/img/blocks/images-grid/gallery-4.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/blocks/images-grid/gallery-5.jpeg b/build/assets/img/blocks/images-grid/gallery-5.jpeg deleted file mode 100644 index fd086eb..0000000 --- a/build/assets/img/blocks/images-grid/gallery-5.jpeg +++ /dev/null Binary files differ diff --git a/build/assets/img/blocks/images-grid/gallery-5.webp b/build/assets/img/blocks/images-grid/gallery-5.webp deleted file mode 100644 index daa4a90..0000000 --- a/build/assets/img/blocks/images-grid/gallery-5.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/blocks/images-grid/img-1.jpg b/build/assets/img/blocks/images-grid/img-1.jpg deleted file mode 100644 index d0a5b90..0000000 --- a/build/assets/img/blocks/images-grid/img-1.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/blocks/images-grid/img-1.webp b/build/assets/img/blocks/images-grid/img-1.webp deleted file mode 100644 index 8c36d54..0000000 --- a/build/assets/img/blocks/images-grid/img-1.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/blocks/images-grid/img-2.jpg b/build/assets/img/blocks/images-grid/img-2.jpg deleted file mode 100644 index fada8cd..0000000 --- a/build/assets/img/blocks/images-grid/img-2.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/blocks/images-grid/img-2.webp b/build/assets/img/blocks/images-grid/img-2.webp deleted file mode 100644 index b983d1d..0000000 --- a/build/assets/img/blocks/images-grid/img-2.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/blocks/images-grid/img-3.jpg b/build/assets/img/blocks/images-grid/img-3.jpg deleted file mode 100644 index 083f65c..0000000 --- a/build/assets/img/blocks/images-grid/img-3.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/blocks/images-grid/img-3.webp b/build/assets/img/blocks/images-grid/img-3.webp deleted file mode 100644 index a01a6b6..0000000 --- a/build/assets/img/blocks/images-grid/img-3.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/blocks/images-grid/img-4.jpg b/build/assets/img/blocks/images-grid/img-4.jpg deleted file mode 100644 index 0c090b1..0000000 --- a/build/assets/img/blocks/images-grid/img-4.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/blocks/images-grid/img-4.webp b/build/assets/img/blocks/images-grid/img-4.webp deleted file mode 100644 index bd120f9..0000000 --- a/build/assets/img/blocks/images-grid/img-4.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/blocks/images-grid/img-5.jpg b/build/assets/img/blocks/images-grid/img-5.jpg deleted file mode 100644 index fbd66bd..0000000 --- a/build/assets/img/blocks/images-grid/img-5.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/blocks/images-grid/img-5.webp b/build/assets/img/blocks/images-grid/img-5.webp deleted file mode 100644 index 63ae7e1..0000000 --- a/build/assets/img/blocks/images-grid/img-5.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/icons/chevron-down.svg b/build/assets/img/icons/chevron-down.svg deleted file mode 100644 index e69de29..0000000 --- a/build/assets/img/icons/chevron-down.svg +++ /dev/null diff --git a/build/assets/img/icons/chevron.svg b/build/assets/img/icons/chevron.svg deleted file mode 100644 index 73cb48e..0000000 --- a/build/assets/img/icons/chevron.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/build/assets/img/icons/close.svg b/build/assets/img/icons/close.svg deleted file mode 100644 index d75a33b..0000000 --- a/build/assets/img/icons/close.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/build/assets/img/icons/search.svg b/build/assets/img/icons/search.svg deleted file mode 100644 index 62cfb00..0000000 --- a/build/assets/img/icons/search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/build/assets/img/logo.svg b/build/assets/img/logo.svg deleted file mode 100644 index 7f114d2..0000000 --- a/build/assets/img/logo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/build/assets/img/post_type/corsi/Image-1.jpg b/build/assets/img/post_type/corsi/Image-1.jpg deleted file mode 100644 index f3b268d..0000000 --- a/build/assets/img/post_type/corsi/Image-1.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/Image-1.webp b/build/assets/img/post_type/corsi/Image-1.webp deleted file mode 100644 index 91c6f40..0000000 --- a/build/assets/img/post_type/corsi/Image-1.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/Image-2.jpg b/build/assets/img/post_type/corsi/Image-2.jpg deleted file mode 100644 index 5bda009..0000000 --- a/build/assets/img/post_type/corsi/Image-2.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/Image-2.webp b/build/assets/img/post_type/corsi/Image-2.webp deleted file mode 100644 index f27c199..0000000 --- a/build/assets/img/post_type/corsi/Image-2.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/Image-3.jpg b/build/assets/img/post_type/corsi/Image-3.jpg deleted file mode 100644 index dbad894..0000000 --- a/build/assets/img/post_type/corsi/Image-3.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/Image-3.webp b/build/assets/img/post_type/corsi/Image-3.webp deleted file mode 100644 index b2c5078..0000000 --- a/build/assets/img/post_type/corsi/Image-3.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/Image-4.jpg b/build/assets/img/post_type/corsi/Image-4.jpg deleted file mode 100644 index ef52c95..0000000 --- a/build/assets/img/post_type/corsi/Image-4.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/Image-4.webp b/build/assets/img/post_type/corsi/Image-4.webp deleted file mode 100644 index 1ba3fd9..0000000 --- a/build/assets/img/post_type/corsi/Image-4.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/Image.jpg b/build/assets/img/post_type/corsi/Image.jpg deleted file mode 100644 index fb6972f..0000000 --- a/build/assets/img/post_type/corsi/Image.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/Image.webp b/build/assets/img/post_type/corsi/Image.webp deleted file mode 100644 index 9115e1f..0000000 --- a/build/assets/img/post_type/corsi/Image.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/architettura-2.jpg b/build/assets/img/post_type/corsi/architettura-2.jpg deleted file mode 100644 index ad15def..0000000 --- a/build/assets/img/post_type/corsi/architettura-2.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/architettura-2.webp b/build/assets/img/post_type/corsi/architettura-2.webp deleted file mode 100644 index c38d3c2..0000000 --- a/build/assets/img/post_type/corsi/architettura-2.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/architettura-3.jpg b/build/assets/img/post_type/corsi/architettura-3.jpg deleted file mode 100644 index e660e00..0000000 --- a/build/assets/img/post_type/corsi/architettura-3.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/architettura-3.webp b/build/assets/img/post_type/corsi/architettura-3.webp deleted file mode 100644 index 83a90eb..0000000 --- a/build/assets/img/post_type/corsi/architettura-3.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/architettura-4.jpg b/build/assets/img/post_type/corsi/architettura-4.jpg deleted file mode 100644 index 1cb6a5c..0000000 --- a/build/assets/img/post_type/corsi/architettura-4.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/architettura-4.webp b/build/assets/img/post_type/corsi/architettura-4.webp deleted file mode 100644 index 369f7e4..0000000 --- a/build/assets/img/post_type/corsi/architettura-4.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/architettura-5.jpg b/build/assets/img/post_type/corsi/architettura-5.jpg deleted file mode 100644 index b4ff2a9..0000000 --- a/build/assets/img/post_type/corsi/architettura-5.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/architettura-5.webp b/build/assets/img/post_type/corsi/architettura-5.webp deleted file mode 100644 index f2ae467..0000000 --- a/build/assets/img/post_type/corsi/architettura-5.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/architettura-6.jpg b/build/assets/img/post_type/corsi/architettura-6.jpg deleted file mode 100644 index 4cd9758..0000000 --- a/build/assets/img/post_type/corsi/architettura-6.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/architettura-6.webp b/build/assets/img/post_type/corsi/architettura-6.webp deleted file mode 100644 index 5c11bc0..0000000 --- a/build/assets/img/post_type/corsi/architettura-6.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/architettura-7.jpg b/build/assets/img/post_type/corsi/architettura-7.jpg deleted file mode 100644 index e983754..0000000 --- a/build/assets/img/post_type/corsi/architettura-7.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/architettura-7.webp b/build/assets/img/post_type/corsi/architettura-7.webp deleted file mode 100644 index c6307d5..0000000 --- a/build/assets/img/post_type/corsi/architettura-7.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/architettura-8.jpg b/build/assets/img/post_type/corsi/architettura-8.jpg deleted file mode 100644 index 283087d..0000000 --- a/build/assets/img/post_type/corsi/architettura-8.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/architettura-8.webp b/build/assets/img/post_type/corsi/architettura-8.webp deleted file mode 100644 index 9d4dc40..0000000 --- a/build/assets/img/post_type/corsi/architettura-8.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/architettura.jpg b/build/assets/img/post_type/corsi/architettura.jpg deleted file mode 100644 index 93a74aa..0000000 --- a/build/assets/img/post_type/corsi/architettura.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/architettura.webp b/build/assets/img/post_type/corsi/architettura.webp deleted file mode 100644 index fc3cd84..0000000 --- a/build/assets/img/post_type/corsi/architettura.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-1.jpg b/build/assets/img/post_type/corsi/design-1.jpg deleted file mode 100644 index dd064d3..0000000 --- a/build/assets/img/post_type/corsi/design-1.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-1.webp b/build/assets/img/post_type/corsi/design-1.webp deleted file mode 100644 index 486d259..0000000 --- a/build/assets/img/post_type/corsi/design-1.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-2.jpg b/build/assets/img/post_type/corsi/design-2.jpg deleted file mode 100644 index 58f678f..0000000 --- a/build/assets/img/post_type/corsi/design-2.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-2.webp b/build/assets/img/post_type/corsi/design-2.webp deleted file mode 100644 index b607134..0000000 --- a/build/assets/img/post_type/corsi/design-2.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-3.jpg b/build/assets/img/post_type/corsi/design-3.jpg deleted file mode 100644 index 1021934..0000000 --- a/build/assets/img/post_type/corsi/design-3.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-3.webp b/build/assets/img/post_type/corsi/design-3.webp deleted file mode 100644 index 4ab924f..0000000 --- a/build/assets/img/post_type/corsi/design-3.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-4.jpg b/build/assets/img/post_type/corsi/design-4.jpg deleted file mode 100644 index fb9e3cb..0000000 --- a/build/assets/img/post_type/corsi/design-4.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-4.webp b/build/assets/img/post_type/corsi/design-4.webp deleted file mode 100644 index ac18ad6..0000000 --- a/build/assets/img/post_type/corsi/design-4.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-5.jpg b/build/assets/img/post_type/corsi/design-5.jpg deleted file mode 100644 index f9da44a..0000000 --- a/build/assets/img/post_type/corsi/design-5.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-5.webp b/build/assets/img/post_type/corsi/design-5.webp deleted file mode 100644 index 3e6358c..0000000 --- a/build/assets/img/post_type/corsi/design-5.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-c-1.jpg b/build/assets/img/post_type/corsi/design-c-1.jpg deleted file mode 100644 index 958747a..0000000 --- a/build/assets/img/post_type/corsi/design-c-1.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-c-1.webp b/build/assets/img/post_type/corsi/design-c-1.webp deleted file mode 100644 index 3f0d69f..0000000 --- a/build/assets/img/post_type/corsi/design-c-1.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-c-2.jpg b/build/assets/img/post_type/corsi/design-c-2.jpg deleted file mode 100644 index 0dd21fe..0000000 --- a/build/assets/img/post_type/corsi/design-c-2.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-c-2.webp b/build/assets/img/post_type/corsi/design-c-2.webp deleted file mode 100644 index f4b8a70..0000000 --- a/build/assets/img/post_type/corsi/design-c-2.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-c-3.jpg b/build/assets/img/post_type/corsi/design-c-3.jpg deleted file mode 100644 index 0995946..0000000 --- a/build/assets/img/post_type/corsi/design-c-3.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-c-3.webp b/build/assets/img/post_type/corsi/design-c-3.webp deleted file mode 100644 index 44d2ab0..0000000 --- a/build/assets/img/post_type/corsi/design-c-3.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-c-4.jpg b/build/assets/img/post_type/corsi/design-c-4.jpg deleted file mode 100644 index 5a06aee..0000000 --- a/build/assets/img/post_type/corsi/design-c-4.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-c-4.webp b/build/assets/img/post_type/corsi/design-c-4.webp deleted file mode 100644 index a76fb2a..0000000 --- a/build/assets/img/post_type/corsi/design-c-4.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-c-5.jpg b/build/assets/img/post_type/corsi/design-c-5.jpg deleted file mode 100644 index 822ba6b..0000000 --- a/build/assets/img/post_type/corsi/design-c-5.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-c-5.webp b/build/assets/img/post_type/corsi/design-c-5.webp deleted file mode 100644 index eed4aa4..0000000 --- a/build/assets/img/post_type/corsi/design-c-5.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-lab.jpg b/build/assets/img/post_type/corsi/design-lab.jpg deleted file mode 100644 index 4530b7c..0000000 --- a/build/assets/img/post_type/corsi/design-lab.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-lab.webp b/build/assets/img/post_type/corsi/design-lab.webp deleted file mode 100644 index f15d343..0000000 --- a/build/assets/img/post_type/corsi/design-lab.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-moda-1.jpg b/build/assets/img/post_type/corsi/design-moda-1.jpg deleted file mode 100644 index 4de85d1..0000000 --- a/build/assets/img/post_type/corsi/design-moda-1.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-moda-1.webp b/build/assets/img/post_type/corsi/design-moda-1.webp deleted file mode 100644 index be883fa..0000000 --- a/build/assets/img/post_type/corsi/design-moda-1.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-moda-2.jpg b/build/assets/img/post_type/corsi/design-moda-2.jpg deleted file mode 100644 index 6ccdc57..0000000 --- a/build/assets/img/post_type/corsi/design-moda-2.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-moda-2.webp b/build/assets/img/post_type/corsi/design-moda-2.webp deleted file mode 100644 index f7ef86e..0000000 --- a/build/assets/img/post_type/corsi/design-moda-2.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-moda-3.jpg b/build/assets/img/post_type/corsi/design-moda-3.jpg deleted file mode 100644 index 16858fe..0000000 --- a/build/assets/img/post_type/corsi/design-moda-3.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-moda-3.webp b/build/assets/img/post_type/corsi/design-moda-3.webp deleted file mode 100644 index 188227f..0000000 --- a/build/assets/img/post_type/corsi/design-moda-3.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-moda-4.jpg b/build/assets/img/post_type/corsi/design-moda-4.jpg deleted file mode 100644 index 99ee131..0000000 --- a/build/assets/img/post_type/corsi/design-moda-4.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-moda-4.webp b/build/assets/img/post_type/corsi/design-moda-4.webp deleted file mode 100644 index 50286c7..0000000 --- a/build/assets/img/post_type/corsi/design-moda-4.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-moda-5.jpg b/build/assets/img/post_type/corsi/design-moda-5.jpg deleted file mode 100644 index 8ad894c..0000000 --- a/build/assets/img/post_type/corsi/design-moda-5.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-moda-5.webp b/build/assets/img/post_type/corsi/design-moda-5.webp deleted file mode 100644 index cabb969..0000000 --- a/build/assets/img/post_type/corsi/design-moda-5.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-open-lab.jpg b/build/assets/img/post_type/corsi/design-open-lab.jpg deleted file mode 100644 index 537a267..0000000 --- a/build/assets/img/post_type/corsi/design-open-lab.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-open-lab.webp b/build/assets/img/post_type/corsi/design-open-lab.webp deleted file mode 100644 index 2b0d928..0000000 --- a/build/assets/img/post_type/corsi/design-open-lab.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-prodotto-1.jpg b/build/assets/img/post_type/corsi/design-prodotto-1.jpg deleted file mode 100644 index d93829c..0000000 --- a/build/assets/img/post_type/corsi/design-prodotto-1.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-prodotto-1.webp b/build/assets/img/post_type/corsi/design-prodotto-1.webp deleted file mode 100644 index 306f157..0000000 --- a/build/assets/img/post_type/corsi/design-prodotto-1.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-prodotto-2.jpg b/build/assets/img/post_type/corsi/design-prodotto-2.jpg deleted file mode 100644 index 620bf2f..0000000 --- a/build/assets/img/post_type/corsi/design-prodotto-2.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-prodotto-2.webp b/build/assets/img/post_type/corsi/design-prodotto-2.webp deleted file mode 100644 index 0112ab5..0000000 --- a/build/assets/img/post_type/corsi/design-prodotto-2.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-prodotto-3.jpg b/build/assets/img/post_type/corsi/design-prodotto-3.jpg deleted file mode 100644 index ecc6b2c..0000000 --- a/build/assets/img/post_type/corsi/design-prodotto-3.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-prodotto-3.webp b/build/assets/img/post_type/corsi/design-prodotto-3.webp deleted file mode 100644 index b419709..0000000 --- a/build/assets/img/post_type/corsi/design-prodotto-3.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-prodotto-4.jpg b/build/assets/img/post_type/corsi/design-prodotto-4.jpg deleted file mode 100644 index 27471e0..0000000 --- a/build/assets/img/post_type/corsi/design-prodotto-4.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-prodotto-4.webp b/build/assets/img/post_type/corsi/design-prodotto-4.webp deleted file mode 100644 index eb415ce..0000000 --- a/build/assets/img/post_type/corsi/design-prodotto-4.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-prodotto-5.jpg b/build/assets/img/post_type/corsi/design-prodotto-5.jpg deleted file mode 100644 index 24d9c6e..0000000 --- a/build/assets/img/post_type/corsi/design-prodotto-5.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design-prodotto-5.webp b/build/assets/img/post_type/corsi/design-prodotto-5.webp deleted file mode 100644 index 82b8464..0000000 --- a/build/assets/img/post_type/corsi/design-prodotto-5.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design.jpg b/build/assets/img/post_type/corsi/design.jpg deleted file mode 100644 index c067ee2..0000000 --- a/build/assets/img/post_type/corsi/design.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/design.webp b/build/assets/img/post_type/corsi/design.webp deleted file mode 100644 index 6054011..0000000 --- a/build/assets/img/post_type/corsi/design.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/urbanistica-1.jpg b/build/assets/img/post_type/corsi/urbanistica-1.jpg deleted file mode 100644 index b777459..0000000 --- a/build/assets/img/post_type/corsi/urbanistica-1.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/urbanistica-1.webp b/build/assets/img/post_type/corsi/urbanistica-1.webp deleted file mode 100644 index 74e8927..0000000 --- a/build/assets/img/post_type/corsi/urbanistica-1.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/urbanistica-2.jpg b/build/assets/img/post_type/corsi/urbanistica-2.jpg deleted file mode 100644 index 2e10c6b..0000000 --- a/build/assets/img/post_type/corsi/urbanistica-2.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/urbanistica-2.webp b/build/assets/img/post_type/corsi/urbanistica-2.webp deleted file mode 100644 index 6aa0d7d..0000000 --- a/build/assets/img/post_type/corsi/urbanistica-2.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/urbanistica-3.jpg b/build/assets/img/post_type/corsi/urbanistica-3.jpg deleted file mode 100644 index 684fcaf..0000000 --- a/build/assets/img/post_type/corsi/urbanistica-3.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/urbanistica-3.webp b/build/assets/img/post_type/corsi/urbanistica-3.webp deleted file mode 100644 index 5878315..0000000 --- a/build/assets/img/post_type/corsi/urbanistica-3.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/urbanistica-4.jpg b/build/assets/img/post_type/corsi/urbanistica-4.jpg deleted file mode 100644 index b20a2e2..0000000 --- a/build/assets/img/post_type/corsi/urbanistica-4.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/urbanistica-4.webp b/build/assets/img/post_type/corsi/urbanistica-4.webp deleted file mode 100644 index 87f1c19..0000000 --- a/build/assets/img/post_type/corsi/urbanistica-4.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/urbanistica-5.jpg b/build/assets/img/post_type/corsi/urbanistica-5.jpg deleted file mode 100644 index d866856..0000000 --- a/build/assets/img/post_type/corsi/urbanistica-5.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/corsi/urbanistica-5.webp b/build/assets/img/post_type/corsi/urbanistica-5.webp deleted file mode 100644 index 53fc6cb..0000000 --- a/build/assets/img/post_type/corsi/urbanistica-5.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/eventi/eventi-1.jpg b/build/assets/img/post_type/eventi/eventi-1.jpg deleted file mode 100644 index 8803544..0000000 --- a/build/assets/img/post_type/eventi/eventi-1.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/eventi/eventi-1.webp b/build/assets/img/post_type/eventi/eventi-1.webp deleted file mode 100644 index f1000d3..0000000 --- a/build/assets/img/post_type/eventi/eventi-1.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/eventi/eventi-2.jpg b/build/assets/img/post_type/eventi/eventi-2.jpg deleted file mode 100644 index d97c661..0000000 --- a/build/assets/img/post_type/eventi/eventi-2.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/eventi/eventi-2.webp b/build/assets/img/post_type/eventi/eventi-2.webp deleted file mode 100644 index e7297aa..0000000 --- a/build/assets/img/post_type/eventi/eventi-2.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/eventi/eventi-3.jpg b/build/assets/img/post_type/eventi/eventi-3.jpg deleted file mode 100644 index b6bee7c..0000000 --- a/build/assets/img/post_type/eventi/eventi-3.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/eventi/eventi-3.webp b/build/assets/img/post_type/eventi/eventi-3.webp deleted file mode 100644 index d8b556c..0000000 --- a/build/assets/img/post_type/eventi/eventi-3.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/eventi/eventi-4.jpg b/build/assets/img/post_type/eventi/eventi-4.jpg deleted file mode 100644 index a66a829..0000000 --- a/build/assets/img/post_type/eventi/eventi-4.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/eventi/eventi-4.webp b/build/assets/img/post_type/eventi/eventi-4.webp deleted file mode 100644 index 28800f0..0000000 --- a/build/assets/img/post_type/eventi/eventi-4.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/eventi/eventi-5.jpg b/build/assets/img/post_type/eventi/eventi-5.jpg deleted file mode 100644 index 212e552..0000000 --- a/build/assets/img/post_type/eventi/eventi-5.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/eventi/eventi-5.webp b/build/assets/img/post_type/eventi/eventi-5.webp deleted file mode 100644 index 975360a..0000000 --- a/build/assets/img/post_type/eventi/eventi-5.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/eventi/eventi-attraversamenti.jpeg b/build/assets/img/post_type/eventi/eventi-attraversamenti.jpeg deleted file mode 100644 index a48a1b1..0000000 --- a/build/assets/img/post_type/eventi/eventi-attraversamenti.jpeg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/eventi/eventi-attraversamenti.webp b/build/assets/img/post_type/eventi/eventi-attraversamenti.webp deleted file mode 100644 index 8ceaed7..0000000 --- a/build/assets/img/post_type/eventi/eventi-attraversamenti.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/eventi/eventi-longarone.jpeg b/build/assets/img/post_type/eventi/eventi-longarone.jpeg deleted file mode 100644 index 7d8676f..0000000 --- a/build/assets/img/post_type/eventi/eventi-longarone.jpeg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/eventi/eventi-longarone.webp b/build/assets/img/post_type/eventi/eventi-longarone.webp deleted file mode 100644 index dc261e7..0000000 --- a/build/assets/img/post_type/eventi/eventi-longarone.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/eventi/eventi-venetie-mml.jpeg b/build/assets/img/post_type/eventi/eventi-venetie-mml.jpeg deleted file mode 100644 index 6305924..0000000 --- a/build/assets/img/post_type/eventi/eventi-venetie-mml.jpeg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/eventi/eventi-venetie-mml.webp b/build/assets/img/post_type/eventi/eventi-venetie-mml.webp deleted file mode 100644 index 7549c06..0000000 --- a/build/assets/img/post_type/eventi/eventi-venetie-mml.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/eventi/open-day.jpeg b/build/assets/img/post_type/eventi/open-day.jpeg deleted file mode 100644 index d545326..0000000 --- a/build/assets/img/post_type/eventi/open-day.jpeg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/eventi/open-day.webp b/build/assets/img/post_type/eventi/open-day.webp deleted file mode 100644 index 054481a..0000000 --- a/build/assets/img/post_type/eventi/open-day.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/labs/lab-1.jpg b/build/assets/img/post_type/labs/lab-1.jpg deleted file mode 100644 index 3447bf5..0000000 --- a/build/assets/img/post_type/labs/lab-1.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/labs/lab-1.webp b/build/assets/img/post_type/labs/lab-1.webp deleted file mode 100644 index 6ae6bbf..0000000 --- a/build/assets/img/post_type/labs/lab-1.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/labs/lab-10.jpg b/build/assets/img/post_type/labs/lab-10.jpg deleted file mode 100644 index 8582566..0000000 --- a/build/assets/img/post_type/labs/lab-10.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/labs/lab-10.webp b/build/assets/img/post_type/labs/lab-10.webp deleted file mode 100644 index e543438..0000000 --- a/build/assets/img/post_type/labs/lab-10.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/labs/lab-2.jpg b/build/assets/img/post_type/labs/lab-2.jpg deleted file mode 100644 index 642349b..0000000 --- a/build/assets/img/post_type/labs/lab-2.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/labs/lab-2.webp b/build/assets/img/post_type/labs/lab-2.webp deleted file mode 100644 index c0f86e4..0000000 --- a/build/assets/img/post_type/labs/lab-2.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/labs/lab-3.jpg b/build/assets/img/post_type/labs/lab-3.jpg deleted file mode 100644 index 51f0f07..0000000 --- a/build/assets/img/post_type/labs/lab-3.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/labs/lab-3.webp b/build/assets/img/post_type/labs/lab-3.webp deleted file mode 100644 index a216c34..0000000 --- a/build/assets/img/post_type/labs/lab-3.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/labs/lab-4.jpg b/build/assets/img/post_type/labs/lab-4.jpg deleted file mode 100644 index 86ee18e..0000000 --- a/build/assets/img/post_type/labs/lab-4.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/labs/lab-4.webp b/build/assets/img/post_type/labs/lab-4.webp deleted file mode 100644 index 9faf96b..0000000 --- a/build/assets/img/post_type/labs/lab-4.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/labs/lab-5.jpg b/build/assets/img/post_type/labs/lab-5.jpg deleted file mode 100644 index 24a1551..0000000 --- a/build/assets/img/post_type/labs/lab-5.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/labs/lab-5.webp b/build/assets/img/post_type/labs/lab-5.webp deleted file mode 100644 index 679a883..0000000 --- a/build/assets/img/post_type/labs/lab-5.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/labs/lab-6.jpg b/build/assets/img/post_type/labs/lab-6.jpg deleted file mode 100644 index c395037..0000000 --- a/build/assets/img/post_type/labs/lab-6.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/labs/lab-6.webp b/build/assets/img/post_type/labs/lab-6.webp deleted file mode 100644 index 7c7bf31..0000000 --- a/build/assets/img/post_type/labs/lab-6.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/labs/lab-7.jpg b/build/assets/img/post_type/labs/lab-7.jpg deleted file mode 100644 index 7122428..0000000 --- a/build/assets/img/post_type/labs/lab-7.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/labs/lab-7.webp b/build/assets/img/post_type/labs/lab-7.webp deleted file mode 100644 index 00c6ff2..0000000 --- a/build/assets/img/post_type/labs/lab-7.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/labs/lab-8.jpg b/build/assets/img/post_type/labs/lab-8.jpg deleted file mode 100644 index bf13405..0000000 --- a/build/assets/img/post_type/labs/lab-8.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/labs/lab-8.webp b/build/assets/img/post_type/labs/lab-8.webp deleted file mode 100644 index da17ca7..0000000 --- a/build/assets/img/post_type/labs/lab-8.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/labs/lab-9.jpg b/build/assets/img/post_type/labs/lab-9.jpg deleted file mode 100644 index 965bd17..0000000 --- a/build/assets/img/post_type/labs/lab-9.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/labs/lab-9.webp b/build/assets/img/post_type/labs/lab-9.webp deleted file mode 100644 index a5950ed..0000000 --- a/build/assets/img/post_type/labs/lab-9.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/news/avvisi-1.jpg b/build/assets/img/post_type/news/avvisi-1.jpg deleted file mode 100644 index 2767466..0000000 --- a/build/assets/img/post_type/news/avvisi-1.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/news/avvisi-1.webp b/build/assets/img/post_type/news/avvisi-1.webp deleted file mode 100644 index edcc65c..0000000 --- a/build/assets/img/post_type/news/avvisi-1.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/news/avvisi-2.jpg b/build/assets/img/post_type/news/avvisi-2.jpg deleted file mode 100644 index 0d36e38..0000000 --- a/build/assets/img/post_type/news/avvisi-2.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/news/avvisi-2.webp b/build/assets/img/post_type/news/avvisi-2.webp deleted file mode 100644 index 7579a0b..0000000 --- a/build/assets/img/post_type/news/avvisi-2.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/news/avvisi-3.jpg b/build/assets/img/post_type/news/avvisi-3.jpg deleted file mode 100644 index da64dbd..0000000 --- a/build/assets/img/post_type/news/avvisi-3.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/news/avvisi-3.webp b/build/assets/img/post_type/news/avvisi-3.webp deleted file mode 100644 index 6666a80..0000000 --- a/build/assets/img/post_type/news/avvisi-3.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/news/news-1.jpg b/build/assets/img/post_type/news/news-1.jpg deleted file mode 100644 index cceb0ff..0000000 --- a/build/assets/img/post_type/news/news-1.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/news/news-1.webp b/build/assets/img/post_type/news/news-1.webp deleted file mode 100644 index 040f1c2..0000000 --- a/build/assets/img/post_type/news/news-1.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/news/news-2.jpg b/build/assets/img/post_type/news/news-2.jpg deleted file mode 100644 index 4b2df92..0000000 --- a/build/assets/img/post_type/news/news-2.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/news/news-2.webp b/build/assets/img/post_type/news/news-2.webp deleted file mode 100644 index b7796f6..0000000 --- a/build/assets/img/post_type/news/news-2.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/news/news-3.jpg b/build/assets/img/post_type/news/news-3.jpg deleted file mode 100644 index e32d2bd..0000000 --- a/build/assets/img/post_type/news/news-3.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/news/news-3.webp b/build/assets/img/post_type/news/news-3.webp deleted file mode 100644 index 0cbe745..0000000 --- a/build/assets/img/post_type/news/news-3.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/news/news-4.jpg b/build/assets/img/post_type/news/news-4.jpg deleted file mode 100644 index e23b035..0000000 --- a/build/assets/img/post_type/news/news-4.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/news/news-4.webp b/build/assets/img/post_type/news/news-4.webp deleted file mode 100644 index 8b197bf..0000000 --- a/build/assets/img/post_type/news/news-4.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/news/news-5.jpg b/build/assets/img/post_type/news/news-5.jpg deleted file mode 100644 index 1809b1b..0000000 --- a/build/assets/img/post_type/news/news-5.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/news/news-5.webp b/build/assets/img/post_type/news/news-5.webp deleted file mode 100644 index 6c52fdc..0000000 --- a/build/assets/img/post_type/news/news-5.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/news/news-6.jpg b/build/assets/img/post_type/news/news-6.jpg deleted file mode 100644 index c5142bb..0000000 --- a/build/assets/img/post_type/news/news-6.jpg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/news/news-6.webp b/build/assets/img/post_type/news/news-6.webp deleted file mode 100644 index b0aa6ea..0000000 --- a/build/assets/img/post_type/news/news-6.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/news/news-biennale.jpeg b/build/assets/img/post_type/news/news-biennale.jpeg deleted file mode 100644 index 3ae8529..0000000 --- a/build/assets/img/post_type/news/news-biennale.jpeg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/news/news-biennale.webp b/build/assets/img/post_type/news/news-biennale.webp deleted file mode 100644 index a23f5de..0000000 --- a/build/assets/img/post_type/news/news-biennale.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/news/news-gregotti.jpeg b/build/assets/img/post_type/news/news-gregotti.jpeg deleted file mode 100644 index 8f54bc4..0000000 --- a/build/assets/img/post_type/news/news-gregotti.jpeg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/news/news-gregotti.webp b/build/assets/img/post_type/news/news-gregotti.webp deleted file mode 100644 index f0f3865..0000000 --- a/build/assets/img/post_type/news/news-gregotti.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/news/news-petti.jpeg b/build/assets/img/post_type/news/news-petti.jpeg deleted file mode 100644 index 79a4aaa..0000000 --- a/build/assets/img/post_type/news/news-petti.jpeg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/news/news-petti.webp b/build/assets/img/post_type/news/news-petti.webp deleted file mode 100644 index 2a31016..0000000 --- a/build/assets/img/post_type/news/news-petti.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/news/news-preiscrizioni.jpeg b/build/assets/img/post_type/news/news-preiscrizioni.jpeg deleted file mode 100644 index c48b780..0000000 --- a/build/assets/img/post_type/news/news-preiscrizioni.jpeg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/news/news-preiscrizioni.webp b/build/assets/img/post_type/news/news-preiscrizioni.webp deleted file mode 100644 index a710f46..0000000 --- a/build/assets/img/post_type/news/news-preiscrizioni.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/news/news-seoul.png b/build/assets/img/post_type/news/news-seoul.png deleted file mode 100644 index 72ea68b..0000000 --- a/build/assets/img/post_type/news/news-seoul.png +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/news/news-seoul.webp b/build/assets/img/post_type/news/news-seoul.webp deleted file mode 100644 index b26313a..0000000 --- a/build/assets/img/post_type/news/news-seoul.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/news/news-ssibap.jpeg b/build/assets/img/post_type/news/news-ssibap.jpeg deleted file mode 100644 index e7b6d14..0000000 --- a/build/assets/img/post_type/news/news-ssibap.jpeg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/news/news-ssibap.webp b/build/assets/img/post_type/news/news-ssibap.webp deleted file mode 100644 index d9217c2..0000000 --- a/build/assets/img/post_type/news/news-ssibap.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/news/news-urbanistica.jpeg b/build/assets/img/post_type/news/news-urbanistica.jpeg deleted file mode 100644 index e051ed5..0000000 --- a/build/assets/img/post_type/news/news-urbanistica.jpeg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/news/news-urbanistica.webp b/build/assets/img/post_type/news/news-urbanistica.webp deleted file mode 100644 index 6c24f12..0000000 --- a/build/assets/img/post_type/news/news-urbanistica.webp +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/news/news-ursula.jpeg b/build/assets/img/post_type/news/news-ursula.jpeg deleted file mode 100644 index 9d84aa3..0000000 --- a/build/assets/img/post_type/news/news-ursula.jpeg +++ /dev/null Binary files differ diff --git a/build/assets/img/post_type/news/news-ursula.webp b/build/assets/img/post_type/news/news-ursula.webp deleted file mode 100644 index 4e07dd2..0000000 --- a/build/assets/img/post_type/news/news-ursula.webp +++ /dev/null Binary files differ diff --git a/build/assets/js/blocks.js b/build/assets/js/blocks.js deleted file mode 100644 index 774455a..0000000 --- a/build/assets/js/blocks.js +++ /dev/null @@ -1,218 +0,0 @@ -/** - * Scripts for custom blocks and components - */ - -window.addEventListener('load', (event) => { - - /** - * Vars - */ - // DOM elements - const marquees = document.querySelectorAll('.block-marquee-posts-row') - const cards = document.querySelectorAll('.card') - const secondaryNav = document.querySelector('.secondary-nav') - const secondaryNavTrigger = document.querySelector('.secondary-nav-trigger') - const parallaxImages = document.querySelectorAll('[data-banner-scroll-image]') - const teaseItems = document.querySelectorAll('.tease') - - /** - * Marquees - */ - let marqueesCardWidth - if (marquees.length > 0){ - marqueesCardWidth = window.getComputedStyle(marquees[0]).getPropertyValue('--marquee-card-width') - } - - marquees.forEach(marquee => { - - const marqueeSpeed = Number(marquee.getAttribute('data-marquee-row-speed')) - - let marqueePos = 0 - let marqueeIntvl - - //get vars - const items = marquee.getAttribute('data-marquee-row-items') - const wrapper = marquee.querySelector('.block-marquee-posts-row__wrapper') - - //clone cards in marquee - const cards = wrapper.querySelectorAll('.card') - cards.forEach(card => { - wrapper.appendChild(card.cloneNode(true)) - }) - - //calculate wrapper width - wrapper.style.width = `calc(${items*2}*${marqueesCardWidth})` - - marqueeIntvl = setInterval(() => { - if (marqueePos > 50) { - wrapper.style.transform = `translateX(0%)` - marqueePos = 0 - } else { - wrapper.style.transform = `translateX(-${marqueePos}%)` - } - marqueePos = marqueePos+marqueeSpeed - }, 0) - - marquee.addEventListener('mouseover', function(){ - clearInterval(marqueeIntvl) - }) - - marquee.addEventListener('mouseleave', function(){ - marqueeIntvl = setInterval(() => { - if (marqueePos > 50) { - wrapper.style.transform = `translateX(0%)` - marqueePos = 0 - } else { - wrapper.style.transform = `translateX(-${marqueePos}%)` - } - marqueePos = marqueePos+marqueeSpeed - }, 0) - }) - - }) - - /** - * Cards hover effect - */ - cards.forEach(card => { - const marqueeWrapper = card.closest('.block-marquee-posts-row') - card.addEventListener('mouseenter', function(){ - this.classList.add('is-hovered') - if (marqueeWrapper){ - marqueeWrapper.classList.add('is-hovered') - } - }) - card.addEventListener('mouseleave', function(){ - this.classList.remove('is-hovered') - if (marqueeWrapper){ - marqueeWrapper.classList.remove('is-hovered') - } - }) - }) - - /** - * Homepage Hero Banner parallax effect - */ - - document.addEventListener('scroll', function(){ - const scrollPosition = window.scrollY - parallaxImages.forEach(image => { - - const imageSpeed = image.getAttribute('data-banner-scroll-image-parallax-speed') - const imagePos = scrollPosition * imageSpeed - image.style.transform = `translateY(-${imagePos}px)` - - scrollBannerObserver.observe(image) - - }) - }) - - - let scrollBannerObserver = new IntersectionObserver((entries) => { - - entries.forEach(entry => { - - if(entry.isIntersecting && (entry.target.getBoundingClientRect().top > 0)){ - entry.target.classList.add('is-visible') - entry.target.style.opacity = entry.intersectionRatio - } - - }) - - }, - { - rootMargin: "0px 0px 0px 0px", - threshold: [0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1] - }) - - /** - * Tease height transition - */ - function updateTeaseHeight(tease){ - const teaseHeight = tease.clientHeight - const teaseImg = tease.querySelector('.tease__img') - const teaseText = tease.querySelector('.tease__main') - const teaseTextHeight = teaseText.clientHeight - teaseImg.style.height = `${teaseHeight-teaseTextHeight}px` - teaseText.style.marginTop = `${teaseHeight-teaseTextHeight}px` - } - - teaseItems.forEach(tease => { - updateTeaseHeight(tease) - }) - - /** - * Accordion - */ - const accordions = document.querySelectorAll('[data-accordion]') - accordions.forEach(accordion => { - const title = accordion.querySelector('[data-accordion-title]') - const content = accordion.querySelector('[data-accordion-content]') - title.addEventListener('click', function(){ - [...accordions].forEach(item => { item.classList.remove('is-toggled'); item.querySelector('[data-accordion-content]').style.display = 'none'}) - accordion.classList.toggle('is-toggled') - content.style.display = content.style.display == 'none' ? 'block' : 'none'; - }) - }) - - /** - * Secondary Nav - */ - // Get secondary nav height - function getSecondaryNavHeight(){ - document.documentElement.style.setProperty("--secondary-nav-height", `${secondaryNav.clientHeight}px`) - } - - if(secondaryNav !== null) getSecondaryNavHeight() - - let secondaryNavObserver = new IntersectionObserver((entries) => { - entries.forEach(entry => { - if(!entry.isIntersecting){ - secondaryNav.classList.add('is-visible') - } else { - secondaryNav.classList.remove('is-visible') - } - }) - }, - { - threshold: 1, - rootMargin: '-1px 0px 0px 0px' - }) - - if(secondaryNav !== null) secondaryNavObserver.observe(secondaryNavTrigger) - - function getSecondaryNavButtonWidth(){ - const secondaryNavButtonWidth = secondaryNav.querySelector('.secondary-nav__btn').clientWidth - secondaryNav.style.setProperty("--secondary-nav-button-width", `${secondaryNavButtonWidth}px`) - } - if(secondaryNav !== null) getSecondaryNavButtonWidth() - - if(secondaryNav !== null){ - window.addEventListener('scroll', () => { - currentScrollPos = window.scrollY - if (prevScrollPos > 0 && prevScrollPos < currentScrollPos ) { - secondaryNav.classList.remove('is-stacked') - } else if (prevScrollPos >= currentScrollPos) { - secondaryNav.classList.add('is-stacked') - } - }) - } - - /** - * Window resize function callbacks - */ - const resizeHandler = function(){ - - // if secondary nav exists update height and buttons width - if(secondaryNav !== null) getSecondaryNavHeight() - if(secondaryNav !== null) getSecondaryNavButtonWidth() - - //resize tease posts - teaseItems.forEach(tease => { - updateTeaseHeight(tease) - }) - } - - window.addEventListener('resize', resizeHandler) - -}) \ No newline at end of file diff --git a/build/assets/js/blocks/accordion.js b/build/assets/js/blocks/accordion.js deleted file mode 100644 index a2ab3e7..0000000 --- a/build/assets/js/blocks/accordion.js +++ /dev/null @@ -1,22 +0,0 @@ -window.addEventListener('load', (event) => { - - const accordions = document.querySelectorAll('[data-accordion]') - - accordions.forEach(accordion => { - const title = accordion.querySelector('[data-accordion-title]') - const content = accordion.querySelector('[data-accordion-content]') - title.addEventListener('click', function(){ - //close all other accordions - accordions.forEach(item => { - if (item != accordion) { - item.classList.remove('is-toggled') - item.querySelector('[data-accordion-content]').style.display = 'none' - } - }) - //open clicked accordion - accordion.classList.toggle('is-toggled') - content.style.display = content.style.display == 'none' ? 'block' : 'none'; - }) - }) - -}) \ No newline at end of file diff --git a/build/assets/js/blocks/carousel.js b/build/assets/js/blocks/carousel.js deleted file mode 100644 index 90188c0..0000000 --- a/build/assets/js/blocks/carousel.js +++ /dev/null @@ -1,46 +0,0 @@ -window.addEventListener('load', (event) => { - - if (typeof(document.querySelector('.swiper')) == 'undefined' || document.querySelector('.swiper') == null) return - - const swiper = new Swiper('.swiper', { - - loop: true, - effect: 'fade', - - // If we need pagination - pagination: { - el: '.swiper-pagination', - }, - - // Navigation arrows - navigation: { - nextEl: '.swiper-button-next', - prevEl: '.swiper-button-prev', - }, - - // And if we need scrollbar - scrollbar: { - el: '.swiper-scrollbar', - } - }) - - const carousels = document.querySelectorAll('.block-carousel') - - function setCarouselImgHeight(carousel){ - const carouselImg = carousel.querySelector('.swiper-slide__img') - let carouselImgHeight = Math.floor(carousel.clientWidth / 1.5) - //set carousel img height - carousel.style.setProperty('--carousel-img-height', `${carouselImgHeight}px`) - } - - carousels.forEach(carousel => { - setCarouselImgHeight(carousel) - }) - - window.addEventListener('resize', function(){ - carousels.forEach(carousel => { - setCarouselImgHeight(carousel) - }) - }) - -}) diff --git a/build/assets/js/blocks/marquee.js b/build/assets/js/blocks/marquee.js deleted file mode 100644 index e8edc02..0000000 --- a/build/assets/js/blocks/marquee.js +++ /dev/null @@ -1,68 +0,0 @@ -window.addEventListener('load', (event) => { - - const marquees = document.querySelectorAll('[data-marquee]') - - marquees.forEach(marquee => { - - const container = marquee.querySelector('[data-marquee-container]') - - let itemWidth = window.getComputedStyle(marquee).getPropertyValue('--marquee-item-width') - const itemWidthBase = Number(itemWidth.replace(/vw/g, '')) - const itemsLength = marquee.getAttribute('data-marquee-items') - - const items = container.querySelectorAll('[data-marquee-item]') - - let itemsCloned = 1 - - //clone items in marquee if 100vw / itemsLength less than threshold - if (100 / itemWidthBase < itemsLength) { - items.forEach(item => { - container.appendChild(item.cloneNode(true)) - }) - itemsCloned = 2 - } - - const speed = Number(marquee.getAttribute('data-marquee-speed')) - - let pos = 0 - let intvl - - //get vars - // const items = marquee.getAttribute('data-marquee-items') - - //calculate wrapper width - container.style.width = `calc(${items.length*itemsCloned}*${itemWidth})` - - intvl = setInterval(() => { - if (pos > 50) { - container.style.transform = `translateX(0%)` - pos = 0 - } else { - container.style.transform = `translateX(-${pos}%)` - } - pos = pos+speed - }, 0) - - marquee.addEventListener('mouseover', function(){ - clearInterval(intvl) - }) - - marquee.addEventListener('mouseleave', function(){ - intvl = setInterval(() => { - if (pos > 50) { - container.style.transform = `translateX(0%)` - pos = 0 - } else { - container.style.transform = `translateX(-${pos}%)` - } - pos = pos+speed - }, 0) - }) - - window.addEventListener('resize', function(){ - itemWidth = window.getComputedStyle(marquee).getPropertyValue('--marquee-item-width') - container.style.width = `calc(${items.length*itemsCloned}*${itemWidth})` - }) - - }) -}) \ No newline at end of file diff --git a/build/assets/js/blocks/page-title-banner.js b/build/assets/js/blocks/page-title-banner.js deleted file mode 100644 index 0f52ba7..0000000 --- a/build/assets/js/blocks/page-title-banner.js +++ /dev/null @@ -1,24 +0,0 @@ -window.addEventListener('load', (event) => { - - const banners = document.querySelectorAll('.block-page-title-banner') - - function setBannerHeight(banner){ - if (window.matchMedia('(min-width: 62rem)').matches) { - //get element top offset - const bannerOffsetTop = banner.offsetTop - //set block height - banner.style.setProperty('--page-title-banner-img-height', `${window.innerHeight-bannerOffsetTop}px`) - } - } - - banners.forEach(banner => { - setBannerHeight(banner) - }) - - window.addEventListener('resize', function(){ - banners.forEach(banner => { - setBannerHeight(banner) - }) - }) - -}) diff --git a/build/assets/js/blocks/secondary-nav.js b/build/assets/js/blocks/secondary-nav.js deleted file mode 100644 index edabc73..0000000 --- a/build/assets/js/blocks/secondary-nav.js +++ /dev/null @@ -1,70 +0,0 @@ -window.addEventListener('load', (event) => { - - let currentScrollPos = 0 - let prevScrollPos = 0 - - const secondaryNav = document.querySelector('.secondary-nav') - - if (typeof(secondaryNav) == 'undefined' || secondaryNav == null) return - - const secondaryNavTrigger = document.querySelector('.secondary-nav-trigger') - const secondaryNavLinks = secondaryNav.querySelectorAll('ul li a') - - function getSecondaryNavHeight(){ - document.documentElement.style.setProperty("--secondary-nav-height", `${secondaryNav.clientHeight}px`) - } - - if(secondaryNav !== null) getSecondaryNavHeight() - - let secondaryNavObserver = new IntersectionObserver((entries) => { - entries.forEach(entry => { - if(!entry.isIntersecting && currentScrollPos > entry.target.getBoundingClientRect().top){ - secondaryNav.classList.add('is-visible') - } else { - secondaryNav.classList.remove('is-visible') - } - }) - }, - { - threshold: 1, - rootMargin: '-1px 0px 0px 0px' - }) - - function getSecondaryNavButtonWidth(){ - const secondaryNavButtonWidth = secondaryNav.querySelector('.secondary-nav__btn').clientWidth - secondaryNav.style.setProperty("--secondary-nav-button-width", `${secondaryNavButtonWidth}px`) - } - if(secondaryNav !== null) { - - secondaryNavObserver.observe(secondaryNavTrigger) - - getSecondaryNavButtonWidth() - - window.addEventListener('scroll', () => { - currentScrollPos = window.scrollY - if (prevScrollPos > 0 && prevScrollPos < currentScrollPos && currentScrollPos > window.innerHeight ) { - secondaryNav.classList.remove('is-stacked') - } else if (prevScrollPos >= currentScrollPos) { - secondaryNav.classList.add('is-stacked') - } - prevScrollPos = currentScrollPos - }) - } - - window.addEventListener('resize', function(){ - if(secondaryNav !== null) { - getSecondaryNavButtonWidth() - } - }) - - //smooth scrolling anchor links - secondaryNavLinks.forEach(link => { - link.addEventListener('click', function(e){ - e.preventDefault() - document.querySelector(this.getAttribute('href')).scrollIntoView({ - behavior: 'smooth' - }) - }) - }) - -}) diff --git a/build/assets/js/blocks/tabs.js b/build/assets/js/blocks/tabs.js deleted file mode 100644 index 253ba8c..0000000 --- a/build/assets/js/blocks/tabs.js +++ /dev/null @@ -1,22 +0,0 @@ -window.addEventListener('load', (event) => { - - const tabs = document.querySelectorAll('[data-tabs-container]') - - function toggleTab(container, button){ - [...container.querySelectorAll('[data-tab-target]')].forEach((b)=>{b.classList.remove('is-selected')}); - [...container.querySelectorAll('[data-tab-index]')].forEach((t)=>{t.style.display = 'none'}); - button.classList.add('is-selected') - const target = button.getAttribute('data-tab-target') - container.querySelector(`[data-tab-index="${target}"]`).style.display = 'block'; - - } - - tabs.forEach(tabContainer => { - const tabsButtons = tabContainer.querySelectorAll('[data-tab-target]') - tabsButtons.forEach(button => { - button.addEventListener('click', function(){ - toggleTab(tabContainer, this) - }) - }) - }) -}) \ No newline at end of file diff --git a/build/assets/js/blocks/tease.js b/build/assets/js/blocks/tease.js deleted file mode 100644 index 4b0631d..0000000 --- a/build/assets/js/blocks/tease.js +++ /dev/null @@ -1,25 +0,0 @@ -window.addEventListener('load', (event) => { - - const teaseItems = document.querySelectorAll('.tease') - - function updateTeaseHeight(tease){ - const teaseHeight = tease.clientHeight - const teaseImg = tease.querySelector('.tease__img') - const teaseText = tease.querySelector('.tease__main') - const teaseTextHeight = teaseText.clientHeight - teaseImg.style.height = `${teaseHeight-teaseTextHeight}px` - teaseText.style.marginTop = `${teaseHeight-teaseTextHeight}px` - } - - teaseItems.forEach(tease => { - updateTeaseHeight(tease) - }) - - window.addEventListener('resize', function(){ - teaseItems.forEach(tease => { - updateTeaseHeight(tease) - }) - }) - - -}) \ No newline at end of file diff --git a/build/assets/js/site.js b/build/assets/js/site.js deleted file mode 100644 index 2b34d72..0000000 --- a/build/assets/js/site.js +++ /dev/null @@ -1,445 +0,0 @@ -import './blocks/accordion.js'; -import './blocks/carousel.js'; -import './blocks/marquee.js'; -import './blocks/page-title-banner.js'; -import './blocks/secondary-nav.js'; -import './blocks/tabs.js'; -import './blocks/tease.js'; - -/** - * Global scripts - */ - -window.addEventListener('load', (event) => { - - /** - * Vars - */ - - //functional - let vh = '100vh' - let currentScrollPos = 0 - let prevScrollPos = 0 - let menuToggledScrollPos - let menuIsOpen = false - let desktopMenuIsOpen = false - let mobileMenuIsOpen = false - - //media query - const isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream - const isDesktop = window.matchMedia('(min-width: 80rem)') - - // DOM elements - const body = document.body - const header = document.querySelector('.site-header') - const logo = document.querySelector('.site-logo') - const a11y_ariaexpanded = document.querySelectorAll('[aria-expanded="false"]') - const mainNav = document.getElementById('site-header-main-nav') - const menuItems = document.querySelectorAll('#site-header-main-nav > ul > .menu-item-has-children > a') - const menuBtn = document.getElementById('menu-btn') - const overlay = document.getElementById('overlay') - const menuMobile = document.getElementById('menu-mobile') - const pageWrapper = document.getElementById('site-content-wrapper') - const accordionMenuItems = document.querySelectorAll('[data-toggle-menu-items]') - const footer = document.getElementById('site-footer') - - /** - * Throttle - */ - function throttle(mainFunction, delay) { - let timerFlag = null - return (...args) => { - if (timerFlag === null) { - mainFunction(...args) - timerFlag = setTimeout(() => { - timerFlag = null - }, delay) - } - } - } - - /** - * Check if iOS, then set --vh - */ - if (isIOS && window.matchMedia("(max-width: 1024px)").matches) { - document.documentElement.classList.add('is-ios') - } - - function set100vh() { - // If window size is iPad or smaller, then use JS to set screen height. - if (isIOS && window.matchMedia("(max-width: 1024px)").matches) { - vh = `${window.innerHeight}px` - document.documentElement.style.setProperty("--vh", vh) - } - } - set100vh() - - /** - * WAI-ARIA toggle aria-expanded - */ - function updateAriaExpanded(item){ - const ariaexpanded = item.getAttribute('aria-expanded') - if (ariaexpanded == 'true') { - item.setAttribute('aria-expanded', 'false') - } else { - item.setAttribute('aria-expanded', 'true') - } - } - a11y_ariaexpanded.forEach((item) => { - item.addEventListener('click', function () { - updateAriaExpanded(this) - }) - }) - - - /** - * Get header height - */ - function getHeaderHeight(){ - document.documentElement.style.setProperty("--header-height", `${header.clientHeight}px`) - } - - getHeaderHeight() - - /** - * Hide header if scrolling down, show if scrolling up - */ - - window.addEventListener('scroll', () => { - - currentScrollPos = window.scrollY - - // const currentScrollPos = window.scrollY - - //if you start scrolling add class - if (currentScrollPos > 0 && !menuIsOpen) { - body.classList.add('is-scrolled') - } else{ - body.classList.remove('is-scrolled') - } - - // if scrolling down, hide header and position logo to the left - // if scrolling up, show header and logo in initial position - if (prevScrollPos > 0 && prevScrollPos < currentScrollPos && !menuIsOpen) { - header.classList.add('is-hidden') - logo.classList.add('is-visible') - overlay.classList.remove('is-active') - } else if (prevScrollPos >= currentScrollPos && !menuIsOpen) { - header.classList.remove('is-hidden') - logo.classList.remove('is-visible') - } - - prevScrollPos = currentScrollPos - - }) - - /** - * Menu - */ - - function toggleMenuSharedElements(toggle = true){ - - if (!menuIsOpen) { - body.classList.add('has-menu-toggled') - menuBtn.classList.add('is-active') - menuBtn.classList.add('is-toggled') - overlay.classList.add('is-active') - menuIsOpen = true - } else if (toggle) { - body.classList.remove('has-menu-toggled') - menuBtn.classList.remove('is-active') - menuBtn.classList.remove('is-toggled') - overlay.classList.remove('is-active') - menuIsOpen = false - } - - } - - // when menu is toggled, set margin top based - // on scrolled px and restore scroll after menu is closed - function setScrolledMarginContent(scrolled){ - if (mobileMenuIsOpen || desktopMenuIsOpen) { - pageWrapper.style.marginTop = 0 - document.body.scrollTop = menuToggledScrollPos - document.body.scrollTop = menuToggledScrollPos - document.documentElement.scrollTop = menuToggledScrollPos - } else { - pageWrapper.style.marginTop = `-${scrolled}px` - } - menuToggledScrollPos = scrolled - } - - function toggleMobileMenu(forceClosing = null){ - toggleMenuSharedElements() - if (forceClosing) { - menuMobile.classList.remove('is-toggled') - } else { - menuMobile.classList.toggle('is-toggled') - // if (menuIsOpen) { - // menuMobile.animate( - // [ - // { height: '0px' }, - // { height: `${menuMobile.clientHeight}px` } - // ], - // { - // duration: 500, - // easing: 'ease-out' - // } - // ) - // } else { - // menuMobile.animate( - // [ - // { height: '0px' }, - // { height: `${menuMobile.clientHeight}px` } - // ], - // { - // duration: 500, - // easing: 'ease-out' - // } - // ) - // } - } - closeAllAccordionMenuItems() - // set margin on page wapper - // and restore scrolled position when you close menu - setScrolledMarginContent(currentScrollPos) - menuIsOpen ? mobileMenuIsOpen = true : mobileMenuIsOpen = false - } - - let previousClickedItem - function toggleDesktopMenu(clickedItem = null){ - - if (clickedItem == null) { - toggleMenuSharedElements() - openSubMenu() - - } else if (clickedItem == previousClickedItem || previousClickedItem == null || !desktopMenuIsOpen) { - // if desktop menu is not toggled or you are toggling menu item - toggleMenuSharedElements() - openSubMenu(clickedItem) - } else if (clickedItem != previousClickedItem && clickedItem != null){ - // if you are swapping submenu - openSubMenu(clickedItem, false) - } - // assign previous clicked item to currently clicked item - previousClickedItem = clickedItem - - // toggle/remove class on all menu items - menuItems.forEach((item) => { - const itemListItem = item.parentElement - if (itemListItem != clickedItem) { - itemListItem.classList.remove('is-toggled') - } else { - itemListItem.classList.toggle('is-toggled') - } - }) - // set margin on page wapper - // and restore scrolled position when you close menu - setScrolledMarginContent(currentScrollPos) - menuIsOpen ? desktopMenuIsOpen = true : desktopMenuIsOpen = false - } - - function toggleMenuWhenResized(){ - // if mobile menu is open and window resized to desktop - if (mobileMenuIsOpen && isDesktop.matches){ - toggleMenuSharedElements() - toggleMobileMenu(true) - menuIsOpen = false - } - // if desktop menu is open and window resized to mobile - if (desktopMenuIsOpen && !isDesktop.matches){ - toggleMenuSharedElements() - toggleDesktopMenu() - menuIsOpen = false - } - } - - // animate desktop dropdown and toggle - function openSubMenu(clickedItem, animate = true){ - let submenu - if (clickedItem) { - //if there's a clicked item get submenu descendante - submenu = clickedItem.querySelector('.site-header-navbar-submenu-0') - } else { - // if there isn't a clicked item (eg: X button), select visible menus - submenu = document.querySelector('.site-header-navbar-submenu-0.is-visible') - clickedItem = document.querySelector('#site-header-main-nav .menu-item-has-children.is-toggled') - console.log(clickedItem) - } - if (clickedItem.classList.contains('is-toggled')) { - // if desktop menu is already open and click on already toggled item - // remove classes and animate submenu to 0px height - mainNav.classList.remove('is-toggled') - submenu.classList.add('is-closing') - submenu.animate( - [ - { height: `${submenu.clientHeight}px` }, - { height: 0 } - ], - { - duration: 250, - delay: 250, - easing: 'ease-out' - } - ) - // timeout animation - setTimeout(() => { - submenu.classList.remove('is-visible') - submenu.classList.remove('is-closing') - }, 500); - } else if (!animate){ - // if desktop menu is open and click on item not yet toggled - // swap submenu container without animations - [...document.querySelectorAll('.site-header-navbar-submenu-0')].forEach(s=>{ - if(submenu != s){ - s.classList.remove('is-visible') - } else { - submenu.classList.add('is-visible') - } - }) - } else { - // if desktop menu is not open and click on item - // show and animate submenu - submenu.classList.add('is-visible') - submenu.animate( - [ - { height: 0 }, - { height: `${submenu.clientHeight}px` } - ], - { - duration: 250, - easing: 'ease-out' - } - ) - setTimeout(() => { - mainNav.classList.add('is-toggled') - }, 500); - } - } - - function cbToggleDesktopMenu(event){ - const item = event.target.parentElement - toggleDesktopMenu(item) - } - - // Throttle the fetchData function with a delay of 5000 ms - const throttledtoggleDesktopMenu = throttle(cbToggleDesktopMenu, 500) - - menuItems.forEach(item => { - item.addEventListener('click', throttledtoggleDesktopMenu) - }) - - menuBtn.addEventListener('click', function(){ - if (isDesktop.matches) { - console.log('test') - toggleDesktopMenu() - } else { - toggleMobileMenu() - } - }) - - //close all accordion menu items - function closeAllAccordionMenuItems(){ - accordionMenuItems.forEach(item => { - item.parentElement.parentElement.classList.remove('is-toggled') - item.parentElement.parentElement.setAttribute('aria-expanded', 'false') - }) - } - - accordionMenuItems.forEach(button => { - button.addEventListener('click', function(){ - // get
  • - const clickedItem = this.parentElement.parentElement - // get nesting of clicked item (from button) - const nesting = this.getAttribute('data-toggle-menu-items') - - if (nesting == 0 && clickedItem.classList.contains('is-toggled')) { - // if is first level and already opened, - // when clicked close all items - closeAllAccordionMenuItems() - } else { - // when you click on item, close other items on same nesting level - // [...document.querySelectorAll(`[data-toggle-menu-items="${nesting}"]`)].forEach(i=>{if(this != i){i.parentElement.parentElement.classList.remove('is-toggled')}}) - // toggle clicked item - clickedItem.classList.toggle('is-toggled') - } - }) - }) - - // if click on overlay close menu - overlay.addEventListener('click', function(){ - // toggleMenuSharedElements() - if (isDesktop.matches) { - toggleDesktopMenu() - } else { - toggleMobileMenu() - } - }) - - /** - * Back to top - */ - document.getElementById('backToTop').addEventListener('click', function(){ - window.scrollTo({ - top: 0, - behavior: 'smooth' - }) - }) - - /** - * Footer observer - */ - //when footer is in viewport, restore logo position - let footerObserver = new IntersectionObserver((entries) => { - - entries.forEach(entry => { - if(entry.isIntersecting){ - body.classList.add('footer-in-viewport') - } else { - body.classList.remove('footer-in-viewport') - } - }) - - }, - { - rootMargin: '0px' - }) - footerObserver.observe(footer) - - /** - * Window resize function callbacks - */ - const resizeHandler = function(){ - // set vh - set100vh() - // get header height - getHeaderHeight() - // when resizing disable menu if toggled - toggleMenuWhenResized() - } - window.addEventListener('resize', resizeHandler) - - /** - * Keyboard related functions and events - */ - document.onkeydown = function(evt) { - evt = evt || window.event; - var isEscape = false; - if ('key' in evt) { - isEscape = (evt.key === 'Escape' || evt.key === 'Esc'); - } else { - isEscape = (evt.keyCode === 27); - } - // if menu is open and press escape, toggle desktop or mobile menu - // based on media query - if (isEscape && menuIsOpen) { - toggleMenuSharedElements() - if (isDesktop.matches) { - toggleDesktopMenu() - } else { - toggleMobileMenu() - } - } - } - -}) \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/LICENSE b/build/assets/js/vendor/swiper/LICENSE deleted file mode 100644 index a7876ca..0000000 --- a/build/assets/js/vendor/swiper/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2019 Vladimir Kharlampidi - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/assets/js/vendor/swiper/README.md b/build/assets/js/vendor/swiper/README.md deleted file mode 100644 index d4e726c..0000000 --- a/build/assets/js/vendor/swiper/README.md +++ /dev/null @@ -1,11 +0,0 @@ -Swiper -========== - -Swiper - is the free and most modern mobile touch slider with hardware accelerated transitions and amazing native behavior. It is intended to be used in mobile websites, mobile web apps, and mobile native/hybrid apps. - -Swiper is not compatible with all platforms, it is a modern touch slider which is focused only on modern apps/platforms to bring the best experience and simplicity. - -# Getting Started - * [Getting Started Guide](https://swiperjs.com/get-started/) - * [API](https://swiperjs.com/swiper-api/) - * [Demos](https://swiperjs.com/demos/) diff --git a/build/assets/js/vendor/swiper/modules/a11y-element.css b/build/assets/js/vendor/swiper/modules/a11y-element.css deleted file mode 100644 index c5f9eec..0000000 --- a/build/assets/js/vendor/swiper/modules/a11y-element.css +++ /dev/null @@ -1,9 +0,0 @@ -/* a11y */ -.swiper .swiper-notification { - position: absolute; - left: 0; - top: 0; - pointer-events: none; - opacity: 0; - z-index: -1000; -} diff --git a/build/assets/js/vendor/swiper/modules/a11y-element.min.css b/build/assets/js/vendor/swiper/modules/a11y-element.min.css deleted file mode 100644 index 78c39d5..0000000 --- a/build/assets/js/vendor/swiper/modules/a11y-element.min.css +++ /dev/null @@ -1 +0,0 @@ -.swiper .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/a11y.css b/build/assets/js/vendor/swiper/modules/a11y.css deleted file mode 100644 index c5f9eec..0000000 --- a/build/assets/js/vendor/swiper/modules/a11y.css +++ /dev/null @@ -1,9 +0,0 @@ -/* a11y */ -.swiper .swiper-notification { - position: absolute; - left: 0; - top: 0; - pointer-events: none; - opacity: 0; - z-index: -1000; -} diff --git a/build/assets/js/vendor/swiper/modules/a11y.less b/build/assets/js/vendor/swiper/modules/a11y.less deleted file mode 100644 index c5f9eec..0000000 --- a/build/assets/js/vendor/swiper/modules/a11y.less +++ /dev/null @@ -1,9 +0,0 @@ -/* a11y */ -.swiper .swiper-notification { - position: absolute; - left: 0; - top: 0; - pointer-events: none; - opacity: 0; - z-index: -1000; -} diff --git a/build/assets/js/vendor/swiper/modules/a11y.min.css b/build/assets/js/vendor/swiper/modules/a11y.min.css deleted file mode 100644 index 78c39d5..0000000 --- a/build/assets/js/vendor/swiper/modules/a11y.min.css +++ /dev/null @@ -1 +0,0 @@ -.swiper .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/a11y.min.mjs b/build/assets/js/vendor/swiper/modules/a11y.min.mjs deleted file mode 100644 index 8d00e2e..0000000 --- a/build/assets/js/vendor/swiper/modules/a11y.min.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{c as classesToSelector}from"../shared/classes-to-selector.min.mjs";import{c as createElement,g as elementIndex}from"../shared/utils.min.mjs";function A11y(e){let{swiper:a,extendParams:t,on:i}=e;t({a11y:{enabled:!0,notificationClass:"swiper-notification",prevSlideMessage:"Previous slide",nextSlideMessage:"Next slide",firstSlideMessage:"This is the first slide",lastSlideMessage:"This is the last slide",paginationBulletMessage:"Go to slide {{index}}",slideLabelMessage:"{{index}} / {{slidesLength}}",containerMessage:null,containerRoleDescriptionMessage:null,itemRoleDescriptionMessage:null,slideRole:"group",id:null}}),a.a11y={clicked:!1};let n=null;function s(e){const a=n;0!==a.length&&(a.innerHTML="",a.innerHTML=e)}const r=e=>(Array.isArray(e)?e:[e]).filter((e=>!!e));function o(e){(e=r(e)).forEach((e=>{e.setAttribute("tabIndex","0")}))}function l(e){(e=r(e)).forEach((e=>{e.setAttribute("tabIndex","-1")}))}function c(e,a){(e=r(e)).forEach((e=>{e.setAttribute("role",a)}))}function d(e,a){(e=r(e)).forEach((e=>{e.setAttribute("aria-roledescription",a)}))}function p(e,a){(e=r(e)).forEach((e=>{e.setAttribute("aria-label",a)}))}function g(e){(e=r(e)).forEach((e=>{e.setAttribute("aria-disabled",!0)}))}function u(e){(e=r(e)).forEach((e=>{e.setAttribute("aria-disabled",!1)}))}function f(e){if(13!==e.keyCode&&32!==e.keyCode)return;const t=a.params.a11y,i=e.target;a.pagination&&a.pagination.el&&(i===a.pagination.el||a.pagination.el.contains(e.target))&&!e.target.matches(classesToSelector(a.params.pagination.bulletClass))||(a.navigation&&a.navigation.nextEl&&i===a.navigation.nextEl&&(a.isEnd&&!a.params.loop||a.slideNext(),a.isEnd?s(t.lastSlideMessage):s(t.nextSlideMessage)),a.navigation&&a.navigation.prevEl&&i===a.navigation.prevEl&&(a.isBeginning&&!a.params.loop||a.slidePrev(),a.isBeginning?s(t.firstSlideMessage):s(t.prevSlideMessage)),a.pagination&&i.matches(classesToSelector(a.params.pagination.bulletClass))&&i.click())}function m(){return a.pagination&&a.pagination.bullets&&a.pagination.bullets.length}function v(){return m()&&a.params.pagination.clickable}const E=(e,a,t)=>{o(e),"BUTTON"!==e.tagName&&(c(e,"button"),e.addEventListener("keydown",f)),p(e,t),function(e,a){(e=r(e)).forEach((e=>{e.setAttribute("aria-controls",a)}))}(e,a)},b=()=>{a.a11y.clicked=!0},h=()=>{requestAnimationFrame((()=>{requestAnimationFrame((()=>{a.destroyed||(a.a11y.clicked=!1)}))}))},y=e=>{if(a.a11y.clicked)return;const t=e.target.closest(`.${a.params.slideClass}, swiper-slide`);if(!t||!a.slides.includes(t))return;const i=a.slides.indexOf(t)===a.activeIndex,n=a.params.watchSlidesProgress&&a.visibleSlides&&a.visibleSlides.includes(t);i||n||e.sourceCapabilities&&e.sourceCapabilities.firesTouchEvents||(a.isHorizontal()?a.el.scrollLeft=0:a.el.scrollTop=0,a.slideTo(a.slides.indexOf(t),0))},M=()=>{const e=a.params.a11y;e.itemRoleDescriptionMessage&&d(a.slides,e.itemRoleDescriptionMessage),e.slideRole&&c(a.slides,e.slideRole);const t=a.slides.length;e.slideLabelMessage&&a.slides.forEach(((i,n)=>{const s=a.params.loop?parseInt(i.getAttribute("data-swiper-slide-index"),10):n;p(i,e.slideLabelMessage.replace(/\{\{index\}\}/,s+1).replace(/\{\{slidesLength\}\}/,t))}))},x=()=>{const e=a.params.a11y;a.el.append(n);const t=a.el;e.containerRoleDescriptionMessage&&d(t,e.containerRoleDescriptionMessage),e.containerMessage&&p(t,e.containerMessage);const i=a.wrapperEl,s=e.id||i.getAttribute("id")||`swiper-wrapper-${o=16,void 0===o&&(o=16),"x".repeat(o).replace(/x/g,(()=>Math.round(16*Math.random()).toString(16)))}`;var o;const l=a.params.autoplay&&a.params.autoplay.enabled?"off":"polite";var c;c=s,r(i).forEach((e=>{e.setAttribute("id",c)})),function(e,a){(e=r(e)).forEach((e=>{e.setAttribute("aria-live",a)}))}(i,l),M();let{nextEl:g,prevEl:u}=a.navigation?a.navigation:{};if(g=r(g),u=r(u),g&&g.forEach((a=>E(a,s,e.nextSlideMessage))),u&&u.forEach((a=>E(a,s,e.prevSlideMessage))),v()){r(a.pagination.el).forEach((e=>{e.addEventListener("keydown",f)}))}a.el.addEventListener("focus",y,!0),a.el.addEventListener("pointerdown",b,!0),a.el.addEventListener("pointerup",h,!0)};i("beforeInit",(()=>{n=createElement("span",a.params.a11y.notificationClass),n.setAttribute("aria-live","assertive"),n.setAttribute("aria-atomic","true")})),i("afterInit",(()=>{a.params.a11y.enabled&&x()})),i("slidesLengthChange snapGridLengthChange slidesGridLengthChange",(()=>{a.params.a11y.enabled&&M()})),i("fromEdge toEdge afterInit lock unlock",(()=>{a.params.a11y.enabled&&function(){if(a.params.loop||a.params.rewind||!a.navigation)return;const{nextEl:e,prevEl:t}=a.navigation;t&&(a.isBeginning?(g(t),l(t)):(u(t),o(t))),e&&(a.isEnd?(g(e),l(e)):(u(e),o(e)))}()})),i("paginationUpdate",(()=>{a.params.a11y.enabled&&function(){const e=a.params.a11y;m()&&a.pagination.bullets.forEach((t=>{a.params.pagination.clickable&&(o(t),a.params.pagination.renderBullet||(c(t,"button"),p(t,e.paginationBulletMessage.replace(/\{\{index\}\}/,elementIndex(t)+1)))),t.matches(classesToSelector(a.params.pagination.bulletActiveClass))?t.setAttribute("aria-current","true"):t.removeAttribute("aria-current")}))}()})),i("destroy",(()=>{a.params.a11y.enabled&&function(){n&&n.remove();let{nextEl:e,prevEl:t}=a.navigation?a.navigation:{};e=r(e),t=r(t),e&&e.forEach((e=>e.removeEventListener("keydown",f))),t&&t.forEach((e=>e.removeEventListener("keydown",f))),v()&&r(a.pagination.el).forEach((e=>{e.removeEventListener("keydown",f)}));a.el.removeEventListener("focus",y,!0),a.el.removeEventListener("pointerdown",b,!0),a.el.removeEventListener("pointerup",h,!0)}()}))}export{A11y as default}; -//# sourceMappingURL=a11y.min.mjs.map \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/a11y.min.mjs.map b/build/assets/js/vendor/swiper/modules/a11y.min.mjs.map deleted file mode 100644 index aacddae..0000000 --- a/build/assets/js/vendor/swiper/modules/a11y.min.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"a11y.mjs.mjs","names":["classesToSelector","createElement","elementIndex","A11y","_ref","swiper","extendParams","on","a11y","enabled","notificationClass","prevSlideMessage","nextSlideMessage","firstSlideMessage","lastSlideMessage","paginationBulletMessage","slideLabelMessage","containerMessage","containerRoleDescriptionMessage","itemRoleDescriptionMessage","slideRole","id","clicked","liveRegion","notify","message","notification","length","innerHTML","makeElementsArray","el","Array","isArray","filter","e","makeElFocusable","forEach","subEl","setAttribute","makeElNotFocusable","addElRole","role","addElRoleDescription","description","addElLabel","label","disableEl","enableEl","onEnterOrSpaceKey","keyCode","params","targetEl","target","pagination","contains","matches","bulletClass","navigation","nextEl","isEnd","loop","slideNext","prevEl","isBeginning","slidePrev","click","hasPagination","bullets","hasClickablePagination","clickable","initNavEl","wrapperId","tagName","addEventListener","controls","addElControls","handlePointerDown","handlePointerUp","requestAnimationFrame","destroyed","handleFocus","slideEl","closest","slideClass","slides","includes","isActive","indexOf","activeIndex","isVisible","watchSlidesProgress","visibleSlides","sourceCapabilities","firesTouchEvents","isHorizontal","scrollLeft","scrollTop","slideTo","initSlides","slidesLength","index","slideIndex","parseInt","getAttribute","replace","init","append","containerEl","wrapperEl","size","repeat","Math","round","random","toString","live","autoplay","addElLive","rewind","updateNavigation","bulletEl","renderBullet","bulletActiveClass","removeAttribute","updatePagination","remove","removeEventListener","destroy"],"sources":["0"],"mappings":"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"} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/a11y.mjs b/build/assets/js/vendor/swiper/modules/a11y.mjs deleted file mode 100644 index fd8ef73..0000000 --- a/build/assets/js/vendor/swiper/modules/a11y.mjs +++ /dev/null @@ -1,343 +0,0 @@ -import { c as classesToSelector } from '../shared/classes-to-selector.mjs'; -import { c as createElement, g as elementIndex } from '../shared/utils.mjs'; - -function A11y(_ref) { - let { - swiper, - extendParams, - on - } = _ref; - extendParams({ - a11y: { - enabled: true, - notificationClass: 'swiper-notification', - prevSlideMessage: 'Previous slide', - nextSlideMessage: 'Next slide', - firstSlideMessage: 'This is the first slide', - lastSlideMessage: 'This is the last slide', - paginationBulletMessage: 'Go to slide {{index}}', - slideLabelMessage: '{{index}} / {{slidesLength}}', - containerMessage: null, - containerRoleDescriptionMessage: null, - itemRoleDescriptionMessage: null, - slideRole: 'group', - id: null - } - }); - swiper.a11y = { - clicked: false - }; - let liveRegion = null; - function notify(message) { - const notification = liveRegion; - if (notification.length === 0) return; - notification.innerHTML = ''; - notification.innerHTML = message; - } - const makeElementsArray = el => (Array.isArray(el) ? el : [el]).filter(e => !!e); - function getRandomNumber(size) { - if (size === void 0) { - size = 16; - } - const randomChar = () => Math.round(16 * Math.random()).toString(16); - return 'x'.repeat(size).replace(/x/g, randomChar); - } - function makeElFocusable(el) { - el = makeElementsArray(el); - el.forEach(subEl => { - subEl.setAttribute('tabIndex', '0'); - }); - } - function makeElNotFocusable(el) { - el = makeElementsArray(el); - el.forEach(subEl => { - subEl.setAttribute('tabIndex', '-1'); - }); - } - function addElRole(el, role) { - el = makeElementsArray(el); - el.forEach(subEl => { - subEl.setAttribute('role', role); - }); - } - function addElRoleDescription(el, description) { - el = makeElementsArray(el); - el.forEach(subEl => { - subEl.setAttribute('aria-roledescription', description); - }); - } - function addElControls(el, controls) { - el = makeElementsArray(el); - el.forEach(subEl => { - subEl.setAttribute('aria-controls', controls); - }); - } - function addElLabel(el, label) { - el = makeElementsArray(el); - el.forEach(subEl => { - subEl.setAttribute('aria-label', label); - }); - } - function addElId(el, id) { - el = makeElementsArray(el); - el.forEach(subEl => { - subEl.setAttribute('id', id); - }); - } - function addElLive(el, live) { - el = makeElementsArray(el); - el.forEach(subEl => { - subEl.setAttribute('aria-live', live); - }); - } - function disableEl(el) { - el = makeElementsArray(el); - el.forEach(subEl => { - subEl.setAttribute('aria-disabled', true); - }); - } - function enableEl(el) { - el = makeElementsArray(el); - el.forEach(subEl => { - subEl.setAttribute('aria-disabled', false); - }); - } - function onEnterOrSpaceKey(e) { - if (e.keyCode !== 13 && e.keyCode !== 32) return; - const params = swiper.params.a11y; - const targetEl = e.target; - if (swiper.pagination && swiper.pagination.el && (targetEl === swiper.pagination.el || swiper.pagination.el.contains(e.target))) { - if (!e.target.matches(classesToSelector(swiper.params.pagination.bulletClass))) return; - } - if (swiper.navigation && swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl) { - if (!(swiper.isEnd && !swiper.params.loop)) { - swiper.slideNext(); - } - if (swiper.isEnd) { - notify(params.lastSlideMessage); - } else { - notify(params.nextSlideMessage); - } - } - if (swiper.navigation && swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl) { - if (!(swiper.isBeginning && !swiper.params.loop)) { - swiper.slidePrev(); - } - if (swiper.isBeginning) { - notify(params.firstSlideMessage); - } else { - notify(params.prevSlideMessage); - } - } - if (swiper.pagination && targetEl.matches(classesToSelector(swiper.params.pagination.bulletClass))) { - targetEl.click(); - } - } - function updateNavigation() { - if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return; - const { - nextEl, - prevEl - } = swiper.navigation; - if (prevEl) { - if (swiper.isBeginning) { - disableEl(prevEl); - makeElNotFocusable(prevEl); - } else { - enableEl(prevEl); - makeElFocusable(prevEl); - } - } - if (nextEl) { - if (swiper.isEnd) { - disableEl(nextEl); - makeElNotFocusable(nextEl); - } else { - enableEl(nextEl); - makeElFocusable(nextEl); - } - } - } - function hasPagination() { - return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length; - } - function hasClickablePagination() { - return hasPagination() && swiper.params.pagination.clickable; - } - function updatePagination() { - const params = swiper.params.a11y; - if (!hasPagination()) return; - swiper.pagination.bullets.forEach(bulletEl => { - if (swiper.params.pagination.clickable) { - makeElFocusable(bulletEl); - if (!swiper.params.pagination.renderBullet) { - addElRole(bulletEl, 'button'); - addElLabel(bulletEl, params.paginationBulletMessage.replace(/\{\{index\}\}/, elementIndex(bulletEl) + 1)); - } - } - if (bulletEl.matches(classesToSelector(swiper.params.pagination.bulletActiveClass))) { - bulletEl.setAttribute('aria-current', 'true'); - } else { - bulletEl.removeAttribute('aria-current'); - } - }); - } - const initNavEl = (el, wrapperId, message) => { - makeElFocusable(el); - if (el.tagName !== 'BUTTON') { - addElRole(el, 'button'); - el.addEventListener('keydown', onEnterOrSpaceKey); - } - addElLabel(el, message); - addElControls(el, wrapperId); - }; - const handlePointerDown = () => { - swiper.a11y.clicked = true; - }; - const handlePointerUp = () => { - requestAnimationFrame(() => { - requestAnimationFrame(() => { - if (!swiper.destroyed) { - swiper.a11y.clicked = false; - } - }); - }); - }; - const handleFocus = e => { - if (swiper.a11y.clicked) return; - const slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`); - if (!slideEl || !swiper.slides.includes(slideEl)) return; - const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex; - const isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl); - if (isActive || isVisible) return; - if (e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents) return; - if (swiper.isHorizontal()) { - swiper.el.scrollLeft = 0; - } else { - swiper.el.scrollTop = 0; - } - swiper.slideTo(swiper.slides.indexOf(slideEl), 0); - }; - const initSlides = () => { - const params = swiper.params.a11y; - if (params.itemRoleDescriptionMessage) { - addElRoleDescription(swiper.slides, params.itemRoleDescriptionMessage); - } - if (params.slideRole) { - addElRole(swiper.slides, params.slideRole); - } - const slidesLength = swiper.slides.length; - if (params.slideLabelMessage) { - swiper.slides.forEach((slideEl, index) => { - const slideIndex = swiper.params.loop ? parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10) : index; - const ariaLabelMessage = params.slideLabelMessage.replace(/\{\{index\}\}/, slideIndex + 1).replace(/\{\{slidesLength\}\}/, slidesLength); - addElLabel(slideEl, ariaLabelMessage); - }); - } - }; - const init = () => { - const params = swiper.params.a11y; - swiper.el.append(liveRegion); - - // Container - const containerEl = swiper.el; - if (params.containerRoleDescriptionMessage) { - addElRoleDescription(containerEl, params.containerRoleDescriptionMessage); - } - if (params.containerMessage) { - addElLabel(containerEl, params.containerMessage); - } - - // Wrapper - const wrapperEl = swiper.wrapperEl; - const wrapperId = params.id || wrapperEl.getAttribute('id') || `swiper-wrapper-${getRandomNumber(16)}`; - const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite'; - addElId(wrapperEl, wrapperId); - addElLive(wrapperEl, live); - - // Slide - initSlides(); - - // Navigation - let { - nextEl, - prevEl - } = swiper.navigation ? swiper.navigation : {}; - nextEl = makeElementsArray(nextEl); - prevEl = makeElementsArray(prevEl); - if (nextEl) { - nextEl.forEach(el => initNavEl(el, wrapperId, params.nextSlideMessage)); - } - if (prevEl) { - prevEl.forEach(el => initNavEl(el, wrapperId, params.prevSlideMessage)); - } - - // Pagination - if (hasClickablePagination()) { - const paginationEl = makeElementsArray(swiper.pagination.el); - paginationEl.forEach(el => { - el.addEventListener('keydown', onEnterOrSpaceKey); - }); - } - - // Tab focus - swiper.el.addEventListener('focus', handleFocus, true); - swiper.el.addEventListener('pointerdown', handlePointerDown, true); - swiper.el.addEventListener('pointerup', handlePointerUp, true); - }; - function destroy() { - if (liveRegion) liveRegion.remove(); - let { - nextEl, - prevEl - } = swiper.navigation ? swiper.navigation : {}; - nextEl = makeElementsArray(nextEl); - prevEl = makeElementsArray(prevEl); - if (nextEl) { - nextEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey)); - } - if (prevEl) { - prevEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey)); - } - - // Pagination - if (hasClickablePagination()) { - const paginationEl = makeElementsArray(swiper.pagination.el); - paginationEl.forEach(el => { - el.removeEventListener('keydown', onEnterOrSpaceKey); - }); - } - - // Tab focus - swiper.el.removeEventListener('focus', handleFocus, true); - swiper.el.removeEventListener('pointerdown', handlePointerDown, true); - swiper.el.removeEventListener('pointerup', handlePointerUp, true); - } - on('beforeInit', () => { - liveRegion = createElement('span', swiper.params.a11y.notificationClass); - liveRegion.setAttribute('aria-live', 'assertive'); - liveRegion.setAttribute('aria-atomic', 'true'); - }); - on('afterInit', () => { - if (!swiper.params.a11y.enabled) return; - init(); - }); - on('slidesLengthChange snapGridLengthChange slidesGridLengthChange', () => { - if (!swiper.params.a11y.enabled) return; - initSlides(); - }); - on('fromEdge toEdge afterInit lock unlock', () => { - if (!swiper.params.a11y.enabled) return; - updateNavigation(); - }); - on('paginationUpdate', () => { - if (!swiper.params.a11y.enabled) return; - updatePagination(); - }); - on('destroy', () => { - if (!swiper.params.a11y.enabled) return; - destroy(); - }); -} - -export { A11y as default }; diff --git a/build/assets/js/vendor/swiper/modules/a11y.scss b/build/assets/js/vendor/swiper/modules/a11y.scss deleted file mode 100644 index c5f9eec..0000000 --- a/build/assets/js/vendor/swiper/modules/a11y.scss +++ /dev/null @@ -1,9 +0,0 @@ -/* a11y */ -.swiper .swiper-notification { - position: absolute; - left: 0; - top: 0; - pointer-events: none; - opacity: 0; - z-index: -1000; -} diff --git a/build/assets/js/vendor/swiper/modules/autoplay-element.css b/build/assets/js/vendor/swiper/modules/autoplay-element.css deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/autoplay-element.css +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/autoplay-element.min.css b/build/assets/js/vendor/swiper/modules/autoplay-element.min.css deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/autoplay-element.min.css +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/autoplay.css b/build/assets/js/vendor/swiper/modules/autoplay.css deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/autoplay.css +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/autoplay.less b/build/assets/js/vendor/swiper/modules/autoplay.less deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/autoplay.less +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/autoplay.min.css b/build/assets/js/vendor/swiper/modules/autoplay.min.css deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/autoplay.min.css +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/autoplay.min.mjs b/build/assets/js/vendor/swiper/modules/autoplay.min.mjs deleted file mode 100644 index a5b77e5..0000000 --- a/build/assets/js/vendor/swiper/modules/autoplay.min.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{g as getDocument}from"../shared/ssr-window.esm.min.mjs";function Autoplay(e){let a,t,{swiper:n,extendParams:r,on:i,emit:o,params:s}=e;n.autoplay={running:!1,paused:!1,timeLeft:0},r({autoplay:{enabled:!1,delay:3e3,waitForTransition:!0,disableOnInteraction:!1,stopOnLastSlide:!1,reverseDirection:!1,pauseOnMouseEnter:!1}});let p,l,u,d,y,m,c,g,v=s&&s.autoplay?s.autoplay.delay:3e3,T=s&&s.autoplay?s.autoplay.delay:3e3,f=(new Date).getTime();function w(e){n&&!n.destroyed&&n.wrapperEl&&e.target===n.wrapperEl&&(n.wrapperEl.removeEventListener("transitionend",w),g||S())}const E=()=>{if(n.destroyed||!n.autoplay.running)return;n.autoplay.paused?l=!0:l&&(T=p,l=!1);const e=n.autoplay.paused?p:f+T-(new Date).getTime();n.autoplay.timeLeft=e,o("autoplayTimeLeft",e,e/v),t=requestAnimationFrame((()=>{E()}))},b=e=>{if(n.destroyed||!n.autoplay.running)return;cancelAnimationFrame(t),E();let r=void 0===e?n.params.autoplay.delay:e;v=n.params.autoplay.delay,T=n.params.autoplay.delay;const i=(()=>{let e;if(e=n.virtual&&n.params.virtual.enabled?n.slides.filter((e=>e.classList.contains("swiper-slide-active")))[0]:n.slides[n.activeIndex],!e)return;return parseInt(e.getAttribute("data-swiper-autoplay"),10)})();!Number.isNaN(i)&&i>0&&void 0===e&&(r=i,v=i,T=i),p=r;const s=n.params.speed,l=()=>{n&&!n.destroyed&&(n.params.autoplay.reverseDirection?!n.isBeginning||n.params.loop||n.params.rewind?(n.slidePrev(s,!0,!0),o("autoplay")):n.params.autoplay.stopOnLastSlide||(n.slideTo(n.slides.length-1,s,!0,!0),o("autoplay")):!n.isEnd||n.params.loop||n.params.rewind?(n.slideNext(s,!0,!0),o("autoplay")):n.params.autoplay.stopOnLastSlide||(n.slideTo(0,s,!0,!0),o("autoplay")),n.params.cssMode&&(f=(new Date).getTime(),requestAnimationFrame((()=>{b()}))))};return r>0?(clearTimeout(a),a=setTimeout((()=>{l()}),r)):requestAnimationFrame((()=>{l()})),r},L=()=>{f=(new Date).getTime(),n.autoplay.running=!0,b(),o("autoplayStart")},D=()=>{n.autoplay.running=!1,clearTimeout(a),cancelAnimationFrame(t),o("autoplayStop")},O=(e,t)=>{if(n.destroyed||!n.autoplay.running)return;clearTimeout(a),e||(c=!0);const r=()=>{o("autoplayPause"),n.params.autoplay.waitForTransition?n.wrapperEl.addEventListener("transitionend",w):S()};if(n.autoplay.paused=!0,t)return m&&(p=n.params.autoplay.delay),m=!1,void r();const i=p||n.params.autoplay.delay;p=i-((new Date).getTime()-f),n.isEnd&&p<0&&!n.params.loop||(p<0&&(p=0),r())},S=()=>{n.isEnd&&p<0&&!n.params.loop||n.destroyed||!n.autoplay.running||(f=(new Date).getTime(),c?(c=!1,b(p)):b(),n.autoplay.paused=!1,o("autoplayResume"))},A=()=>{if(n.destroyed||!n.autoplay.running)return;const e=getDocument();"hidden"===e.visibilityState&&(c=!0,O(!0)),"visible"===e.visibilityState&&S()},F=e=>{"mouse"===e.pointerType&&(c=!0,g=!0,n.animating||n.autoplay.paused||O(!0))},M=e=>{"mouse"===e.pointerType&&(g=!1,n.autoplay.paused&&S())};i("init",(()=>{n.params.autoplay.enabled&&(n.params.autoplay.pauseOnMouseEnter&&(n.el.addEventListener("pointerenter",F),n.el.addEventListener("pointerleave",M)),getDocument().addEventListener("visibilitychange",A),L())})),i("destroy",(()=>{n.el.removeEventListener("pointerenter",F),n.el.removeEventListener("pointerleave",M),getDocument().removeEventListener("visibilitychange",A),n.autoplay.running&&D()})),i("_freeModeStaticRelease",(()=>{(d||c)&&S()})),i("_freeModeNoMomentumRelease",(()=>{n.params.autoplay.disableOnInteraction?D():O(!0,!0)})),i("beforeTransitionStart",((e,a,t)=>{!n.destroyed&&n.autoplay.running&&(t||!n.params.autoplay.disableOnInteraction?O(!0,!0):D())})),i("sliderFirstMove",(()=>{!n.destroyed&&n.autoplay.running&&(n.params.autoplay.disableOnInteraction?D():(u=!0,d=!1,c=!1,y=setTimeout((()=>{c=!0,d=!0,O(!0)}),200)))})),i("touchEnd",(()=>{if(!n.destroyed&&n.autoplay.running&&u){if(clearTimeout(y),clearTimeout(a),n.params.autoplay.disableOnInteraction)return d=!1,void(u=!1);d&&n.params.cssMode&&S(),d=!1,u=!1}})),i("slideChange",(()=>{!n.destroyed&&n.autoplay.running&&(m=!0)})),Object.assign(n.autoplay,{start:L,stop:D,pause:O,resume:S})}export{Autoplay as default}; -//# sourceMappingURL=autoplay.min.mjs.map \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/autoplay.min.mjs.map b/build/assets/js/vendor/swiper/modules/autoplay.min.mjs.map deleted file mode 100644 index 0f086c1..0000000 --- a/build/assets/js/vendor/swiper/modules/autoplay.min.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"autoplay.mjs.mjs","names":["getDocument","Autoplay","_ref","timeout","raf","swiper","extendParams","on","emit","params","autoplay","running","paused","timeLeft","enabled","delay","waitForTransition","disableOnInteraction","stopOnLastSlide","reverseDirection","pauseOnMouseEnter","autoplayTimeLeft","wasPaused","isTouched","pausedByTouch","touchStartTimeout","slideChanged","pausedByInteraction","pausedByPointerEnter","autoplayDelayTotal","autoplayDelayCurrent","autoplayStartTime","Date","getTime","onTransitionEnd","e","destroyed","wrapperEl","target","removeEventListener","resume","calcTimeLeft","requestAnimationFrame","run","delayForce","cancelAnimationFrame","currentSlideDelay","activeSlideEl","virtual","slides","filter","slideEl","classList","contains","activeIndex","parseInt","getAttribute","getSlideDelay","Number","isNaN","speed","proceed","isBeginning","loop","rewind","slidePrev","slideTo","length","isEnd","slideNext","cssMode","clearTimeout","setTimeout","start","stop","pause","internal","reset","addEventListener","onVisibilityChange","document","visibilityState","onPointerEnter","pointerType","animating","onPointerLeave","el","_s","Object","assign"],"sources":["0"],"mappings":"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"} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/autoplay.mjs b/build/assets/js/vendor/swiper/modules/autoplay.mjs deleted file mode 100644 index 5e54974..0000000 --- a/build/assets/js/vendor/swiper/modules/autoplay.mjs +++ /dev/null @@ -1,302 +0,0 @@ -import { g as getDocument } from '../shared/ssr-window.esm.mjs'; - -/* eslint no-underscore-dangle: "off" */ -/* eslint no-use-before-define: "off" */ -function Autoplay(_ref) { - let { - swiper, - extendParams, - on, - emit, - params - } = _ref; - swiper.autoplay = { - running: false, - paused: false, - timeLeft: 0 - }; - extendParams({ - autoplay: { - enabled: false, - delay: 3000, - waitForTransition: true, - disableOnInteraction: false, - stopOnLastSlide: false, - reverseDirection: false, - pauseOnMouseEnter: false - } - }); - let timeout; - let raf; - let autoplayDelayTotal = params && params.autoplay ? params.autoplay.delay : 3000; - let autoplayDelayCurrent = params && params.autoplay ? params.autoplay.delay : 3000; - let autoplayTimeLeft; - let autoplayStartTime = new Date().getTime(); - let wasPaused; - let isTouched; - let pausedByTouch; - let touchStartTimeout; - let slideChanged; - let pausedByInteraction; - let pausedByPointerEnter; - function onTransitionEnd(e) { - if (!swiper || swiper.destroyed || !swiper.wrapperEl) return; - if (e.target !== swiper.wrapperEl) return; - swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd); - if (pausedByPointerEnter) { - return; - } - resume(); - } - const calcTimeLeft = () => { - if (swiper.destroyed || !swiper.autoplay.running) return; - if (swiper.autoplay.paused) { - wasPaused = true; - } else if (wasPaused) { - autoplayDelayCurrent = autoplayTimeLeft; - wasPaused = false; - } - const timeLeft = swiper.autoplay.paused ? autoplayTimeLeft : autoplayStartTime + autoplayDelayCurrent - new Date().getTime(); - swiper.autoplay.timeLeft = timeLeft; - emit('autoplayTimeLeft', timeLeft, timeLeft / autoplayDelayTotal); - raf = requestAnimationFrame(() => { - calcTimeLeft(); - }); - }; - const getSlideDelay = () => { - let activeSlideEl; - if (swiper.virtual && swiper.params.virtual.enabled) { - activeSlideEl = swiper.slides.filter(slideEl => slideEl.classList.contains('swiper-slide-active'))[0]; - } else { - activeSlideEl = swiper.slides[swiper.activeIndex]; - } - if (!activeSlideEl) return undefined; - const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10); - return currentSlideDelay; - }; - const run = delayForce => { - if (swiper.destroyed || !swiper.autoplay.running) return; - cancelAnimationFrame(raf); - calcTimeLeft(); - let delay = typeof delayForce === 'undefined' ? swiper.params.autoplay.delay : delayForce; - autoplayDelayTotal = swiper.params.autoplay.delay; - autoplayDelayCurrent = swiper.params.autoplay.delay; - const currentSlideDelay = getSlideDelay(); - if (!Number.isNaN(currentSlideDelay) && currentSlideDelay > 0 && typeof delayForce === 'undefined') { - delay = currentSlideDelay; - autoplayDelayTotal = currentSlideDelay; - autoplayDelayCurrent = currentSlideDelay; - } - autoplayTimeLeft = delay; - const speed = swiper.params.speed; - const proceed = () => { - if (!swiper || swiper.destroyed) return; - if (swiper.params.autoplay.reverseDirection) { - if (!swiper.isBeginning || swiper.params.loop || swiper.params.rewind) { - swiper.slidePrev(speed, true, true); - emit('autoplay'); - } else if (!swiper.params.autoplay.stopOnLastSlide) { - swiper.slideTo(swiper.slides.length - 1, speed, true, true); - emit('autoplay'); - } - } else { - if (!swiper.isEnd || swiper.params.loop || swiper.params.rewind) { - swiper.slideNext(speed, true, true); - emit('autoplay'); - } else if (!swiper.params.autoplay.stopOnLastSlide) { - swiper.slideTo(0, speed, true, true); - emit('autoplay'); - } - } - if (swiper.params.cssMode) { - autoplayStartTime = new Date().getTime(); - requestAnimationFrame(() => { - run(); - }); - } - }; - if (delay > 0) { - clearTimeout(timeout); - timeout = setTimeout(() => { - proceed(); - }, delay); - } else { - requestAnimationFrame(() => { - proceed(); - }); - } - - // eslint-disable-next-line - return delay; - }; - const start = () => { - autoplayStartTime = new Date().getTime(); - swiper.autoplay.running = true; - run(); - emit('autoplayStart'); - }; - const stop = () => { - swiper.autoplay.running = false; - clearTimeout(timeout); - cancelAnimationFrame(raf); - emit('autoplayStop'); - }; - const pause = (internal, reset) => { - if (swiper.destroyed || !swiper.autoplay.running) return; - clearTimeout(timeout); - if (!internal) { - pausedByInteraction = true; - } - const proceed = () => { - emit('autoplayPause'); - if (swiper.params.autoplay.waitForTransition) { - swiper.wrapperEl.addEventListener('transitionend', onTransitionEnd); - } else { - resume(); - } - }; - swiper.autoplay.paused = true; - if (reset) { - if (slideChanged) { - autoplayTimeLeft = swiper.params.autoplay.delay; - } - slideChanged = false; - proceed(); - return; - } - const delay = autoplayTimeLeft || swiper.params.autoplay.delay; - autoplayTimeLeft = delay - (new Date().getTime() - autoplayStartTime); - if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) return; - if (autoplayTimeLeft < 0) autoplayTimeLeft = 0; - proceed(); - }; - const resume = () => { - if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop || swiper.destroyed || !swiper.autoplay.running) return; - autoplayStartTime = new Date().getTime(); - if (pausedByInteraction) { - pausedByInteraction = false; - run(autoplayTimeLeft); - } else { - run(); - } - swiper.autoplay.paused = false; - emit('autoplayResume'); - }; - const onVisibilityChange = () => { - if (swiper.destroyed || !swiper.autoplay.running) return; - const document = getDocument(); - if (document.visibilityState === 'hidden') { - pausedByInteraction = true; - pause(true); - } - if (document.visibilityState === 'visible') { - resume(); - } - }; - const onPointerEnter = e => { - if (e.pointerType !== 'mouse') return; - pausedByInteraction = true; - pausedByPointerEnter = true; - if (swiper.animating || swiper.autoplay.paused) return; - pause(true); - }; - const onPointerLeave = e => { - if (e.pointerType !== 'mouse') return; - pausedByPointerEnter = false; - if (swiper.autoplay.paused) { - resume(); - } - }; - const attachMouseEvents = () => { - if (swiper.params.autoplay.pauseOnMouseEnter) { - swiper.el.addEventListener('pointerenter', onPointerEnter); - swiper.el.addEventListener('pointerleave', onPointerLeave); - } - }; - const detachMouseEvents = () => { - swiper.el.removeEventListener('pointerenter', onPointerEnter); - swiper.el.removeEventListener('pointerleave', onPointerLeave); - }; - const attachDocumentEvents = () => { - const document = getDocument(); - document.addEventListener('visibilitychange', onVisibilityChange); - }; - const detachDocumentEvents = () => { - const document = getDocument(); - document.removeEventListener('visibilitychange', onVisibilityChange); - }; - on('init', () => { - if (swiper.params.autoplay.enabled) { - attachMouseEvents(); - attachDocumentEvents(); - start(); - } - }); - on('destroy', () => { - detachMouseEvents(); - detachDocumentEvents(); - if (swiper.autoplay.running) { - stop(); - } - }); - on('_freeModeStaticRelease', () => { - if (pausedByTouch || pausedByInteraction) { - resume(); - } - }); - on('_freeModeNoMomentumRelease', () => { - if (!swiper.params.autoplay.disableOnInteraction) { - pause(true, true); - } else { - stop(); - } - }); - on('beforeTransitionStart', (_s, speed, internal) => { - if (swiper.destroyed || !swiper.autoplay.running) return; - if (internal || !swiper.params.autoplay.disableOnInteraction) { - pause(true, true); - } else { - stop(); - } - }); - on('sliderFirstMove', () => { - if (swiper.destroyed || !swiper.autoplay.running) return; - if (swiper.params.autoplay.disableOnInteraction) { - stop(); - return; - } - isTouched = true; - pausedByTouch = false; - pausedByInteraction = false; - touchStartTimeout = setTimeout(() => { - pausedByInteraction = true; - pausedByTouch = true; - pause(true); - }, 200); - }); - on('touchEnd', () => { - if (swiper.destroyed || !swiper.autoplay.running || !isTouched) return; - clearTimeout(touchStartTimeout); - clearTimeout(timeout); - if (swiper.params.autoplay.disableOnInteraction) { - pausedByTouch = false; - isTouched = false; - return; - } - if (pausedByTouch && swiper.params.cssMode) resume(); - pausedByTouch = false; - isTouched = false; - }); - on('slideChange', () => { - if (swiper.destroyed || !swiper.autoplay.running) return; - slideChanged = true; - }); - Object.assign(swiper.autoplay, { - start, - stop, - pause, - resume - }); -} - -export { Autoplay as default }; diff --git a/build/assets/js/vendor/swiper/modules/autoplay.scss b/build/assets/js/vendor/swiper/modules/autoplay.scss deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/autoplay.scss +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/controller-element.css b/build/assets/js/vendor/swiper/modules/controller-element.css deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/controller-element.css +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/controller-element.min.css b/build/assets/js/vendor/swiper/modules/controller-element.min.css deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/controller-element.min.css +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/controller.css b/build/assets/js/vendor/swiper/modules/controller.css deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/controller.css +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/controller.less b/build/assets/js/vendor/swiper/modules/controller.less deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/controller.less +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/controller.min.css b/build/assets/js/vendor/swiper/modules/controller.min.css deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/controller.min.css +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/controller.min.mjs b/build/assets/js/vendor/swiper/modules/controller.min.mjs deleted file mode 100644 index 4e17d53..0000000 --- a/build/assets/js/vendor/swiper/modules/controller.min.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{n as nextTick,j as elementTransitionEnd}from"../shared/utils.min.mjs";function Controller(t){let{swiper:e,extendParams:n,on:r}=t;function o(t,e){const n=function(){let t,e,n;return(r,o)=>{for(e=-1,t=r.length;t-e>1;)n=t+e>>1,r[n]<=o?e=n:t=n;return t}}();let r,o;return this.x=t,this.y=e,this.lastIndex=t.length-1,this.interpolate=function(t){return t?(o=n(this.x,t),r=o-1,(t-this.x[r])*(this.y[o]-this.y[r])/(this.x[o]-this.x[r])+this.y[r]):0},this}function l(){e.controller.control&&e.controller.spline&&(e.controller.spline=void 0,delete e.controller.spline)}n({controller:{control:void 0,inverse:!1,by:"slide"}}),e.controller={control:void 0},r("beforeInit",(()=>{if("undefined"!=typeof window&&("string"==typeof e.params.controller.control||e.params.controller.control instanceof HTMLElement)){const t=document.querySelector(e.params.controller.control);if(t&&t.swiper)e.controller.control=t.swiper;else if(t){const n=r=>{e.controller.control=r.detail[0],e.update(),t.removeEventListener("init",n)};t.addEventListener("init",n)}}else e.controller.control=e.params.controller.control})),r("update",(()=>{l()})),r("resize",(()=>{l()})),r("observerUpdate",(()=>{l()})),r("setTranslate",((t,n,r)=>{e.controller.control&&!e.controller.control.destroyed&&e.controller.setTranslate(n,r)})),r("setTransition",((t,n,r)=>{e.controller.control&&!e.controller.control.destroyed&&e.controller.setTransition(n,r)})),Object.assign(e.controller,{setTranslate:function(t,n){const r=e.controller.control;let l,s;const i=e.constructor;function a(t){if(t.destroyed)return;const n=e.rtlTranslate?-e.translate:e.translate;"slide"===e.params.controller.by&&(!function(t){e.controller.spline=e.params.loop?new o(e.slidesGrid,t.slidesGrid):new o(e.snapGrid,t.snapGrid)}(t),s=-e.controller.spline.interpolate(-n)),s&&"container"!==e.params.controller.by||(l=(t.maxTranslate()-t.minTranslate())/(e.maxTranslate()-e.minTranslate()),!Number.isNaN(l)&&Number.isFinite(l)||(l=1),s=(n-e.minTranslate())*l+t.minTranslate()),e.params.controller.inverse&&(s=t.maxTranslate()-s),t.updateProgress(s),t.setTranslate(s,e),t.updateActiveIndex(),t.updateSlidesClasses()}if(Array.isArray(r))for(let t=0;t{n.updateAutoHeight()})),elementTransitionEnd(n.wrapperEl,(()=>{o&&n.transitionEnd()}))))}if(Array.isArray(o))for(l=0;l>"] }] */ -function Controller(_ref) { - let { - swiper, - extendParams, - on - } = _ref; - extendParams({ - controller: { - control: undefined, - inverse: false, - by: 'slide' // or 'container' - } - }); - - swiper.controller = { - control: undefined - }; - function LinearSpline(x, y) { - const binarySearch = function search() { - let maxIndex; - let minIndex; - let guess; - return (array, val) => { - minIndex = -1; - maxIndex = array.length; - while (maxIndex - minIndex > 1) { - guess = maxIndex + minIndex >> 1; - if (array[guess] <= val) { - minIndex = guess; - } else { - maxIndex = guess; - } - } - return maxIndex; - }; - }(); - this.x = x; - this.y = y; - this.lastIndex = x.length - 1; - // Given an x value (x2), return the expected y2 value: - // (x1,y1) is the known point before given value, - // (x3,y3) is the known point after given value. - let i1; - let i3; - this.interpolate = function interpolate(x2) { - if (!x2) return 0; - - // Get the indexes of x1 and x3 (the array indexes before and after given x2): - i3 = binarySearch(this.x, x2); - i1 = i3 - 1; - - // We have our indexes i1 & i3, so we can calculate already: - // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1 - return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1]; - }; - return this; - } - function getInterpolateFunction(c) { - swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid); - } - function setTranslate(_t, byController) { - const controlled = swiper.controller.control; - let multiplier; - let controlledTranslate; - const Swiper = swiper.constructor; - function setControlledTranslate(c) { - if (c.destroyed) return; - - // this will create an Interpolate function based on the snapGrids - // x is the Grid of the scrolled scroller and y will be the controlled scroller - // it makes sense to create this only once and recall it for the interpolation - // the function does a lot of value caching for performance - const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate; - if (swiper.params.controller.by === 'slide') { - getInterpolateFunction(c); - // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid - // but it did not work out - controlledTranslate = -swiper.controller.spline.interpolate(-translate); - } - if (!controlledTranslate || swiper.params.controller.by === 'container') { - multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate()); - if (Number.isNaN(multiplier) || !Number.isFinite(multiplier)) { - multiplier = 1; - } - controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate(); - } - if (swiper.params.controller.inverse) { - controlledTranslate = c.maxTranslate() - controlledTranslate; - } - c.updateProgress(controlledTranslate); - c.setTranslate(controlledTranslate, swiper); - c.updateActiveIndex(); - c.updateSlidesClasses(); - } - if (Array.isArray(controlled)) { - for (let i = 0; i < controlled.length; i += 1) { - if (controlled[i] !== byController && controlled[i] instanceof Swiper) { - setControlledTranslate(controlled[i]); - } - } - } else if (controlled instanceof Swiper && byController !== controlled) { - setControlledTranslate(controlled); - } - } - function setTransition(duration, byController) { - const Swiper = swiper.constructor; - const controlled = swiper.controller.control; - let i; - function setControlledTransition(c) { - if (c.destroyed) return; - c.setTransition(duration, swiper); - if (duration !== 0) { - c.transitionStart(); - if (c.params.autoHeight) { - nextTick(() => { - c.updateAutoHeight(); - }); - } - elementTransitionEnd(c.wrapperEl, () => { - if (!controlled) return; - c.transitionEnd(); - }); - } - } - if (Array.isArray(controlled)) { - for (i = 0; i < controlled.length; i += 1) { - if (controlled[i] !== byController && controlled[i] instanceof Swiper) { - setControlledTransition(controlled[i]); - } - } - } else if (controlled instanceof Swiper && byController !== controlled) { - setControlledTransition(controlled); - } - } - function removeSpline() { - if (!swiper.controller.control) return; - if (swiper.controller.spline) { - swiper.controller.spline = undefined; - delete swiper.controller.spline; - } - } - on('beforeInit', () => { - if (typeof window !== 'undefined' && ( - // eslint-disable-line - typeof swiper.params.controller.control === 'string' || swiper.params.controller.control instanceof HTMLElement)) { - const controlElement = document.querySelector(swiper.params.controller.control); - if (controlElement && controlElement.swiper) { - swiper.controller.control = controlElement.swiper; - } else if (controlElement) { - const onControllerSwiper = e => { - swiper.controller.control = e.detail[0]; - swiper.update(); - controlElement.removeEventListener('init', onControllerSwiper); - }; - controlElement.addEventListener('init', onControllerSwiper); - } - return; - } - swiper.controller.control = swiper.params.controller.control; - }); - on('update', () => { - removeSpline(); - }); - on('resize', () => { - removeSpline(); - }); - on('observerUpdate', () => { - removeSpline(); - }); - on('setTranslate', (_s, translate, byController) => { - if (!swiper.controller.control || swiper.controller.control.destroyed) return; - swiper.controller.setTranslate(translate, byController); - }); - on('setTransition', (_s, duration, byController) => { - if (!swiper.controller.control || swiper.controller.control.destroyed) return; - swiper.controller.setTransition(duration, byController); - }); - Object.assign(swiper.controller, { - setTranslate, - setTransition - }); -} - -export { Controller as default }; diff --git a/build/assets/js/vendor/swiper/modules/controller.scss b/build/assets/js/vendor/swiper/modules/controller.scss deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/controller.scss +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/effect-cards-element.css b/build/assets/js/vendor/swiper/modules/effect-cards-element.css deleted file mode 100644 index f831010..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-cards-element.css +++ /dev/null @@ -1,9 +0,0 @@ -.swiper-cards { - overflow: visible; -} -.swiper-cards ::slotted(swiper-slide) { - transform-origin: center bottom; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - overflow: hidden; -} diff --git a/build/assets/js/vendor/swiper/modules/effect-cards-element.min.css b/build/assets/js/vendor/swiper/modules/effect-cards-element.min.css deleted file mode 100644 index 97c6648..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-cards-element.min.css +++ /dev/null @@ -1 +0,0 @@ -.swiper-cards{overflow:visible}.swiper-cards ::slotted(swiper-slide){transform-origin:center bottom;-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/effect-cards.css b/build/assets/js/vendor/swiper/modules/effect-cards.css deleted file mode 100644 index 4b9f64b..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-cards.css +++ /dev/null @@ -1,9 +0,0 @@ -.swiper-cards { - overflow: visible; -} -.swiper-cards .swiper-slide { - transform-origin: center bottom; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - overflow: hidden; -} diff --git a/build/assets/js/vendor/swiper/modules/effect-cards.less b/build/assets/js/vendor/swiper/modules/effect-cards.less deleted file mode 100644 index ab90342..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-cards.less +++ /dev/null @@ -1,8 +0,0 @@ -.swiper-cards { - overflow: visible; - .swiper-slide { - transform-origin: center bottom; - backface-visibility: hidden; - overflow: hidden; - } -} diff --git a/build/assets/js/vendor/swiper/modules/effect-cards.min.css b/build/assets/js/vendor/swiper/modules/effect-cards.min.css deleted file mode 100644 index 1769ef2..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-cards.min.css +++ /dev/null @@ -1 +0,0 @@ -.swiper-cards{overflow:visible}.swiper-cards .swiper-slide{transform-origin:center bottom;-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/effect-cards.min.mjs b/build/assets/js/vendor/swiper/modules/effect-cards.min.mjs deleted file mode 100644 index fe35634..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-cards.min.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{c as createShadow}from"../shared/create-shadow.min.mjs";import{e as effectInit}from"../shared/effect-init.min.mjs";import{e as effectTarget}from"../shared/effect-target.min.mjs";import{e as effectVirtualTransitionEnd}from"../shared/effect-virtual-transition-end.min.mjs";import{l as getSlideTransformEl}from"../shared/utils.min.mjs";function EffectCards(e){let{swiper:t,extendParams:a,on:s}=e;a({cardsEffect:{slideShadows:!0,rotate:!0,perSlideRotate:2,perSlideOffset:8}});effectInit({effect:"cards",swiper:t,on:s,setTranslate:()=>{const{slides:e,activeIndex:a,rtlTranslate:s}=t,r=t.params.cardsEffect,{startTranslate:i,isTouched:n}=t.touchEventsData,o=s?-t.translate:t.translate;for(let l=0;l0&&c<1&&(n||t.params.cssMode)&&o-1&&(n||t.params.cssMode)&&o>i;if(E||T){const e=(1-Math.abs((Math.abs(c)-.5)/.5))**.5;w+=-28*c*e,u+=-.5*e,S+=96*e,h=-25*e*Math.abs(c)+"%"}if(p=c<0?`calc(${p}px ${s?"-":"+"} (${S*Math.abs(c)}%))`:c>0?`calc(${p}px ${s?"-":"+"} (-${S*Math.abs(c)}%))`:`${p}px`,!t.isHorizontal()){const e=h;h=p,p=e}const x=c<0?""+(1+(1-u)*c):""+(1-(1-u)*c),b=`\n translate3d(${p}, ${h}, ${M}px)\n rotateZ(${r.rotate?s?-w:w:0}deg)\n scale(${x})\n `;if(r.slideShadows){let e=d.querySelector(".swiper-slide-shadow");e||(e=createShadow("cards",d)),e&&(e.style.opacity=Math.min(Math.max((Math.abs(c)-.5)/.5,0),1))}d.style.zIndex=-Math.abs(Math.round(f))+e.length;effectTarget(r,d).style.transform=b}},setTransition:e=>{const a=t.slides.map((e=>getSlideTransformEl(e)));a.forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow").forEach((t=>{t.style.transitionDuration=`${e}ms`}))})),effectVirtualTransitionEnd({swiper:t,duration:e,transformElements:a})},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!t.params.cssMode})})}export{EffectCards as default}; -//# sourceMappingURL=effect-cards.min.mjs.map \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/effect-cards.min.mjs.map b/build/assets/js/vendor/swiper/modules/effect-cards.min.mjs.map deleted file mode 100644 index e23f337..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-cards.min.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"effect-cards.mjs.mjs","names":["createShadow","effectInit","effectTarget","effectVirtualTransitionEnd","getSlideTransformEl","EffectCards","_ref","swiper","extendParams","on","cardsEffect","slideShadows","rotate","perSlideRotate","perSlideOffset","effect","setTranslate","slides","activeIndex","rtlTranslate","rtl","params","startTranslate","isTouched","touchEventsData","currentTranslate","translate","i","length","slideEl","slideProgress","progress","Math","min","max","offset","swiperSlideOffset","centeredSlides","cssMode","wrapperEl","style","transform","minTranslate","tX","tY","tZ","abs","scale","tXAdd","slideIndex","virtual","enabled","from","isSwipeToNext","isSwipeToPrev","subProgress","isHorizontal","prevY","scaleString","shadowEl","querySelector","opacity","zIndex","round","setTransition","duration","transformElements","map","forEach","el","transitionDuration","querySelectorAll","perspective","overwriteParams","watchSlidesProgress","virtualTranslate"],"sources":["0"],"mappings":"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"} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/effect-cards.mjs b/build/assets/js/vendor/swiper/modules/effect-cards.mjs deleted file mode 100644 index 1c3b18c..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-cards.mjs +++ /dev/null @@ -1,125 +0,0 @@ -import { c as createShadow } from '../shared/create-shadow.mjs'; -import { e as effectInit } from '../shared/effect-init.mjs'; -import { e as effectTarget } from '../shared/effect-target.mjs'; -import { e as effectVirtualTransitionEnd } from '../shared/effect-virtual-transition-end.mjs'; -import { l as getSlideTransformEl } from '../shared/utils.mjs'; - -function EffectCards(_ref) { - let { - swiper, - extendParams, - on - } = _ref; - extendParams({ - cardsEffect: { - slideShadows: true, - rotate: true, - perSlideRotate: 2, - perSlideOffset: 8 - } - }); - const setTranslate = () => { - const { - slides, - activeIndex, - rtlTranslate: rtl - } = swiper; - const params = swiper.params.cardsEffect; - const { - startTranslate, - isTouched - } = swiper.touchEventsData; - const currentTranslate = rtl ? -swiper.translate : swiper.translate; - for (let i = 0; i < slides.length; i += 1) { - const slideEl = slides[i]; - const slideProgress = slideEl.progress; - const progress = Math.min(Math.max(slideProgress, -4), 4); - let offset = slideEl.swiperSlideOffset; - if (swiper.params.centeredSlides && !swiper.params.cssMode) { - swiper.wrapperEl.style.transform = `translateX(${swiper.minTranslate()}px)`; - } - if (swiper.params.centeredSlides && swiper.params.cssMode) { - offset -= slides[0].swiperSlideOffset; - } - let tX = swiper.params.cssMode ? -offset - swiper.translate : -offset; - let tY = 0; - const tZ = -100 * Math.abs(progress); - let scale = 1; - let rotate = -params.perSlideRotate * progress; - let tXAdd = params.perSlideOffset - Math.abs(progress) * 0.75; - const slideIndex = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.from + i : i; - const isSwipeToNext = (slideIndex === activeIndex || slideIndex === activeIndex - 1) && progress > 0 && progress < 1 && (isTouched || swiper.params.cssMode) && currentTranslate < startTranslate; - const isSwipeToPrev = (slideIndex === activeIndex || slideIndex === activeIndex + 1) && progress < 0 && progress > -1 && (isTouched || swiper.params.cssMode) && currentTranslate > startTranslate; - if (isSwipeToNext || isSwipeToPrev) { - const subProgress = (1 - Math.abs((Math.abs(progress) - 0.5) / 0.5)) ** 0.5; - rotate += -28 * progress * subProgress; - scale += -0.5 * subProgress; - tXAdd += 96 * subProgress; - tY = `${-25 * subProgress * Math.abs(progress)}%`; - } - if (progress < 0) { - // next - tX = `calc(${tX}px ${rtl ? '-' : '+'} (${tXAdd * Math.abs(progress)}%))`; - } else if (progress > 0) { - // prev - tX = `calc(${tX}px ${rtl ? '-' : '+'} (-${tXAdd * Math.abs(progress)}%))`; - } else { - tX = `${tX}px`; - } - if (!swiper.isHorizontal()) { - const prevY = tY; - tY = tX; - tX = prevY; - } - const scaleString = progress < 0 ? `${1 + (1 - scale) * progress}` : `${1 - (1 - scale) * progress}`; - - /* eslint-disable */ - const transform = ` - translate3d(${tX}, ${tY}, ${tZ}px) - rotateZ(${params.rotate ? rtl ? -rotate : rotate : 0}deg) - scale(${scaleString}) - `; - /* eslint-enable */ - - if (params.slideShadows) { - // Set shadows - let shadowEl = slideEl.querySelector('.swiper-slide-shadow'); - if (!shadowEl) { - shadowEl = createShadow('cards', slideEl); - } - if (shadowEl) shadowEl.style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1); - } - slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length; - const targetEl = effectTarget(params, slideEl); - targetEl.style.transform = transform; - } - }; - const setTransition = duration => { - const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl)); - transformElements.forEach(el => { - el.style.transitionDuration = `${duration}ms`; - el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => { - shadowEl.style.transitionDuration = `${duration}ms`; - }); - }); - effectVirtualTransitionEnd({ - swiper, - duration, - transformElements - }); - }; - effectInit({ - effect: 'cards', - swiper, - on, - setTranslate, - setTransition, - perspective: () => true, - overwriteParams: () => ({ - watchSlidesProgress: true, - virtualTranslate: !swiper.params.cssMode - }) - }); -} - -export { EffectCards as default }; diff --git a/build/assets/js/vendor/swiper/modules/effect-cards.scss b/build/assets/js/vendor/swiper/modules/effect-cards.scss deleted file mode 100644 index ab90342..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-cards.scss +++ /dev/null @@ -1,8 +0,0 @@ -.swiper-cards { - overflow: visible; - .swiper-slide { - transform-origin: center bottom; - backface-visibility: hidden; - overflow: hidden; - } -} diff --git a/build/assets/js/vendor/swiper/modules/effect-coverflow-element.css b/build/assets/js/vendor/swiper/modules/effect-coverflow-element.css deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-coverflow-element.css +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/effect-coverflow-element.min.css b/build/assets/js/vendor/swiper/modules/effect-coverflow-element.min.css deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-coverflow-element.min.css +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/effect-coverflow.css b/build/assets/js/vendor/swiper/modules/effect-coverflow.css deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-coverflow.css +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/effect-coverflow.less b/build/assets/js/vendor/swiper/modules/effect-coverflow.less deleted file mode 100644 index ac504bf..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-coverflow.less +++ /dev/null @@ -1,2 +0,0 @@ -.swiper-coverflow { -} diff --git a/build/assets/js/vendor/swiper/modules/effect-coverflow.min.css b/build/assets/js/vendor/swiper/modules/effect-coverflow.min.css deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-coverflow.min.css +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/effect-coverflow.min.mjs b/build/assets/js/vendor/swiper/modules/effect-coverflow.min.mjs deleted file mode 100644 index 67b2ad5..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-coverflow.min.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{c as createShadow}from"../shared/create-shadow.min.mjs";import{e as effectInit}from"../shared/effect-init.min.mjs";import{e as effectTarget}from"../shared/effect-target.min.mjs";import{l as getSlideTransformEl}from"../shared/utils.min.mjs";function EffectCoverflow(e){let{swiper:t,extendParams:s,on:r}=e;s({coverflowEffect:{rotate:50,stretch:0,depth:100,scale:1,modifier:1,slideShadows:!0}});effectInit({effect:"coverflow",swiper:t,on:r,setTranslate:()=>{const{width:e,height:s,slides:r,slidesSizesGrid:a}=t,o=t.params.coverflowEffect,i=t.isHorizontal(),l=t.translate,f=i?e/2-l:s/2-l,d=i?o.rotate:-o.rotate,h=o.depth;for(let e=0,s=r.length;e0?n:0),t&&(t.style.opacity=-n>0?-n:0)}}},setTransition:e=>{t.slides.map((e=>getSlideTransformEl(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})})}export{EffectCoverflow as default}; -//# sourceMappingURL=effect-coverflow.min.mjs.map \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/effect-coverflow.min.mjs.map b/build/assets/js/vendor/swiper/modules/effect-coverflow.min.mjs.map deleted file mode 100644 index 1f1997b..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-coverflow.min.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"effect-coverflow.mjs.mjs","names":["createShadow","effectInit","effectTarget","getSlideTransformEl","EffectCoverflow","_ref","swiper","extendParams","on","coverflowEffect","rotate","stretch","depth","scale","modifier","slideShadows","effect","setTranslate","width","swiperWidth","height","swiperHeight","slides","slidesSizesGrid","params","isHorizontal","transform","translate","center","i","length","slideEl","slideSize","centerOffset","swiperSlideOffset","offsetMultiplier","rotateY","rotateX","translateZ","Math","abs","indexOf","parseFloat","translateY","translateX","browser","isSafari","slideTransform","style","zIndex","round","shadowBeforeEl","querySelector","shadowAfterEl","opacity","setTransition","duration","map","forEach","el","transitionDuration","querySelectorAll","shadowEl","perspective","overwriteParams","watchSlidesProgress"],"sources":["0"],"mappings":"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"} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/effect-coverflow.mjs b/build/assets/js/vendor/swiper/modules/effect-coverflow.mjs deleted file mode 100644 index bde25f4..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-coverflow.mjs +++ /dev/null @@ -1,111 +0,0 @@ -import { c as createShadow } from '../shared/create-shadow.mjs'; -import { e as effectInit } from '../shared/effect-init.mjs'; -import { e as effectTarget } from '../shared/effect-target.mjs'; -import { l as getSlideTransformEl } from '../shared/utils.mjs'; - -function EffectCoverflow(_ref) { - let { - swiper, - extendParams, - on - } = _ref; - extendParams({ - coverflowEffect: { - rotate: 50, - stretch: 0, - depth: 100, - scale: 1, - modifier: 1, - slideShadows: true - } - }); - const setTranslate = () => { - const { - width: swiperWidth, - height: swiperHeight, - slides, - slidesSizesGrid - } = swiper; - const params = swiper.params.coverflowEffect; - const isHorizontal = swiper.isHorizontal(); - const transform = swiper.translate; - const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2; - const rotate = isHorizontal ? params.rotate : -params.rotate; - const translate = params.depth; - // Each slide offset from center - for (let i = 0, length = slides.length; i < length; i += 1) { - const slideEl = slides[i]; - const slideSize = slidesSizesGrid[i]; - const slideOffset = slideEl.swiperSlideOffset; - const centerOffset = (center - slideOffset - slideSize / 2) / slideSize; - const offsetMultiplier = typeof params.modifier === 'function' ? params.modifier(centerOffset) : centerOffset * params.modifier; - let rotateY = isHorizontal ? rotate * offsetMultiplier : 0; - let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier; - // var rotateZ = 0 - let translateZ = -translate * Math.abs(offsetMultiplier); - let stretch = params.stretch; - // Allow percentage to make a relative stretch for responsive sliders - if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) { - stretch = parseFloat(params.stretch) / 100 * slideSize; - } - let translateY = isHorizontal ? 0 : stretch * offsetMultiplier; - let translateX = isHorizontal ? stretch * offsetMultiplier : 0; - let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier); - - // Fix for ultra small values - if (Math.abs(translateX) < 0.001) translateX = 0; - if (Math.abs(translateY) < 0.001) translateY = 0; - if (Math.abs(translateZ) < 0.001) translateZ = 0; - if (Math.abs(rotateY) < 0.001) rotateY = 0; - if (Math.abs(rotateX) < 0.001) rotateX = 0; - if (Math.abs(scale) < 0.001) scale = 0; - if (swiper.browser && swiper.browser.isSafari) { - if (Math.abs(rotateY) / 90 % 2 === 1) { - rotateY += 0.001; - } - if (Math.abs(rotateX) / 90 % 2 === 1) { - rotateX += 0.001; - } - } - const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${rotateX}deg) rotateY(${rotateY}deg) scale(${scale})`; - const targetEl = effectTarget(params, slideEl); - targetEl.style.transform = slideTransform; - slideEl.style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1; - if (params.slideShadows) { - // Set shadows - let shadowBeforeEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top'); - let shadowAfterEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom'); - if (!shadowBeforeEl) { - shadowBeforeEl = createShadow('coverflow', slideEl, isHorizontal ? 'left' : 'top'); - } - if (!shadowAfterEl) { - shadowAfterEl = createShadow('coverflow', slideEl, isHorizontal ? 'right' : 'bottom'); - } - if (shadowBeforeEl) shadowBeforeEl.style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0; - if (shadowAfterEl) shadowAfterEl.style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0; - } - } - }; - const setTransition = duration => { - const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl)); - transformElements.forEach(el => { - el.style.transitionDuration = `${duration}ms`; - el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => { - shadowEl.style.transitionDuration = `${duration}ms`; - }); - }); - }; - effectInit({ - effect: 'coverflow', - swiper, - on, - setTranslate, - setTransition, - perspective: () => true, - overwriteParams: () => ({ - watchSlidesProgress: true - }) - }); -} - -export { EffectCoverflow as default }; diff --git a/build/assets/js/vendor/swiper/modules/effect-coverflow.scss b/build/assets/js/vendor/swiper/modules/effect-coverflow.scss deleted file mode 100644 index ac504bf..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-coverflow.scss +++ /dev/null @@ -1,2 +0,0 @@ -.swiper-coverflow { -} diff --git a/build/assets/js/vendor/swiper/modules/effect-creative-element.css b/build/assets/js/vendor/swiper/modules/effect-creative-element.css deleted file mode 100644 index 6ccf22b..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-creative-element.css +++ /dev/null @@ -1,6 +0,0 @@ -.swiper-creative ::slotted(swiper-slide) { - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - overflow: hidden; - transition-property: transform, opacity, height; -} diff --git a/build/assets/js/vendor/swiper/modules/effect-creative-element.min.css b/build/assets/js/vendor/swiper/modules/effect-creative-element.min.css deleted file mode 100644 index 70fb705..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-creative-element.min.css +++ /dev/null @@ -1 +0,0 @@ -.swiper-creative ::slotted(swiper-slide){-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/effect-creative.css b/build/assets/js/vendor/swiper/modules/effect-creative.css deleted file mode 100644 index 2082494..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-creative.css +++ /dev/null @@ -1,6 +0,0 @@ -.swiper-creative .swiper-slide { - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - overflow: hidden; - transition-property: transform, opacity, height; -} diff --git a/build/assets/js/vendor/swiper/modules/effect-creative.less b/build/assets/js/vendor/swiper/modules/effect-creative.less deleted file mode 100644 index b893cad..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-creative.less +++ /dev/null @@ -1,7 +0,0 @@ -.swiper-creative { - .swiper-slide { - backface-visibility: hidden; - overflow: hidden; - transition-property: transform, opacity, height; - } -} diff --git a/build/assets/js/vendor/swiper/modules/effect-creative.min.css b/build/assets/js/vendor/swiper/modules/effect-creative.min.css deleted file mode 100644 index 404da2c..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-creative.min.css +++ /dev/null @@ -1 +0,0 @@ -.swiper-creative .swiper-slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/effect-creative.min.mjs b/build/assets/js/vendor/swiper/modules/effect-creative.min.mjs deleted file mode 100644 index 0b1a3ff..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-creative.min.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{c as createShadow}from"../shared/create-shadow.min.mjs";import{e as effectInit}from"../shared/effect-init.min.mjs";import{e as effectTarget}from"../shared/effect-target.min.mjs";import{e as effectVirtualTransitionEnd}from"../shared/effect-virtual-transition-end.min.mjs";import{l as getSlideTransformEl}from"../shared/utils.min.mjs";function EffectCreative(e){let{swiper:t,extendParams:r,on:s}=e;r({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 a=e=>"string"==typeof e?e:`${e}px`;effectInit({effect:"creative",swiper:t,on:s,setTranslate:()=>{const{slides:e,wrapperEl:r,slidesSizesGrid:s}=t,i=t.params.creativeEffect,{progressMultiplier:o}=i,l=t.params.centeredSlides;if(l){const e=s[0]/2-t.params.slidesOffsetBefore||0;r.style.transform=`translateX(calc(50% - ${e}px))`}for(let r=0;r0&&(g=i.prev,h=!0),p.forEach(((e,t)=>{p[t]=`calc(${e}px + (${a(g.translate[t])} * ${Math.abs(c*o)}))`})),d.forEach(((e,r)=>{let s=g.rotate[r]*Math.abs(c*o);t.browser&&t.browser.isSafari&&Math.abs(s)/90%2==1&&(s+=.001),d[r]=s})),s.style.zIndex=-Math.abs(Math.round(n))+e.length;const w=p.join(", "),y=`rotateX(${d[0]}deg) rotateY(${d[1]}deg) rotateZ(${d[2]}deg)`,M=f<0?`scale(${1+(1-g.scale)*f*o})`:`scale(${1-(1-g.scale)*f*o})`,u=f<0?1+(1-g.opacity)*f*o:1-(1-g.opacity)*f*o,v=`translate3d(${w}) ${y} ${M}`;if(h&&g.shadow||!h){let e=s.querySelector(".swiper-slide-shadow");if(!e&&g.shadow&&(e=createShadow("creative",s)),e){const t=i.shadowPerProgress?c*(1/i.limitProgress):c;e.style.opacity=Math.min(Math.max(Math.abs(t),0),1)}}const E=effectTarget(i,s);E.style.transform=v,E.style.opacity=u,g.origin&&(E.style.transformOrigin=g.origin)}},setTransition:e=>{const r=t.slides.map((e=>getSlideTransformEl(e)));r.forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow").forEach((t=>{t.style.transitionDuration=`${e}ms`}))})),effectVirtualTransitionEnd({swiper:t,duration:e,transformElements:r,allSlides:!0})},perspective:()=>t.params.creativeEffect.perspective,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!t.params.cssMode})})}export{EffectCreative as default}; -//# sourceMappingURL=effect-creative.min.mjs.map \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/effect-creative.min.mjs.map b/build/assets/js/vendor/swiper/modules/effect-creative.min.mjs.map deleted file mode 100644 index cdac947..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-creative.min.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"effect-creative.mjs.mjs","names":["createShadow","effectInit","effectTarget","effectVirtualTransitionEnd","getSlideTransformEl","EffectCreative","_ref","swiper","extendParams","on","creativeEffect","limitProgress","shadowPerProgress","progressMultiplier","perspective","prev","translate","rotate","opacity","scale","next","getTranslateValue","value","effect","setTranslate","slides","wrapperEl","slidesSizesGrid","params","multiplier","isCenteredSlides","centeredSlides","margin","slidesOffsetBefore","style","transform","i","length","slideEl","slideProgress","progress","Math","min","max","originalProgress","offset","swiperSlideOffset","t","cssMode","r","custom","isHorizontal","data","forEach","index","abs","val","browser","isSafari","zIndex","round","translateString","join","rotateString","scaleString","opacityString","shadow","shadowEl","querySelector","shadowOpacity","targetEl","origin","transformOrigin","setTransition","duration","transformElements","map","el","transitionDuration","querySelectorAll","allSlides","overwriteParams","watchSlidesProgress","virtualTranslate"],"sources":["0"],"mappings":"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"} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/effect-creative.mjs b/build/assets/js/vendor/swiper/modules/effect-creative.mjs deleted file mode 100644 index 1351a2b..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-creative.mjs +++ /dev/null @@ -1,148 +0,0 @@ -import { c as createShadow } from '../shared/create-shadow.mjs'; -import { e as effectInit } from '../shared/effect-init.mjs'; -import { e as effectTarget } from '../shared/effect-target.mjs'; -import { e as effectVirtualTransitionEnd } from '../shared/effect-virtual-transition-end.mjs'; -import { l as getSlideTransformEl } from '../shared/utils.mjs'; - -function EffectCreative(_ref) { - let { - swiper, - extendParams, - on - } = _ref; - extendParams({ - creativeEffect: { - limitProgress: 1, - shadowPerProgress: false, - progressMultiplier: 1, - perspective: true, - 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 getTranslateValue = value => { - if (typeof value === 'string') return value; - return `${value}px`; - }; - const setTranslate = () => { - const { - slides, - wrapperEl, - slidesSizesGrid - } = swiper; - const params = swiper.params.creativeEffect; - const { - progressMultiplier: multiplier - } = params; - const isCenteredSlides = swiper.params.centeredSlides; - if (isCenteredSlides) { - const margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0; - wrapperEl.style.transform = `translateX(calc(50% - ${margin}px))`; - } - for (let i = 0; i < slides.length; i += 1) { - const slideEl = slides[i]; - const slideProgress = slideEl.progress; - const progress = Math.min(Math.max(slideEl.progress, -params.limitProgress), params.limitProgress); - let originalProgress = progress; - if (!isCenteredSlides) { - originalProgress = Math.min(Math.max(slideEl.originalProgress, -params.limitProgress), params.limitProgress); - } - const offset = slideEl.swiperSlideOffset; - const t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0]; - const r = [0, 0, 0]; - let custom = false; - if (!swiper.isHorizontal()) { - t[1] = t[0]; - t[0] = 0; - } - let data = { - translate: [0, 0, 0], - rotate: [0, 0, 0], - scale: 1, - opacity: 1 - }; - if (progress < 0) { - data = params.next; - custom = true; - } else if (progress > 0) { - data = params.prev; - custom = true; - } - // set translate - t.forEach((value, index) => { - t[index] = `calc(${value}px + (${getTranslateValue(data.translate[index])} * ${Math.abs(progress * multiplier)}))`; - }); - // set rotates - r.forEach((value, index) => { - let val = data.rotate[index] * Math.abs(progress * multiplier); - if (swiper.browser && swiper.browser.isSafari && Math.abs(val) / 90 % 2 === 1) { - val += 0.001; - } - r[index] = val; - }); - slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length; - const translateString = t.join(', '); - const rotateString = `rotateX(${r[0]}deg) rotateY(${r[1]}deg) rotateZ(${r[2]}deg)`; - const scaleString = originalProgress < 0 ? `scale(${1 + (1 - data.scale) * originalProgress * multiplier})` : `scale(${1 - (1 - data.scale) * originalProgress * multiplier})`; - const opacityString = originalProgress < 0 ? 1 + (1 - data.opacity) * originalProgress * multiplier : 1 - (1 - data.opacity) * originalProgress * multiplier; - const transform = `translate3d(${translateString}) ${rotateString} ${scaleString}`; - - // Set shadows - if (custom && data.shadow || !custom) { - let shadowEl = slideEl.querySelector('.swiper-slide-shadow'); - if (!shadowEl && data.shadow) { - shadowEl = createShadow('creative', slideEl); - } - if (shadowEl) { - const shadowOpacity = params.shadowPerProgress ? progress * (1 / params.limitProgress) : progress; - shadowEl.style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1); - } - } - const targetEl = effectTarget(params, slideEl); - targetEl.style.transform = transform; - targetEl.style.opacity = opacityString; - if (data.origin) { - targetEl.style.transformOrigin = data.origin; - } - } - }; - const setTransition = duration => { - const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl)); - transformElements.forEach(el => { - el.style.transitionDuration = `${duration}ms`; - el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => { - shadowEl.style.transitionDuration = `${duration}ms`; - }); - }); - effectVirtualTransitionEnd({ - swiper, - duration, - transformElements, - allSlides: true - }); - }; - effectInit({ - effect: 'creative', - swiper, - on, - setTranslate, - setTransition, - perspective: () => swiper.params.creativeEffect.perspective, - overwriteParams: () => ({ - watchSlidesProgress: true, - virtualTranslate: !swiper.params.cssMode - }) - }); -} - -export { EffectCreative as default }; diff --git a/build/assets/js/vendor/swiper/modules/effect-creative.scss b/build/assets/js/vendor/swiper/modules/effect-creative.scss deleted file mode 100644 index b893cad..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-creative.scss +++ /dev/null @@ -1,7 +0,0 @@ -.swiper-creative { - .swiper-slide { - backface-visibility: hidden; - overflow: hidden; - transition-property: transform, opacity, height; - } -} diff --git a/build/assets/js/vendor/swiper/modules/effect-cube-element.css b/build/assets/js/vendor/swiper/modules/effect-cube-element.css deleted file mode 100644 index af13615..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-cube-element.css +++ /dev/null @@ -1,53 +0,0 @@ -.swiper-cube { - overflow: visible; -} -.swiper-cube ::slotted(swiper-slide) { - pointer-events: none; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - z-index: 1; - visibility: hidden; - transform-origin: 0 0; - width: 100%; - height: 100%; -} -.swiper-cube ::slotted(swiper-slide) ::slotted(swiper-slide) { - pointer-events: none; -} -.swiper-cube.swiper-rtl ::slotted(swiper-slide) { - transform-origin: 100% 0; -} -.swiper-cube ::slotted(.swiper-slide-active), -.swiper-cube ::slotted(.swiper-slide-active) ::slotted(.swiper-slide-active) { - pointer-events: auto; -} -.swiper-cube ::slotted(.swiper-slide-active), -.swiper-cube ::slotted(.swiper-slide-next), -.swiper-cube ::slotted(.swiper-slide-prev) { - pointer-events: auto; - visibility: visible; -} -.swiper-cube .swiper-cube-shadow { - position: absolute; - left: 0; - bottom: 0px; - width: 100%; - height: 100%; - opacity: 0.6; - z-index: 0; -} -.swiper-cube .swiper-cube-shadow:before { - content: ''; - background: #000; - position: absolute; - left: 0; - top: 0; - bottom: 0; - right: 0; - filter: blur(50px); -} -.swiper-cube ::slotted(.swiper-slide-next) + ::slotted(swiper-slide) { - pointer-events: auto; - visibility: visible; -} -/* Cube slide shadows start *//* Cube slide shadows end */ diff --git a/build/assets/js/vendor/swiper/modules/effect-cube-element.min.css b/build/assets/js/vendor/swiper/modules/effect-cube-element.min.css deleted file mode 100644 index afc6ca2..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-cube-element.min.css +++ /dev/null @@ -1 +0,0 @@ -.swiper-cube{overflow:visible}.swiper-cube ::slotted(swiper-slide){pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube ::slotted(swiper-slide) ::slotted(swiper-slide){pointer-events:none}.swiper-cube.swiper-rtl ::slotted(swiper-slide){transform-origin:100% 0}.swiper-cube ::slotted(.swiper-slide-active),.swiper-cube ::slotted(.swiper-slide-active) ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-cube ::slotted(.swiper-slide-active),.swiper-cube ::slotted(.swiper-slide-next),.swiper-cube ::slotted(.swiper-slide-prev){pointer-events:auto;visibility:visible}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:'';background:#000;position:absolute;left:0;top:0;bottom:0;right:0;filter:blur(50px)}.swiper-cube ::slotted(.swiper-slide-next)+::slotted(swiper-slide){pointer-events:auto;visibility:visible} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/effect-cube.css b/build/assets/js/vendor/swiper/modules/effect-cube.css deleted file mode 100644 index 14b5d08..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-cube.css +++ /dev/null @@ -1,62 +0,0 @@ -.swiper-cube { - overflow: visible; -} -.swiper-cube .swiper-slide { - pointer-events: none; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - z-index: 1; - visibility: hidden; - transform-origin: 0 0; - width: 100%; - height: 100%; -} -.swiper-cube .swiper-slide .swiper-slide { - pointer-events: none; -} -.swiper-cube.swiper-rtl .swiper-slide { - transform-origin: 100% 0; -} -.swiper-cube .swiper-slide-active, -.swiper-cube .swiper-slide-active .swiper-slide-active { - pointer-events: auto; -} -.swiper-cube .swiper-slide-active, -.swiper-cube .swiper-slide-next, -.swiper-cube .swiper-slide-prev { - pointer-events: auto; - visibility: visible; -} -.swiper-cube .swiper-cube-shadow { - position: absolute; - left: 0; - bottom: 0px; - width: 100%; - height: 100%; - opacity: 0.6; - z-index: 0; -} -.swiper-cube .swiper-cube-shadow:before { - content: ''; - background: #000; - position: absolute; - left: 0; - top: 0; - bottom: 0; - right: 0; - filter: blur(50px); -} -.swiper-cube .swiper-slide-next + .swiper-slide { - pointer-events: auto; - visibility: visible; -} -/* Cube slide shadows start */ -.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-top, -.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-bottom, -.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-left, -.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-right { - z-index: 0; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; -} -/* Cube slide shadows end */ diff --git a/build/assets/js/vendor/swiper/modules/effect-cube.less b/build/assets/js/vendor/swiper/modules/effect-cube.less deleted file mode 100644 index 54bdc01..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-cube.less +++ /dev/null @@ -1,69 +0,0 @@ -.swiper-cube { - overflow: visible; - .swiper-slide { - pointer-events: none; - backface-visibility: hidden; - z-index: 1; - visibility: hidden; - transform-origin: 0 0; - width: 100%; - height: 100%; - .swiper-slide { - pointer-events: none; - } - } - &.swiper-rtl .swiper-slide { - transform-origin: 100% 0; - } - .swiper-slide-active { - &, - & .swiper-slide-active { - pointer-events: auto; - } - } - .swiper-slide-active, - .swiper-slide-next, - .swiper-slide-prev { - pointer-events: auto; - visibility: visible; - } - - .swiper-cube-shadow { - position: absolute; - left: 0; - bottom: 0px; - width: 100%; - height: 100%; - opacity: 0.6; - z-index: 0; - - &:before { - content: ''; - background: #000; - position: absolute; - left: 0; - top: 0; - bottom: 0; - right: 0; - -webkit-filter: blur(50px); - filter: blur(50px); - } - } -} -.swiper-cube { - .swiper-slide-next + .swiper-slide { - pointer-events: auto; - visibility: visible; - } -} -/* Cube slide shadows start */ -.swiper-cube { - .swiper-slide-shadow-cube.swiper-slide-shadow-top, - .swiper-slide-shadow-cube.swiper-slide-shadow-bottom, - .swiper-slide-shadow-cube.swiper-slide-shadow-left, - .swiper-slide-shadow-cube.swiper-slide-shadow-right { - z-index: 0; - backface-visibility: hidden; - } -} -/* Cube slide shadows end */ diff --git a/build/assets/js/vendor/swiper/modules/effect-cube.min.css b/build/assets/js/vendor/swiper/modules/effect-cube.min.css deleted file mode 100644 index e91764c..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-cube.min.css +++ /dev/null @@ -1 +0,0 @@ -.swiper-cube{overflow:visible}.swiper-cube .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-cube.swiper-rtl .swiper-slide{transform-origin:100% 0}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-next,.swiper-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:'';background:#000;position:absolute;left:0;top:0;bottom:0;right:0;filter:blur(50px)}.swiper-cube .swiper-slide-next+.swiper-slide{pointer-events:auto;visibility:visible}.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-bottom,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-left,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-right,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/effect-cube.min.mjs b/build/assets/js/vendor/swiper/modules/effect-cube.min.mjs deleted file mode 100644 index ce9efc1..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-cube.min.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{e as effectInit}from"../shared/effect-init.min.mjs";import{c as createElement}from"../shared/utils.min.mjs";function EffectCube(e){let{swiper:t,extendParams:s,on:a}=e;s({cubeEffect:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94}});const r=(e,t,s)=>{let a=s?e.querySelector(".swiper-slide-shadow-left"):e.querySelector(".swiper-slide-shadow-top"),r=s?e.querySelector(".swiper-slide-shadow-right"):e.querySelector(".swiper-slide-shadow-bottom");a||(a=createElement("div",("swiper-slide-shadow-cube swiper-slide-shadow-"+(s?"left":"top")).split(" ")),e.append(a)),r||(r=createElement("div",("swiper-slide-shadow-cube swiper-slide-shadow-"+(s?"right":"bottom")).split(" ")),e.append(r)),a&&(a.style.opacity=Math.max(-t,0)),r&&(r.style.opacity=Math.max(t,0))};effectInit({effect:"cube",swiper:t,on:a,setTranslate:()=>{const{el:e,wrapperEl:s,slides:a,width:o,height:i,rtlTranslate:l,size:d,browser:n}=t,p=t.params.cubeEffect,c=t.isHorizontal(),w=t.virtual&&t.params.virtual.enabled;let h,f=0;p.shadow&&(c?(h=t.wrapperEl.querySelector(".swiper-cube-shadow"),h||(h=createElement("div","swiper-cube-shadow"),t.wrapperEl.append(h)),h.style.height=`${o}px`):(h=e.querySelector(".swiper-cube-shadow"),h||(h=createElement("div","swiper-cube-shadow"),e.append(h))));for(let e=0;e-1&&(f=90*o+90*h,l&&(f=90*-o-90*h),t.browser&&t.browser.isSafari&&Math.abs(f)/90%2==1&&(f+=.001)),s.style.transform=y,p.slideShadows&&r(s,h,c)}if(s.style.transformOrigin=`50% 50% -${d/2}px`,s.style["-webkit-transform-origin"]=`50% 50% -${d/2}px`,p.shadow)if(c)h.style.transform=`translate3d(0px, ${o/2+p.shadowOffset}px, ${-o/2}px) rotateX(89.99deg) rotateZ(0deg) scale(${p.shadowScale})`;else{const e=Math.abs(f)-90*Math.floor(Math.abs(f)/90),t=1.5-(Math.sin(2*e*Math.PI/360)/2+Math.cos(2*e*Math.PI/360)/2),s=p.shadowScale,a=p.shadowScale/t,r=p.shadowOffset;h.style.transform=`scale3d(${s}, 1, ${a}) translate3d(0px, ${i/2+r}px, ${-i/2/a}px) rotateX(-89.99deg)`}const m=(n.isSafari||n.isWebView)&&n.needPerspectiveFix?-d/2:0;s.style.transform=`translate3d(0px,0,${m}px) rotateX(${t.isHorizontal()?0:f}deg) rotateY(${t.isHorizontal()?-f:0}deg)`,s.style.setProperty("--swiper-cube-translate-z",`${m}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);r(t,s,e)}))},getEffectParams:()=>t.params.cubeEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,resistanceRatio:0,spaceBetween:0,centeredSlides:!1,virtualTranslate:!0})})}export{EffectCube as default}; -//# sourceMappingURL=effect-cube.min.mjs.map \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/effect-cube.min.mjs.map b/build/assets/js/vendor/swiper/modules/effect-cube.min.mjs.map deleted file mode 100644 index a62937d..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-cube.min.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"effect-cube.mjs.mjs","names":["effectInit","createElement","EffectCube","_ref","swiper","extendParams","on","cubeEffect","slideShadows","shadow","shadowOffset","shadowScale","createSlideShadows","slideEl","progress","isHorizontal","shadowBefore","querySelector","shadowAfter","split","append","style","opacity","Math","max","effect","setTranslate","el","wrapperEl","slides","width","swiperWidth","height","swiperHeight","rtlTranslate","rtl","size","swiperSize","browser","params","isVirtual","virtual","enabled","cubeShadowEl","wrapperRotate","i","length","slideIndex","parseInt","getAttribute","slideAngle","round","floor","min","tx","ty","tz","transform","isSafari","abs","transformOrigin","shadowAngle","multiplier","sin","PI","cos","scale1","scale2","offset","zFactor","isWebView","needPerspectiveFix","setProperty","setTransition","duration","forEach","transitionDuration","querySelectorAll","subEl","shadowEl","recreateShadows","getEffectParams","perspective","overwriteParams","slidesPerView","slidesPerGroup","watchSlidesProgress","resistanceRatio","spaceBetween","centeredSlides","virtualTranslate"],"sources":["0"],"mappings":"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"} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/effect-cube.mjs b/build/assets/js/vendor/swiper/modules/effect-cube.mjs deleted file mode 100644 index 31589db..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-cube.mjs +++ /dev/null @@ -1,176 +0,0 @@ -import { e as effectInit } from '../shared/effect-init.mjs'; -import { c as createElement } from '../shared/utils.mjs'; - -function EffectCube(_ref) { - let { - swiper, - extendParams, - on - } = _ref; - extendParams({ - cubeEffect: { - slideShadows: true, - shadow: true, - shadowOffset: 20, - shadowScale: 0.94 - } - }); - const createSlideShadows = (slideEl, progress, isHorizontal) => { - let shadowBefore = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top'); - let shadowAfter = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom'); - if (!shadowBefore) { - shadowBefore = createElement('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'left' : 'top'}`.split(' ')); - slideEl.append(shadowBefore); - } - if (!shadowAfter) { - shadowAfter = createElement('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'right' : 'bottom'}`.split(' ')); - slideEl.append(shadowAfter); - } - if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0); - if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0); - }; - const recreateShadows = () => { - // create new ones - const isHorizontal = swiper.isHorizontal(); - swiper.slides.forEach(slideEl => { - const progress = Math.max(Math.min(slideEl.progress, 1), -1); - createSlideShadows(slideEl, progress, isHorizontal); - }); - }; - const setTranslate = () => { - const { - el, - wrapperEl, - slides, - width: swiperWidth, - height: swiperHeight, - rtlTranslate: rtl, - size: swiperSize, - browser - } = swiper; - const params = swiper.params.cubeEffect; - const isHorizontal = swiper.isHorizontal(); - const isVirtual = swiper.virtual && swiper.params.virtual.enabled; - let wrapperRotate = 0; - let cubeShadowEl; - if (params.shadow) { - if (isHorizontal) { - cubeShadowEl = swiper.wrapperEl.querySelector('.swiper-cube-shadow'); - if (!cubeShadowEl) { - cubeShadowEl = createElement('div', 'swiper-cube-shadow'); - swiper.wrapperEl.append(cubeShadowEl); - } - cubeShadowEl.style.height = `${swiperWidth}px`; - } else { - cubeShadowEl = el.querySelector('.swiper-cube-shadow'); - if (!cubeShadowEl) { - cubeShadowEl = createElement('div', 'swiper-cube-shadow'); - el.append(cubeShadowEl); - } - } - } - for (let i = 0; i < slides.length; i += 1) { - const slideEl = slides[i]; - let slideIndex = i; - if (isVirtual) { - slideIndex = parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10); - } - let slideAngle = slideIndex * 90; - let round = Math.floor(slideAngle / 360); - if (rtl) { - slideAngle = -slideAngle; - round = Math.floor(-slideAngle / 360); - } - const progress = Math.max(Math.min(slideEl.progress, 1), -1); - let tx = 0; - let ty = 0; - let tz = 0; - if (slideIndex % 4 === 0) { - tx = -round * 4 * swiperSize; - tz = 0; - } else if ((slideIndex - 1) % 4 === 0) { - tx = 0; - tz = -round * 4 * swiperSize; - } else if ((slideIndex - 2) % 4 === 0) { - tx = swiperSize + round * 4 * swiperSize; - tz = swiperSize; - } else if ((slideIndex - 3) % 4 === 0) { - tx = -swiperSize; - tz = 3 * swiperSize + swiperSize * 4 * round; - } - if (rtl) { - tx = -tx; - } - if (!isHorizontal) { - ty = tx; - tx = 0; - } - const transform = `rotateX(${isHorizontal ? 0 : -slideAngle}deg) rotateY(${isHorizontal ? slideAngle : 0}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`; - if (progress <= 1 && progress > -1) { - wrapperRotate = slideIndex * 90 + progress * 90; - if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90; - if (swiper.browser && swiper.browser.isSafari && Math.abs(wrapperRotate) / 90 % 2 === 1) { - wrapperRotate += 0.001; - } - } - slideEl.style.transform = transform; - if (params.slideShadows) { - createSlideShadows(slideEl, progress, isHorizontal); - } - } - wrapperEl.style.transformOrigin = `50% 50% -${swiperSize / 2}px`; - wrapperEl.style['-webkit-transform-origin'] = `50% 50% -${swiperSize / 2}px`; - if (params.shadow) { - if (isHorizontal) { - cubeShadowEl.style.transform = `translate3d(0px, ${swiperWidth / 2 + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(89.99deg) rotateZ(0deg) scale(${params.shadowScale})`; - } else { - const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90; - const multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2); - const scale1 = params.shadowScale; - const scale2 = params.shadowScale / multiplier; - const offset = params.shadowOffset; - cubeShadowEl.style.transform = `scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${swiperHeight / 2 + offset}px, ${-swiperHeight / 2 / scale2}px) rotateX(-89.99deg)`; - } - } - const zFactor = (browser.isSafari || browser.isWebView) && browser.needPerspectiveFix ? -swiperSize / 2 : 0; - wrapperEl.style.transform = `translate3d(0px,0,${zFactor}px) rotateX(${swiper.isHorizontal() ? 0 : wrapperRotate}deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate : 0}deg)`; - wrapperEl.style.setProperty('--swiper-cube-translate-z', `${zFactor}px`); - }; - const setTransition = duration => { - const { - el, - slides - } = swiper; - slides.forEach(slideEl => { - slideEl.style.transitionDuration = `${duration}ms`; - slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(subEl => { - subEl.style.transitionDuration = `${duration}ms`; - }); - }); - if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) { - const shadowEl = el.querySelector('.swiper-cube-shadow'); - if (shadowEl) shadowEl.style.transitionDuration = `${duration}ms`; - } - }; - effectInit({ - effect: 'cube', - swiper, - on, - setTranslate, - setTransition, - recreateShadows, - getEffectParams: () => swiper.params.cubeEffect, - perspective: () => true, - overwriteParams: () => ({ - slidesPerView: 1, - slidesPerGroup: 1, - watchSlidesProgress: true, - resistanceRatio: 0, - spaceBetween: 0, - centeredSlides: false, - virtualTranslate: true - }) - }); -} - -export { EffectCube as default }; diff --git a/build/assets/js/vendor/swiper/modules/effect-cube.scss b/build/assets/js/vendor/swiper/modules/effect-cube.scss deleted file mode 100644 index 54bdc01..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-cube.scss +++ /dev/null @@ -1,69 +0,0 @@ -.swiper-cube { - overflow: visible; - .swiper-slide { - pointer-events: none; - backface-visibility: hidden; - z-index: 1; - visibility: hidden; - transform-origin: 0 0; - width: 100%; - height: 100%; - .swiper-slide { - pointer-events: none; - } - } - &.swiper-rtl .swiper-slide { - transform-origin: 100% 0; - } - .swiper-slide-active { - &, - & .swiper-slide-active { - pointer-events: auto; - } - } - .swiper-slide-active, - .swiper-slide-next, - .swiper-slide-prev { - pointer-events: auto; - visibility: visible; - } - - .swiper-cube-shadow { - position: absolute; - left: 0; - bottom: 0px; - width: 100%; - height: 100%; - opacity: 0.6; - z-index: 0; - - &:before { - content: ''; - background: #000; - position: absolute; - left: 0; - top: 0; - bottom: 0; - right: 0; - -webkit-filter: blur(50px); - filter: blur(50px); - } - } -} -.swiper-cube { - .swiper-slide-next + .swiper-slide { - pointer-events: auto; - visibility: visible; - } -} -/* Cube slide shadows start */ -.swiper-cube { - .swiper-slide-shadow-cube.swiper-slide-shadow-top, - .swiper-slide-shadow-cube.swiper-slide-shadow-bottom, - .swiper-slide-shadow-cube.swiper-slide-shadow-left, - .swiper-slide-shadow-cube.swiper-slide-shadow-right { - z-index: 0; - backface-visibility: hidden; - } -} -/* Cube slide shadows end */ diff --git a/build/assets/js/vendor/swiper/modules/effect-fade-element.css b/build/assets/js/vendor/swiper/modules/effect-fade-element.css deleted file mode 100644 index 76242c6..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-fade-element.css +++ /dev/null @@ -1,16 +0,0 @@ -.swiper-fade.swiper-free-mode ::slotted(swiper-slide) { - transition-timing-function: ease-out; -} -.swiper-fade ::slotted(swiper-slide) { - pointer-events: none; - transition-property: opacity; -} -.swiper-fade ::slotted(swiper-slide) ::slotted(swiper-slide) { - pointer-events: none; -} -.swiper-fade ::slotted(.swiper-slide-active) { - pointer-events: auto; -} -.swiper-fade ::slotted(.swiper-slide-active) ::slotted(.swiper-slide-active) { - pointer-events: auto; -} diff --git a/build/assets/js/vendor/swiper/modules/effect-fade-element.min.css b/build/assets/js/vendor/swiper/modules/effect-fade-element.min.css deleted file mode 100644 index 6fb7280..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-fade-element.min.css +++ /dev/null @@ -1 +0,0 @@ -.swiper-fade.swiper-free-mode ::slotted(swiper-slide){transition-timing-function:ease-out}.swiper-fade ::slotted(swiper-slide){pointer-events:none;transition-property:opacity}.swiper-fade ::slotted(swiper-slide) ::slotted(swiper-slide){pointer-events:none}.swiper-fade ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-fade ::slotted(.swiper-slide-active) ::slotted(.swiper-slide-active){pointer-events:auto} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/effect-fade.css b/build/assets/js/vendor/swiper/modules/effect-fade.css deleted file mode 100644 index ac7449e..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-fade.css +++ /dev/null @@ -1,16 +0,0 @@ -.swiper-fade.swiper-free-mode .swiper-slide { - transition-timing-function: ease-out; -} -.swiper-fade .swiper-slide { - pointer-events: none; - transition-property: opacity; -} -.swiper-fade .swiper-slide .swiper-slide { - pointer-events: none; -} -.swiper-fade .swiper-slide-active { - pointer-events: auto; -} -.swiper-fade .swiper-slide-active .swiper-slide-active { - pointer-events: auto; -} diff --git a/build/assets/js/vendor/swiper/modules/effect-fade.less b/build/assets/js/vendor/swiper/modules/effect-fade.less deleted file mode 100644 index 0fadca4..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-fade.less +++ /dev/null @@ -1,20 +0,0 @@ -.swiper-fade { - &.swiper-free-mode { - .swiper-slide { - transition-timing-function: ease-out; - } - } - .swiper-slide { - pointer-events: none; - transition-property: opacity; - .swiper-slide { - pointer-events: none; - } - } - .swiper-slide-active { - pointer-events: auto; - & .swiper-slide-active { - pointer-events: auto; - } - } -} diff --git a/build/assets/js/vendor/swiper/modules/effect-fade.min.css b/build/assets/js/vendor/swiper/modules/effect-fade.min.css deleted file mode 100644 index e535e7e..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-fade.min.css +++ /dev/null @@ -1 +0,0 @@ -.swiper-fade.swiper-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-fade .swiper-slide-active{pointer-events:auto}.swiper-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/effect-fade.min.mjs b/build/assets/js/vendor/swiper/modules/effect-fade.min.mjs deleted file mode 100644 index ca33c38..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-fade.min.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{e as effectInit}from"../shared/effect-init.min.mjs";import{e as effectTarget}from"../shared/effect-target.min.mjs";import{e as effectVirtualTransitionEnd}from"../shared/effect-virtual-transition-end.min.mjs";import{l as getSlideTransformEl}from"../shared/utils.min.mjs";function EffectFade(e){let{swiper:t,extendParams:s,on:a}=e;s({fadeEffect:{crossFade:!1}});effectInit({effect:"fade",swiper:t,on:a,setTranslate:()=>{const{slides:e}=t,s=t.params.fadeEffect;for(let a=0;a{const s=t.slides.map((e=>getSlideTransformEl(e)));s.forEach((t=>{t.style.transitionDuration=`${e}ms`})),effectVirtualTransitionEnd({swiper:t,duration:e,transformElements:s,allSlides:!0})},overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!t.params.cssMode})})}export{EffectFade as default}; -//# sourceMappingURL=effect-fade.min.mjs.map \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/effect-fade.min.mjs.map b/build/assets/js/vendor/swiper/modules/effect-fade.min.mjs.map deleted file mode 100644 index 91e91f1..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-fade.min.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"effect-fade.mjs.mjs","names":["effectInit","effectTarget","effectVirtualTransitionEnd","getSlideTransformEl","EffectFade","_ref","swiper","extendParams","on","fadeEffect","crossFade","effect","setTranslate","slides","params","i","length","slideEl","tx","swiperSlideOffset","virtualTranslate","translate","ty","isHorizontal","slideOpacity","Math","max","abs","progress","min","targetEl","style","opacity","transform","setTransition","duration","transformElements","map","forEach","el","transitionDuration","allSlides","overwriteParams","slidesPerView","slidesPerGroup","watchSlidesProgress","spaceBetween","cssMode"],"sources":["0"],"mappings":"YAAcA,eAAkB,4CAClBC,iBAAoB,8CACpBC,+BAAkC,8DAClCC,wBAA2B,0BAEzC,SAASC,WAAWC,GAClB,IAAIC,OACFA,EAAMC,aACNA,EAAYC,GACZA,GACEH,EACJE,EAAa,CACXE,WAAY,CACVC,WAAW,KAoCfV,WAAW,CACTW,OAAQ,OACRL,SACAE,KACAI,aArCmB,KACnB,MAAMC,OACJA,GACEP,EACEQ,EAASR,EAAOQ,OAAOL,WAC7B,IAAK,IAAIM,EAAI,EAAGA,EAAIF,EAAOG,OAAQD,GAAK,EAAG,CACzC,MAAME,EAAUX,EAAOO,OAAOE,GAE9B,IAAIG,GADWD,EAAQE,kBAElBb,EAAOQ,OAAOM,mBAAkBF,GAAMZ,EAAOe,WAClD,IAAIC,EAAK,EACJhB,EAAOiB,iBACVD,EAAKJ,EACLA,EAAK,GAEP,MAAMM,EAAelB,EAAOQ,OAAOL,WAAWC,UAAYe,KAAKC,IAAI,EAAID,KAAKE,IAAIV,EAAQW,UAAW,GAAK,EAAIH,KAAKI,IAAIJ,KAAKC,IAAIT,EAAQW,UAAW,GAAI,GAC/IE,EAAW7B,aAAaa,EAAQG,GACtCa,EAASC,MAAMC,QAAUR,EACzBM,EAASC,MAAME,UAAY,eAAef,QAASI,WACrD,GAmBAY,cAjBoBC,IACpB,MAAMC,EAAoB9B,EAAOO,OAAOwB,KAAIpB,GAAWd,oBAAoBc,KAC3EmB,EAAkBE,SAAQC,IACxBA,EAAGR,MAAMS,mBAAqB,GAAGL,KAAY,IAE/CjC,2BAA2B,CACzBI,SACA6B,WACAC,oBACAK,WAAW,GACX,EAQFC,gBAAiB,KAAM,CACrBC,cAAe,EACfC,eAAgB,EAChBC,qBAAqB,EACrBC,aAAc,EACd1B,kBAAmBd,EAAOQ,OAAOiC,WAGvC,QAES3C"} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/effect-fade.mjs b/build/assets/js/vendor/swiper/modules/effect-fade.mjs deleted file mode 100644 index cc796c0..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-fade.mjs +++ /dev/null @@ -1,66 +0,0 @@ -import { e as effectInit } from '../shared/effect-init.mjs'; -import { e as effectTarget } from '../shared/effect-target.mjs'; -import { e as effectVirtualTransitionEnd } from '../shared/effect-virtual-transition-end.mjs'; -import { l as getSlideTransformEl } from '../shared/utils.mjs'; - -function EffectFade(_ref) { - let { - swiper, - extendParams, - on - } = _ref; - extendParams({ - fadeEffect: { - crossFade: false - } - }); - const setTranslate = () => { - const { - slides - } = swiper; - const params = swiper.params.fadeEffect; - for (let i = 0; i < slides.length; i += 1) { - const slideEl = swiper.slides[i]; - const offset = slideEl.swiperSlideOffset; - let tx = -offset; - if (!swiper.params.virtualTranslate) tx -= swiper.translate; - let ty = 0; - if (!swiper.isHorizontal()) { - ty = tx; - tx = 0; - } - const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(slideEl.progress), 0) : 1 + Math.min(Math.max(slideEl.progress, -1), 0); - const targetEl = effectTarget(params, slideEl); - targetEl.style.opacity = slideOpacity; - targetEl.style.transform = `translate3d(${tx}px, ${ty}px, 0px)`; - } - }; - const setTransition = duration => { - const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl)); - transformElements.forEach(el => { - el.style.transitionDuration = `${duration}ms`; - }); - effectVirtualTransitionEnd({ - swiper, - duration, - transformElements, - allSlides: true - }); - }; - effectInit({ - effect: 'fade', - swiper, - on, - setTranslate, - setTransition, - overwriteParams: () => ({ - slidesPerView: 1, - slidesPerGroup: 1, - watchSlidesProgress: true, - spaceBetween: 0, - virtualTranslate: !swiper.params.cssMode - }) - }); -} - -export { EffectFade as default }; diff --git a/build/assets/js/vendor/swiper/modules/effect-fade.scss b/build/assets/js/vendor/swiper/modules/effect-fade.scss deleted file mode 100644 index bb059dd..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-fade.scss +++ /dev/null @@ -1,20 +0,0 @@ -.swiper-fade { - &.swiper-free-mode { - .swiper-slide { - transition-timing-function: ease-out; - } - } - .swiper-slide { - pointer-events: none; - transition-property: opacity; - .swiper-slide { - pointer-events: none; - } - } - .swiper-slide-active { - &, - & .swiper-slide-active { - pointer-events: auto; - } - } -} diff --git a/build/assets/js/vendor/swiper/modules/effect-flip-element.css b/build/assets/js/vendor/swiper/modules/effect-flip-element.css deleted file mode 100644 index 4ae8338..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-flip-element.css +++ /dev/null @@ -1,17 +0,0 @@ -.swiper-flip { - overflow: visible; -} -.swiper-flip ::slotted(swiper-slide) { - pointer-events: none; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - z-index: 1; -} -.swiper-flip ::slotted(swiper-slide) ::slotted(swiper-slide) { - pointer-events: none; -} -.swiper-flip ::slotted(.swiper-slide-active), -.swiper-flip ::slotted(.swiper-slide-active) ::slotted(.swiper-slide-active) { - pointer-events: auto; -} -/* Flip slide shadows start *//* Flip slide shadows end */ diff --git a/build/assets/js/vendor/swiper/modules/effect-flip-element.min.css b/build/assets/js/vendor/swiper/modules/effect-flip-element.min.css deleted file mode 100644 index 40d852b..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-flip-element.min.css +++ /dev/null @@ -1 +0,0 @@ -.swiper-flip{overflow:visible}.swiper-flip ::slotted(swiper-slide){pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-flip ::slotted(swiper-slide) ::slotted(swiper-slide){pointer-events:none}.swiper-flip ::slotted(.swiper-slide-active),.swiper-flip ::slotted(.swiper-slide-active) ::slotted(.swiper-slide-active){pointer-events:auto} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/effect-flip.css b/build/assets/js/vendor/swiper/modules/effect-flip.css deleted file mode 100644 index f4b1d34..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-flip.css +++ /dev/null @@ -1,26 +0,0 @@ -.swiper-flip { - overflow: visible; -} -.swiper-flip .swiper-slide { - pointer-events: none; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - z-index: 1; -} -.swiper-flip .swiper-slide .swiper-slide { - pointer-events: none; -} -.swiper-flip .swiper-slide-active, -.swiper-flip .swiper-slide-active .swiper-slide-active { - pointer-events: auto; -} -/* Flip slide shadows start */ -.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-top, -.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-bottom, -.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-left, -.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-right { - z-index: 0; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; -} -/* Flip slide shadows end */ diff --git a/build/assets/js/vendor/swiper/modules/effect-flip.less b/build/assets/js/vendor/swiper/modules/effect-flip.less deleted file mode 100644 index 6c16d11..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-flip.less +++ /dev/null @@ -1,28 +0,0 @@ -.swiper-flip { - overflow: visible; - .swiper-slide { - pointer-events: none; - backface-visibility: hidden; - z-index: 1; - .swiper-slide { - pointer-events: none; - } - } - .swiper-slide-active { - &, - & .swiper-slide-active { - pointer-events: auto; - } - } -} -/* Flip slide shadows start */ -.swiper-flip { - .swiper-slide-shadow-flip.swiper-slide-shadow-top, - .swiper-slide-shadow-flip.swiper-slide-shadow-bottom, - .swiper-slide-shadow-flip.swiper-slide-shadow-left, - .swiper-slide-shadow-flip.swiper-slide-shadow-right { - z-index: 0; - backface-visibility: hidden; - } -} -/* Flip slide shadows end */ diff --git a/build/assets/js/vendor/swiper/modules/effect-flip.min.css b/build/assets/js/vendor/swiper/modules/effect-flip.min.css deleted file mode 100644 index b7656ff..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-flip.min.css +++ /dev/null @@ -1 +0,0 @@ -.swiper-flip{overflow:visible}.swiper-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-flip .swiper-slide-active,.swiper-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-bottom,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-left,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-right,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/effect-flip.min.mjs b/build/assets/js/vendor/swiper/modules/effect-flip.min.mjs deleted file mode 100644 index 70536c6..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-flip.min.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{c as createShadow}from"../shared/create-shadow.min.mjs";import{e as effectInit}from"../shared/effect-init.min.mjs";import{e as effectTarget}from"../shared/effect-target.min.mjs";import{e as effectVirtualTransitionEnd}from"../shared/effect-virtual-transition-end.min.mjs";import{l as getSlideTransformEl}from"../shared/utils.min.mjs";function EffectFlip(e){let{swiper:t,extendParams:s,on:r}=e;s({flipEffect:{slideShadows:!0,limitRotation:!0}});const a=(e,s)=>{let r=t.isHorizontal()?e.querySelector(".swiper-slide-shadow-left"):e.querySelector(".swiper-slide-shadow-top"),a=t.isHorizontal()?e.querySelector(".swiper-slide-shadow-right"):e.querySelector(".swiper-slide-shadow-bottom");r||(r=createShadow("flip",e,t.isHorizontal()?"left":"top")),a||(a=createShadow("flip",e,t.isHorizontal()?"right":"bottom")),r&&(r.style.opacity=Math.max(-s,0)),a&&(a.style.opacity=Math.max(s,0))};effectInit({effect:"flip",swiper:t,on:r,setTranslate:()=>{const{slides:e,rtlTranslate:s}=t,r=t.params.flipEffect;for(let i=0;i{const s=t.slides.map((e=>getSlideTransformEl(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`}))})),effectVirtualTransitionEnd({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)),a(e,s)}))},getEffectParams:()=>t.params.flipEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!t.params.cssMode})})}export{EffectFlip as default}; -//# sourceMappingURL=effect-flip.min.mjs.map \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/effect-flip.min.mjs.map b/build/assets/js/vendor/swiper/modules/effect-flip.min.mjs.map deleted file mode 100644 index 9987ca6..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-flip.min.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"effect-flip.mjs.mjs","names":["createShadow","effectInit","effectTarget","effectVirtualTransitionEnd","getSlideTransformEl","EffectFlip","_ref","swiper","extendParams","on","flipEffect","slideShadows","limitRotation","createSlideShadows","slideEl","progress","shadowBefore","isHorizontal","querySelector","shadowAfter","style","opacity","Math","max","effect","setTranslate","slides","rtlTranslate","rtl","params","i","length","min","offset","swiperSlideOffset","rotateY","rotateX","tx","cssMode","translate","ty","browser","isSafari","abs","zIndex","round","transform","setTransition","duration","transformElements","map","forEach","el","transitionDuration","querySelectorAll","shadowEl","recreateShadows","getEffectParams","perspective","overwriteParams","slidesPerView","slidesPerGroup","watchSlidesProgress","spaceBetween","virtualTranslate"],"sources":["0"],"mappings":"YAAcA,iBAAoB,8CACpBC,eAAkB,4CAClBC,iBAAoB,8CACpBC,+BAAkC,8DAClCC,wBAA2B,0BAEzC,SAASC,WAAWC,GAClB,IAAIC,OACFA,EAAMC,aACNA,EAAYC,GACZA,GACEH,EACJE,EAAa,CACXE,WAAY,CACVC,cAAc,EACdC,eAAe,KAGnB,MAAMC,EAAqB,CAACC,EAASC,KACnC,IAAIC,EAAeT,EAAOU,eAAiBH,EAAQI,cAAc,6BAA+BJ,EAAQI,cAAc,4BAClHC,EAAcZ,EAAOU,eAAiBH,EAAQI,cAAc,8BAAgCJ,EAAQI,cAAc,+BACjHF,IACHA,EAAehB,aAAa,OAAQc,EAASP,EAAOU,eAAiB,OAAS,QAE3EE,IACHA,EAAcnB,aAAa,OAAQc,EAASP,EAAOU,eAAiB,QAAU,WAE5ED,IAAcA,EAAaI,MAAMC,QAAUC,KAAKC,KAAKR,EAAU,IAC/DI,IAAaA,EAAYC,MAAMC,QAAUC,KAAKC,IAAIR,EAAU,GAAE,EAsEpEd,WAAW,CACTuB,OAAQ,OACRjB,SACAE,KACAgB,aA7DmB,KACnB,MAAMC,OACJA,EACAC,aAAcC,GACZrB,EACEsB,EAAStB,EAAOsB,OAAOnB,WAC7B,IAAK,IAAIoB,EAAI,EAAGA,EAAIJ,EAAOK,OAAQD,GAAK,EAAG,CACzC,MAAMhB,EAAUY,EAAOI,GACvB,IAAIf,EAAWD,EAAQC,SACnBR,EAAOsB,OAAOnB,WAAWE,gBAC3BG,EAAWO,KAAKC,IAAID,KAAKU,IAAIlB,EAAQC,SAAU,IAAK,IAEtD,MAAMkB,EAASnB,EAAQoB,kBAEvB,IAAIC,GADY,IAAMpB,EAElBqB,EAAU,EACVC,EAAK9B,EAAOsB,OAAOS,SAAWL,EAAS1B,EAAOgC,WAAaN,EAC3DO,EAAK,EACJjC,EAAOU,eAKDW,IACTO,GAAWA,IALXK,EAAKH,EACLA,EAAK,EACLD,GAAWD,EACXA,EAAU,GAIR5B,EAAOkC,SAAWlC,EAAOkC,QAAQC,WAC/BpB,KAAKqB,IAAIR,GAAW,GAAK,GAAM,IACjCA,GAAW,MAETb,KAAKqB,IAAIP,GAAW,GAAK,GAAM,IACjCA,GAAW,OAGftB,EAAQM,MAAMwB,QAAUtB,KAAKqB,IAAIrB,KAAKuB,MAAM9B,IAAaW,EAAOK,OAC5DF,EAAOlB,cACTE,EAAmBC,EAASC,GAE9B,MAAM+B,EAAY,eAAeT,QAASG,qBAAsBJ,iBAAuBD,QACtEjC,aAAa2B,EAAQf,GAC7BM,MAAM0B,UAAYA,CAC7B,GAqBAC,cAnBoBC,IACpB,MAAMC,EAAoB1C,EAAOmB,OAAOwB,KAAIpC,GAAWV,oBAAoBU,KAC3EmC,EAAkBE,SAAQC,IACxBA,EAAGhC,MAAMiC,mBAAqB,GAAGL,MACjCI,EAAGE,iBAAiB,gHAAgHH,SAAQI,IAC1IA,EAASnC,MAAMiC,mBAAqB,GAAGL,KAAY,GACnD,IAEJ7C,2BAA2B,CACzBI,SACAyC,WACAC,qBACA,EAQFO,gBA1EsB,KAEtBjD,EAAOsB,OAAOnB,WACdH,EAAOmB,OAAOyB,SAAQrC,IACpB,IAAIC,EAAWD,EAAQC,SACnBR,EAAOsB,OAAOnB,WAAWE,gBAC3BG,EAAWO,KAAKC,IAAID,KAAKU,IAAIlB,EAAQC,SAAU,IAAK,IAEtDF,EAAmBC,EAASC,EAAS,GACrC,EAkEF0C,gBAAiB,IAAMlD,EAAOsB,OAAOnB,WACrCgD,YAAa,KAAM,EACnBC,gBAAiB,KAAM,CACrBC,cAAe,EACfC,eAAgB,EAChBC,qBAAqB,EACrBC,aAAc,EACdC,kBAAmBzD,EAAOsB,OAAOS,WAGvC,QAESjC"} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/effect-flip.mjs b/build/assets/js/vendor/swiper/modules/effect-flip.mjs deleted file mode 100644 index adf174a..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-flip.mjs +++ /dev/null @@ -1,118 +0,0 @@ -import { c as createShadow } from '../shared/create-shadow.mjs'; -import { e as effectInit } from '../shared/effect-init.mjs'; -import { e as effectTarget } from '../shared/effect-target.mjs'; -import { e as effectVirtualTransitionEnd } from '../shared/effect-virtual-transition-end.mjs'; -import { l as getSlideTransformEl } from '../shared/utils.mjs'; - -function EffectFlip(_ref) { - let { - swiper, - extendParams, - on - } = _ref; - extendParams({ - flipEffect: { - slideShadows: true, - limitRotation: true - } - }); - const createSlideShadows = (slideEl, progress) => { - let shadowBefore = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top'); - let shadowAfter = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom'); - if (!shadowBefore) { - shadowBefore = createShadow('flip', slideEl, swiper.isHorizontal() ? 'left' : 'top'); - } - if (!shadowAfter) { - shadowAfter = createShadow('flip', slideEl, swiper.isHorizontal() ? 'right' : 'bottom'); - } - if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0); - if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0); - }; - const recreateShadows = () => { - // Set shadows - swiper.params.flipEffect; - swiper.slides.forEach(slideEl => { - let progress = slideEl.progress; - if (swiper.params.flipEffect.limitRotation) { - progress = Math.max(Math.min(slideEl.progress, 1), -1); - } - createSlideShadows(slideEl, progress); - }); - }; - const setTranslate = () => { - const { - slides, - rtlTranslate: rtl - } = swiper; - const params = swiper.params.flipEffect; - for (let i = 0; i < slides.length; i += 1) { - const slideEl = slides[i]; - let progress = slideEl.progress; - if (swiper.params.flipEffect.limitRotation) { - progress = Math.max(Math.min(slideEl.progress, 1), -1); - } - const offset = slideEl.swiperSlideOffset; - const rotate = -180 * progress; - let rotateY = rotate; - let rotateX = 0; - let tx = swiper.params.cssMode ? -offset - swiper.translate : -offset; - let ty = 0; - if (!swiper.isHorizontal()) { - ty = tx; - tx = 0; - rotateX = -rotateY; - rotateY = 0; - } else if (rtl) { - rotateY = -rotateY; - } - if (swiper.browser && swiper.browser.isSafari) { - if (Math.abs(rotateY) / 90 % 2 === 1) { - rotateY += 0.001; - } - if (Math.abs(rotateX) / 90 % 2 === 1) { - rotateX += 0.001; - } - } - slideEl.style.zIndex = -Math.abs(Math.round(progress)) + slides.length; - if (params.slideShadows) { - createSlideShadows(slideEl, progress); - } - const transform = `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`; - const targetEl = effectTarget(params, slideEl); - targetEl.style.transform = transform; - } - }; - const setTransition = duration => { - const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl)); - transformElements.forEach(el => { - el.style.transitionDuration = `${duration}ms`; - el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => { - shadowEl.style.transitionDuration = `${duration}ms`; - }); - }); - effectVirtualTransitionEnd({ - swiper, - duration, - transformElements - }); - }; - effectInit({ - effect: 'flip', - swiper, - on, - setTranslate, - setTransition, - recreateShadows, - getEffectParams: () => swiper.params.flipEffect, - perspective: () => true, - overwriteParams: () => ({ - slidesPerView: 1, - slidesPerGroup: 1, - watchSlidesProgress: true, - spaceBetween: 0, - virtualTranslate: !swiper.params.cssMode - }) - }); -} - -export { EffectFlip as default }; diff --git a/build/assets/js/vendor/swiper/modules/effect-flip.scss b/build/assets/js/vendor/swiper/modules/effect-flip.scss deleted file mode 100644 index 6c16d11..0000000 --- a/build/assets/js/vendor/swiper/modules/effect-flip.scss +++ /dev/null @@ -1,28 +0,0 @@ -.swiper-flip { - overflow: visible; - .swiper-slide { - pointer-events: none; - backface-visibility: hidden; - z-index: 1; - .swiper-slide { - pointer-events: none; - } - } - .swiper-slide-active { - &, - & .swiper-slide-active { - pointer-events: auto; - } - } -} -/* Flip slide shadows start */ -.swiper-flip { - .swiper-slide-shadow-flip.swiper-slide-shadow-top, - .swiper-slide-shadow-flip.swiper-slide-shadow-bottom, - .swiper-slide-shadow-flip.swiper-slide-shadow-left, - .swiper-slide-shadow-flip.swiper-slide-shadow-right { - z-index: 0; - backface-visibility: hidden; - } -} -/* Flip slide shadows end */ diff --git a/build/assets/js/vendor/swiper/modules/free-mode-element.css b/build/assets/js/vendor/swiper/modules/free-mode-element.css deleted file mode 100644 index 9c289eb..0000000 --- a/build/assets/js/vendor/swiper/modules/free-mode-element.css +++ /dev/null @@ -1,4 +0,0 @@ -.swiper-free-mode > .swiper-wrapper { - transition-timing-function: ease-out; - margin: 0 auto; -} diff --git a/build/assets/js/vendor/swiper/modules/free-mode-element.min.css b/build/assets/js/vendor/swiper/modules/free-mode-element.min.css deleted file mode 100644 index ecc8120..0000000 --- a/build/assets/js/vendor/swiper/modules/free-mode-element.min.css +++ /dev/null @@ -1 +0,0 @@ -.swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/free-mode.css b/build/assets/js/vendor/swiper/modules/free-mode.css deleted file mode 100644 index 9c289eb..0000000 --- a/build/assets/js/vendor/swiper/modules/free-mode.css +++ /dev/null @@ -1,4 +0,0 @@ -.swiper-free-mode > .swiper-wrapper { - transition-timing-function: ease-out; - margin: 0 auto; -} diff --git a/build/assets/js/vendor/swiper/modules/free-mode.less b/build/assets/js/vendor/swiper/modules/free-mode.less deleted file mode 100644 index 9c289eb..0000000 --- a/build/assets/js/vendor/swiper/modules/free-mode.less +++ /dev/null @@ -1,4 +0,0 @@ -.swiper-free-mode > .swiper-wrapper { - transition-timing-function: ease-out; - margin: 0 auto; -} diff --git a/build/assets/js/vendor/swiper/modules/free-mode.min.css b/build/assets/js/vendor/swiper/modules/free-mode.min.css deleted file mode 100644 index ecc8120..0000000 --- a/build/assets/js/vendor/swiper/modules/free-mode.min.css +++ /dev/null @@ -1 +0,0 @@ -.swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/free-mode.min.mjs b/build/assets/js/vendor/swiper/modules/free-mode.min.mjs deleted file mode 100644 index e6a4df1..0000000 --- a/build/assets/js/vendor/swiper/modules/free-mode.min.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{d as now,j as elementTransitionEnd}from"../shared/utils.min.mjs";function freeMode(e){let{swiper:t,extendParams:o,emit:n,once:s}=e;o({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:o}=t;0===e.velocities.length&&e.velocities.push({position:o[t.isHorizontal()?"startX":"startY"],time:e.touchStartTime}),e.velocities.push({position:o[t.isHorizontal()?"currentX":"currentY"],time:now()})},onTouchEnd:function(e){let{currentPos:o}=e;if(t.params.cssMode)return;const{params:i,wrapperEl:a,rtlTranslate:r,snapGrid:l,touchEventsData:m}=t,c=now()-m.touchStartTime;if(o<-t.minTranslate())t.slideTo(t.activeIndex);else if(o>-t.maxTranslate())t.slides.length1){const e=m.velocities.pop(),o=m.velocities.pop(),n=e.position-o.position,s=e.time-o.time;t.velocity=n/s,t.velocity/=2,Math.abs(t.velocity)150||now()-e.time>300)&&(t.velocity=0)}else t.velocity=0;t.velocity*=i.freeMode.momentumVelocityRatio,m.velocities.length=0;let e=1e3*i.freeMode.momentumRatio;const o=t.velocity*e;let c=t.translate+o;r&&(c=-c);let d,u=!1;const f=20*Math.abs(t.velocity)*i.freeMode.momentumBounceRatio;let p;if(ct.minTranslate())i.freeMode.momentumBounce?(c-t.minTranslate()>f&&(c=t.minTranslate()+f),d=t.minTranslate(),u=!0,m.allowMomentumBounce=!0):c=t.minTranslate(),i.loop&&i.centeredSlides&&(p=!0);else if(i.freeMode.sticky){let e;for(let t=0;t-c){e=t;break}c=Math.abs(l[e]-c){t.loopFix()})),0!==t.velocity){if(e=r?Math.abs((-c-t.translate)/t.velocity):Math.abs((c-t.translate)/t.velocity),i.freeMode.sticky){const o=Math.abs((r?-c:c)-t.translate),n=t.slidesSizesGrid[t.activeIndex];e=o{t&&!t.destroyed&&m.allowMomentumBounce&&(n("momentumBounce"),t.setTransition(i.speed),setTimeout((()=>{t.setTranslate(d),elementTransitionEnd(a,(()=>{t&&!t.destroyed&&t.transitionEnd()}))}),0))}))):t.velocity?(n("_freeModeNoMomentumRelease"),t.updateProgress(c),t.setTransition(e),t.setTranslate(c),t.transitionStart(!0,t.swipeDirection),t.animating||(t.animating=!0,elementTransitionEnd(a,(()=>{t&&!t.destroyed&&t.transitionEnd()})))):t.updateProgress(c),t.updateActiveIndex(),t.updateSlidesClasses()}else{if(i.freeMode.sticky)return void t.slideToClosest();i.freeMode&&n("_freeModeNoMomentumRelease")}(!i.freeMode.momentum||c>=i.longSwipesMs)&&(n("_freeModeStaticRelease"),t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses())}}}})}export{freeMode as default}; -//# sourceMappingURL=free-mode.min.mjs.map \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/free-mode.min.mjs.map b/build/assets/js/vendor/swiper/modules/free-mode.min.mjs.map deleted file mode 100644 index 97162ea..0000000 --- a/build/assets/js/vendor/swiper/modules/free-mode.min.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"free-mode.mjs.mjs","names":["now","elementTransitionEnd","freeMode","_ref","swiper","extendParams","emit","once","enabled","momentum","momentumRatio","momentumBounce","momentumBounceRatio","momentumVelocityRatio","sticky","minimumVelocity","Object","assign","onTouchStart","params","cssMode","translate","getTranslate","setTranslate","setTransition","touchEventsData","velocities","length","onTouchEnd","currentPos","rtl","onTouchMove","data","touches","push","position","isHorizontal","time","touchStartTime","_ref2","wrapperEl","rtlTranslate","snapGrid","timeDiff","minTranslate","slideTo","activeIndex","maxTranslate","slides","lastMoveEvent","pop","velocityEvent","distance","velocity","Math","abs","momentumDuration","momentumDistance","newPosition","afterBouncePosition","doBounce","bounceAmount","needsLoopFix","allowMomentumBounce","loop","centeredSlides","nextSlide","j","swipeDirection","loopFix","moveDistance","currentSlideSize","slidesSizesGrid","speed","slideToClosest","updateProgress","transitionStart","animating","destroyed","setTimeout","transitionEnd","updateActiveIndex","updateSlidesClasses","longSwipesMs"],"sources":["0"],"mappings":"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"} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/free-mode.mjs b/build/assets/js/vendor/swiper/modules/free-mode.mjs deleted file mode 100644 index b04d7ac..0000000 --- a/build/assets/js/vendor/swiper/modules/free-mode.mjs +++ /dev/null @@ -1,237 +0,0 @@ -import { d as now, j as elementTransitionEnd } from '../shared/utils.mjs'; - -function freeMode(_ref) { - let { - swiper, - extendParams, - emit, - once - } = _ref; - extendParams({ - freeMode: { - enabled: false, - momentum: true, - momentumRatio: 1, - momentumBounce: true, - momentumBounceRatio: 1, - momentumVelocityRatio: 1, - sticky: false, - minimumVelocity: 0.02 - } - }); - function onTouchStart() { - if (swiper.params.cssMode) return; - const translate = swiper.getTranslate(); - swiper.setTranslate(translate); - swiper.setTransition(0); - swiper.touchEventsData.velocities.length = 0; - swiper.freeMode.onTouchEnd({ - currentPos: swiper.rtl ? swiper.translate : -swiper.translate - }); - } - function onTouchMove() { - if (swiper.params.cssMode) return; - const { - touchEventsData: data, - touches - } = swiper; - // Velocity - if (data.velocities.length === 0) { - data.velocities.push({ - position: touches[swiper.isHorizontal() ? 'startX' : 'startY'], - time: data.touchStartTime - }); - } - data.velocities.push({ - position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'], - time: now() - }); - } - function onTouchEnd(_ref2) { - let { - currentPos - } = _ref2; - if (swiper.params.cssMode) return; - const { - params, - wrapperEl, - rtlTranslate: rtl, - snapGrid, - touchEventsData: data - } = swiper; - // Time diff - const touchEndTime = now(); - const timeDiff = touchEndTime - data.touchStartTime; - if (currentPos < -swiper.minTranslate()) { - swiper.slideTo(swiper.activeIndex); - return; - } - if (currentPos > -swiper.maxTranslate()) { - if (swiper.slides.length < snapGrid.length) { - swiper.slideTo(snapGrid.length - 1); - } else { - swiper.slideTo(swiper.slides.length - 1); - } - return; - } - if (params.freeMode.momentum) { - if (data.velocities.length > 1) { - const lastMoveEvent = data.velocities.pop(); - const velocityEvent = data.velocities.pop(); - const distance = lastMoveEvent.position - velocityEvent.position; - const time = lastMoveEvent.time - velocityEvent.time; - swiper.velocity = distance / time; - swiper.velocity /= 2; - if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) { - swiper.velocity = 0; - } - // this implies that the user stopped moving a finger then released. - // There would be no events with distance zero, so the last event is stale. - if (time > 150 || now() - lastMoveEvent.time > 300) { - swiper.velocity = 0; - } - } else { - swiper.velocity = 0; - } - swiper.velocity *= params.freeMode.momentumVelocityRatio; - data.velocities.length = 0; - let momentumDuration = 1000 * params.freeMode.momentumRatio; - const momentumDistance = swiper.velocity * momentumDuration; - let newPosition = swiper.translate + momentumDistance; - if (rtl) newPosition = -newPosition; - let doBounce = false; - let afterBouncePosition; - const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio; - let needsLoopFix; - if (newPosition < swiper.maxTranslate()) { - if (params.freeMode.momentumBounce) { - if (newPosition + swiper.maxTranslate() < -bounceAmount) { - newPosition = swiper.maxTranslate() - bounceAmount; - } - afterBouncePosition = swiper.maxTranslate(); - doBounce = true; - data.allowMomentumBounce = true; - } else { - newPosition = swiper.maxTranslate(); - } - if (params.loop && params.centeredSlides) needsLoopFix = true; - } else if (newPosition > swiper.minTranslate()) { - if (params.freeMode.momentumBounce) { - if (newPosition - swiper.minTranslate() > bounceAmount) { - newPosition = swiper.minTranslate() + bounceAmount; - } - afterBouncePosition = swiper.minTranslate(); - doBounce = true; - data.allowMomentumBounce = true; - } else { - newPosition = swiper.minTranslate(); - } - if (params.loop && params.centeredSlides) needsLoopFix = true; - } else if (params.freeMode.sticky) { - let nextSlide; - for (let j = 0; j < snapGrid.length; j += 1) { - if (snapGrid[j] > -newPosition) { - nextSlide = j; - break; - } - } - if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') { - newPosition = snapGrid[nextSlide]; - } else { - newPosition = snapGrid[nextSlide - 1]; - } - newPosition = -newPosition; - } - if (needsLoopFix) { - once('transitionEnd', () => { - swiper.loopFix(); - }); - } - // Fix duration - if (swiper.velocity !== 0) { - if (rtl) { - momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity); - } else { - momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity); - } - if (params.freeMode.sticky) { - // If freeMode.sticky is active and the user ends a swipe with a slow-velocity - // event, then durations can be 20+ seconds to slide one (or zero!) slides. - // It's easy to see this when simulating touch with mouse events. To fix this, - // limit single-slide swipes to the default slide duration. This also has the - // nice side effect of matching slide speed if the user stopped moving before - // lifting finger or mouse vs. moving slowly before lifting the finger/mouse. - // For faster swipes, also apply limits (albeit higher ones). - const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate); - const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex]; - if (moveDistance < currentSlideSize) { - momentumDuration = params.speed; - } else if (moveDistance < 2 * currentSlideSize) { - momentumDuration = params.speed * 1.5; - } else { - momentumDuration = params.speed * 2.5; - } - } - } else if (params.freeMode.sticky) { - swiper.slideToClosest(); - return; - } - if (params.freeMode.momentumBounce && doBounce) { - swiper.updateProgress(afterBouncePosition); - swiper.setTransition(momentumDuration); - swiper.setTranslate(newPosition); - swiper.transitionStart(true, swiper.swipeDirection); - swiper.animating = true; - elementTransitionEnd(wrapperEl, () => { - if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return; - emit('momentumBounce'); - swiper.setTransition(params.speed); - setTimeout(() => { - swiper.setTranslate(afterBouncePosition); - elementTransitionEnd(wrapperEl, () => { - if (!swiper || swiper.destroyed) return; - swiper.transitionEnd(); - }); - }, 0); - }); - } else if (swiper.velocity) { - emit('_freeModeNoMomentumRelease'); - swiper.updateProgress(newPosition); - swiper.setTransition(momentumDuration); - swiper.setTranslate(newPosition); - swiper.transitionStart(true, swiper.swipeDirection); - if (!swiper.animating) { - swiper.animating = true; - elementTransitionEnd(wrapperEl, () => { - if (!swiper || swiper.destroyed) return; - swiper.transitionEnd(); - }); - } - } else { - swiper.updateProgress(newPosition); - } - swiper.updateActiveIndex(); - swiper.updateSlidesClasses(); - } else if (params.freeMode.sticky) { - swiper.slideToClosest(); - return; - } else if (params.freeMode) { - emit('_freeModeNoMomentumRelease'); - } - if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) { - emit('_freeModeStaticRelease'); - swiper.updateProgress(); - swiper.updateActiveIndex(); - swiper.updateSlidesClasses(); - } - } - Object.assign(swiper, { - freeMode: { - onTouchStart, - onTouchMove, - onTouchEnd - } - }); -} - -export { freeMode as default }; diff --git a/build/assets/js/vendor/swiper/modules/free-mode.scss b/build/assets/js/vendor/swiper/modules/free-mode.scss deleted file mode 100644 index 9c289eb..0000000 --- a/build/assets/js/vendor/swiper/modules/free-mode.scss +++ /dev/null @@ -1,4 +0,0 @@ -.swiper-free-mode > .swiper-wrapper { - transition-timing-function: ease-out; - margin: 0 auto; -} diff --git a/build/assets/js/vendor/swiper/modules/grid-element.css b/build/assets/js/vendor/swiper/modules/grid-element.css deleted file mode 100644 index 136cb65..0000000 --- a/build/assets/js/vendor/swiper/modules/grid-element.css +++ /dev/null @@ -1,7 +0,0 @@ -.swiper-grid > .swiper-wrapper { - flex-wrap: wrap; -} -.swiper-grid-column > .swiper-wrapper { - flex-wrap: wrap; - flex-direction: column; -} diff --git a/build/assets/js/vendor/swiper/modules/grid-element.min.css b/build/assets/js/vendor/swiper/modules/grid-element.min.css deleted file mode 100644 index 7d5f8f9..0000000 --- a/build/assets/js/vendor/swiper/modules/grid-element.min.css +++ /dev/null @@ -1 +0,0 @@ -.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/grid.css b/build/assets/js/vendor/swiper/modules/grid.css deleted file mode 100644 index 136cb65..0000000 --- a/build/assets/js/vendor/swiper/modules/grid.css +++ /dev/null @@ -1,7 +0,0 @@ -.swiper-grid > .swiper-wrapper { - flex-wrap: wrap; -} -.swiper-grid-column > .swiper-wrapper { - flex-wrap: wrap; - flex-direction: column; -} diff --git a/build/assets/js/vendor/swiper/modules/grid.less b/build/assets/js/vendor/swiper/modules/grid.less deleted file mode 100644 index 136cb65..0000000 --- a/build/assets/js/vendor/swiper/modules/grid.less +++ /dev/null @@ -1,7 +0,0 @@ -.swiper-grid > .swiper-wrapper { - flex-wrap: wrap; -} -.swiper-grid-column > .swiper-wrapper { - flex-wrap: wrap; - flex-direction: column; -} diff --git a/build/assets/js/vendor/swiper/modules/grid.min.css b/build/assets/js/vendor/swiper/modules/grid.min.css deleted file mode 100644 index 7d5f8f9..0000000 --- a/build/assets/js/vendor/swiper/modules/grid.min.css +++ /dev/null @@ -1 +0,0 @@ -.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/grid.min.mjs b/build/assets/js/vendor/swiper/modules/grid.min.mjs deleted file mode 100644 index 84f1b4e..0000000 --- a/build/assets/js/vendor/swiper/modules/grid.min.mjs +++ /dev/null @@ -1,2 +0,0 @@ -function Grid(e){let i,r,a,t,{swiper:s,extendParams:l,on:o}=e;l({grid:{rows:1,fill:"column"}});const n=()=>{let e=s.params.spaceBetween;return"string"==typeof e&&e.indexOf("%")>=0?e=parseFloat(e.replace("%",""))/100*s.size:"string"==typeof e&&(e=parseFloat(e)),e};o("init",(()=>{t=s.params.grid&&s.params.grid.rows>1})),o("update",(()=>{const{params:e,el:i}=s,r=e.grid&&e.grid.rows>1;t&&!r?(i.classList.remove(`${e.containerModifierClass}grid`,`${e.containerModifierClass}grid-column`),a=1,s.emitContainerClasses()):!t&&r&&(i.classList.add(`${e.containerModifierClass}grid`),"column"===e.grid.fill&&i.classList.add(`${e.containerModifierClass}grid-column`),s.emitContainerClasses()),t=r})),s.grid={initSlides:e=>{const{slidesPerView:t}=s.params,{rows:l,fill:o}=s.params.grid,n=s.virtual&&s.params.virtual.enabled?s.virtual.slides.length:e.length;a=Math.floor(n/l),i=Math.floor(n/l)===n/l?n:Math.ceil(n/l)*l,"auto"!==t&&"row"===o&&(i=Math.max(i,t*l)),r=i/l},unsetSlides:()=>{s.slides&&s.slides.forEach((e=>{e.swiperSlideGridSet&&(e.style.height="",e.style[s.getDirectionLabel("margin-top")]="")}))},updateSlide:(e,t,l)=>{const{slidesPerGroup:o}=s.params,d=n(),{rows:p,fill:c}=s.params.grid,g=s.virtual&&s.params.virtual.enabled?s.virtual.slides.length:l.length;let u,h,m;if("row"===c&&o>1){const r=Math.floor(e/(o*p)),a=e-p*o*r,s=0===r?o:Math.min(Math.ceil((g-r*p*o)/p),o);m=Math.floor(a/s),h=a-m*s+r*o,u=h+m*i/p,t.style.order=u}else"column"===c?(h=Math.floor(e/p),m=e-h*p,(h>a||h===a&&m===p-1)&&(m+=1,m>=p&&(m=0,h+=1))):(m=Math.floor(e/r),h=e-m*r);t.row=m,t.column=h,t.style.height=`calc((100% - ${(p-1)*d}px) / ${p})`,t.style[s.getDirectionLabel("margin-top")]=0!==m?d&&`${d}px`:"",t.swiperSlideGridSet=!0},updateWrapperSize:(e,r)=>{const{centeredSlides:a,roundLengths:t}=s.params,l=n(),{rows:o}=s.params.grid;if(s.virtualSize=(e+l)*i,s.virtualSize=Math.ceil(s.virtualSize/o)-l,s.params.cssMode||(s.wrapperEl.style[s.getDirectionLabel("width")]=`${s.virtualSize+l}px`),a){const e=[];for(let i=0;i { - let spaceBetween = swiper.params.spaceBetween; - if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) { - spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size; - } else if (typeof spaceBetween === 'string') { - spaceBetween = parseFloat(spaceBetween); - } - return spaceBetween; - }; - const initSlides = slides => { - const { - slidesPerView - } = swiper.params; - const { - rows, - fill - } = swiper.params.grid; - const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : slides.length; - numFullColumns = Math.floor(slidesLength / rows); - if (Math.floor(slidesLength / rows) === slidesLength / rows) { - slidesNumberEvenToRows = slidesLength; - } else { - slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows; - } - if (slidesPerView !== 'auto' && fill === 'row') { - slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows); - } - slidesPerRow = slidesNumberEvenToRows / rows; - }; - const unsetSlides = () => { - if (swiper.slides) { - swiper.slides.forEach(slide => { - if (slide.swiperSlideGridSet) { - slide.style.height = ''; - slide.style[swiper.getDirectionLabel('margin-top')] = ''; - } - }); - } - }; - const updateSlide = (i, slide, slides) => { - const { - slidesPerGroup - } = swiper.params; - const spaceBetween = getSpaceBetween(); - const { - rows, - fill - } = swiper.params.grid; - const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : slides.length; - // Set slides order - let newSlideOrderIndex; - let column; - let row; - if (fill === 'row' && slidesPerGroup > 1) { - const groupIndex = Math.floor(i / (slidesPerGroup * rows)); - const slideIndexInGroup = i - rows * slidesPerGroup * groupIndex; - const columnsInGroup = groupIndex === 0 ? slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows), slidesPerGroup); - row = Math.floor(slideIndexInGroup / columnsInGroup); - column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup; - newSlideOrderIndex = column + row * slidesNumberEvenToRows / rows; - slide.style.order = newSlideOrderIndex; - } else if (fill === 'column') { - column = Math.floor(i / rows); - row = i - column * rows; - if (column > numFullColumns || column === numFullColumns && row === rows - 1) { - row += 1; - if (row >= rows) { - row = 0; - column += 1; - } - } - } else { - row = Math.floor(i / slidesPerRow); - column = i - row * slidesPerRow; - } - slide.row = row; - slide.column = column; - slide.style.height = `calc((100% - ${(rows - 1) * spaceBetween}px) / ${rows})`; - slide.style[swiper.getDirectionLabel('margin-top')] = row !== 0 ? spaceBetween && `${spaceBetween}px` : ''; - slide.swiperSlideGridSet = true; - }; - const updateWrapperSize = (slideSize, snapGrid) => { - const { - centeredSlides, - roundLengths - } = swiper.params; - const spaceBetween = getSpaceBetween(); - const { - rows - } = swiper.params.grid; - swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows; - swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween; - if (!swiper.params.cssMode) { - swiper.wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`; - } - if (centeredSlides) { - const newSlidesGrid = []; - for (let i = 0; i < snapGrid.length; i += 1) { - let slidesGridItem = snapGrid[i]; - if (roundLengths) slidesGridItem = Math.floor(slidesGridItem); - if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem); - } - snapGrid.splice(0, snapGrid.length); - snapGrid.push(...newSlidesGrid); - } - }; - const onInit = () => { - wasMultiRow = swiper.params.grid && swiper.params.grid.rows > 1; - }; - const onUpdate = () => { - const { - params, - el - } = swiper; - const isMultiRow = params.grid && params.grid.rows > 1; - if (wasMultiRow && !isMultiRow) { - el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`); - numFullColumns = 1; - swiper.emitContainerClasses(); - } else if (!wasMultiRow && isMultiRow) { - el.classList.add(`${params.containerModifierClass}grid`); - if (params.grid.fill === 'column') { - el.classList.add(`${params.containerModifierClass}grid-column`); - } - swiper.emitContainerClasses(); - } - wasMultiRow = isMultiRow; - }; - on('init', onInit); - on('update', onUpdate); - swiper.grid = { - initSlides, - unsetSlides, - updateSlide, - updateWrapperSize - }; -} - -export { Grid as default }; diff --git a/build/assets/js/vendor/swiper/modules/grid.scss b/build/assets/js/vendor/swiper/modules/grid.scss deleted file mode 100644 index 136cb65..0000000 --- a/build/assets/js/vendor/swiper/modules/grid.scss +++ /dev/null @@ -1,7 +0,0 @@ -.swiper-grid > .swiper-wrapper { - flex-wrap: wrap; -} -.swiper-grid-column > .swiper-wrapper { - flex-wrap: wrap; - flex-direction: column; -} diff --git a/build/assets/js/vendor/swiper/modules/hash-navigation-element.css b/build/assets/js/vendor/swiper/modules/hash-navigation-element.css deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/hash-navigation-element.css +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/hash-navigation-element.min.css b/build/assets/js/vendor/swiper/modules/hash-navigation-element.min.css deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/hash-navigation-element.min.css +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/hash-navigation.css b/build/assets/js/vendor/swiper/modules/hash-navigation.css deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/hash-navigation.css +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/hash-navigation.less b/build/assets/js/vendor/swiper/modules/hash-navigation.less deleted file mode 100644 index be8912a..0000000 --- a/build/assets/js/vendor/swiper/modules/hash-navigation.less +++ /dev/null @@ -1,2 +0,0 @@ -@import url('../swiper-vars.less'); - diff --git a/build/assets/js/vendor/swiper/modules/hash-navigation.min.css b/build/assets/js/vendor/swiper/modules/hash-navigation.min.css deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/hash-navigation.min.css +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/hash-navigation.min.mjs b/build/assets/js/vendor/swiper/modules/hash-navigation.min.mjs deleted file mode 100644 index 0c58eff..0000000 --- a/build/assets/js/vendor/swiper/modules/hash-navigation.min.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{g as getDocument,a as getWindow}from"../shared/ssr-window.esm.min.mjs";import{e as elementChildren}from"../shared/utils.min.mjs";function HashNavigation(a){let{swiper:e,extendParams:t,emit:s,on:i}=a,n=!1;const r=getDocument(),h=getWindow();t({hashNavigation:{enabled:!1,replaceState:!1,watchState:!1,getSlideIndex(a,t){if(e.virtual&&e.params.virtual.enabled){const a=e.slides.filter((a=>a.getAttribute("data-hash")===t))[0];if(!a)return 0;return parseInt(a.getAttribute("data-swiper-slide-index"),10)}return e.getSlideIndex(elementChildren(e.slidesEl,`.${e.params.slideClass}[data-hash="${t}"], swiper-slide[data-hash="${t}"]`)[0])}}});const d=()=>{s("hashChange");const a=r.location.hash.replace("#",""),t=e.virtual&&e.params.virtual.enabled?e.slidesEl.querySelector(`[data-swiper-slide-index="${e.activeIndex}"]`):e.slides[e.activeIndex];if(a!==(t?t.getAttribute("data-hash"):"")){const t=e.params.hashNavigation.getSlideIndex(e,a);if(void 0===t||Number.isNaN(t))return;e.slideTo(t)}},l=()=>{if(!n||!e.params.hashNavigation.enabled)return;const a=e.virtual&&e.params.virtual.enabled?e.slidesEl.querySelector(`[data-swiper-slide-index="${e.activeIndex}"]`):e.slides[e.activeIndex],t=a?a.getAttribute("data-hash")||a.getAttribute("data-history"):"";e.params.hashNavigation.replaceState&&h.history&&h.history.replaceState?(h.history.replaceState(null,null,`#${t}`||""),s("hashSet")):(r.location.hash=t||"",s("hashSet"))};i("init",(()=>{e.params.hashNavigation.enabled&&(()=>{if(!e.params.hashNavigation.enabled||e.params.history&&e.params.history.enabled)return;n=!0;const a=r.location.hash.replace("#","");if(a){const t=0,s=e.params.hashNavigation.getSlideIndex(e,a);e.slideTo(s||0,t,e.params.runCallbacksOnInit,!0)}e.params.hashNavigation.watchState&&h.addEventListener("hashchange",d)})()})),i("destroy",(()=>{e.params.hashNavigation.enabled&&e.params.hashNavigation.watchState&&h.removeEventListener("hashchange",d)})),i("transitionEnd _freeModeNoMomentumRelease",(()=>{n&&l()})),i("slideChange",(()=>{n&&e.params.cssMode&&l()}))}export{HashNavigation as default}; -//# sourceMappingURL=hash-navigation.min.mjs.map \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/hash-navigation.min.mjs.map b/build/assets/js/vendor/swiper/modules/hash-navigation.min.mjs.map deleted file mode 100644 index 373df60..0000000 --- a/build/assets/js/vendor/swiper/modules/hash-navigation.min.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"hash-navigation.mjs.mjs","names":["getDocument","getWindow","elementChildren","HashNavigation","_ref","swiper","extendParams","emit","on","initialized","document","window","hashNavigation","enabled","replaceState","watchState","getSlideIndex","_s","hash","virtual","params","slideWithHash","slides","filter","slideEl","getAttribute","parseInt","slidesEl","slideClass","onHashChange","newHash","location","replace","activeSlideEl","querySelector","activeIndex","newIndex","Number","isNaN","slideTo","setHash","activeSlideHash","history","speed","index","runCallbacksOnInit","addEventListener","init","removeEventListener","cssMode"],"sources":["0"],"mappings":"YAAcA,iBAAkBC,cAAiB,+CACnCC,oBAAuB,0BAErC,SAASC,eAAeC,GACtB,IAAIC,OACFA,EAAMC,aACNA,EAAYC,KACZA,EAAIC,GACJA,GACEJ,EACAK,GAAc,EAClB,MAAMC,EAAWV,cACXW,EAASV,YACfK,EAAa,CACXM,eAAgB,CACdC,SAAS,EACTC,cAAc,EACdC,YAAY,EACZ,aAAAC,CAAcC,EAAIC,GAChB,GAAIb,EAAOc,SAAWd,EAAOe,OAAOD,QAAQN,QAAS,CACnD,MAAMQ,EAAgBhB,EAAOiB,OAAOC,QAAOC,GAAWA,EAAQC,aAAa,eAAiBP,IAAM,GAClG,IAAKG,EAAe,OAAO,EAE3B,OADcK,SAASL,EAAcI,aAAa,2BAA4B,GAEhF,CACA,OAAOpB,EAAOW,cAAcd,gBAAgBG,EAAOsB,SAAU,IAAItB,EAAOe,OAAOQ,yBAAyBV,gCAAmCA,OAAU,GACvJ,KAGJ,MAAMW,EAAe,KACnBtB,EAAK,cACL,MAAMuB,EAAUpB,EAASqB,SAASb,KAAKc,QAAQ,IAAK,IAC9CC,EAAgB5B,EAAOc,SAAWd,EAAOe,OAAOD,QAAQN,QAAUR,EAAOsB,SAASO,cAAc,6BAA6B7B,EAAO8B,iBAAmB9B,EAAOiB,OAAOjB,EAAO8B,aAElL,GAAIL,KADoBG,EAAgBA,EAAcR,aAAa,aAAe,IACjD,CAC/B,MAAMW,EAAW/B,EAAOe,OAAOR,eAAeI,cAAcX,EAAQyB,GACpE,QAAwB,IAAbM,GAA4BC,OAAOC,MAAMF,GAAW,OAC/D/B,EAAOkC,QAAQH,EACjB,GAEII,EAAU,KACd,IAAK/B,IAAgBJ,EAAOe,OAAOR,eAAeC,QAAS,OAC3D,MAAMoB,EAAgB5B,EAAOc,SAAWd,EAAOe,OAAOD,QAAQN,QAAUR,EAAOsB,SAASO,cAAc,6BAA6B7B,EAAO8B,iBAAmB9B,EAAOiB,OAAOjB,EAAO8B,aAC5KM,EAAkBR,EAAgBA,EAAcR,aAAa,cAAgBQ,EAAcR,aAAa,gBAAkB,GAC5HpB,EAAOe,OAAOR,eAAeE,cAAgBH,EAAO+B,SAAW/B,EAAO+B,QAAQ5B,cAChFH,EAAO+B,QAAQ5B,aAAa,KAAM,KAAM,IAAI2B,KAAqB,IACjElC,EAAK,aAELG,EAASqB,SAASb,KAAOuB,GAAmB,GAC5ClC,EAAK,WACP,EAoBFC,EAAG,QAAQ,KACLH,EAAOe,OAAOR,eAAeC,SAnBtB,MACX,IAAKR,EAAOe,OAAOR,eAAeC,SAAWR,EAAOe,OAAOsB,SAAWrC,EAAOe,OAAOsB,QAAQ7B,QAAS,OACrGJ,GAAc,EACd,MAAMS,EAAOR,EAASqB,SAASb,KAAKc,QAAQ,IAAK,IACjD,GAAId,EAAM,CACR,MAAMyB,EAAQ,EACRC,EAAQvC,EAAOe,OAAOR,eAAeI,cAAcX,EAAQa,GACjEb,EAAOkC,QAAQK,GAAS,EAAGD,EAAOtC,EAAOe,OAAOyB,oBAAoB,EACtE,CACIxC,EAAOe,OAAOR,eAAeG,YAC/BJ,EAAOmC,iBAAiB,aAAcjB,EACxC,EASEkB,EACF,IAEFvC,EAAG,WAAW,KACRH,EAAOe,OAAOR,eAAeC,SAV7BR,EAAOe,OAAOR,eAAeG,YAC/BJ,EAAOqC,oBAAoB,aAAcnB,EAW3C,IAEFrB,EAAG,4CAA4C,KACzCC,GACF+B,GACF,IAEFhC,EAAG,eAAe,KACZC,GAAeJ,EAAOe,OAAO6B,SAC/BT,GACF,GAEJ,QAESrC"} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/hash-navigation.mjs b/build/assets/js/vendor/swiper/modules/hash-navigation.mjs deleted file mode 100644 index cf33420..0000000 --- a/build/assets/js/vendor/swiper/modules/hash-navigation.mjs +++ /dev/null @@ -1,93 +0,0 @@ -import { g as getDocument, a as getWindow } from '../shared/ssr-window.esm.mjs'; -import { e as elementChildren } from '../shared/utils.mjs'; - -function HashNavigation(_ref) { - let { - swiper, - extendParams, - emit, - on - } = _ref; - let initialized = false; - const document = getDocument(); - const window = getWindow(); - extendParams({ - hashNavigation: { - enabled: false, - replaceState: false, - watchState: false, - getSlideIndex(_s, hash) { - if (swiper.virtual && swiper.params.virtual.enabled) { - const slideWithHash = swiper.slides.filter(slideEl => slideEl.getAttribute('data-hash') === hash)[0]; - if (!slideWithHash) return 0; - const index = parseInt(slideWithHash.getAttribute('data-swiper-slide-index'), 10); - return index; - } - return swiper.getSlideIndex(elementChildren(swiper.slidesEl, `.${swiper.params.slideClass}[data-hash="${hash}"], swiper-slide[data-hash="${hash}"]`)[0]); - } - } - }); - const onHashChange = () => { - emit('hashChange'); - const newHash = document.location.hash.replace('#', ''); - const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index="${swiper.activeIndex}"]`) : swiper.slides[swiper.activeIndex]; - const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') : ''; - if (newHash !== activeSlideHash) { - const newIndex = swiper.params.hashNavigation.getSlideIndex(swiper, newHash); - if (typeof newIndex === 'undefined' || Number.isNaN(newIndex)) return; - swiper.slideTo(newIndex); - } - }; - const setHash = () => { - if (!initialized || !swiper.params.hashNavigation.enabled) return; - const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index="${swiper.activeIndex}"]`) : swiper.slides[swiper.activeIndex]; - const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') || activeSlideEl.getAttribute('data-history') : ''; - if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) { - window.history.replaceState(null, null, `#${activeSlideHash}` || ''); - emit('hashSet'); - } else { - document.location.hash = activeSlideHash || ''; - emit('hashSet'); - } - }; - const init = () => { - if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return; - initialized = true; - const hash = document.location.hash.replace('#', ''); - if (hash) { - const speed = 0; - const index = swiper.params.hashNavigation.getSlideIndex(swiper, hash); - swiper.slideTo(index || 0, speed, swiper.params.runCallbacksOnInit, true); - } - if (swiper.params.hashNavigation.watchState) { - window.addEventListener('hashchange', onHashChange); - } - }; - const destroy = () => { - if (swiper.params.hashNavigation.watchState) { - window.removeEventListener('hashchange', onHashChange); - } - }; - on('init', () => { - if (swiper.params.hashNavigation.enabled) { - init(); - } - }); - on('destroy', () => { - if (swiper.params.hashNavigation.enabled) { - destroy(); - } - }); - on('transitionEnd _freeModeNoMomentumRelease', () => { - if (initialized) { - setHash(); - } - }); - on('slideChange', () => { - if (initialized && swiper.params.cssMode) { - setHash(); - } - }); -} - -export { HashNavigation as default }; diff --git a/build/assets/js/vendor/swiper/modules/hash-navigation.scss b/build/assets/js/vendor/swiper/modules/hash-navigation.scss deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/hash-navigation.scss +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/history-element.css b/build/assets/js/vendor/swiper/modules/history-element.css deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/history-element.css +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/history-element.min.css b/build/assets/js/vendor/swiper/modules/history-element.min.css deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/history-element.min.css +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/history.css b/build/assets/js/vendor/swiper/modules/history.css deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/history.css +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/history.less b/build/assets/js/vendor/swiper/modules/history.less deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/history.less +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/history.min.css b/build/assets/js/vendor/swiper/modules/history.min.css deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/history.min.css +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/history.min.mjs b/build/assets/js/vendor/swiper/modules/history.min.mjs deleted file mode 100644 index 3e525fb..0000000 --- a/build/assets/js/vendor/swiper/modules/history.min.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{a as getWindow}from"../shared/ssr-window.esm.min.mjs";function History(e){let{swiper:t,extendParams:a,on:s}=e;a({history:{enabled:!1,root:"",replaceState:!1,key:"slides",keepQuery:!1}});let r=!1,i={};const o=e=>e.toString().replace(/\s+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,""),l=e=>{const t=getWindow();let a;a=e?new URL(e):t.location;const s=a.pathname.slice(1).split("/").filter((e=>""!==e)),r=s.length;return{key:s[r-2],value:s[r-1]}},n=(e,a)=>{const s=getWindow();if(!r||!t.params.history.enabled)return;let i;i=t.params.url?new URL(t.params.url):s.location;const l=t.slides[a];let n=o(l.getAttribute("data-history"));if(t.params.history.root.length>0){let a=t.params.history.root;"/"===a[a.length-1]&&(a=a.slice(0,a.length-1)),n=`${a}/${e?`${e}/`:""}${n}`}else i.pathname.includes(e)||(n=`${e?`${e}/`:""}${n}`);t.params.history.keepQuery&&(n+=i.search);const p=s.history.state;p&&p.value===n||(t.params.history.replaceState?s.history.replaceState({value:n},null,n):s.history.pushState({value:n},null,n))},p=(e,a,s)=>{if(a)for(let r=0,i=t.slides.length;r{i=l(t.params.url),p(t.params.speed,i.value,!1)};s("init",(()=>{t.params.history.enabled&&(()=>{const e=getWindow();if(t.params.history){if(!e.history||!e.history.pushState)return t.params.history.enabled=!1,void(t.params.hashNavigation.enabled=!0);r=!0,i=l(t.params.url),i.key||i.value?(p(0,i.value,t.params.runCallbacksOnInit),t.params.history.replaceState||e.addEventListener("popstate",d)):t.params.history.replaceState||e.addEventListener("popstate",d)}})()})),s("destroy",(()=>{t.params.history.enabled&&(()=>{const e=getWindow();t.params.history.replaceState||e.removeEventListener("popstate",d)})()})),s("transitionEnd _freeModeNoMomentumRelease",(()=>{r&&n(t.params.history.key,t.activeIndex)})),s("slideChange",(()=>{r&&t.params.cssMode&&n(t.params.history.key,t.activeIndex)}))}export{History as default}; -//# sourceMappingURL=history.min.mjs.map \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/history.min.mjs.map b/build/assets/js/vendor/swiper/modules/history.min.mjs.map deleted file mode 100644 index 6c5a493..0000000 --- a/build/assets/js/vendor/swiper/modules/history.min.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"history.mjs.mjs","names":["getWindow","History","_ref","swiper","extendParams","on","history","enabled","root","replaceState","key","keepQuery","initialized","paths","slugify","text","toString","replace","getPathValues","urlOverride","window","location","URL","pathArray","pathname","slice","split","filter","part","total","length","value","setHistory","index","params","url","slide","slides","getAttribute","includes","search","currentState","state","pushState","scrollToSlide","speed","runCallbacks","i","getSlideIndex","slideTo","setHistoryPopState","hashNavigation","runCallbacksOnInit","addEventListener","init","removeEventListener","destroy","activeIndex","cssMode"],"sources":["0"],"mappings":"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"} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/history.mjs b/build/assets/js/vendor/swiper/modules/history.mjs deleted file mode 100644 index 2228d63..0000000 --- a/build/assets/js/vendor/swiper/modules/history.mjs +++ /dev/null @@ -1,142 +0,0 @@ -import { a as getWindow } from '../shared/ssr-window.esm.mjs'; - -function History(_ref) { - let { - swiper, - extendParams, - on - } = _ref; - extendParams({ - history: { - enabled: false, - root: '', - replaceState: false, - key: 'slides', - keepQuery: false - } - }); - let initialized = false; - let paths = {}; - const slugify = text => { - return text.toString().replace(/\s+/g, '-').replace(/[^\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, ''); - }; - const getPathValues = urlOverride => { - const window = getWindow(); - let location; - if (urlOverride) { - location = new URL(urlOverride); - } else { - location = window.location; - } - const pathArray = location.pathname.slice(1).split('/').filter(part => part !== ''); - const total = pathArray.length; - const key = pathArray[total - 2]; - const value = pathArray[total - 1]; - return { - key, - value - }; - }; - const setHistory = (key, index) => { - const window = getWindow(); - if (!initialized || !swiper.params.history.enabled) return; - let location; - if (swiper.params.url) { - location = new URL(swiper.params.url); - } else { - location = window.location; - } - const slide = swiper.slides[index]; - let value = slugify(slide.getAttribute('data-history')); - if (swiper.params.history.root.length > 0) { - let root = swiper.params.history.root; - if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1); - value = `${root}/${key ? `${key}/` : ''}${value}`; - } else if (!location.pathname.includes(key)) { - value = `${key ? `${key}/` : ''}${value}`; - } - if (swiper.params.history.keepQuery) { - value += location.search; - } - const currentState = window.history.state; - if (currentState && currentState.value === value) { - return; - } - if (swiper.params.history.replaceState) { - window.history.replaceState({ - value - }, null, value); - } else { - window.history.pushState({ - value - }, null, value); - } - }; - const scrollToSlide = (speed, value, runCallbacks) => { - if (value) { - for (let i = 0, length = swiper.slides.length; i < length; i += 1) { - const slide = swiper.slides[i]; - const slideHistory = slugify(slide.getAttribute('data-history')); - if (slideHistory === value) { - const index = swiper.getSlideIndex(slide); - swiper.slideTo(index, speed, runCallbacks); - } - } - } else { - swiper.slideTo(0, speed, runCallbacks); - } - }; - const setHistoryPopState = () => { - paths = getPathValues(swiper.params.url); - scrollToSlide(swiper.params.speed, paths.value, false); - }; - const init = () => { - const window = getWindow(); - if (!swiper.params.history) return; - if (!window.history || !window.history.pushState) { - swiper.params.history.enabled = false; - swiper.params.hashNavigation.enabled = true; - return; - } - initialized = true; - paths = getPathValues(swiper.params.url); - if (!paths.key && !paths.value) { - if (!swiper.params.history.replaceState) { - window.addEventListener('popstate', setHistoryPopState); - } - return; - } - scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit); - if (!swiper.params.history.replaceState) { - window.addEventListener('popstate', setHistoryPopState); - } - }; - const destroy = () => { - const window = getWindow(); - if (!swiper.params.history.replaceState) { - window.removeEventListener('popstate', setHistoryPopState); - } - }; - on('init', () => { - if (swiper.params.history.enabled) { - init(); - } - }); - on('destroy', () => { - if (swiper.params.history.enabled) { - destroy(); - } - }); - on('transitionEnd _freeModeNoMomentumRelease', () => { - if (initialized) { - setHistory(swiper.params.history.key, swiper.activeIndex); - } - }); - on('slideChange', () => { - if (initialized && swiper.params.cssMode) { - setHistory(swiper.params.history.key, swiper.activeIndex); - } - }); -} - -export { History as default }; diff --git a/build/assets/js/vendor/swiper/modules/history.scss b/build/assets/js/vendor/swiper/modules/history.scss deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/history.scss +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/index.min.mjs b/build/assets/js/vendor/swiper/modules/index.min.mjs deleted file mode 100644 index 41b89c3..0000000 --- a/build/assets/js/vendor/swiper/modules/index.min.mjs +++ /dev/null @@ -1,2 +0,0 @@ -export{default as Virtual}from"./virtual.min.mjs";export{default as Keyboard}from"./keyboard.min.mjs";export{default as Mousewheel}from"./mousewheel.min.mjs";export{default as Navigation}from"./navigation.min.mjs";export{default as Pagination}from"./pagination.min.mjs";export{default as Scrollbar}from"./scrollbar.min.mjs";export{default as Parallax}from"./parallax.min.mjs";export{default as Zoom}from"./zoom.min.mjs";export{default as Controller}from"./controller.min.mjs";export{default as A11y}from"./a11y.min.mjs";export{default as History}from"./history.min.mjs";export{default as HashNavigation}from"./hash-navigation.min.mjs";export{default as Autoplay}from"./autoplay.min.mjs";export{default as Thumbs}from"./thumbs.min.mjs";export{default as FreeMode}from"./free-mode.min.mjs";export{default as Grid}from"./grid.min.mjs";export{default as Manipulation}from"./manipulation.min.mjs";export{default as EffectFade}from"./effect-fade.min.mjs";export{default as EffectCube}from"./effect-cube.min.mjs";export{default as EffectFlip}from"./effect-flip.min.mjs";export{default as EffectCoverflow}from"./effect-coverflow.min.mjs";export{default as EffectCreative}from"./effect-creative.min.mjs";export{default as EffectCards}from"./effect-cards.min.mjs"; -//# sourceMappingURL=index.min.mjs.map \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/index.min.mjs.map b/build/assets/js/vendor/swiper/modules/index.min.mjs.map deleted file mode 100644 index 1492964..0000000 --- a/build/assets/js/vendor/swiper/modules/index.min.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.mjs.mjs","names":[],"sources":["0"],"mappings":"OAAQ,uBAAyB,2BACzB,wBAA0B,4BAC1B,0BAA4B,8BAC5B,0BAA4B,8BAC5B,0BAA4B,8BAC5B,yBAA2B,6BAC3B,wBAA0B,4BAC1B,oBAAsB,wBACtB,0BAA4B,8BAC5B,oBAAsB,wBACtB,uBAAyB,2BACzB,8BAAgC,mCAChC,wBAA0B,4BAC1B,sBAAwB,0BACxB,wBAA0B,6BAC1B,oBAAsB,wBACtB,4BAA8B,gCAC9B,0BAA4B,+BAC5B,0BAA4B,+BAC5B,0BAA4B,+BAC5B,+BAAiC,oCACjC,8BAAgC,mCAChC,2BAA6B"} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/index.mjs b/build/assets/js/vendor/swiper/modules/index.mjs deleted file mode 100644 index 3186045..0000000 --- a/build/assets/js/vendor/swiper/modules/index.mjs +++ /dev/null @@ -1,23 +0,0 @@ -export {default as Virtual} from './virtual.mjs'; -export {default as Keyboard} from './keyboard.mjs'; -export {default as Mousewheel} from './mousewheel.mjs'; -export {default as Navigation} from './navigation.mjs'; -export {default as Pagination} from './pagination.mjs'; -export {default as Scrollbar} from './scrollbar.mjs'; -export {default as Parallax} from './parallax.mjs'; -export {default as Zoom} from './zoom.mjs'; -export {default as Controller} from './controller.mjs'; -export {default as A11y} from './a11y.mjs'; -export {default as History} from './history.mjs'; -export {default as HashNavigation} from './hash-navigation.mjs'; -export {default as Autoplay} from './autoplay.mjs'; -export {default as Thumbs} from './thumbs.mjs'; -export {default as FreeMode} from './free-mode.mjs'; -export {default as Grid} from './grid.mjs'; -export {default as Manipulation} from './manipulation.mjs'; -export {default as EffectFade} from './effect-fade.mjs'; -export {default as EffectCube} from './effect-cube.mjs'; -export {default as EffectFlip} from './effect-flip.mjs'; -export {default as EffectCoverflow} from './effect-coverflow.mjs'; -export {default as EffectCreative} from './effect-creative.mjs'; -export {default as EffectCards} from './effect-cards.mjs'; \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/keyboard-element.css b/build/assets/js/vendor/swiper/modules/keyboard-element.css deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/keyboard-element.css +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/keyboard-element.min.css b/build/assets/js/vendor/swiper/modules/keyboard-element.min.css deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/keyboard-element.min.css +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/keyboard.css b/build/assets/js/vendor/swiper/modules/keyboard.css deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/keyboard.css +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/keyboard.less b/build/assets/js/vendor/swiper/modules/keyboard.less deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/keyboard.less +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/keyboard.min.css b/build/assets/js/vendor/swiper/modules/keyboard.min.css deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/keyboard.min.css +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/keyboard.min.mjs b/build/assets/js/vendor/swiper/modules/keyboard.min.mjs deleted file mode 100644 index f1d9d2d..0000000 --- a/build/assets/js/vendor/swiper/modules/keyboard.min.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{g as getDocument,a as getWindow}from"../shared/ssr-window.esm.min.mjs";import{a as elementParents,b as elementOffset}from"../shared/utils.min.mjs";function Keyboard(e){let{swiper:t,extendParams:n,on:a,emit:r}=e;const l=getDocument(),i=getWindow();function o(e){if(!t.enabled)return;const{rtlTranslate:n}=t;let a=e;a.originalEvent&&(a=a.originalEvent);const o=a.keyCode||a.charCode,s=t.params.keyboard.pageUpDown,d=s&&33===o,f=s&&34===o,m=37===o,b=39===o,c=38===o,p=40===o;if(!t.allowSlideNext&&(t.isHorizontal()&&b||t.isVertical()&&p||f))return!1;if(!t.allowSlidePrev&&(t.isHorizontal()&&m||t.isVertical()&&c||d))return!1;if(!(a.shiftKey||a.altKey||a.ctrlKey||a.metaKey||l.activeElement&&l.activeElement.nodeName&&("input"===l.activeElement.nodeName.toLowerCase()||"textarea"===l.activeElement.nodeName.toLowerCase()))){if(t.params.keyboard.onlyInViewport&&(d||f||m||b||c||p)){let e=!1;if(elementParents(t.el,`.${t.params.slideClass}, swiper-slide`).length>0&&0===elementParents(t.el,`.${t.params.slideActiveClass}`).length)return;const a=t.el,r=a.clientWidth,l=a.clientHeight,o=i.innerWidth,s=i.innerHeight,d=elementOffset(a);n&&(d.left-=a.scrollLeft);const f=[[d.left,d.top],[d.left+r,d.top],[d.left,d.top+l],[d.left+r,d.top+l]];for(let t=0;t=0&&n[0]<=o&&n[1]>=0&&n[1]<=s){if(0===n[0]&&0===n[1])continue;e=!0}}if(!e)return}t.isHorizontal()?((d||f||m||b)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),((f||b)&&!n||(d||m)&&n)&&t.slideNext(),((d||m)&&!n||(f||b)&&n)&&t.slidePrev()):((d||f||c||p)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),(f||p)&&t.slideNext(),(d||c)&&t.slidePrev()),r("keyPress",o)}}function s(){t.keyboard.enabled||(l.addEventListener("keydown",o),t.keyboard.enabled=!0)}function d(){t.keyboard.enabled&&(l.removeEventListener("keydown",o),t.keyboard.enabled=!1)}t.keyboard={enabled:!1},n({keyboard:{enabled:!1,onlyInViewport:!0,pageUpDown:!0}}),a("init",(()=>{t.params.keyboard.enabled&&s()})),a("destroy",(()=>{t.keyboard.enabled&&d()})),Object.assign(t.keyboard,{enable:s,disable:d})}export{Keyboard as default}; -//# sourceMappingURL=keyboard.min.mjs.map \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/keyboard.min.mjs.map b/build/assets/js/vendor/swiper/modules/keyboard.min.mjs.map deleted file mode 100644 index 04ab4eb..0000000 --- a/build/assets/js/vendor/swiper/modules/keyboard.min.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"keyboard.mjs.mjs","names":["getDocument","getWindow","elementParents","elementOffset","Keyboard","_ref","swiper","extendParams","on","emit","document","window","handle","event","enabled","rtlTranslate","rtl","e","originalEvent","kc","keyCode","charCode","pageUpDown","params","keyboard","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","allowSlideNext","isHorizontal","isVertical","allowSlidePrev","shiftKey","altKey","ctrlKey","metaKey","activeElement","nodeName","toLowerCase","onlyInViewport","inView","el","slideClass","length","slideActiveClass","swiperWidth","clientWidth","swiperHeight","clientHeight","windowWidth","innerWidth","windowHeight","innerHeight","swiperOffset","left","scrollLeft","swiperCoord","top","i","point","preventDefault","returnValue","slideNext","slidePrev","enable","addEventListener","disable","removeEventListener","Object","assign"],"sources":["0"],"mappings":"YAAcA,iBAAkBC,cAAiB,+CACnCC,oBAAqBC,kBAAqB,0BAGxD,SAASC,SAASC,GAChB,IAAIC,OACFA,EAAMC,aACNA,EAAYC,GACZA,EAAEC,KACFA,GACEJ,EACJ,MAAMK,EAAWV,cACXW,EAASV,YAWf,SAASW,EAAOC,GACd,IAAKP,EAAOQ,QAAS,OACrB,MACEC,aAAcC,GACZV,EACJ,IAAIW,EAAIJ,EACJI,EAAEC,gBAAeD,EAAIA,EAAEC,eAC3B,MAAMC,EAAKF,EAAEG,SAAWH,EAAEI,SACpBC,EAAahB,EAAOiB,OAAOC,SAASF,WACpCG,EAAWH,GAAqB,KAAPH,EACzBO,EAAaJ,GAAqB,KAAPH,EAC3BQ,EAAqB,KAAPR,EACdS,EAAsB,KAAPT,EACfU,EAAmB,KAAPV,EACZW,EAAqB,KAAPX,EAEpB,IAAKb,EAAOyB,iBAAmBzB,EAAO0B,gBAAkBJ,GAAgBtB,EAAO2B,cAAgBH,GAAeJ,GAC5G,OAAO,EAET,IAAKpB,EAAO4B,iBAAmB5B,EAAO0B,gBAAkBL,GAAerB,EAAO2B,cAAgBJ,GAAaJ,GACzG,OAAO,EAET,KAAIR,EAAEkB,UAAYlB,EAAEmB,QAAUnB,EAAEoB,SAAWpB,EAAEqB,SAGzC5B,EAAS6B,eAAiB7B,EAAS6B,cAAcC,WAA+D,UAAlD9B,EAAS6B,cAAcC,SAASC,eAA+E,aAAlD/B,EAAS6B,cAAcC,SAASC,gBAA/J,CAGA,GAAInC,EAAOiB,OAAOC,SAASkB,iBAAmBjB,GAAYC,GAAcC,GAAeC,GAAgBC,GAAaC,GAAc,CAChI,IAAIa,GAAS,EAEb,GAAIzC,eAAeI,EAAOsC,GAAI,IAAItC,EAAOiB,OAAOsB,4BAA4BC,OAAS,GAAgF,IAA3E5C,eAAeI,EAAOsC,GAAI,IAAItC,EAAOiB,OAAOwB,oBAAoBD,OACxJ,OAEF,MAAMF,EAAKtC,EAAOsC,GACZI,EAAcJ,EAAGK,YACjBC,EAAeN,EAAGO,aAClBC,EAAczC,EAAO0C,WACrBC,EAAe3C,EAAO4C,YACtBC,EAAerD,cAAcyC,GAC/B5B,IAAKwC,EAAaC,MAAQb,EAAGc,YACjC,MAAMC,EAAc,CAAC,CAACH,EAAaC,KAAMD,EAAaI,KAAM,CAACJ,EAAaC,KAAOT,EAAaQ,EAAaI,KAAM,CAACJ,EAAaC,KAAMD,EAAaI,IAAMV,GAAe,CAACM,EAAaC,KAAOT,EAAaQ,EAAaI,IAAMV,IAC5N,IAAK,IAAIW,EAAI,EAAGA,EAAIF,EAAYb,OAAQe,GAAK,EAAG,CAC9C,MAAMC,EAAQH,EAAYE,GAC1B,GAAIC,EAAM,IAAM,GAAKA,EAAM,IAAMV,GAAeU,EAAM,IAAM,GAAKA,EAAM,IAAMR,EAAc,CACzF,GAAiB,IAAbQ,EAAM,IAAyB,IAAbA,EAAM,GAAU,SACtCnB,GAAS,CACX,CACF,CACA,IAAKA,EAAQ,MACf,CACIrC,EAAO0B,iBACLP,GAAYC,GAAcC,GAAeC,KACvCX,EAAE8C,eAAgB9C,EAAE8C,iBAAsB9C,EAAE+C,aAAc,KAE3DtC,GAAcE,KAAkBZ,IAAQS,GAAYE,IAAgBX,IAAKV,EAAO2D,cAChFxC,GAAYE,KAAiBX,IAAQU,GAAcE,IAAiBZ,IAAKV,EAAO4D,eAEjFzC,GAAYC,GAAcG,GAAaC,KACrCb,EAAE8C,eAAgB9C,EAAE8C,iBAAsB9C,EAAE+C,aAAc,IAE5DtC,GAAcI,IAAaxB,EAAO2D,aAClCxC,GAAYI,IAAWvB,EAAO4D,aAEpCzD,EAAK,WAAYU,EArCjB,CAuCF,CACA,SAASgD,IACH7D,EAAOkB,SAASV,UACpBJ,EAAS0D,iBAAiB,UAAWxD,GACrCN,EAAOkB,SAASV,SAAU,EAC5B,CACA,SAASuD,IACF/D,EAAOkB,SAASV,UACrBJ,EAAS4D,oBAAoB,UAAW1D,GACxCN,EAAOkB,SAASV,SAAU,EAC5B,CAtFAR,EAAOkB,SAAW,CAChBV,SAAS,GAEXP,EAAa,CACXiB,SAAU,CACRV,SAAS,EACT4B,gBAAgB,EAChBpB,YAAY,KAgFhBd,EAAG,QAAQ,KACLF,EAAOiB,OAAOC,SAASV,SACzBqD,GACF,IAEF3D,EAAG,WAAW,KACRF,EAAOkB,SAASV,SAClBuD,GACF,IAEFE,OAAOC,OAAOlE,EAAOkB,SAAU,CAC7B2C,SACAE,WAEJ,QAESjE"} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/keyboard.mjs b/build/assets/js/vendor/swiper/modules/keyboard.mjs deleted file mode 100644 index ba62a46..0000000 --- a/build/assets/js/vendor/swiper/modules/keyboard.mjs +++ /dev/null @@ -1,117 +0,0 @@ -import { g as getDocument, a as getWindow } from '../shared/ssr-window.esm.mjs'; -import { a as elementParents, b as elementOffset } from '../shared/utils.mjs'; - -/* eslint-disable consistent-return */ -function Keyboard(_ref) { - let { - swiper, - extendParams, - on, - emit - } = _ref; - const document = getDocument(); - const window = getWindow(); - swiper.keyboard = { - enabled: false - }; - extendParams({ - keyboard: { - enabled: false, - onlyInViewport: true, - pageUpDown: true - } - }); - function handle(event) { - if (!swiper.enabled) return; - const { - rtlTranslate: rtl - } = swiper; - let e = event; - if (e.originalEvent) e = e.originalEvent; // jquery fix - const kc = e.keyCode || e.charCode; - const pageUpDown = swiper.params.keyboard.pageUpDown; - const isPageUp = pageUpDown && kc === 33; - const isPageDown = pageUpDown && kc === 34; - const isArrowLeft = kc === 37; - const isArrowRight = kc === 39; - const isArrowUp = kc === 38; - const isArrowDown = kc === 40; - // Directions locks - if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) { - return false; - } - if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) { - return false; - } - if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) { - return undefined; - } - if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) { - return undefined; - } - if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) { - let inView = false; - // Check that swiper should be inside of visible area of window - if (elementParents(swiper.el, `.${swiper.params.slideClass}, swiper-slide`).length > 0 && elementParents(swiper.el, `.${swiper.params.slideActiveClass}`).length === 0) { - return undefined; - } - const el = swiper.el; - const swiperWidth = el.clientWidth; - const swiperHeight = el.clientHeight; - const windowWidth = window.innerWidth; - const windowHeight = window.innerHeight; - const swiperOffset = elementOffset(el); - if (rtl) swiperOffset.left -= el.scrollLeft; - const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]]; - for (let i = 0; i < swiperCoord.length; i += 1) { - const point = swiperCoord[i]; - if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) { - if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line - inView = true; - } - } - if (!inView) return undefined; - } - if (swiper.isHorizontal()) { - if (isPageUp || isPageDown || isArrowLeft || isArrowRight) { - if (e.preventDefault) e.preventDefault();else e.returnValue = false; - } - if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext(); - if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev(); - } else { - if (isPageUp || isPageDown || isArrowUp || isArrowDown) { - if (e.preventDefault) e.preventDefault();else e.returnValue = false; - } - if (isPageDown || isArrowDown) swiper.slideNext(); - if (isPageUp || isArrowUp) swiper.slidePrev(); - } - emit('keyPress', kc); - return undefined; - } - function enable() { - if (swiper.keyboard.enabled) return; - document.addEventListener('keydown', handle); - swiper.keyboard.enabled = true; - } - function disable() { - if (!swiper.keyboard.enabled) return; - document.removeEventListener('keydown', handle); - swiper.keyboard.enabled = false; - } - on('init', () => { - if (swiper.params.keyboard.enabled) { - enable(); - } - }); - on('destroy', () => { - if (swiper.keyboard.enabled) { - disable(); - } - }); - Object.assign(swiper.keyboard, { - enable, - disable - }); -} - -export { Keyboard as default }; diff --git a/build/assets/js/vendor/swiper/modules/keyboard.scss b/build/assets/js/vendor/swiper/modules/keyboard.scss deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/keyboard.scss +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/manipulation-element.css b/build/assets/js/vendor/swiper/modules/manipulation-element.css deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/manipulation-element.css +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/manipulation-element.min.css b/build/assets/js/vendor/swiper/modules/manipulation-element.min.css deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/manipulation-element.min.css +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/manipulation.css b/build/assets/js/vendor/swiper/modules/manipulation.css deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/manipulation.css +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/manipulation.less b/build/assets/js/vendor/swiper/modules/manipulation.less deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/manipulation.less +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/manipulation.min.css b/build/assets/js/vendor/swiper/modules/manipulation.min.css deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/manipulation.min.css +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/manipulation.min.mjs b/build/assets/js/vendor/swiper/modules/manipulation.min.mjs deleted file mode 100644 index 1b7832f..0000000 --- a/build/assets/js/vendor/swiper/modules/manipulation.min.mjs +++ /dev/null @@ -1,2 +0,0 @@ -function appendSlide(e){const l=this,{params:o,slidesEl:i}=l;o.loop&&l.loopDestroy();const t=e=>{if("string"==typeof e){const l=document.createElement("div");l.innerHTML=e,i.append(l.children[0]),l.innerHTML=""}else i.append(e)};if("object"==typeof e&&"length"in e)for(let l=0;l{if("string"==typeof e){const l=document.createElement("div");l.innerHTML=e,t.prepend(l.children[0]),l.innerHTML=""}else t.prepend(e)};if("object"==typeof e&&"length"in e){for(let l=0;l=s)return void o.appendSlide(l);let p=d>e?d+1:d;const r=[];for(let l=s-1;l>=e;l-=1){const e=o.slides[l];e.remove(),r.unshift(e)}if("object"==typeof l&&"length"in l){for(let e=0;ee?d+l.length:d}else n.append(l);for(let e=0;e { - if (typeof slideEl === 'string') { - const tempDOM = document.createElement('div'); - tempDOM.innerHTML = slideEl; - slidesEl.append(tempDOM.children[0]); - tempDOM.innerHTML = ''; - } else { - slidesEl.append(slideEl); - } - }; - if (typeof slides === 'object' && 'length' in slides) { - for (let i = 0; i < slides.length; i += 1) { - if (slides[i]) appendElement(slides[i]); - } - } else { - appendElement(slides); - } - swiper.recalcSlides(); - if (params.loop) { - swiper.loopCreate(); - } - if (!params.observer || swiper.isElement) { - swiper.update(); - } -} - -function prependSlide(slides) { - const swiper = this; - const { - params, - activeIndex, - slidesEl - } = swiper; - if (params.loop) { - swiper.loopDestroy(); - } - let newActiveIndex = activeIndex + 1; - const prependElement = slideEl => { - if (typeof slideEl === 'string') { - const tempDOM = document.createElement('div'); - tempDOM.innerHTML = slideEl; - slidesEl.prepend(tempDOM.children[0]); - tempDOM.innerHTML = ''; - } else { - slidesEl.prepend(slideEl); - } - }; - if (typeof slides === 'object' && 'length' in slides) { - for (let i = 0; i < slides.length; i += 1) { - if (slides[i]) prependElement(slides[i]); - } - newActiveIndex = activeIndex + slides.length; - } else { - prependElement(slides); - } - swiper.recalcSlides(); - if (params.loop) { - swiper.loopCreate(); - } - if (!params.observer || swiper.isElement) { - swiper.update(); - } - swiper.slideTo(newActiveIndex, 0, false); -} - -function addSlide(index, slides) { - const swiper = this; - const { - params, - activeIndex, - slidesEl - } = swiper; - let activeIndexBuffer = activeIndex; - if (params.loop) { - activeIndexBuffer -= swiper.loopedSlides; - swiper.loopDestroy(); - swiper.recalcSlides(); - } - const baseLength = swiper.slides.length; - if (index <= 0) { - swiper.prependSlide(slides); - return; - } - if (index >= baseLength) { - swiper.appendSlide(slides); - return; - } - let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer; - const slidesBuffer = []; - for (let i = baseLength - 1; i >= index; i -= 1) { - const currentSlide = swiper.slides[i]; - currentSlide.remove(); - slidesBuffer.unshift(currentSlide); - } - if (typeof slides === 'object' && 'length' in slides) { - for (let i = 0; i < slides.length; i += 1) { - if (slides[i]) slidesEl.append(slides[i]); - } - newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer; - } else { - slidesEl.append(slides); - } - for (let i = 0; i < slidesBuffer.length; i += 1) { - slidesEl.append(slidesBuffer[i]); - } - swiper.recalcSlides(); - if (params.loop) { - swiper.loopCreate(); - } - if (!params.observer || swiper.isElement) { - swiper.update(); - } - if (params.loop) { - swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false); - } else { - swiper.slideTo(newActiveIndex, 0, false); - } -} - -function removeSlide(slidesIndexes) { - const swiper = this; - const { - params, - activeIndex - } = swiper; - let activeIndexBuffer = activeIndex; - if (params.loop) { - activeIndexBuffer -= swiper.loopedSlides; - swiper.loopDestroy(); - } - let newActiveIndex = activeIndexBuffer; - let indexToRemove; - if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) { - for (let i = 0; i < slidesIndexes.length; i += 1) { - indexToRemove = slidesIndexes[i]; - if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove(); - if (indexToRemove < newActiveIndex) newActiveIndex -= 1; - } - newActiveIndex = Math.max(newActiveIndex, 0); - } else { - indexToRemove = slidesIndexes; - if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove(); - if (indexToRemove < newActiveIndex) newActiveIndex -= 1; - newActiveIndex = Math.max(newActiveIndex, 0); - } - swiper.recalcSlides(); - if (params.loop) { - swiper.loopCreate(); - } - if (!params.observer || swiper.isElement) { - swiper.update(); - } - if (params.loop) { - swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false); - } else { - swiper.slideTo(newActiveIndex, 0, false); - } -} - -function removeAllSlides() { - const swiper = this; - const slidesIndexes = []; - for (let i = 0; i < swiper.slides.length; i += 1) { - slidesIndexes.push(i); - } - swiper.removeSlide(slidesIndexes); -} - -function Manipulation(_ref) { - let { - swiper - } = _ref; - Object.assign(swiper, { - appendSlide: appendSlide.bind(swiper), - prependSlide: prependSlide.bind(swiper), - addSlide: addSlide.bind(swiper), - removeSlide: removeSlide.bind(swiper), - removeAllSlides: removeAllSlides.bind(swiper) - }); -} - -export { Manipulation as default }; diff --git a/build/assets/js/vendor/swiper/modules/manipulation.scss b/build/assets/js/vendor/swiper/modules/manipulation.scss deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/manipulation.scss +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/mousewheel-element.css b/build/assets/js/vendor/swiper/modules/mousewheel-element.css deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/mousewheel-element.css +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/mousewheel-element.min.css b/build/assets/js/vendor/swiper/modules/mousewheel-element.min.css deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/mousewheel-element.min.css +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/mousewheel.css b/build/assets/js/vendor/swiper/modules/mousewheel.css deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/mousewheel.css +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/mousewheel.less b/build/assets/js/vendor/swiper/modules/mousewheel.less deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/mousewheel.less +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/mousewheel.min.css b/build/assets/js/vendor/swiper/modules/mousewheel.min.css deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/mousewheel.min.css +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/mousewheel.min.mjs b/build/assets/js/vendor/swiper/modules/mousewheel.min.mjs deleted file mode 100644 index 312e9b6..0000000 --- a/build/assets/js/vendor/swiper/modules/mousewheel.min.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{a as getWindow}from"../shared/ssr-window.esm.min.mjs";import{n as nextTick,d as now}from"../shared/utils.min.mjs";function Mousewheel(e){let{swiper:t,extendParams:a,on:s,emit:n}=e;const l=getWindow();let i;a({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 r,o=now();const d=[];function m(){t.enabled&&(t.mouseEntered=!0)}function p(){t.enabled&&(t.mouseEntered=!1)}function u(e){return!(t.params.mousewheel.thresholdDelta&&e.delta=6&&now()-o<60||(e.direction<0?t.isEnd&&!t.params.loop||t.animating||(t.slideNext(),n("scroll",e.raw)):t.isBeginning&&!t.params.loop||t.animating||(t.slidePrev(),n("scroll",e.raw)),o=(new l.Date).getTime(),!1)))}function h(e){let a=e,s=!0;if(!t.enabled)return;if(e.target.closest(`.${t.params.mousewheel.noMousewheelClass}`))return;const l=t.params.mousewheel;t.params.cssMode&&a.preventDefault();let o=t.el;"container"!==t.params.mousewheel.eventsTarget&&(o=document.querySelector(t.params.mousewheel.eventsTarget));const m=o&&o.contains(a.target);if(!t.mouseEntered&&!m&&!l.releaseOnEdges)return!0;a.originalEvent&&(a=a.originalEvent);let p=0;const h=t.rtlTranslate?-1:1,c=function(e){let t=0,a=0,s=0,n=0;return"detail"in e&&(a=e.detail),"wheelDelta"in e&&(a=-e.wheelDelta/120),"wheelDeltaY"in e&&(a=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=a,a=0),s=10*t,n=10*a,"deltaY"in e&&(n=e.deltaY),"deltaX"in e&&(s=e.deltaX),e.shiftKey&&!s&&(s=n,n=0),(s||n)&&e.deltaMode&&(1===e.deltaMode?(s*=40,n*=40):(s*=800,n*=800)),s&&!t&&(t=s<1?-1:1),n&&!a&&(a=n<1?-1:1),{spinX:t,spinY:a,pixelX:s,pixelY:n}}(a);if(l.forceToAxis)if(t.isHorizontal()){if(!(Math.abs(c.pixelX)>Math.abs(c.pixelY)))return!0;p=-c.pixelX*h}else{if(!(Math.abs(c.pixelY)>Math.abs(c.pixelX)))return!0;p=-c.pixelY}else p=Math.abs(c.pixelX)>Math.abs(c.pixelY)?-c.pixelX*h:-c.pixelY;if(0===p)return!0;l.invert&&(p=-p);let w=t.getTranslate()+p*l.sensitivity;if(w>=t.minTranslate()&&(w=t.minTranslate()),w<=t.maxTranslate()&&(w=t.maxTranslate()),s=!!t.params.loop||!(w===t.minTranslate()||w===t.maxTranslate()),s&&t.params.nested&&a.stopPropagation(),t.params.freeMode&&t.params.freeMode.enabled){const e={time:now(),delta:Math.abs(p),direction:Math.sign(p)},s=r&&e.time=t.minTranslate()&&(o=t.minTranslate()),o<=t.maxTranslate()&&(o=t.maxTranslate()),t.setTransition(0),t.setTranslate(o),t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses(),(!m&&t.isBeginning||!u&&t.isEnd)&&t.updateSlidesClasses(),t.params.loop&&t.loopFix({direction:e.direction<0?"next":"prev",byMousewheel:!0}),t.params.freeMode.sticky){clearTimeout(i),i=void 0,d.length>=15&&d.shift();const a=d.length?d[d.length-1]:void 0,s=d[0];if(d.push(e),a&&(e.delta>a.delta||e.direction!==a.direction))d.splice(0);else if(d.length>=15&&e.time-s.time<500&&s.delta-e.delta>=1&&e.delta<=6){const a=p>0?.8:.2;r=e,d.splice(0),i=nextTick((()=>{t.slideToClosest(t.params.speed,!0,void 0,a)}),0)}i||(i=nextTick((()=>{r=e,d.splice(0),t.slideToClosest(t.params.speed,!0,void 0,.5)}),500))}if(s||n("scroll",a),t.params.autoplay&&t.params.autoplayDisableOnInteraction&&t.autoplay.stop(),l.releaseOnEdges&&(o===t.minTranslate()||o===t.maxTranslate()))return!0}}else{const a={time:now(),delta:Math.abs(p),direction:Math.sign(p),raw:e};d.length>=2&&d.shift();const s=d.length?d[d.length-1]:void 0;if(d.push(a),s?(a.direction!==s.direction||a.delta>s.delta||a.time>s.time+150)&&u(a):u(a),function(e){const a=t.params.mousewheel;if(e.direction<0){if(t.isEnd&&!t.params.loop&&a.releaseOnEdges)return!0}else if(t.isBeginning&&!t.params.loop&&a.releaseOnEdges)return!0;return!1}(a))return!0}return a.preventDefault?a.preventDefault():a.returnValue=!1,!1}function c(e){let a=t.el;"container"!==t.params.mousewheel.eventsTarget&&(a=document.querySelector(t.params.mousewheel.eventsTarget)),a[e]("mouseenter",m),a[e]("mouseleave",p),a[e]("wheel",h)}function w(){return t.params.cssMode?(t.wrapperEl.removeEventListener("wheel",h),!0):!t.mousewheel.enabled&&(c("addEventListener"),t.mousewheel.enabled=!0,!0)}function f(){return t.params.cssMode?(t.wrapperEl.addEventListener(event,h),!0):!!t.mousewheel.enabled&&(c("removeEventListener"),t.mousewheel.enabled=!1,!0)}s("init",(()=>{!t.params.mousewheel.enabled&&t.params.cssMode&&f(),t.params.mousewheel.enabled&&w()})),s("destroy",(()=>{t.params.cssMode&&w(),t.mousewheel.enabled&&f()})),Object.assign(t.mousewheel,{enable:w,disable:f})}export{Mousewheel as default}; -//# sourceMappingURL=mousewheel.min.mjs.map \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/mousewheel.min.mjs.map b/build/assets/js/vendor/swiper/modules/mousewheel.min.mjs.map deleted file mode 100644 index 678fdba..0000000 --- a/build/assets/js/vendor/swiper/modules/mousewheel.min.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"mousewheel.mjs.mjs","names":["getWindow","nextTick","now","Mousewheel","_ref","swiper","extendParams","on","emit","window","timeout","mousewheel","enabled","releaseOnEdges","invert","forceToAxis","sensitivity","eventsTarget","thresholdDelta","thresholdTime","noMousewheelClass","lastEventBeforeSnap","lastScrollTime","recentWheelEvents","handleMouseEnter","mouseEntered","handleMouseLeave","animateSlider","newEvent","params","delta","direction","isEnd","loop","animating","slideNext","raw","isBeginning","slidePrev","Date","getTime","handle","event","e","disableParentSwiper","target","closest","cssMode","preventDefault","targetEl","el","document","querySelector","targetElContainsTarget","contains","originalEvent","rtlFactor","rtlTranslate","data","sX","sY","pX","pY","detail","wheelDelta","wheelDeltaY","wheelDeltaX","axis","HORIZONTAL_AXIS","deltaY","deltaX","shiftKey","deltaMode","spinX","spinY","pixelX","pixelY","normalize","isHorizontal","Math","abs","positions","getTranslate","minTranslate","maxTranslate","nested","stopPropagation","freeMode","time","sign","ignoreWheelEvents","undefined","position","wasBeginning","wasEnd","setTransition","setTranslate","updateProgress","updateActiveIndex","updateSlidesClasses","loopFix","byMousewheel","sticky","clearTimeout","length","shift","prevEvent","firstEvent","push","splice","snapToThreshold","slideToClosest","speed","autoplay","autoplayDisableOnInteraction","stop","releaseScroll","returnValue","events","method","enable","wrapperEl","removeEventListener","disable","addEventListener","Object","assign"],"sources":["0"],"mappings":"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"} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/mousewheel.mjs b/build/assets/js/vendor/swiper/modules/mousewheel.mjs deleted file mode 100644 index 28c4d2e..0000000 --- a/build/assets/js/vendor/swiper/modules/mousewheel.mjs +++ /dev/null @@ -1,393 +0,0 @@ -import { a as getWindow } from '../shared/ssr-window.esm.mjs'; -import { n as nextTick, d as now } from '../shared/utils.mjs'; - -/* eslint-disable consistent-return */ -function Mousewheel(_ref) { - let { - swiper, - extendParams, - on, - emit - } = _ref; - const window = getWindow(); - extendParams({ - mousewheel: { - enabled: false, - releaseOnEdges: false, - invert: false, - forceToAxis: false, - sensitivity: 1, - eventsTarget: 'container', - thresholdDelta: null, - thresholdTime: null, - noMousewheelClass: 'swiper-no-mousewheel' - } - }); - swiper.mousewheel = { - enabled: false - }; - let timeout; - let lastScrollTime = now(); - let lastEventBeforeSnap; - const recentWheelEvents = []; - function normalize(e) { - // Reasonable defaults - const PIXEL_STEP = 10; - const LINE_HEIGHT = 40; - const PAGE_HEIGHT = 800; - let sX = 0; - let sY = 0; // spinX, spinY - let pX = 0; - let pY = 0; // pixelX, pixelY - - // Legacy - if ('detail' in e) { - sY = e.detail; - } - if ('wheelDelta' in e) { - sY = -e.wheelDelta / 120; - } - if ('wheelDeltaY' in e) { - sY = -e.wheelDeltaY / 120; - } - if ('wheelDeltaX' in e) { - sX = -e.wheelDeltaX / 120; - } - - // side scrolling on FF with DOMMouseScroll - if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) { - sX = sY; - sY = 0; - } - pX = sX * PIXEL_STEP; - pY = sY * PIXEL_STEP; - if ('deltaY' in e) { - pY = e.deltaY; - } - if ('deltaX' in e) { - pX = e.deltaX; - } - if (e.shiftKey && !pX) { - // if user scrolls with shift he wants horizontal scroll - pX = pY; - pY = 0; - } - if ((pX || pY) && e.deltaMode) { - if (e.deltaMode === 1) { - // delta in LINE units - pX *= LINE_HEIGHT; - pY *= LINE_HEIGHT; - } else { - // delta in PAGE units - pX *= PAGE_HEIGHT; - pY *= PAGE_HEIGHT; - } - } - - // Fall-back if spin cannot be determined - if (pX && !sX) { - sX = pX < 1 ? -1 : 1; - } - if (pY && !sY) { - sY = pY < 1 ? -1 : 1; - } - return { - spinX: sX, - spinY: sY, - pixelX: pX, - pixelY: pY - }; - } - function handleMouseEnter() { - if (!swiper.enabled) return; - swiper.mouseEntered = true; - } - function handleMouseLeave() { - if (!swiper.enabled) return; - swiper.mouseEntered = false; - } - function animateSlider(newEvent) { - if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) { - // Prevent if delta of wheel scroll delta is below configured threshold - return false; - } - if (swiper.params.mousewheel.thresholdTime && now() - lastScrollTime < swiper.params.mousewheel.thresholdTime) { - // Prevent if time between scrolls is below configured threshold - return false; - } - - // If the movement is NOT big enough and - // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider): - // Don't go any further (avoid insignificant scroll movement). - if (newEvent.delta >= 6 && now() - lastScrollTime < 60) { - // Return false as a default - return true; - } - // If user is scrolling towards the end: - // If the slider hasn't hit the latest slide or - // if the slider is a loop and - // if the slider isn't moving right now: - // Go to next slide and - // emit a scroll event. - // Else (the user is scrolling towards the beginning) and - // if the slider hasn't hit the first slide or - // if the slider is a loop and - // if the slider isn't moving right now: - // Go to prev slide and - // emit a scroll event. - if (newEvent.direction < 0) { - if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) { - swiper.slideNext(); - emit('scroll', newEvent.raw); - } - } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) { - swiper.slidePrev(); - emit('scroll', newEvent.raw); - } - // If you got here is because an animation has been triggered so store the current time - lastScrollTime = new window.Date().getTime(); - // Return false as a default - return false; - } - function releaseScroll(newEvent) { - const params = swiper.params.mousewheel; - if (newEvent.direction < 0) { - if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) { - // Return true to animate scroll on edges - return true; - } - } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) { - // Return true to animate scroll on edges - return true; - } - return false; - } - function handle(event) { - let e = event; - let disableParentSwiper = true; - if (!swiper.enabled) return; - - // Ignore event if the target or its parents have the swiper-no-mousewheel class - if (event.target.closest(`.${swiper.params.mousewheel.noMousewheelClass}`)) return; - const params = swiper.params.mousewheel; - if (swiper.params.cssMode) { - e.preventDefault(); - } - let targetEl = swiper.el; - if (swiper.params.mousewheel.eventsTarget !== 'container') { - targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget); - } - const targetElContainsTarget = targetEl && targetEl.contains(e.target); - if (!swiper.mouseEntered && !targetElContainsTarget && !params.releaseOnEdges) return true; - if (e.originalEvent) e = e.originalEvent; // jquery fix - let delta = 0; - const rtlFactor = swiper.rtlTranslate ? -1 : 1; - const data = normalize(e); - if (params.forceToAxis) { - if (swiper.isHorizontal()) { - if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true; - } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true; - } else { - delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY; - } - if (delta === 0) return true; - if (params.invert) delta = -delta; - - // Get the scroll positions - let positions = swiper.getTranslate() + delta * params.sensitivity; - if (positions >= swiper.minTranslate()) positions = swiper.minTranslate(); - if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate(); - - // When loop is true: - // the disableParentSwiper will be true. - // When loop is false: - // if the scroll positions is not on edge, - // then the disableParentSwiper will be true. - // if the scroll on edge positions, - // then the disableParentSwiper will be false. - disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate()); - if (disableParentSwiper && swiper.params.nested) e.stopPropagation(); - if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) { - // Register the new event in a variable which stores the relevant data - const newEvent = { - time: now(), - delta: Math.abs(delta), - direction: Math.sign(delta), - raw: event - }; - - // Keep the most recent events - if (recentWheelEvents.length >= 2) { - recentWheelEvents.shift(); // only store the last N events - } - - const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined; - recentWheelEvents.push(newEvent); - - // If there is at least one previous recorded event: - // If direction has changed or - // if the scroll is quicker than the previous one: - // Animate the slider. - // Else (this is the first time the wheel is moved): - // Animate the slider. - if (prevEvent) { - if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) { - animateSlider(newEvent); - } - } else { - animateSlider(newEvent); - } - - // If it's time to release the scroll: - // Return now so you don't hit the preventDefault. - if (releaseScroll(newEvent)) { - return true; - } - } else { - // Freemode or scrollContainer: - - // If we recently snapped after a momentum scroll, then ignore wheel events - // to give time for the deceleration to finish. Stop ignoring after 500 msecs - // or if it's a new scroll (larger delta or inverse sign as last event before - // an end-of-momentum snap). - const newEvent = { - time: now(), - delta: Math.abs(delta), - direction: Math.sign(delta) - }; - const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction; - if (!ignoreWheelEvents) { - lastEventBeforeSnap = undefined; - let position = swiper.getTranslate() + delta * params.sensitivity; - const wasBeginning = swiper.isBeginning; - const wasEnd = swiper.isEnd; - if (position >= swiper.minTranslate()) position = swiper.minTranslate(); - if (position <= swiper.maxTranslate()) position = swiper.maxTranslate(); - swiper.setTransition(0); - swiper.setTranslate(position); - swiper.updateProgress(); - swiper.updateActiveIndex(); - swiper.updateSlidesClasses(); - if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) { - swiper.updateSlidesClasses(); - } - if (swiper.params.loop) { - swiper.loopFix({ - direction: newEvent.direction < 0 ? 'next' : 'prev', - byMousewheel: true - }); - } - if (swiper.params.freeMode.sticky) { - // When wheel scrolling starts with sticky (aka snap) enabled, then detect - // the end of a momentum scroll by storing recent (N=15?) wheel events. - // 1. do all N events have decreasing or same (absolute value) delta? - // 2. did all N events arrive in the last M (M=500?) msecs? - // 3. does the earliest event have an (absolute value) delta that's - // at least P (P=1?) larger than the most recent event's delta? - // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels? - // If 1-4 are "yes" then we're near the end of a momentum scroll deceleration. - // Snap immediately and ignore remaining wheel events in this scroll. - // See comment above for "remaining wheel events in this scroll" determination. - // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event. - clearTimeout(timeout); - timeout = undefined; - if (recentWheelEvents.length >= 15) { - recentWheelEvents.shift(); // only store the last N events - } - - const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined; - const firstEvent = recentWheelEvents[0]; - recentWheelEvents.push(newEvent); - if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) { - // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log. - recentWheelEvents.splice(0); - } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) { - // We're at the end of the deceleration of a momentum scroll, so there's no need - // to wait for more events. Snap ASAP on the next tick. - // Also, because there's some remaining momentum we'll bias the snap in the - // direction of the ongoing scroll because it's better UX for the scroll to snap - // in the same direction as the scroll instead of reversing to snap. Therefore, - // if it's already scrolled more than 20% in the current direction, keep going. - const snapToThreshold = delta > 0 ? 0.8 : 0.2; - lastEventBeforeSnap = newEvent; - recentWheelEvents.splice(0); - timeout = nextTick(() => { - swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold); - }, 0); // no delay; move on next tick - } - - if (!timeout) { - // if we get here, then we haven't detected the end of a momentum scroll, so - // we'll consider a scroll "complete" when there haven't been any wheel events - // for 500ms. - timeout = nextTick(() => { - const snapToThreshold = 0.5; - lastEventBeforeSnap = newEvent; - recentWheelEvents.splice(0); - swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold); - }, 500); - } - } - - // Emit event - if (!ignoreWheelEvents) emit('scroll', e); - - // Stop autoplay - if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop(); - // Return page scroll on edge positions - if (params.releaseOnEdges && (position === swiper.minTranslate() || position === swiper.maxTranslate())) { - return true; - } - } - } - if (e.preventDefault) e.preventDefault();else e.returnValue = false; - return false; - } - function events(method) { - let targetEl = swiper.el; - if (swiper.params.mousewheel.eventsTarget !== 'container') { - targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget); - } - targetEl[method]('mouseenter', handleMouseEnter); - targetEl[method]('mouseleave', handleMouseLeave); - targetEl[method]('wheel', handle); - } - function enable() { - if (swiper.params.cssMode) { - swiper.wrapperEl.removeEventListener('wheel', handle); - return true; - } - if (swiper.mousewheel.enabled) return false; - events('addEventListener'); - swiper.mousewheel.enabled = true; - return true; - } - function disable() { - if (swiper.params.cssMode) { - swiper.wrapperEl.addEventListener(event, handle); - return true; - } - if (!swiper.mousewheel.enabled) return false; - events('removeEventListener'); - swiper.mousewheel.enabled = false; - return true; - } - on('init', () => { - if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) { - disable(); - } - if (swiper.params.mousewheel.enabled) enable(); - }); - on('destroy', () => { - if (swiper.params.cssMode) { - enable(); - } - if (swiper.mousewheel.enabled) disable(); - }); - Object.assign(swiper.mousewheel, { - enable, - disable - }); -} - -export { Mousewheel as default }; diff --git a/build/assets/js/vendor/swiper/modules/mousewheel.scss b/build/assets/js/vendor/swiper/modules/mousewheel.scss deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/mousewheel.scss +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/navigation-element.css b/build/assets/js/vendor/swiper/modules/navigation-element.css deleted file mode 100644 index 46a2918..0000000 --- a/build/assets/js/vendor/swiper/modules/navigation-element.css +++ /dev/null @@ -1,63 +0,0 @@ -:host { - --swiper-navigation-size: 44px; - /* - --swiper-navigation-top-offset: 50%; - --swiper-navigation-sides-offset: 10px; - --swiper-navigation-color: var(--swiper-theme-color); - */ -} -.swiper-button-prev, -.swiper-button-next { - position: absolute; - top: var(--swiper-navigation-top-offset, 50%); - width: calc(var(--swiper-navigation-size) / 44 * 27); - height: var(--swiper-navigation-size); - margin-top: calc(0px - (var(--swiper-navigation-size) / 2)); - z-index: 10; - cursor: pointer; - display: flex; - align-items: center; - justify-content: center; - color: var(--swiper-navigation-color, var(--swiper-theme-color)); -} -.swiper-button-prev.swiper-button-disabled, -.swiper-button-next.swiper-button-disabled { - opacity: 0.35; - cursor: auto; - pointer-events: none; -} -.swiper-button-prev.swiper-button-hidden, -.swiper-button-next.swiper-button-hidden { - opacity: 0; - cursor: auto; - pointer-events: none; -} -.swiper-navigation-disabled .swiper-button-prev, -.swiper-navigation-disabled .swiper-button-next { - display: none !important; -} -.swiper-button-prev svg, -.swiper-button-next svg { - width: 100%; - height: 100%; - object-fit: contain; - transform-origin: center; -} -.swiper-rtl .swiper-button-prev svg, -.swiper-rtl .swiper-button-next svg { - transform: rotate(180deg); -} -.swiper-button-prev, -.swiper-rtl .swiper-button-next { - left: var(--swiper-navigation-sides-offset, 10px); - right: auto; -} -.swiper-button-next, -.swiper-rtl .swiper-button-prev { - right: var(--swiper-navigation-sides-offset, 10px); - left: auto; -} -.swiper-button-lock { - display: none; -} -/* Navigation font start *//* Navigation font end */ diff --git a/build/assets/js/vendor/swiper/modules/navigation-element.min.css b/build/assets/js/vendor/swiper/modules/navigation-element.min.css deleted file mode 100644 index 70d1870..0000000 --- a/build/assets/js/vendor/swiper/modules/navigation-element.min.css +++ /dev/null @@ -1 +0,0 @@ -:host{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:var(--swiper-navigation-top-offset,50%);width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size)/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next.swiper-button-hidden,.swiper-button-prev.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled .swiper-button-next,.swiper-navigation-disabled .swiper-button-prev{display:none!important}.swiper-button-next svg,.swiper-button-prev svg{width:100%;height:100%;object-fit:contain;transform-origin:center}.swiper-rtl .swiper-button-next svg,.swiper-rtl .swiper-button-prev svg{transform:rotate(180deg)}.swiper-button-prev,.swiper-rtl .swiper-button-next{left:var(--swiper-navigation-sides-offset,10px);right:auto}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:var(--swiper-navigation-sides-offset,10px);left:auto}.swiper-button-lock{display:none} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/navigation.css b/build/assets/js/vendor/swiper/modules/navigation.css deleted file mode 100644 index a287b8a..0000000 --- a/build/assets/js/vendor/swiper/modules/navigation.css +++ /dev/null @@ -1,86 +0,0 @@ -:root { - --swiper-navigation-size: 44px; - /* - --swiper-navigation-top-offset: 50%; - --swiper-navigation-sides-offset: 10px; - --swiper-navigation-color: var(--swiper-theme-color); - */ -} -.swiper-button-prev, -.swiper-button-next { - position: absolute; - top: var(--swiper-navigation-top-offset, 50%); - width: calc(var(--swiper-navigation-size) / 44 * 27); - height: var(--swiper-navigation-size); - margin-top: calc(0px - (var(--swiper-navigation-size) / 2)); - z-index: 10; - cursor: pointer; - display: flex; - align-items: center; - justify-content: center; - color: var(--swiper-navigation-color, var(--swiper-theme-color)); -} -.swiper-button-prev.swiper-button-disabled, -.swiper-button-next.swiper-button-disabled { - opacity: 0.35; - cursor: auto; - pointer-events: none; -} -.swiper-button-prev.swiper-button-hidden, -.swiper-button-next.swiper-button-hidden { - opacity: 0; - cursor: auto; - pointer-events: none; -} -.swiper-navigation-disabled .swiper-button-prev, -.swiper-navigation-disabled .swiper-button-next { - display: none !important; -} -.swiper-button-prev svg, -.swiper-button-next svg { - width: 100%; - height: 100%; - object-fit: contain; - transform-origin: center; -} -.swiper-rtl .swiper-button-prev svg, -.swiper-rtl .swiper-button-next svg { - transform: rotate(180deg); -} -.swiper-button-prev, -.swiper-rtl .swiper-button-next { - left: var(--swiper-navigation-sides-offset, 10px); - right: auto; -} -.swiper-button-next, -.swiper-rtl .swiper-button-prev { - right: var(--swiper-navigation-sides-offset, 10px); - left: auto; -} -.swiper-button-lock { - display: none; -} -/* Navigation font start */ -.swiper-button-prev:after, -.swiper-button-next:after { - font-family: swiper-icons; - font-size: var(--swiper-navigation-size); - text-transform: none !important; - letter-spacing: 0; - font-variant: initial; - line-height: 1; -} -.swiper-button-prev:after, -.swiper-rtl .swiper-button-next:after { - content: 'prev'; -} -.swiper-button-next, -.swiper-rtl .swiper-button-prev { - right: var(--swiper-navigation-sides-offset, 10px); - left: auto; -} -.swiper-button-next:after, -.swiper-rtl .swiper-button-prev:after { - content: 'next'; -} -/* Navigation font end */ diff --git a/build/assets/js/vendor/swiper/modules/navigation.less b/build/assets/js/vendor/swiper/modules/navigation.less deleted file mode 100644 index 5243fe6..0000000 --- a/build/assets/js/vendor/swiper/modules/navigation.less +++ /dev/null @@ -1,86 +0,0 @@ -@import url('../swiper-vars.less'); - -:root { - --swiper-navigation-size: 44px; - /* - --swiper-navigation-top-offset: 50%; - --swiper-navigation-sides-offset: 10px; - --swiper-navigation-color: var(--swiper-theme-color); - */ -} -.swiper-button-prev, -.swiper-button-next { - position: absolute; - top: var(--swiper-navigation-top-offset, 50%); - width: calc(var(--swiper-navigation-size) / 44 * 27); - height: var(--swiper-navigation-size); - margin-top: calc(0px - (var(--swiper-navigation-size) / 2)); - z-index: 10; - cursor: pointer; - display: flex; - align-items: center; - justify-content: center; - color: var(--swiper-navigation-color, var(--swiper-theme-color)); - &.swiper-button-disabled { - opacity: 0.35; - cursor: auto; - pointer-events: none; - } - &.swiper-button-hidden { - opacity: 0; - cursor: auto; - pointer-events: none; - } - .swiper-navigation-disabled & { - display: none !important; - } - svg { - width: 100%; - height: 100%; - object-fit: contain; - transform-origin: center; - } - .swiper-rtl & svg { - transform: rotate(180deg); - } -} -.swiper-button-prev, -.swiper-rtl .swiper-button-next { - left: var(--swiper-navigation-sides-offset, 10px); - right: auto; -} -.swiper-button-next, -.swiper-rtl .swiper-button-prev { - right: var(--swiper-navigation-sides-offset, 10px); - left: auto; -} -.swiper-button-lock { - display: none; -} -/* Navigation font start */ -.swiper-button-prev, -.swiper-button-next { - &:after { - font-family: swiper-icons; - font-size: var(--swiper-navigation-size); - text-transform: none !important; - letter-spacing: 0; - font-variant: initial; - line-height: 1; - } -} -.swiper-button-prev, -.swiper-rtl .swiper-button-next { - &:after { - content: 'prev'; - } -} -.swiper-button-next, -.swiper-rtl .swiper-button-prev { - &:after { - content: 'next'; - } - right: var(--swiper-navigation-sides-offset, 10px); - left: auto; -} -/* Navigation font end */ diff --git a/build/assets/js/vendor/swiper/modules/navigation.min.css b/build/assets/js/vendor/swiper/modules/navigation.min.css deleted file mode 100644 index d93c5d8..0000000 --- a/build/assets/js/vendor/swiper/modules/navigation.min.css +++ /dev/null @@ -1 +0,0 @@ -:root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:var(--swiper-navigation-top-offset,50%);width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size)/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next.swiper-button-hidden,.swiper-button-prev.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled .swiper-button-next,.swiper-navigation-disabled .swiper-button-prev{display:none!important}.swiper-button-next svg,.swiper-button-prev svg{width:100%;height:100%;object-fit:contain;transform-origin:center}.swiper-rtl .swiper-button-next svg,.swiper-rtl .swiper-button-prev svg{transform:rotate(180deg)}.swiper-button-prev,.swiper-rtl .swiper-button-next{left:var(--swiper-navigation-sides-offset,10px);right:auto}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:var(--swiper-navigation-sides-offset,10px);left:auto}.swiper-button-lock{display:none}.swiper-button-next:after,.swiper-button-prev:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);text-transform:none!important;letter-spacing:0;font-variant:initial;line-height:1}.swiper-button-prev:after,.swiper-rtl .swiper-button-next:after{content:'prev'}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:var(--swiper-navigation-sides-offset,10px);left:auto}.swiper-button-next:after,.swiper-rtl .swiper-button-prev:after{content:'next'} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/navigation.min.mjs b/build/assets/js/vendor/swiper/modules/navigation.min.mjs deleted file mode 100644 index 24226bd..0000000 --- a/build/assets/js/vendor/swiper/modules/navigation.min.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{c as createElementIfNotDefined}from"../shared/create-element-if-not-defined.min.mjs";function Navigation(a){let{swiper:n,extendParams:e,on:i,emit:t}=a;e({navigation:{nextEl:null,prevEl:null,hideOnClick:!1,disabledClass:"swiper-button-disabled",hiddenClass:"swiper-button-hidden",lockClass:"swiper-button-lock",navigationDisabledClass:"swiper-navigation-disabled"}}),n.navigation={nextEl:null,prevEl:null};const s=a=>(Array.isArray(a)?a:[a]).filter((a=>!!a));function l(a){let e;return a&&"string"==typeof a&&n.isElement&&(e=n.el.querySelector(a),e)?e:(a&&("string"==typeof a&&(e=[...document.querySelectorAll(a)]),n.params.uniqueNavElements&&"string"==typeof a&&e.length>1&&1===n.el.querySelectorAll(a).length&&(e=n.el.querySelector(a))),a&&!e?a:e)}function o(a,e){const i=n.params.navigation;(a=s(a)).forEach((a=>{a&&(a.classList[e?"add":"remove"](...i.disabledClass.split(" ")),"BUTTON"===a.tagName&&(a.disabled=e),n.params.watchOverflow&&n.enabled&&a.classList[n.isLocked?"add":"remove"](i.lockClass))}))}function r(){const{nextEl:a,prevEl:e}=n.navigation;if(n.params.loop)return o(e,!1),void o(a,!1);o(e,n.isBeginning&&!n.params.rewind),o(a,n.isEnd&&!n.params.rewind)}function d(a){a.preventDefault(),(!n.isBeginning||n.params.loop||n.params.rewind)&&(n.slidePrev(),t("navigationPrev"))}function c(a){a.preventDefault(),(!n.isEnd||n.params.loop||n.params.rewind)&&(n.slideNext(),t("navigationNext"))}function p(){const a=n.params.navigation;if(n.params.navigation=createElementIfNotDefined(n,n.originalParams.navigation,n.params.navigation,{nextEl:"swiper-button-next",prevEl:"swiper-button-prev"}),!a.nextEl&&!a.prevEl)return;let e=l(a.nextEl),i=l(a.prevEl);Object.assign(n.navigation,{nextEl:e,prevEl:i}),e=s(e),i=s(i);const t=(e,i)=>{e&&e.addEventListener("click","next"===i?c:d),!n.enabled&&e&&e.classList.add(...a.lockClass.split(" "))};e.forEach((a=>t(a,"next"))),i.forEach((a=>t(a,"prev")))}function v(){let{nextEl:a,prevEl:e}=n.navigation;a=s(a),e=s(e);const i=(a,e)=>{a.removeEventListener("click","next"===e?c:d),a.classList.remove(...n.params.navigation.disabledClass.split(" "))};a.forEach((a=>i(a,"next"))),e.forEach((a=>i(a,"prev")))}i("init",(()=>{!1===n.params.navigation.enabled?g():(p(),r())})),i("toEdge fromEdge lock unlock",(()=>{r()})),i("destroy",(()=>{v()})),i("enable disable",(()=>{let{nextEl:a,prevEl:e}=n.navigation;a=s(a),e=s(e),n.enabled?r():[...a,...e].filter((a=>!!a)).forEach((a=>a.classList.add(n.params.navigation.lockClass)))})),i("click",((a,e)=>{let{nextEl:i,prevEl:l}=n.navigation;i=s(i),l=s(l);const o=e.target;if(n.params.navigation.hideOnClick&&!l.includes(o)&&!i.includes(o)){if(n.pagination&&n.params.pagination&&n.params.pagination.clickable&&(n.pagination.el===o||n.pagination.el.contains(o)))return;let a;i.length?a=i[0].classList.contains(n.params.navigation.hiddenClass):l.length&&(a=l[0].classList.contains(n.params.navigation.hiddenClass)),t(!0===a?"navigationShow":"navigationHide"),[...i,...l].filter((a=>!!a)).forEach((a=>a.classList.toggle(n.params.navigation.hiddenClass)))}}));const g=()=>{n.el.classList.add(...n.params.navigation.navigationDisabledClass.split(" ")),v()};Object.assign(n.navigation,{enable:()=>{n.el.classList.remove(...n.params.navigation.navigationDisabledClass.split(" ")),p(),r()},disable:g,update:r,init:p,destroy:v})}export{Navigation as default}; -//# sourceMappingURL=navigation.min.mjs.map \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/navigation.min.mjs.map b/build/assets/js/vendor/swiper/modules/navigation.min.mjs.map deleted file mode 100644 index 5a0e37f..0000000 --- a/build/assets/js/vendor/swiper/modules/navigation.min.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"navigation.mjs.mjs","names":["createElementIfNotDefined","Navigation","_ref","swiper","extendParams","on","emit","navigation","nextEl","prevEl","hideOnClick","disabledClass","hiddenClass","lockClass","navigationDisabledClass","makeElementsArray","el","Array","isArray","filter","e","getEl","res","isElement","querySelector","document","querySelectorAll","params","uniqueNavElements","length","toggleEl","disabled","forEach","subEl","classList","split","tagName","watchOverflow","enabled","isLocked","update","loop","isBeginning","rewind","isEnd","onPrevClick","preventDefault","slidePrev","onNextClick","slideNext","init","originalParams","Object","assign","initButton","dir","addEventListener","add","destroy","destroyButton","removeEventListener","remove","disable","_s","targetEl","target","includes","pagination","clickable","contains","isHidden","toggle","enable"],"sources":["0"],"mappings":"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"} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/navigation.mjs b/build/assets/js/vendor/swiper/modules/navigation.mjs deleted file mode 100644 index 07eb863..0000000 --- a/build/assets/js/vendor/swiper/modules/navigation.mjs +++ /dev/null @@ -1,191 +0,0 @@ -import { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs'; - -function Navigation(_ref) { - let { - swiper, - extendParams, - on, - emit - } = _ref; - extendParams({ - navigation: { - nextEl: null, - prevEl: null, - hideOnClick: false, - disabledClass: 'swiper-button-disabled', - hiddenClass: 'swiper-button-hidden', - lockClass: 'swiper-button-lock', - navigationDisabledClass: 'swiper-navigation-disabled' - } - }); - swiper.navigation = { - nextEl: null, - prevEl: null - }; - const makeElementsArray = el => (Array.isArray(el) ? el : [el]).filter(e => !!e); - function getEl(el) { - let res; - if (el && typeof el === 'string' && swiper.isElement) { - res = swiper.el.querySelector(el); - if (res) return res; - } - if (el) { - if (typeof el === 'string') res = [...document.querySelectorAll(el)]; - if (swiper.params.uniqueNavElements && typeof el === 'string' && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) { - res = swiper.el.querySelector(el); - } - } - if (el && !res) return el; - // if (Array.isArray(res) && res.length === 1) res = res[0]; - return res; - } - function toggleEl(el, disabled) { - const params = swiper.params.navigation; - el = makeElementsArray(el); - el.forEach(subEl => { - if (subEl) { - subEl.classList[disabled ? 'add' : 'remove'](...params.disabledClass.split(' ')); - if (subEl.tagName === 'BUTTON') subEl.disabled = disabled; - if (swiper.params.watchOverflow && swiper.enabled) { - subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass); - } - } - }); - } - function update() { - // Update Navigation Buttons - const { - nextEl, - prevEl - } = swiper.navigation; - if (swiper.params.loop) { - toggleEl(prevEl, false); - toggleEl(nextEl, false); - return; - } - toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind); - toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind); - } - function onPrevClick(e) { - e.preventDefault(); - if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return; - swiper.slidePrev(); - emit('navigationPrev'); - } - function onNextClick(e) { - e.preventDefault(); - if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return; - swiper.slideNext(); - emit('navigationNext'); - } - function init() { - const params = swiper.params.navigation; - swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, { - nextEl: 'swiper-button-next', - prevEl: 'swiper-button-prev' - }); - if (!(params.nextEl || params.prevEl)) return; - let nextEl = getEl(params.nextEl); - let prevEl = getEl(params.prevEl); - Object.assign(swiper.navigation, { - nextEl, - prevEl - }); - nextEl = makeElementsArray(nextEl); - prevEl = makeElementsArray(prevEl); - const initButton = (el, dir) => { - if (el) { - el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick); - } - if (!swiper.enabled && el) { - el.classList.add(...params.lockClass.split(' ')); - } - }; - nextEl.forEach(el => initButton(el, 'next')); - prevEl.forEach(el => initButton(el, 'prev')); - } - function destroy() { - let { - nextEl, - prevEl - } = swiper.navigation; - nextEl = makeElementsArray(nextEl); - prevEl = makeElementsArray(prevEl); - const destroyButton = (el, dir) => { - el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick); - el.classList.remove(...swiper.params.navigation.disabledClass.split(' ')); - }; - nextEl.forEach(el => destroyButton(el, 'next')); - prevEl.forEach(el => destroyButton(el, 'prev')); - } - on('init', () => { - if (swiper.params.navigation.enabled === false) { - // eslint-disable-next-line - disable(); - } else { - init(); - update(); - } - }); - on('toEdge fromEdge lock unlock', () => { - update(); - }); - on('destroy', () => { - destroy(); - }); - on('enable disable', () => { - let { - nextEl, - prevEl - } = swiper.navigation; - nextEl = makeElementsArray(nextEl); - prevEl = makeElementsArray(prevEl); - if (swiper.enabled) { - update(); - return; - } - [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.add(swiper.params.navigation.lockClass)); - }); - on('click', (_s, e) => { - let { - nextEl, - prevEl - } = swiper.navigation; - nextEl = makeElementsArray(nextEl); - prevEl = makeElementsArray(prevEl); - const targetEl = e.target; - if (swiper.params.navigation.hideOnClick && !prevEl.includes(targetEl) && !nextEl.includes(targetEl)) { - if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return; - let isHidden; - if (nextEl.length) { - isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass); - } else if (prevEl.length) { - isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass); - } - if (isHidden === true) { - emit('navigationShow'); - } else { - emit('navigationHide'); - } - [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.toggle(swiper.params.navigation.hiddenClass)); - } - }); - const enable = () => { - swiper.el.classList.remove(...swiper.params.navigation.navigationDisabledClass.split(' ')); - init(); - update(); - }; - const disable = () => { - swiper.el.classList.add(...swiper.params.navigation.navigationDisabledClass.split(' ')); - destroy(); - }; - Object.assign(swiper.navigation, { - enable, - disable, - update, - init, - destroy - }); -} - -export { Navigation as default }; diff --git a/build/assets/js/vendor/swiper/modules/navigation.scss b/build/assets/js/vendor/swiper/modules/navigation.scss deleted file mode 100644 index 8fb729d..0000000 --- a/build/assets/js/vendor/swiper/modules/navigation.scss +++ /dev/null @@ -1,87 +0,0 @@ -@import '../swiper-vars.scss'; -@at-root { - :root { - --swiper-navigation-size: 44px; - /* - --swiper-navigation-top-offset: 50%; - --swiper-navigation-sides-offset: 10px; - --swiper-navigation-color: var(--swiper-theme-color); - */ - } -} -.swiper-button-prev, -.swiper-button-next { - position: absolute; - top: var(--swiper-navigation-top-offset, 50%); - width: calc(var(--swiper-navigation-size) / 44 * 27); - height: var(--swiper-navigation-size); - margin-top: calc(0px - (var(--swiper-navigation-size) / 2)); - z-index: 10; - cursor: pointer; - display: flex; - align-items: center; - justify-content: center; - color: var(--swiper-navigation-color, var(--swiper-theme-color)); - &.swiper-button-disabled { - opacity: 0.35; - cursor: auto; - pointer-events: none; - } - &.swiper-button-hidden { - opacity: 0; - cursor: auto; - pointer-events: none; - } - .swiper-navigation-disabled & { - display: none !important; - } - svg { - width: 100%; - height: 100%; - object-fit: contain; - transform-origin: center; - } - .swiper-rtl & svg { - transform: rotate(180deg); - } -} -.swiper-button-prev, -.swiper-rtl .swiper-button-next { - left: var(--swiper-navigation-sides-offset, 10px); - right: auto; -} -.swiper-button-next, -.swiper-rtl .swiper-button-prev { - right: var(--swiper-navigation-sides-offset, 10px); - left: auto; -} -.swiper-button-lock { - display: none; -} -/* Navigation font start */ -.swiper-button-prev, -.swiper-button-next { - &:after { - font-family: swiper-icons; - font-size: var(--swiper-navigation-size); - text-transform: none !important; - letter-spacing: 0; - font-variant: initial; - line-height: 1; - } -} -.swiper-button-prev, -.swiper-rtl .swiper-button-next { - &:after { - content: 'prev'; - } -} -.swiper-button-next, -.swiper-rtl .swiper-button-prev { - &:after { - content: 'next'; - } - right: var(--swiper-navigation-sides-offset, 10px); - left: auto; -} -/* Navigation font end */ diff --git a/build/assets/js/vendor/swiper/modules/pagination-element.css b/build/assets/js/vendor/swiper/modules/pagination-element.css deleted file mode 100644 index cae824f..0000000 --- a/build/assets/js/vendor/swiper/modules/pagination-element.css +++ /dev/null @@ -1,184 +0,0 @@ -:host { - /* - --swiper-pagination-color: var(--swiper-theme-color); - --swiper-pagination-left: auto; - --swiper-pagination-right: 8px; - --swiper-pagination-bottom: 8px; - --swiper-pagination-top: auto; - --swiper-pagination-fraction-color: inherit; - --swiper-pagination-progressbar-bg-color: rgba(0,0,0,0.25); - --swiper-pagination-progressbar-size: 4px; - --swiper-pagination-bullet-size: 8px; - --swiper-pagination-bullet-width: 8px; - --swiper-pagination-bullet-height: 8px; - --swiper-pagination-bullet-border-radius: 50%; - --swiper-pagination-bullet-inactive-color: #000; - --swiper-pagination-bullet-inactive-opacity: 0.2; - --swiper-pagination-bullet-opacity: 1; - --swiper-pagination-bullet-horizontal-gap: 4px; - --swiper-pagination-bullet-vertical-gap: 6px; - */ -} -.swiper-pagination { - position: absolute; - text-align: center; - transition: 300ms opacity; - transform: translate3d(0, 0, 0); - z-index: 10; -} -.swiper-pagination.swiper-pagination-hidden { - opacity: 0; -} -.swiper-pagination-disabled > .swiper-pagination, -.swiper-pagination.swiper-pagination-disabled { - display: none !important; -} -/* Common Styles */ -.swiper-pagination-fraction, -.swiper-pagination-custom, -.swiper-horizontal > .swiper-pagination-bullets, -.swiper-pagination-bullets.swiper-pagination-horizontal { - bottom: var(--swiper-pagination-bottom, 8px); - top: var(--swiper-pagination-top, auto); - left: 0; - width: 100%; -} -/* Bullets */ -.swiper-pagination-bullets-dynamic { - overflow: hidden; - font-size: 0; -} -.swiper-pagination-bullets-dynamic .swiper-pagination-bullet { - transform: scale(0.33); - position: relative; -} -.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active { - transform: scale(1); -} -.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main { - transform: scale(1); -} -.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev { - transform: scale(0.66); -} -.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev { - transform: scale(0.33); -} -.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next { - transform: scale(0.66); -} -.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next { - transform: scale(0.33); -} -.swiper-pagination-bullet { - width: var(--swiper-pagination-bullet-width, var(--swiper-pagination-bullet-size, 8px)); - height: var(--swiper-pagination-bullet-height, var(--swiper-pagination-bullet-size, 8px)); - display: inline-block; - border-radius: var(--swiper-pagination-bullet-border-radius, 50%); - background: var(--swiper-pagination-bullet-inactive-color, #000); - opacity: var(--swiper-pagination-bullet-inactive-opacity, 0.2); -} -button.swiper-pagination-bullet { - border: none; - margin: 0; - padding: 0; - box-shadow: none; - -webkit-appearance: none; - appearance: none; -} -.swiper-pagination-clickable .swiper-pagination-bullet { - cursor: pointer; -} -.swiper-pagination-bullet:only-child { - display: none !important; -} -.swiper-pagination-bullet-active { - opacity: var(--swiper-pagination-bullet-opacity, 1); - background: var(--swiper-pagination-color, var(--swiper-theme-color)); -} -.swiper-vertical > .swiper-pagination-bullets, -.swiper-pagination-vertical.swiper-pagination-bullets { - right: var(--swiper-pagination-right, 8px); - left: var(--swiper-pagination-left, auto); - top: 50%; - transform: translate3d(0px, -50%, 0); -} -.swiper-vertical > .swiper-pagination-bullets .swiper-pagination-bullet, -.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet { - margin: var(--swiper-pagination-bullet-vertical-gap, 6px) 0; - display: block; -} -.swiper-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic, -.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic { - top: 50%; - transform: translateY(-50%); - width: 8px; -} -.swiper-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet, -.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet { - display: inline-block; - transition: 200ms transform, - 200ms top; -} -.swiper-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet, -.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet { - margin: 0 var(--swiper-pagination-bullet-horizontal-gap, 4px); -} -.swiper-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic, -.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic { - left: 50%; - transform: translateX(-50%); - white-space: nowrap; -} -.swiper-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet, -.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet { - transition: 200ms transform, - 200ms left; -} -.swiper-horizontal.swiper-rtl > .swiper-pagination-bullets-dynamic .swiper-pagination-bullet { - transition: 200ms transform, - 200ms right; -} -/* Fraction */ -.swiper-pagination-fraction { - color: var(--swiper-pagination-fraction-color, inherit); -} -/* Progress */ -.swiper-pagination-progressbar { - background: var(--swiper-pagination-progressbar-bg-color, rgba(0, 0, 0, 0.25)); - position: absolute; -} -.swiper-pagination-progressbar .swiper-pagination-progressbar-fill { - background: var(--swiper-pagination-color, var(--swiper-theme-color)); - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - transform: scale(0); - transform-origin: left top; -} -.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill { - transform-origin: right top; -} -.swiper-horizontal > .swiper-pagination-progressbar, -.swiper-pagination-progressbar.swiper-pagination-horizontal, -.swiper-vertical > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite, -.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite { - width: 100%; - height: var(--swiper-pagination-progressbar-size, 4px); - left: 0; - top: 0; -} -.swiper-vertical > .swiper-pagination-progressbar, -.swiper-pagination-progressbar.swiper-pagination-vertical, -.swiper-horizontal > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite, -.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite { - width: var(--swiper-pagination-progressbar-size, 4px); - height: 100%; - left: 0; - top: 0; -} -.swiper-pagination-lock { - display: none; -} diff --git a/build/assets/js/vendor/swiper/modules/pagination-element.min.css b/build/assets/js/vendor/swiper/modules/pagination-element.min.css deleted file mode 100644 index 398a345..0000000 --- a/build/assets/js/vendor/swiper/modules/pagination-element.min.css +++ /dev/null @@ -1 +0,0 @@ -.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:var(--swiper-pagination-bottom,8px);top:var(--swiper-pagination-top,auto);left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));display:inline-block;border-radius:var(--swiper-pagination-bullet-border-radius,50%);background:var(--swiper-pagination-bullet-inactive-color,#000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{right:var(--swiper-pagination-right,8px);left:var(--swiper-pagination-left,auto);top:50%;transform:translate3d(0px,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0;display:block}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color,inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color,rgba(0,0,0,.25));position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:var(--swiper-pagination-progressbar-size,4px);left:0;top:0}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{width:var(--swiper-pagination-progressbar-size,4px);height:100%;left:0;top:0}.swiper-pagination-lock{display:none} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/pagination.css b/build/assets/js/vendor/swiper/modules/pagination.css deleted file mode 100644 index 20bda39..0000000 --- a/build/assets/js/vendor/swiper/modules/pagination.css +++ /dev/null @@ -1,184 +0,0 @@ -:root { - /* - --swiper-pagination-color: var(--swiper-theme-color); - --swiper-pagination-left: auto; - --swiper-pagination-right: 8px; - --swiper-pagination-bottom: 8px; - --swiper-pagination-top: auto; - --swiper-pagination-fraction-color: inherit; - --swiper-pagination-progressbar-bg-color: rgba(0,0,0,0.25); - --swiper-pagination-progressbar-size: 4px; - --swiper-pagination-bullet-size: 8px; - --swiper-pagination-bullet-width: 8px; - --swiper-pagination-bullet-height: 8px; - --swiper-pagination-bullet-border-radius: 50%; - --swiper-pagination-bullet-inactive-color: #000; - --swiper-pagination-bullet-inactive-opacity: 0.2; - --swiper-pagination-bullet-opacity: 1; - --swiper-pagination-bullet-horizontal-gap: 4px; - --swiper-pagination-bullet-vertical-gap: 6px; - */ -} -.swiper-pagination { - position: absolute; - text-align: center; - transition: 300ms opacity; - transform: translate3d(0, 0, 0); - z-index: 10; -} -.swiper-pagination.swiper-pagination-hidden { - opacity: 0; -} -.swiper-pagination-disabled > .swiper-pagination, -.swiper-pagination.swiper-pagination-disabled { - display: none !important; -} -/* Common Styles */ -.swiper-pagination-fraction, -.swiper-pagination-custom, -.swiper-horizontal > .swiper-pagination-bullets, -.swiper-pagination-bullets.swiper-pagination-horizontal { - bottom: var(--swiper-pagination-bottom, 8px); - top: var(--swiper-pagination-top, auto); - left: 0; - width: 100%; -} -/* Bullets */ -.swiper-pagination-bullets-dynamic { - overflow: hidden; - font-size: 0; -} -.swiper-pagination-bullets-dynamic .swiper-pagination-bullet { - transform: scale(0.33); - position: relative; -} -.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active { - transform: scale(1); -} -.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main { - transform: scale(1); -} -.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev { - transform: scale(0.66); -} -.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev { - transform: scale(0.33); -} -.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next { - transform: scale(0.66); -} -.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next { - transform: scale(0.33); -} -.swiper-pagination-bullet { - width: var(--swiper-pagination-bullet-width, var(--swiper-pagination-bullet-size, 8px)); - height: var(--swiper-pagination-bullet-height, var(--swiper-pagination-bullet-size, 8px)); - display: inline-block; - border-radius: var(--swiper-pagination-bullet-border-radius, 50%); - background: var(--swiper-pagination-bullet-inactive-color, #000); - opacity: var(--swiper-pagination-bullet-inactive-opacity, 0.2); -} -button.swiper-pagination-bullet { - border: none; - margin: 0; - padding: 0; - box-shadow: none; - -webkit-appearance: none; - appearance: none; -} -.swiper-pagination-clickable .swiper-pagination-bullet { - cursor: pointer; -} -.swiper-pagination-bullet:only-child { - display: none !important; -} -.swiper-pagination-bullet-active { - opacity: var(--swiper-pagination-bullet-opacity, 1); - background: var(--swiper-pagination-color, var(--swiper-theme-color)); -} -.swiper-vertical > .swiper-pagination-bullets, -.swiper-pagination-vertical.swiper-pagination-bullets { - right: var(--swiper-pagination-right, 8px); - left: var(--swiper-pagination-left, auto); - top: 50%; - transform: translate3d(0px, -50%, 0); -} -.swiper-vertical > .swiper-pagination-bullets .swiper-pagination-bullet, -.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet { - margin: var(--swiper-pagination-bullet-vertical-gap, 6px) 0; - display: block; -} -.swiper-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic, -.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic { - top: 50%; - transform: translateY(-50%); - width: 8px; -} -.swiper-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet, -.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet { - display: inline-block; - transition: 200ms transform, - 200ms top; -} -.swiper-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet, -.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet { - margin: 0 var(--swiper-pagination-bullet-horizontal-gap, 4px); -} -.swiper-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic, -.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic { - left: 50%; - transform: translateX(-50%); - white-space: nowrap; -} -.swiper-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet, -.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet { - transition: 200ms transform, - 200ms left; -} -.swiper-horizontal.swiper-rtl > .swiper-pagination-bullets-dynamic .swiper-pagination-bullet { - transition: 200ms transform, - 200ms right; -} -/* Fraction */ -.swiper-pagination-fraction { - color: var(--swiper-pagination-fraction-color, inherit); -} -/* Progress */ -.swiper-pagination-progressbar { - background: var(--swiper-pagination-progressbar-bg-color, rgba(0, 0, 0, 0.25)); - position: absolute; -} -.swiper-pagination-progressbar .swiper-pagination-progressbar-fill { - background: var(--swiper-pagination-color, var(--swiper-theme-color)); - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - transform: scale(0); - transform-origin: left top; -} -.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill { - transform-origin: right top; -} -.swiper-horizontal > .swiper-pagination-progressbar, -.swiper-pagination-progressbar.swiper-pagination-horizontal, -.swiper-vertical > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite, -.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite { - width: 100%; - height: var(--swiper-pagination-progressbar-size, 4px); - left: 0; - top: 0; -} -.swiper-vertical > .swiper-pagination-progressbar, -.swiper-pagination-progressbar.swiper-pagination-vertical, -.swiper-horizontal > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite, -.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite { - width: var(--swiper-pagination-progressbar-size, 4px); - height: 100%; - left: 0; - top: 0; -} -.swiper-pagination-lock { - display: none; -} diff --git a/build/assets/js/vendor/swiper/modules/pagination.less b/build/assets/js/vendor/swiper/modules/pagination.less deleted file mode 100644 index 202e40c..0000000 --- a/build/assets/js/vendor/swiper/modules/pagination.less +++ /dev/null @@ -1,187 +0,0 @@ -@import url('../swiper-vars.less'); - -:root { - /* - --swiper-pagination-color: var(--swiper-theme-color); - --swiper-pagination-left: auto; - --swiper-pagination-right: 8px; - --swiper-pagination-bottom: 8px; - --swiper-pagination-top: auto; - --swiper-pagination-fraction-color: inherit; - --swiper-pagination-progressbar-bg-color: rgba(0,0,0,0.25); - --swiper-pagination-progressbar-size: 4px; - --swiper-pagination-bullet-size: 8px; - --swiper-pagination-bullet-width: 8px; - --swiper-pagination-bullet-height: 8px; - --swiper-pagination-bullet-border-radius: 50%; - --swiper-pagination-bullet-inactive-color: #000; - --swiper-pagination-bullet-inactive-opacity: 0.2; - --swiper-pagination-bullet-opacity: 1; - --swiper-pagination-bullet-horizontal-gap: 4px; - --swiper-pagination-bullet-vertical-gap: 6px; - */ -} -.swiper-pagination { - position: absolute; - text-align: center; - transition: 300ms opacity; - transform: translate3d(0, 0, 0); - z-index: 10; - &.swiper-pagination-hidden { - opacity: 0; - } - .swiper-pagination-disabled > &, - &.swiper-pagination-disabled { - display: none !important; - } -} -/* Common Styles */ -.swiper-pagination-fraction, -.swiper-pagination-custom, -.swiper-horizontal > .swiper-pagination-bullets, -.swiper-pagination-bullets.swiper-pagination-horizontal { - bottom: var(--swiper-pagination-bottom, 8px); - top: var(--swiper-pagination-top, auto); - left: 0; - width: 100%; -} -/* Bullets */ -.swiper-pagination-bullets-dynamic { - overflow: hidden; - font-size: 0; - .swiper-pagination-bullet { - transform: scale(0.33); - position: relative; - } - .swiper-pagination-bullet-active { - transform: scale(1); - } - .swiper-pagination-bullet-active-main { - transform: scale(1); - } - .swiper-pagination-bullet-active-prev { - transform: scale(0.66); - } - .swiper-pagination-bullet-active-prev-prev { - transform: scale(0.33); - } - .swiper-pagination-bullet-active-next { - transform: scale(0.66); - } - .swiper-pagination-bullet-active-next-next { - transform: scale(0.33); - } -} -.swiper-pagination-bullet { - width: var(--swiper-pagination-bullet-width, var(--swiper-pagination-bullet-size, 8px)); - height: var(--swiper-pagination-bullet-height, var(--swiper-pagination-bullet-size, 8px)); - display: inline-block; - border-radius: var(--swiper-pagination-bullet-border-radius, 50%); - background: var(--swiper-pagination-bullet-inactive-color, #000); - opacity: var(--swiper-pagination-bullet-inactive-opacity, 0.2); - button& { - border: none; - margin: 0; - padding: 0; - box-shadow: none; - appearance: none; - } - .swiper-pagination-clickable & { - cursor: pointer; - } - - &:only-child { - display: none !important; - } -} -.swiper-pagination-bullet-active { - opacity: var(--swiper-pagination-bullet-opacity, 1); - background: var(--swiper-pagination-color, var(--swiper-theme-color)); -} - -.swiper-vertical > .swiper-pagination-bullets, -.swiper-pagination-vertical.swiper-pagination-bullets { - right: var(--swiper-pagination-right, 8px); - left: var(--swiper-pagination-left, auto); - top: 50%; - transform: translate3d(0px, -50%, 0); - .swiper-pagination-bullet { - margin: var(--swiper-pagination-bullet-vertical-gap, 6px) 0; - display: block; - } - &.swiper-pagination-bullets-dynamic { - top: 50%; - transform: translateY(-50%); - width: 8px; - .swiper-pagination-bullet { - display: inline-block; - transition: - 200ms transform, - 200ms top; - } - } -} -.swiper-horizontal > .swiper-pagination-bullets, -.swiper-pagination-horizontal.swiper-pagination-bullets { - .swiper-pagination-bullet { - margin: 0 var(--swiper-pagination-bullet-horizontal-gap, 4px); - } - &.swiper-pagination-bullets-dynamic { - left: 50%; - transform: translateX(-50%); - white-space: nowrap; - .swiper-pagination-bullet { - transition: - 200ms transform, - 200ms left; - } - } -} -.swiper-horizontal.swiper-rtl > .swiper-pagination-bullets-dynamic .swiper-pagination-bullet { - transition: - 200ms transform, - 200ms right; -} -/* Fraction */ -.swiper-pagination-fraction { - color: var(--swiper-pagination-fraction-color, inherit); -} -/* Progress */ -.swiper-pagination-progressbar { - background: var(--swiper-pagination-progressbar-bg-color, rgba(0, 0, 0, 0.25)); - position: absolute; - .swiper-pagination-progressbar-fill { - background: var(--swiper-pagination-color, var(--swiper-theme-color)); - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - transform: scale(0); - transform-origin: left top; - } - .swiper-rtl & .swiper-pagination-progressbar-fill { - transform-origin: right top; - } - .swiper-horizontal > &, - &.swiper-pagination-horizontal, - .swiper-vertical > &.swiper-pagination-progressbar-opposite, - &.swiper-pagination-vertical.swiper-pagination-progressbar-opposite { - width: 100%; - height: var(--swiper-pagination-progressbar-size, 4px); - left: 0; - top: 0; - } - .swiper-vertical > &, - &.swiper-pagination-vertical, - .swiper-horizontal > &.swiper-pagination-progressbar-opposite, - &.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite { - width: var(--swiper-pagination-progressbar-size, 4px); - height: 100%; - left: 0; - top: 0; - } -} -.swiper-pagination-lock { - display: none; -} diff --git a/build/assets/js/vendor/swiper/modules/pagination.min.css b/build/assets/js/vendor/swiper/modules/pagination.min.css deleted file mode 100644 index 398a345..0000000 --- a/build/assets/js/vendor/swiper/modules/pagination.min.css +++ /dev/null @@ -1 +0,0 @@ -.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:var(--swiper-pagination-bottom,8px);top:var(--swiper-pagination-top,auto);left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));display:inline-block;border-radius:var(--swiper-pagination-bullet-border-radius,50%);background:var(--swiper-pagination-bullet-inactive-color,#000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{right:var(--swiper-pagination-right,8px);left:var(--swiper-pagination-left,auto);top:50%;transform:translate3d(0px,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0;display:block}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color,inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color,rgba(0,0,0,.25));position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:var(--swiper-pagination-progressbar-size,4px);left:0;top:0}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{width:var(--swiper-pagination-progressbar-size,4px);height:100%;left:0;top:0}.swiper-pagination-lock{display:none} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/pagination.min.mjs b/build/assets/js/vendor/swiper/modules/pagination.min.mjs deleted file mode 100644 index d0c1ac1..0000000 --- a/build/assets/js/vendor/swiper/modules/pagination.min.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{c as classesToSelector}from"../shared/classes-to-selector.min.mjs";import{c as createElementIfNotDefined}from"../shared/create-element-if-not-defined.min.mjs";import{f as elementOuterSize,g as elementIndex,a as elementParents}from"../shared/utils.min.mjs";function Pagination(a){let{swiper:e,extendParams:s,on:l,emit:t}=a;const i="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:a=>a,formatFractionTotal:a=>a,bulletClass:`${i}-bullet`,bulletActiveClass:`${i}-bullet-active`,modifierClass:`${i}-`,currentClass:`${i}-current`,totalClass:`${i}-total`,hiddenClass:`${i}-hidden`,progressbarFillClass:`${i}-progressbar-fill`,progressbarOppositeClass:`${i}-progressbar-opposite`,clickableClass:`${i}-clickable`,lockClass:`${i}-lock`,horizontalClass:`${i}-horizontal`,verticalClass:`${i}-vertical`,paginationDisabledClass:`${i}-disabled`}}),e.pagination={el:null,bullets:[]};let r=0;const o=a=>(Array.isArray(a)?a:[a]).filter((a=>!!a));function p(){return!e.params.pagination.el||!e.pagination.el||Array.isArray(e.pagination.el)&&0===e.pagination.el.length}function c(a,s){const{bulletActiveClass:l}=e.params.pagination;a&&(a=a[("prev"===s?"previous":"next")+"ElementSibling"])&&(a.classList.add(`${l}-${s}`),(a=a[("prev"===s?"previous":"next")+"ElementSibling"])&&a.classList.add(`${l}-${s}-${s}`))}function d(a){const s=a.target.closest(classesToSelector(e.params.pagination.bulletClass));if(!s)return;a.preventDefault();const l=elementIndex(s)*e.params.slidesPerGroup;if(e.params.loop){if(e.realIndex===l)return;e.slideToLoop(l)}else e.slideTo(l)}function u(){const a=e.rtl,s=e.params.pagination;if(p())return;let l,i,d=e.pagination.el;d=o(d);const u=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:e.slides.length,m=e.params.loop?Math.ceil(u/e.params.slidesPerGroup):e.snapGrid.length;if(e.params.loop?(i=e.previousRealIndex||0,l=e.params.slidesPerGroup>1?Math.floor(e.realIndex/e.params.slidesPerGroup):e.realIndex):void 0!==e.snapIndex?(l=e.snapIndex,i=e.previousSnapIndex):(i=e.previousIndex||0,l=e.activeIndex||0),"bullets"===s.type&&e.pagination.bullets&&e.pagination.bullets.length>0){const t=e.pagination.bullets;let o,p,u;if(s.dynamicBullets&&(n=elementOuterSize(t[0],e.isHorizontal()?"width":"height",!0),d.forEach((a=>{a.style[e.isHorizontal()?"width":"height"]=n*(s.dynamicMainBullets+4)+"px"})),s.dynamicMainBullets>1&&void 0!==i&&(r+=l-(i||0),r>s.dynamicMainBullets-1?r=s.dynamicMainBullets-1:r<0&&(r=0)),o=Math.max(l-r,0),p=o+(Math.min(t.length,s.dynamicMainBullets)-1),u=(p+o)/2),t.forEach((a=>{const e=[...["","-next","-next-next","-prev","-prev-prev","-main"].map((a=>`${s.bulletActiveClass}${a}`))].map((a=>"string"==typeof a&&a.includes(" ")?a.split(" "):a)).flat();a.classList.remove(...e)})),d.length>1)t.forEach((a=>{const t=elementIndex(a);t===l?a.classList.add(...s.bulletActiveClass.split(" ")):e.isElement&&a.setAttribute("part","bullet"),s.dynamicBullets&&(t>=o&&t<=p&&a.classList.add(...`${s.bulletActiveClass}-main`.split(" ")),t===o&&c(a,"prev"),t===p&&c(a,"next"))}));else{const a=t[l];if(a&&a.classList.add(...s.bulletActiveClass.split(" ")),e.isElement&&t.forEach(((a,e)=>{a.setAttribute("part",e===l?"bullet-active":"bullet")})),s.dynamicBullets){const a=t[o],e=t[p];for(let a=o;a<=p;a+=1)t[a]&&t[a].classList.add(...`${s.bulletActiveClass}-main`.split(" "));c(a,"prev"),c(e,"next")}}if(s.dynamicBullets){const l=Math.min(t.length,s.dynamicMainBullets+4),i=(n*l-n)/2-u*n,r=a?"right":"left";t.forEach((a=>{a.style[e.isHorizontal()?r:"top"]=`${i}px`}))}}d.forEach(((a,i)=>{if("fraction"===s.type&&(a.querySelectorAll(classesToSelector(s.currentClass)).forEach((a=>{a.textContent=s.formatFractionCurrent(l+1)})),a.querySelectorAll(classesToSelector(s.totalClass)).forEach((a=>{a.textContent=s.formatFractionTotal(m)}))),"progressbar"===s.type){let t;t=s.progressbarOpposite?e.isHorizontal()?"vertical":"horizontal":e.isHorizontal()?"horizontal":"vertical";const i=(l+1)/m;let n=1,r=1;"horizontal"===t?n=i:r=i,a.querySelectorAll(classesToSelector(s.progressbarFillClass)).forEach((a=>{a.style.transform=`translate3d(0,0,0) scaleX(${n}) scaleY(${r})`,a.style.transitionDuration=`${e.params.speed}ms`}))}"custom"===s.type&&s.renderCustom?(a.innerHTML=s.renderCustom(e,l+1,m),0===i&&t("paginationRender",a)):(0===i&&t("paginationRender",a),t("paginationUpdate",a)),e.params.watchOverflow&&e.enabled&&a.classList[e.isLocked?"add":"remove"](s.lockClass)}))}function m(){const a=e.params.pagination;if(p())return;const s=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:e.grid&&e.params.grid.rows>1?e.slides.length/Math.ceil(e.params.grid.rows):e.slides.length;let l=e.pagination.el;l=o(l);let i="";if("bullets"===a.type){let l=e.params.loop?Math.ceil(s/e.params.slidesPerGroup):e.snapGrid.length;e.params.freeMode&&e.params.freeMode.enabled&&l>s&&(l=s);for(let s=0;s`}"fraction"===a.type&&(i=a.renderFraction?a.renderFraction.call(e,a.currentClass,a.totalClass):` / `),"progressbar"===a.type&&(i=a.renderProgressbar?a.renderProgressbar.call(e,a.progressbarFillClass):``),e.pagination.bullets=[],l.forEach((s=>{"custom"!==a.type&&(s.innerHTML=i||""),"bullets"===a.type&&e.pagination.bullets.push(...s.querySelectorAll(classesToSelector(a.bulletClass)))})),"custom"!==a.type&&t("paginationRender",l[0])}function g(){e.params.pagination=createElementIfNotDefined(e,e.originalParams.pagination,e.params.pagination,{el:"swiper-pagination"});const a=e.params.pagination;if(!a.el)return;let s;"string"==typeof a.el&&e.isElement&&(s=e.el.querySelector(a.el)),s||"string"!=typeof a.el||(s=[...document.querySelectorAll(a.el)]),s||(s=a.el),s&&0!==s.length&&(e.params.uniqueNavElements&&"string"==typeof a.el&&Array.isArray(s)&&s.length>1&&(s=[...e.el.querySelectorAll(a.el)],s.length>1&&(s=s.filter((a=>elementParents(a,".swiper")[0]===e.el))[0])),Array.isArray(s)&&1===s.length&&(s=s[0]),Object.assign(e.pagination,{el:s}),s=o(s),s.forEach((s=>{"bullets"===a.type&&a.clickable&&s.classList.add(...(a.clickableClass||"").split(" ")),s.classList.add(a.modifierClass+a.type),s.classList.add(e.isHorizontal()?a.horizontalClass:a.verticalClass),"bullets"===a.type&&a.dynamicBullets&&(s.classList.add(`${a.modifierClass}${a.type}-dynamic`),r=0,a.dynamicMainBullets<1&&(a.dynamicMainBullets=1)),"progressbar"===a.type&&a.progressbarOpposite&&s.classList.add(a.progressbarOppositeClass),a.clickable&&s.addEventListener("click",d),e.enabled||s.classList.add(a.lockClass)})))}function b(){const a=e.params.pagination;if(p())return;let s=e.pagination.el;s&&(s=o(s),s.forEach((s=>{s.classList.remove(a.hiddenClass),s.classList.remove(a.modifierClass+a.type),s.classList.remove(e.isHorizontal()?a.horizontalClass:a.verticalClass),a.clickable&&(s.classList.remove(...(a.clickableClass||"").split(" ")),s.removeEventListener("click",d))}))),e.pagination.bullets&&e.pagination.bullets.forEach((e=>e.classList.remove(...a.bulletActiveClass.split(" "))))}l("changeDirection",(()=>{if(!e.pagination||!e.pagination.el)return;const a=e.params.pagination;let{el:s}=e.pagination;s=o(s),s.forEach((s=>{s.classList.remove(a.horizontalClass,a.verticalClass),s.classList.add(e.isHorizontal()?a.horizontalClass:a.verticalClass)}))})),l("init",(()=>{!1===e.params.pagination.enabled?f():(g(),m(),u())})),l("activeIndexChange",(()=>{void 0===e.snapIndex&&u()})),l("snapIndexChange",(()=>{u()})),l("snapGridLengthChange",(()=>{m(),u()})),l("destroy",(()=>{b()})),l("enable disable",(()=>{let{el:a}=e.pagination;a&&(a=o(a),a.forEach((a=>a.classList[e.enabled?"remove":"add"](e.params.pagination.lockClass))))})),l("lock unlock",(()=>{u()})),l("click",((a,s)=>{const l=s.target,i=o(e.pagination.el);if(e.params.pagination.el&&e.params.pagination.hideOnClick&&i&&i.length>0&&!l.classList.contains(e.params.pagination.bulletClass)){if(e.navigation&&(e.navigation.nextEl&&l===e.navigation.nextEl||e.navigation.prevEl&&l===e.navigation.prevEl))return;const a=i[0].classList.contains(e.params.pagination.hiddenClass);t(!0===a?"paginationShow":"paginationHide"),i.forEach((a=>a.classList.toggle(e.params.pagination.hiddenClass)))}}));const f=()=>{e.el.classList.add(e.params.pagination.paginationDisabledClass);let{el:a}=e.pagination;a&&(a=o(a),a.forEach((a=>a.classList.add(e.params.pagination.paginationDisabledClass)))),b()};Object.assign(e.pagination,{enable:()=>{e.el.classList.remove(e.params.pagination.paginationDisabledClass);let{el:a}=e.pagination;a&&(a=o(a),a.forEach((a=>a.classList.remove(e.params.pagination.paginationDisabledClass)))),g(),m(),u()},disable:f,render:m,update:u,init:g,destroy:b})}export{Pagination as default}; -//# sourceMappingURL=pagination.min.mjs.map \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/pagination.min.mjs.map b/build/assets/js/vendor/swiper/modules/pagination.min.mjs.map deleted file mode 100644 index 121feda..0000000 --- a/build/assets/js/vendor/swiper/modules/pagination.min.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"pagination.mjs.mjs","names":["classesToSelector","createElementIfNotDefined","elementOuterSize","elementIndex","elementParents","Pagination","_ref","swiper","extendParams","on","emit","pfx","bulletSize","pagination","el","bulletElement","clickable","hideOnClick","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","type","dynamicBullets","dynamicMainBullets","formatFractionCurrent","number","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","hiddenClass","progressbarFillClass","progressbarOppositeClass","clickableClass","lockClass","horizontalClass","verticalClass","paginationDisabledClass","bullets","dynamicBulletIndex","makeElementsArray","Array","isArray","filter","e","isPaginationDisabled","params","length","setSideBullets","bulletEl","position","classList","add","onBulletClick","target","closest","preventDefault","index","slidesPerGroup","loop","realIndex","slideToLoop","slideTo","update","rtl","current","previousIndex","slidesLength","virtual","enabled","slides","total","Math","ceil","snapGrid","previousRealIndex","floor","snapIndex","previousSnapIndex","activeIndex","firstIndex","lastIndex","midIndex","isHorizontal","forEach","subEl","style","undefined","max","min","classesToRemove","map","suffix","s","includes","split","flat","remove","bullet","bulletIndex","isElement","setAttribute","firstDisplayedBullet","lastDisplayedBullet","i","dynamicBulletsLength","bulletsOffset","offsetProp","subElIndex","querySelectorAll","fractionEl","textContent","totalEl","progressbarDirection","scale","scaleX","scaleY","progressEl","transform","transitionDuration","speed","innerHTML","watchOverflow","isLocked","render","grid","rows","paginationHTML","numberOfBullets","freeMode","call","push","init","originalParams","querySelector","document","uniqueNavElements","Object","assign","addEventListener","destroy","removeEventListener","disable","_s","targetEl","contains","navigation","nextEl","prevEl","isHidden","toggle","enable"],"sources":["0"],"mappings":"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"} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/pagination.mjs b/build/assets/js/vendor/swiper/modules/pagination.mjs deleted file mode 100644 index 6d91ae0..0000000 --- a/build/assets/js/vendor/swiper/modules/pagination.mjs +++ /dev/null @@ -1,444 +0,0 @@ -import { c as classesToSelector } from '../shared/classes-to-selector.mjs'; -import { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs'; -import { f as elementOuterSize, g as elementIndex, a as elementParents } from '../shared/utils.mjs'; - -function Pagination(_ref) { - let { - swiper, - extendParams, - on, - emit - } = _ref; - const pfx = 'swiper-pagination'; - extendParams({ - pagination: { - el: null, - bulletElement: 'span', - clickable: false, - hideOnClick: false, - renderBullet: null, - renderProgressbar: null, - renderFraction: null, - renderCustom: null, - progressbarOpposite: false, - type: 'bullets', - // 'bullets' or 'progressbar' or 'fraction' or 'custom' - dynamicBullets: false, - dynamicMainBullets: 1, - formatFractionCurrent: number => number, - formatFractionTotal: number => number, - bulletClass: `${pfx}-bullet`, - bulletActiveClass: `${pfx}-bullet-active`, - modifierClass: `${pfx}-`, - currentClass: `${pfx}-current`, - totalClass: `${pfx}-total`, - hiddenClass: `${pfx}-hidden`, - progressbarFillClass: `${pfx}-progressbar-fill`, - progressbarOppositeClass: `${pfx}-progressbar-opposite`, - clickableClass: `${pfx}-clickable`, - lockClass: `${pfx}-lock`, - horizontalClass: `${pfx}-horizontal`, - verticalClass: `${pfx}-vertical`, - paginationDisabledClass: `${pfx}-disabled` - } - }); - swiper.pagination = { - el: null, - bullets: [] - }; - let bulletSize; - let dynamicBulletIndex = 0; - const makeElementsArray = el => (Array.isArray(el) ? el : [el]).filter(e => !!e); - function isPaginationDisabled() { - return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0; - } - function setSideBullets(bulletEl, position) { - const { - bulletActiveClass - } = swiper.params.pagination; - if (!bulletEl) return; - bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`]; - if (bulletEl) { - bulletEl.classList.add(`${bulletActiveClass}-${position}`); - bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`]; - if (bulletEl) { - bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`); - } - } - } - function onBulletClick(e) { - const bulletEl = e.target.closest(classesToSelector(swiper.params.pagination.bulletClass)); - if (!bulletEl) { - return; - } - e.preventDefault(); - const index = elementIndex(bulletEl) * swiper.params.slidesPerGroup; - if (swiper.params.loop) { - if (swiper.realIndex === index) return; - swiper.slideToLoop(index); - } else { - swiper.slideTo(index); - } - } - function update() { - // Render || Update Pagination bullets/items - const rtl = swiper.rtl; - const params = swiper.params.pagination; - if (isPaginationDisabled()) return; - let el = swiper.pagination.el; - el = makeElementsArray(el); - // Current/Total - let current; - let previousIndex; - const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length; - const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length; - if (swiper.params.loop) { - previousIndex = swiper.previousRealIndex || 0; - current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex; - } else if (typeof swiper.snapIndex !== 'undefined') { - current = swiper.snapIndex; - previousIndex = swiper.previousSnapIndex; - } else { - previousIndex = swiper.previousIndex || 0; - current = swiper.activeIndex || 0; - } - // Types - if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) { - const bullets = swiper.pagination.bullets; - let firstIndex; - let lastIndex; - let midIndex; - if (params.dynamicBullets) { - bulletSize = elementOuterSize(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true); - el.forEach(subEl => { - subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`; - }); - if (params.dynamicMainBullets > 1 && previousIndex !== undefined) { - dynamicBulletIndex += current - (previousIndex || 0); - if (dynamicBulletIndex > params.dynamicMainBullets - 1) { - dynamicBulletIndex = params.dynamicMainBullets - 1; - } else if (dynamicBulletIndex < 0) { - dynamicBulletIndex = 0; - } - } - firstIndex = Math.max(current - dynamicBulletIndex, 0); - lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1); - midIndex = (lastIndex + firstIndex) / 2; - } - bullets.forEach(bulletEl => { - const classesToRemove = [...['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`)].map(s => typeof s === 'string' && s.includes(' ') ? s.split(' ') : s).flat(); - bulletEl.classList.remove(...classesToRemove); - }); - if (el.length > 1) { - bullets.forEach(bullet => { - const bulletIndex = elementIndex(bullet); - if (bulletIndex === current) { - bullet.classList.add(...params.bulletActiveClass.split(' ')); - } else if (swiper.isElement) { - bullet.setAttribute('part', 'bullet'); - } - if (params.dynamicBullets) { - if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) { - bullet.classList.add(...`${params.bulletActiveClass}-main`.split(' ')); - } - if (bulletIndex === firstIndex) { - setSideBullets(bullet, 'prev'); - } - if (bulletIndex === lastIndex) { - setSideBullets(bullet, 'next'); - } - } - }); - } else { - const bullet = bullets[current]; - if (bullet) { - bullet.classList.add(...params.bulletActiveClass.split(' ')); - } - if (swiper.isElement) { - bullets.forEach((bulletEl, bulletIndex) => { - bulletEl.setAttribute('part', bulletIndex === current ? 'bullet-active' : 'bullet'); - }); - } - if (params.dynamicBullets) { - const firstDisplayedBullet = bullets[firstIndex]; - const lastDisplayedBullet = bullets[lastIndex]; - for (let i = firstIndex; i <= lastIndex; i += 1) { - if (bullets[i]) { - bullets[i].classList.add(...`${params.bulletActiveClass}-main`.split(' ')); - } - } - setSideBullets(firstDisplayedBullet, 'prev'); - setSideBullets(lastDisplayedBullet, 'next'); - } - } - if (params.dynamicBullets) { - const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4); - const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize; - const offsetProp = rtl ? 'right' : 'left'; - bullets.forEach(bullet => { - bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`; - }); - } - } - el.forEach((subEl, subElIndex) => { - if (params.type === 'fraction') { - subEl.querySelectorAll(classesToSelector(params.currentClass)).forEach(fractionEl => { - fractionEl.textContent = params.formatFractionCurrent(current + 1); - }); - subEl.querySelectorAll(classesToSelector(params.totalClass)).forEach(totalEl => { - totalEl.textContent = params.formatFractionTotal(total); - }); - } - if (params.type === 'progressbar') { - let progressbarDirection; - if (params.progressbarOpposite) { - progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal'; - } else { - progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical'; - } - const scale = (current + 1) / total; - let scaleX = 1; - let scaleY = 1; - if (progressbarDirection === 'horizontal') { - scaleX = scale; - } else { - scaleY = scale; - } - subEl.querySelectorAll(classesToSelector(params.progressbarFillClass)).forEach(progressEl => { - progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`; - progressEl.style.transitionDuration = `${swiper.params.speed}ms`; - }); - } - if (params.type === 'custom' && params.renderCustom) { - subEl.innerHTML = params.renderCustom(swiper, current + 1, total); - if (subElIndex === 0) emit('paginationRender', subEl); - } else { - if (subElIndex === 0) emit('paginationRender', subEl); - emit('paginationUpdate', subEl); - } - if (swiper.params.watchOverflow && swiper.enabled) { - subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass); - } - }); - } - function render() { - // Render Container - const params = swiper.params.pagination; - if (isPaginationDisabled()) return; - const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.grid && swiper.params.grid.rows > 1 ? swiper.slides.length / Math.ceil(swiper.params.grid.rows) : swiper.slides.length; - let el = swiper.pagination.el; - el = makeElementsArray(el); - let paginationHTML = ''; - if (params.type === 'bullets') { - let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length; - if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) { - numberOfBullets = slidesLength; - } - for (let i = 0; i < numberOfBullets; i += 1) { - if (params.renderBullet) { - paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass); - } else { - // prettier-ignore - paginationHTML += `<${params.bulletElement} ${swiper.isElement ? 'part="bullet"' : ''} class="${params.bulletClass}">`; - } - } - } - if (params.type === 'fraction') { - if (params.renderFraction) { - paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass); - } else { - paginationHTML = `` + ' / ' + ``; - } - } - if (params.type === 'progressbar') { - if (params.renderProgressbar) { - paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass); - } else { - paginationHTML = ``; - } - } - swiper.pagination.bullets = []; - el.forEach(subEl => { - if (params.type !== 'custom') { - subEl.innerHTML = paginationHTML || ''; - } - if (params.type === 'bullets') { - swiper.pagination.bullets.push(...subEl.querySelectorAll(classesToSelector(params.bulletClass))); - } - }); - if (params.type !== 'custom') { - emit('paginationRender', el[0]); - } - } - function init() { - swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, { - el: 'swiper-pagination' - }); - const params = swiper.params.pagination; - if (!params.el) return; - let el; - if (typeof params.el === 'string' && swiper.isElement) { - el = swiper.el.querySelector(params.el); - } - if (!el && typeof params.el === 'string') { - el = [...document.querySelectorAll(params.el)]; - } - if (!el) { - el = params.el; - } - if (!el || el.length === 0) return; - if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) { - el = [...swiper.el.querySelectorAll(params.el)]; - // check if it belongs to another nested Swiper - if (el.length > 1) { - el = el.filter(subEl => { - if (elementParents(subEl, '.swiper')[0] !== swiper.el) return false; - return true; - })[0]; - } - } - if (Array.isArray(el) && el.length === 1) el = el[0]; - Object.assign(swiper.pagination, { - el - }); - el = makeElementsArray(el); - el.forEach(subEl => { - if (params.type === 'bullets' && params.clickable) { - subEl.classList.add(...(params.clickableClass || '').split(' ')); - } - subEl.classList.add(params.modifierClass + params.type); - subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass); - if (params.type === 'bullets' && params.dynamicBullets) { - subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`); - dynamicBulletIndex = 0; - if (params.dynamicMainBullets < 1) { - params.dynamicMainBullets = 1; - } - } - if (params.type === 'progressbar' && params.progressbarOpposite) { - subEl.classList.add(params.progressbarOppositeClass); - } - if (params.clickable) { - subEl.addEventListener('click', onBulletClick); - } - if (!swiper.enabled) { - subEl.classList.add(params.lockClass); - } - }); - } - function destroy() { - const params = swiper.params.pagination; - if (isPaginationDisabled()) return; - let el = swiper.pagination.el; - if (el) { - el = makeElementsArray(el); - el.forEach(subEl => { - subEl.classList.remove(params.hiddenClass); - subEl.classList.remove(params.modifierClass + params.type); - subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass); - if (params.clickable) { - subEl.classList.remove(...(params.clickableClass || '').split(' ')); - subEl.removeEventListener('click', onBulletClick); - } - }); - } - if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(...params.bulletActiveClass.split(' '))); - } - on('changeDirection', () => { - if (!swiper.pagination || !swiper.pagination.el) return; - const params = swiper.params.pagination; - let { - el - } = swiper.pagination; - el = makeElementsArray(el); - el.forEach(subEl => { - subEl.classList.remove(params.horizontalClass, params.verticalClass); - subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass); - }); - }); - on('init', () => { - if (swiper.params.pagination.enabled === false) { - // eslint-disable-next-line - disable(); - } else { - init(); - render(); - update(); - } - }); - on('activeIndexChange', () => { - if (typeof swiper.snapIndex === 'undefined') { - update(); - } - }); - on('snapIndexChange', () => { - update(); - }); - on('snapGridLengthChange', () => { - render(); - update(); - }); - on('destroy', () => { - destroy(); - }); - on('enable disable', () => { - let { - el - } = swiper.pagination; - if (el) { - el = makeElementsArray(el); - el.forEach(subEl => subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass)); - } - }); - on('lock unlock', () => { - update(); - }); - on('click', (_s, e) => { - const targetEl = e.target; - const el = makeElementsArray(swiper.pagination.el); - if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(swiper.params.pagination.bulletClass)) { - if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return; - const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass); - if (isHidden === true) { - emit('paginationShow'); - } else { - emit('paginationHide'); - } - el.forEach(subEl => subEl.classList.toggle(swiper.params.pagination.hiddenClass)); - } - }); - const enable = () => { - swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass); - let { - el - } = swiper.pagination; - if (el) { - el = makeElementsArray(el); - el.forEach(subEl => subEl.classList.remove(swiper.params.pagination.paginationDisabledClass)); - } - init(); - render(); - update(); - }; - const disable = () => { - swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass); - let { - el - } = swiper.pagination; - if (el) { - el = makeElementsArray(el); - el.forEach(subEl => subEl.classList.add(swiper.params.pagination.paginationDisabledClass)); - } - destroy(); - }; - Object.assign(swiper.pagination, { - enable, - disable, - render, - update, - init, - destroy - }); -} - -export { Pagination as default }; diff --git a/build/assets/js/vendor/swiper/modules/pagination.scss b/build/assets/js/vendor/swiper/modules/pagination.scss deleted file mode 100644 index 5595484..0000000 --- a/build/assets/js/vendor/swiper/modules/pagination.scss +++ /dev/null @@ -1,188 +0,0 @@ -@import '../swiper-vars.scss'; -@at-root { - :root { - /* - --swiper-pagination-color: var(--swiper-theme-color); - --swiper-pagination-left: auto; - --swiper-pagination-right: 8px; - --swiper-pagination-bottom: 8px; - --swiper-pagination-top: auto; - --swiper-pagination-fraction-color: inherit; - --swiper-pagination-progressbar-bg-color: rgba(0,0,0,0.25); - --swiper-pagination-progressbar-size: 4px; - --swiper-pagination-bullet-size: 8px; - --swiper-pagination-bullet-width: 8px; - --swiper-pagination-bullet-height: 8px; - --swiper-pagination-bullet-border-radius: 50%; - --swiper-pagination-bullet-inactive-color: #000; - --swiper-pagination-bullet-inactive-opacity: 0.2; - --swiper-pagination-bullet-opacity: 1; - --swiper-pagination-bullet-horizontal-gap: 4px; - --swiper-pagination-bullet-vertical-gap: 6px; - */ - } -} -.swiper-pagination { - position: absolute; - text-align: center; - transition: 300ms opacity; - transform: translate3d(0, 0, 0); - z-index: 10; - &.swiper-pagination-hidden { - opacity: 0; - } - .swiper-pagination-disabled > &, - &.swiper-pagination-disabled { - display: none !important; - } -} -/* Common Styles */ -.swiper-pagination-fraction, -.swiper-pagination-custom, -.swiper-horizontal > .swiper-pagination-bullets, -.swiper-pagination-bullets.swiper-pagination-horizontal { - bottom: var(--swiper-pagination-bottom, 8px); - top: var(--swiper-pagination-top, auto); - left: 0; - width: 100%; -} -/* Bullets */ -.swiper-pagination-bullets-dynamic { - overflow: hidden; - font-size: 0; - .swiper-pagination-bullet { - transform: scale(0.33); - position: relative; - } - .swiper-pagination-bullet-active { - transform: scale(1); - } - .swiper-pagination-bullet-active-main { - transform: scale(1); - } - .swiper-pagination-bullet-active-prev { - transform: scale(0.66); - } - .swiper-pagination-bullet-active-prev-prev { - transform: scale(0.33); - } - .swiper-pagination-bullet-active-next { - transform: scale(0.66); - } - .swiper-pagination-bullet-active-next-next { - transform: scale(0.33); - } -} -.swiper-pagination-bullet { - width: var(--swiper-pagination-bullet-width, var(--swiper-pagination-bullet-size, 8px)); - height: var(--swiper-pagination-bullet-height, var(--swiper-pagination-bullet-size, 8px)); - display: inline-block; - border-radius: var(--swiper-pagination-bullet-border-radius, 50%); - background: var(--swiper-pagination-bullet-inactive-color, #000); - opacity: var(--swiper-pagination-bullet-inactive-opacity, 0.2); - @at-root button#{&} { - border: none; - margin: 0; - padding: 0; - box-shadow: none; - appearance: none; - } - .swiper-pagination-clickable & { - cursor: pointer; - } - - &:only-child { - display: none !important; - } -} -.swiper-pagination-bullet-active { - opacity: var(--swiper-pagination-bullet-opacity, 1); - background: var(--swiper-pagination-color, var(--swiper-theme-color)); -} - -.swiper-vertical > .swiper-pagination-bullets, -.swiper-pagination-vertical.swiper-pagination-bullets { - right: var(--swiper-pagination-right, 8px); - left: var(--swiper-pagination-left, auto); - top: 50%; - transform: translate3d(0px, -50%, 0); - .swiper-pagination-bullet { - margin: var(--swiper-pagination-bullet-vertical-gap, 6px) 0; - display: block; - } - &.swiper-pagination-bullets-dynamic { - top: 50%; - transform: translateY(-50%); - width: 8px; - .swiper-pagination-bullet { - display: inline-block; - transition: - 200ms transform, - 200ms top; - } - } -} -.swiper-horizontal > .swiper-pagination-bullets, -.swiper-pagination-horizontal.swiper-pagination-bullets { - .swiper-pagination-bullet { - margin: 0 var(--swiper-pagination-bullet-horizontal-gap, 4px); - } - &.swiper-pagination-bullets-dynamic { - left: 50%; - transform: translateX(-50%); - white-space: nowrap; - .swiper-pagination-bullet { - transition: - 200ms transform, - 200ms left; - } - } -} -.swiper-horizontal.swiper-rtl > .swiper-pagination-bullets-dynamic .swiper-pagination-bullet { - transition: - 200ms transform, - 200ms right; -} -/* Fraction */ -.swiper-pagination-fraction { - color: var(--swiper-pagination-fraction-color, inherit); -} -/* Progress */ -.swiper-pagination-progressbar { - background: var(--swiper-pagination-progressbar-bg-color, rgba(0, 0, 0, 0.25)); - position: absolute; - .swiper-pagination-progressbar-fill { - background: var(--swiper-pagination-color, var(--swiper-theme-color)); - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - transform: scale(0); - transform-origin: left top; - } - .swiper-rtl & .swiper-pagination-progressbar-fill { - transform-origin: right top; - } - .swiper-horizontal > &, - &.swiper-pagination-horizontal, - .swiper-vertical > &.swiper-pagination-progressbar-opposite, - &.swiper-pagination-vertical.swiper-pagination-progressbar-opposite { - width: 100%; - height: var(--swiper-pagination-progressbar-size, 4px); - left: 0; - top: 0; - } - .swiper-vertical > &, - &.swiper-pagination-vertical, - .swiper-horizontal > &.swiper-pagination-progressbar-opposite, - &.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite { - width: var(--swiper-pagination-progressbar-size, 4px); - height: 100%; - left: 0; - top: 0; - } -} -.swiper-pagination-lock { - display: none; -} diff --git a/build/assets/js/vendor/swiper/modules/parallax-element.css b/build/assets/js/vendor/swiper/modules/parallax-element.css deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/parallax-element.css +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/parallax-element.min.css b/build/assets/js/vendor/swiper/modules/parallax-element.min.css deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/parallax-element.min.css +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/parallax.css b/build/assets/js/vendor/swiper/modules/parallax.css deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/parallax.css +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/parallax.less b/build/assets/js/vendor/swiper/modules/parallax.less deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/parallax.less +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/parallax.min.css b/build/assets/js/vendor/swiper/modules/parallax.min.css deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/parallax.min.css +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/parallax.min.mjs b/build/assets/js/vendor/swiper/modules/parallax.min.mjs deleted file mode 100644 index b70fbd0..0000000 --- a/build/assets/js/vendor/swiper/modules/parallax.min.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{e as elementChildren}from"../shared/utils.min.mjs";function Parallax(a){let{swiper:e,extendParams:t,on:l}=a;t({parallax:{enabled:!1}});const r="[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]",s=(a,t)=>{const{rtl:l}=e,r=l?-1:1,s=a.getAttribute("data-swiper-parallax")||"0";let i=a.getAttribute("data-swiper-parallax-x"),p=a.getAttribute("data-swiper-parallax-y");const n=a.getAttribute("data-swiper-parallax-scale"),o=a.getAttribute("data-swiper-parallax-opacity"),d=a.getAttribute("data-swiper-parallax-rotate");if(i||p?(i=i||"0",p=p||"0"):e.isHorizontal()?(i=s,p="0"):(p=s,i="0"),i=i.indexOf("%")>=0?parseInt(i,10)*t*r+"%":i*t*r+"px",p=p.indexOf("%")>=0?parseInt(p,10)*t+"%":p*t+"px",null!=o){const e=o-(o-1)*(1-Math.abs(t));a.style.opacity=e}let x=`translate3d(${i}, ${p}, 0px)`;if(null!=n){x+=` scale(${n-(n-1)*(1-Math.abs(t))})`}if(d&&null!=d){x+=` rotate(${d*t*-1}deg)`}a.style.transform=x},i=()=>{const{el:a,slides:t,progress:l,snapGrid:i,isElement:p}=e,n=elementChildren(a,r);e.isElement&&n.push(...elementChildren(e.hostEl,r)),n.forEach((a=>{s(a,l)})),t.forEach(((a,t)=>{let p=a.progress;e.params.slidesPerGroup>1&&"auto"!==e.params.slidesPerView&&(p+=Math.ceil(t/2)-l*(i.length-1)),p=Math.min(Math.max(p,-1),1),a.querySelectorAll(`${r}, [data-swiper-parallax-rotate]`).forEach((a=>{s(a,p)}))}))};l("beforeInit",(()=>{e.params.parallax.enabled&&(e.params.watchSlidesProgress=!0,e.originalParams.watchSlidesProgress=!0)})),l("init",(()=>{e.params.parallax.enabled&&i()})),l("setTranslate",(()=>{e.params.parallax.enabled&&i()})),l("setTransition",((a,t)=>{e.params.parallax.enabled&&function(a){void 0===a&&(a=e.params.speed);const{el:t,hostEl:l}=e,s=[...t.querySelectorAll(r)];e.isElement&&s.push(...l.querySelectorAll(r)),s.forEach((e=>{let t=parseInt(e.getAttribute("data-swiper-parallax-duration"),10)||a;0===a&&(t=0),e.style.transitionDuration=`${t}ms`}))}(t)}))}export{Parallax as default}; -//# sourceMappingURL=parallax.min.mjs.map \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/parallax.min.mjs.map b/build/assets/js/vendor/swiper/modules/parallax.min.mjs.map deleted file mode 100644 index 395322a..0000000 --- a/build/assets/js/vendor/swiper/modules/parallax.min.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"parallax.mjs.mjs","names":["elementChildren","Parallax","_ref","swiper","extendParams","on","parallax","enabled","elementsSelector","setTransform","el","progress","rtl","rtlFactor","p","getAttribute","x","y","scale","opacity","rotate","isHorizontal","indexOf","parseInt","currentOpacity","Math","abs","style","transform","setTranslate","slides","snapGrid","isElement","elements","push","hostEl","forEach","subEl","slideEl","slideIndex","slideProgress","params","slidesPerGroup","slidesPerView","ceil","length","min","max","querySelectorAll","watchSlidesProgress","originalParams","_swiper","duration","speed","parallaxEl","parallaxDuration","transitionDuration","setTransition"],"sources":["0"],"mappings":"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"} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/parallax.mjs b/build/assets/js/vendor/swiper/modules/parallax.mjs deleted file mode 100644 index 1f467de..0000000 --- a/build/assets/js/vendor/swiper/modules/parallax.mjs +++ /dev/null @@ -1,124 +0,0 @@ -import { e as elementChildren } from '../shared/utils.mjs'; - -function Parallax(_ref) { - let { - swiper, - extendParams, - on - } = _ref; - extendParams({ - parallax: { - enabled: false - } - }); - const elementsSelector = '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]'; - const setTransform = (el, progress) => { - const { - rtl - } = swiper; - const rtlFactor = rtl ? -1 : 1; - const p = el.getAttribute('data-swiper-parallax') || '0'; - let x = el.getAttribute('data-swiper-parallax-x'); - let y = el.getAttribute('data-swiper-parallax-y'); - const scale = el.getAttribute('data-swiper-parallax-scale'); - const opacity = el.getAttribute('data-swiper-parallax-opacity'); - const rotate = el.getAttribute('data-swiper-parallax-rotate'); - if (x || y) { - x = x || '0'; - y = y || '0'; - } else if (swiper.isHorizontal()) { - x = p; - y = '0'; - } else { - y = p; - x = '0'; - } - if (x.indexOf('%') >= 0) { - x = `${parseInt(x, 10) * progress * rtlFactor}%`; - } else { - x = `${x * progress * rtlFactor}px`; - } - if (y.indexOf('%') >= 0) { - y = `${parseInt(y, 10) * progress}%`; - } else { - y = `${y * progress}px`; - } - if (typeof opacity !== 'undefined' && opacity !== null) { - const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress)); - el.style.opacity = currentOpacity; - } - let transform = `translate3d(${x}, ${y}, 0px)`; - if (typeof scale !== 'undefined' && scale !== null) { - const currentScale = scale - (scale - 1) * (1 - Math.abs(progress)); - transform += ` scale(${currentScale})`; - } - if (rotate && typeof rotate !== 'undefined' && rotate !== null) { - const currentRotate = rotate * progress * -1; - transform += ` rotate(${currentRotate}deg)`; - } - el.style.transform = transform; - }; - const setTranslate = () => { - const { - el, - slides, - progress, - snapGrid, - isElement - } = swiper; - const elements = elementChildren(el, elementsSelector); - if (swiper.isElement) { - elements.push(...elementChildren(swiper.hostEl, elementsSelector)); - } - elements.forEach(subEl => { - setTransform(subEl, progress); - }); - slides.forEach((slideEl, slideIndex) => { - let slideProgress = slideEl.progress; - if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') { - slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1); - } - slideProgress = Math.min(Math.max(slideProgress, -1), 1); - slideEl.querySelectorAll(`${elementsSelector}, [data-swiper-parallax-rotate]`).forEach(subEl => { - setTransform(subEl, slideProgress); - }); - }); - }; - const setTransition = function (duration) { - if (duration === void 0) { - duration = swiper.params.speed; - } - const { - el, - hostEl - } = swiper; - const elements = [...el.querySelectorAll(elementsSelector)]; - if (swiper.isElement) { - elements.push(...hostEl.querySelectorAll(elementsSelector)); - } - elements.forEach(parallaxEl => { - let parallaxDuration = parseInt(parallaxEl.getAttribute('data-swiper-parallax-duration'), 10) || duration; - if (duration === 0) parallaxDuration = 0; - parallaxEl.style.transitionDuration = `${parallaxDuration}ms`; - }); - }; - on('beforeInit', () => { - if (!swiper.params.parallax.enabled) return; - swiper.params.watchSlidesProgress = true; - swiper.originalParams.watchSlidesProgress = true; - }); - on('init', () => { - if (!swiper.params.parallax.enabled) return; - setTranslate(); - }); - on('setTranslate', () => { - if (!swiper.params.parallax.enabled) return; - setTranslate(); - }); - on('setTransition', (_swiper, duration) => { - if (!swiper.params.parallax.enabled) return; - setTransition(duration); - }); -} - -export { Parallax as default }; diff --git a/build/assets/js/vendor/swiper/modules/parallax.scss b/build/assets/js/vendor/swiper/modules/parallax.scss deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/parallax.scss +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/scrollbar-element.css b/build/assets/js/vendor/swiper/modules/scrollbar-element.css deleted file mode 100644 index b6b755e..0000000 --- a/build/assets/js/vendor/swiper/modules/scrollbar-element.css +++ /dev/null @@ -1,58 +0,0 @@ -:host { - /* - --swiper-scrollbar-border-radius: 10px; - --swiper-scrollbar-top: auto; - --swiper-scrollbar-bottom: 4px; - --swiper-scrollbar-left: auto; - --swiper-scrollbar-right: 4px; - --swiper-scrollbar-sides-offset: 1%; - --swiper-scrollbar-bg-color: rgba(0, 0, 0, 0.1); - --swiper-scrollbar-drag-bg-color: rgba(0, 0, 0, 0.5); - --swiper-scrollbar-size: 4px; - */ -} -.swiper-scrollbar { - border-radius: var(--swiper-scrollbar-border-radius, 10px); - position: relative; - touch-action: none; - background: var(--swiper-scrollbar-bg-color, rgba(0, 0, 0, 0.1)); -} -.swiper-scrollbar-disabled > .swiper-scrollbar, -.swiper-scrollbar.swiper-scrollbar-disabled { - display: none !important; -} -.swiper-horizontal > .swiper-scrollbar, -.swiper-scrollbar.swiper-scrollbar-horizontal { - position: absolute; - left: var(--swiper-scrollbar-sides-offset, 1%); - bottom: var(--swiper-scrollbar-bottom, 4px); - top: var(--swiper-scrollbar-top, auto); - z-index: 50; - height: var(--swiper-scrollbar-size, 4px); - width: calc(100% - 2 * var(--swiper-scrollbar-sides-offset, 1%)); -} -.swiper-vertical > .swiper-scrollbar, -.swiper-scrollbar.swiper-scrollbar-vertical { - position: absolute; - left: var(--swiper-scrollbar-left, auto); - right: var(--swiper-scrollbar-right, 4px); - top: var(--swiper-scrollbar-sides-offset, 1%); - z-index: 50; - width: var(--swiper-scrollbar-size, 4px); - height: calc(100% - 2 * var(--swiper-scrollbar-sides-offset, 1%)); -} -.swiper-scrollbar-drag { - height: 100%; - width: 100%; - position: relative; - background: var(--swiper-scrollbar-drag-bg-color, rgba(0, 0, 0, 0.5)); - border-radius: var(--swiper-scrollbar-border-radius, 10px); - left: 0; - top: 0; -} -.swiper-scrollbar-cursor-drag { - cursor: move; -} -.swiper-scrollbar-lock { - display: none; -} diff --git a/build/assets/js/vendor/swiper/modules/scrollbar-element.min.css b/build/assets/js/vendor/swiper/modules/scrollbar-element.min.css deleted file mode 100644 index dc9860f..0000000 --- a/build/assets/js/vendor/swiper/modules/scrollbar-element.min.css +++ /dev/null @@ -1 +0,0 @@ -.swiper-scrollbar{border-radius:var(--swiper-scrollbar-border-radius,10px);position:relative;touch-action:none;background:var(--swiper-scrollbar-bg-color,rgba(0,0,0,.1))}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:var(--swiper-scrollbar-sides-offset,1%);bottom:var(--swiper-scrollbar-bottom,4px);top:var(--swiper-scrollbar-top,auto);z-index:50;height:var(--swiper-scrollbar-size,4px);width:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{position:absolute;left:var(--swiper-scrollbar-left,auto);right:var(--swiper-scrollbar-right,4px);top:var(--swiper-scrollbar-sides-offset,1%);z-index:50;width:var(--swiper-scrollbar-size,4px);height:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:var(--swiper-scrollbar-drag-bg-color,rgba(0,0,0,.5));border-radius:var(--swiper-scrollbar-border-radius,10px);left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/scrollbar.css b/build/assets/js/vendor/swiper/modules/scrollbar.css deleted file mode 100644 index 678451c..0000000 --- a/build/assets/js/vendor/swiper/modules/scrollbar.css +++ /dev/null @@ -1,58 +0,0 @@ -:root { - /* - --swiper-scrollbar-border-radius: 10px; - --swiper-scrollbar-top: auto; - --swiper-scrollbar-bottom: 4px; - --swiper-scrollbar-left: auto; - --swiper-scrollbar-right: 4px; - --swiper-scrollbar-sides-offset: 1%; - --swiper-scrollbar-bg-color: rgba(0, 0, 0, 0.1); - --swiper-scrollbar-drag-bg-color: rgba(0, 0, 0, 0.5); - --swiper-scrollbar-size: 4px; - */ -} -.swiper-scrollbar { - border-radius: var(--swiper-scrollbar-border-radius, 10px); - position: relative; - touch-action: none; - background: var(--swiper-scrollbar-bg-color, rgba(0, 0, 0, 0.1)); -} -.swiper-scrollbar-disabled > .swiper-scrollbar, -.swiper-scrollbar.swiper-scrollbar-disabled { - display: none !important; -} -.swiper-horizontal > .swiper-scrollbar, -.swiper-scrollbar.swiper-scrollbar-horizontal { - position: absolute; - left: var(--swiper-scrollbar-sides-offset, 1%); - bottom: var(--swiper-scrollbar-bottom, 4px); - top: var(--swiper-scrollbar-top, auto); - z-index: 50; - height: var(--swiper-scrollbar-size, 4px); - width: calc(100% - 2 * var(--swiper-scrollbar-sides-offset, 1%)); -} -.swiper-vertical > .swiper-scrollbar, -.swiper-scrollbar.swiper-scrollbar-vertical { - position: absolute; - left: var(--swiper-scrollbar-left, auto); - right: var(--swiper-scrollbar-right, 4px); - top: var(--swiper-scrollbar-sides-offset, 1%); - z-index: 50; - width: var(--swiper-scrollbar-size, 4px); - height: calc(100% - 2 * var(--swiper-scrollbar-sides-offset, 1%)); -} -.swiper-scrollbar-drag { - height: 100%; - width: 100%; - position: relative; - background: var(--swiper-scrollbar-drag-bg-color, rgba(0, 0, 0, 0.5)); - border-radius: var(--swiper-scrollbar-border-radius, 10px); - left: 0; - top: 0; -} -.swiper-scrollbar-cursor-drag { - cursor: move; -} -.swiper-scrollbar-lock { - display: none; -} diff --git a/build/assets/js/vendor/swiper/modules/scrollbar.less b/build/assets/js/vendor/swiper/modules/scrollbar.less deleted file mode 100644 index 4920d9b..0000000 --- a/build/assets/js/vendor/swiper/modules/scrollbar.less +++ /dev/null @@ -1,59 +0,0 @@ -:root { - /* - --swiper-scrollbar-border-radius: 10px; - --swiper-scrollbar-top: auto; - --swiper-scrollbar-bottom: 4px; - --swiper-scrollbar-left: auto; - --swiper-scrollbar-right: 4px; - --swiper-scrollbar-sides-offset: 1%; - --swiper-scrollbar-bg-color: rgba(0, 0, 0, 0.1); - --swiper-scrollbar-drag-bg-color: rgba(0, 0, 0, 0.5); - --swiper-scrollbar-size: 4px; - */ -} -.swiper-scrollbar { - border-radius: var(--swiper-scrollbar-border-radius, 10px); - position: relative; - -ms-touch-action: none; - touch-action: none; - background: var(--swiper-scrollbar-bg-color, rgba(0, 0, 0, 0.1)); - .swiper-scrollbar-disabled > &, - &.swiper-scrollbar-disabled { - display: none !important; - } - .swiper-horizontal > &, - &.swiper-scrollbar-horizontal { - position: absolute; - left: var(--swiper-scrollbar-sides-offset, 1%); - bottom: var(--swiper-scrollbar-bottom, 4px); - top: var(--swiper-scrollbar-top, auto); - z-index: 50; - height: var(--swiper-scrollbar-size, 4px); - width: calc(100% - 2 * var(--swiper-scrollbar-sides-offset, 1%)); - } - .swiper-vertical > &, - &.swiper-scrollbar-vertical { - position: absolute; - left: var(--swiper-scrollbar-left, auto); - right: var(--swiper-scrollbar-right, 4px); - top: var(--swiper-scrollbar-sides-offset, 1%); - z-index: 50; - width: var(--swiper-scrollbar-size, 4px); - height: calc(100% - 2 * var(--swiper-scrollbar-sides-offset, 1%)); - } -} -.swiper-scrollbar-drag { - height: 100%; - width: 100%; - position: relative; - background: var(--swiper-scrollbar-drag-bg-color, rgba(0, 0, 0, 0.5)); - border-radius: var(--swiper-scrollbar-border-radius, 10px); - left: 0; - top: 0; -} -.swiper-scrollbar-cursor-drag { - cursor: move; -} -.swiper-scrollbar-lock { - display: none; -} diff --git a/build/assets/js/vendor/swiper/modules/scrollbar.min.css b/build/assets/js/vendor/swiper/modules/scrollbar.min.css deleted file mode 100644 index dc9860f..0000000 --- a/build/assets/js/vendor/swiper/modules/scrollbar.min.css +++ /dev/null @@ -1 +0,0 @@ -.swiper-scrollbar{border-radius:var(--swiper-scrollbar-border-radius,10px);position:relative;touch-action:none;background:var(--swiper-scrollbar-bg-color,rgba(0,0,0,.1))}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:var(--swiper-scrollbar-sides-offset,1%);bottom:var(--swiper-scrollbar-bottom,4px);top:var(--swiper-scrollbar-top,auto);z-index:50;height:var(--swiper-scrollbar-size,4px);width:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{position:absolute;left:var(--swiper-scrollbar-left,auto);right:var(--swiper-scrollbar-right,4px);top:var(--swiper-scrollbar-sides-offset,1%);z-index:50;width:var(--swiper-scrollbar-size,4px);height:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:var(--swiper-scrollbar-drag-bg-color,rgba(0,0,0,.5));border-radius:var(--swiper-scrollbar-border-radius,10px);left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/scrollbar.min.mjs b/build/assets/js/vendor/swiper/modules/scrollbar.min.mjs deleted file mode 100644 index 7118794..0000000 --- a/build/assets/js/vendor/swiper/modules/scrollbar.min.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{g as getDocument}from"../shared/ssr-window.esm.min.mjs";import{h as classesToTokens,c as createElement,n as nextTick,b as elementOffset}from"../shared/utils.min.mjs";import{c as createElementIfNotDefined}from"../shared/create-element-if-not-defined.min.mjs";import{c as classesToSelector}from"../shared/classes-to-selector.min.mjs";function Scrollbar(s){let{swiper:l,extendParams:e,on:r,emit:a}=s;const t=getDocument();let o,n,i,c,p=!1,m=null,d=null;function b(){if(!l.params.scrollbar.el||!l.scrollbar.el)return;const{scrollbar:s,rtlTranslate:e}=l,{dragEl:r,el:a}=s,t=l.params.scrollbar,o=l.params.loop?l.progressLoop:l.progress;let c=n,p=(i-n)*o;e?(p=-p,p>0?(c=n-p,p=0):-p+n>i&&(c=i+p)):p<0?(c=n+p,p=0):p+n>i&&(c=i-p),l.isHorizontal()?(r.style.transform=`translate3d(${p}px, 0, 0)`,r.style.width=`${c}px`):(r.style.transform=`translate3d(0px, ${p}px, 0)`,r.style.height=`${c}px`),t.hide&&(clearTimeout(m),a.style.opacity=1,m=setTimeout((()=>{a.style.opacity=0,a.style.transitionDuration="400ms"}),1e3))}function u(){if(!l.params.scrollbar.el||!l.scrollbar.el)return;const{scrollbar:s}=l,{dragEl:e,el:r}=s;e.style.width="",e.style.height="",i=l.isHorizontal()?r.offsetWidth:r.offsetHeight,c=l.size/(l.virtualSize+l.params.slidesOffsetBefore-(l.params.centeredSlides?l.snapGrid[0]:0)),n="auto"===l.params.scrollbar.dragSize?i*c:parseInt(l.params.scrollbar.dragSize,10),l.isHorizontal()?e.style.width=`${n}px`:e.style.height=`${n}px`,r.style.display=c>=1?"none":"",l.params.scrollbar.hide&&(r.style.opacity=0),l.params.watchOverflow&&l.enabled&&s.el.classList[l.isLocked?"add":"remove"](l.params.scrollbar.lockClass)}function f(s){return l.isHorizontal()?s.clientX:s.clientY}function g(s){const{scrollbar:e,rtlTranslate:r}=l,{el:a}=e;let t;t=(f(s)-elementOffset(a)[l.isHorizontal()?"left":"top"]-(null!==o?o:n/2))/(i-n),t=Math.max(Math.min(t,1),0),r&&(t=1-t);const c=l.minTranslate()+(l.maxTranslate()-l.minTranslate())*t;l.updateProgress(c),l.setTranslate(c),l.updateActiveIndex(),l.updateSlidesClasses()}function y(s){const e=l.params.scrollbar,{scrollbar:r,wrapperEl:t}=l,{el:n,dragEl:i}=r;p=!0,o=s.target===i?f(s)-s.target.getBoundingClientRect()[l.isHorizontal()?"left":"top"]:null,s.preventDefault(),s.stopPropagation(),t.style.transitionDuration="100ms",i.style.transitionDuration="100ms",g(s),clearTimeout(d),n.style.transitionDuration="0ms",e.hide&&(n.style.opacity=1),l.params.cssMode&&(l.wrapperEl.style["scroll-snap-type"]="none"),a("scrollbarDragStart",s)}function T(s){const{scrollbar:e,wrapperEl:r}=l,{el:t,dragEl:o}=e;p&&(s.preventDefault?s.preventDefault():s.returnValue=!1,g(s),r.style.transitionDuration="0ms",t.style.transitionDuration="0ms",o.style.transitionDuration="0ms",a("scrollbarDragMove",s))}function h(s){const e=l.params.scrollbar,{scrollbar:r,wrapperEl:t}=l,{el:o}=r;p&&(p=!1,l.params.cssMode&&(l.wrapperEl.style["scroll-snap-type"]="",t.style.transitionDuration=""),e.hide&&(clearTimeout(d),d=nextTick((()=>{o.style.opacity=0,o.style.transitionDuration="400ms"}),1e3)),a("scrollbarDragEnd",s),e.snapOnRelease&&l.slideToClosest())}function v(s){const{scrollbar:e,params:r}=l,a=e.el;if(!a)return;const o=a,n=!!r.passiveListeners&&{passive:!1,capture:!1},i=!!r.passiveListeners&&{passive:!0,capture:!1};if(!o)return;const c="on"===s?"addEventListener":"removeEventListener";o[c]("pointerdown",y,n),t[c]("pointermove",T,n),t[c]("pointerup",h,i)}function D(){const{scrollbar:s,el:e}=l;l.params.scrollbar=createElementIfNotDefined(l,l.originalParams.scrollbar,l.params.scrollbar,{el:"swiper-scrollbar"});const r=l.params.scrollbar;if(!r.el)return;let a,o;if("string"==typeof r.el&&l.isElement&&(a=l.el.querySelector(r.el)),a||"string"!=typeof r.el)a||(a=r.el);else if(a=t.querySelectorAll(r.el),!a.length)return;l.params.uniqueNavElements&&"string"==typeof r.el&&a.length>1&&1===e.querySelectorAll(r.el).length&&(a=e.querySelector(r.el)),a.length>0&&(a=a[0]),a.classList.add(l.isHorizontal()?r.horizontalClass:r.verticalClass),a&&(o=a.querySelector(classesToSelector(l.params.scrollbar.dragClass)),o||(o=createElement("div",l.params.scrollbar.dragClass),a.append(o))),Object.assign(s,{el:a,dragEl:o}),r.draggable&&l.params.scrollbar.el&&l.scrollbar.el&&v("on"),a&&a.classList[l.enabled?"remove":"add"](...classesToTokens(l.params.scrollbar.lockClass))}function C(){const s=l.params.scrollbar,e=l.scrollbar.el;e&&e.classList.remove(...classesToTokens(l.isHorizontal()?s.horizontalClass:s.verticalClass)),l.params.scrollbar.el&&l.scrollbar.el&&v("off")}e({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"}}),l.scrollbar={el:null,dragEl:null},r("init",(()=>{!1===l.params.scrollbar.enabled?E():(D(),u(),b())})),r("update resize observerUpdate lock unlock",(()=>{u()})),r("setTranslate",(()=>{b()})),r("setTransition",((s,e)=>{!function(s){l.params.scrollbar.el&&l.scrollbar.el&&(l.scrollbar.dragEl.style.transitionDuration=`${s}ms`)}(e)})),r("enable disable",(()=>{const{el:s}=l.scrollbar;s&&s.classList[l.enabled?"remove":"add"](...classesToTokens(l.params.scrollbar.lockClass))})),r("destroy",(()=>{C()}));const E=()=>{l.el.classList.add(...classesToTokens(l.params.scrollbar.scrollbarDisabledClass)),l.scrollbar.el&&l.scrollbar.el.classList.add(...classesToTokens(l.params.scrollbar.scrollbarDisabledClass)),C()};Object.assign(l.scrollbar,{enable:()=>{l.el.classList.remove(...classesToTokens(l.params.scrollbar.scrollbarDisabledClass)),l.scrollbar.el&&l.scrollbar.el.classList.remove(...classesToTokens(l.params.scrollbar.scrollbarDisabledClass)),D(),u(),b()},disable:E,updateSize:u,setTranslate:b,init:D,destroy:C})}export{Scrollbar as default}; -//# sourceMappingURL=scrollbar.min.mjs.map \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/scrollbar.min.mjs.map b/build/assets/js/vendor/swiper/modules/scrollbar.min.mjs.map deleted file mode 100644 index 2748a77..0000000 --- a/build/assets/js/vendor/swiper/modules/scrollbar.min.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"scrollbar.mjs.mjs","names":["getDocument","classesToTokens","createElement","nextTick","elementOffset","createElementIfNotDefined","classesToSelector","Scrollbar","_ref","swiper","extendParams","on","emit","document","dragStartPos","dragSize","trackSize","divider","isTouched","timeout","dragTimeout","setTranslate","params","scrollbar","el","rtlTranslate","rtl","dragEl","progress","loop","progressLoop","newSize","newPos","isHorizontal","style","transform","width","height","hide","clearTimeout","opacity","setTimeout","transitionDuration","updateSize","offsetWidth","offsetHeight","size","virtualSize","slidesOffsetBefore","centeredSlides","snapGrid","parseInt","display","watchOverflow","enabled","classList","isLocked","lockClass","getPointerPosition","e","clientX","clientY","setDragPosition","positionRatio","Math","max","min","position","minTranslate","maxTranslate","updateProgress","updateActiveIndex","updateSlidesClasses","onDragStart","wrapperEl","target","getBoundingClientRect","preventDefault","stopPropagation","cssMode","onDragMove","returnValue","onDragEnd","snapOnRelease","slideToClosest","events","method","activeListener","passiveListeners","passive","capture","passiveListener","eventMethod","init","swiperEl","originalParams","isElement","querySelector","querySelectorAll","length","uniqueNavElements","add","horizontalClass","verticalClass","dragClass","append","Object","assign","draggable","destroy","remove","scrollbarDisabledClass","disable","_s","duration","setTransition","enable"],"sources":["0"],"mappings":"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"} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/scrollbar.mjs b/build/assets/js/vendor/swiper/modules/scrollbar.mjs deleted file mode 100644 index 167be7f..0000000 --- a/build/assets/js/vendor/swiper/modules/scrollbar.mjs +++ /dev/null @@ -1,354 +0,0 @@ -import { g as getDocument } from '../shared/ssr-window.esm.mjs'; -import { h as classesToTokens, c as createElement, n as nextTick, b as elementOffset } from '../shared/utils.mjs'; -import { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs'; -import { c as classesToSelector } from '../shared/classes-to-selector.mjs'; - -function Scrollbar(_ref) { - let { - swiper, - extendParams, - on, - emit - } = _ref; - const document = getDocument(); - let isTouched = false; - let timeout = null; - let dragTimeout = null; - let dragStartPos; - let dragSize; - let trackSize; - let divider; - extendParams({ - scrollbar: { - el: null, - dragSize: 'auto', - hide: false, - draggable: false, - snapOnRelease: true, - lockClass: 'swiper-scrollbar-lock', - dragClass: 'swiper-scrollbar-drag', - scrollbarDisabledClass: 'swiper-scrollbar-disabled', - horizontalClass: `swiper-scrollbar-horizontal`, - verticalClass: `swiper-scrollbar-vertical` - } - }); - swiper.scrollbar = { - el: null, - dragEl: null - }; - function setTranslate() { - if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; - const { - scrollbar, - rtlTranslate: rtl - } = swiper; - const { - dragEl, - el - } = scrollbar; - const params = swiper.params.scrollbar; - const progress = swiper.params.loop ? swiper.progressLoop : swiper.progress; - let newSize = dragSize; - let newPos = (trackSize - dragSize) * progress; - if (rtl) { - newPos = -newPos; - if (newPos > 0) { - newSize = dragSize - newPos; - newPos = 0; - } else if (-newPos + dragSize > trackSize) { - newSize = trackSize + newPos; - } - } else if (newPos < 0) { - newSize = dragSize + newPos; - newPos = 0; - } else if (newPos + dragSize > trackSize) { - newSize = trackSize - newPos; - } - if (swiper.isHorizontal()) { - dragEl.style.transform = `translate3d(${newPos}px, 0, 0)`; - dragEl.style.width = `${newSize}px`; - } else { - dragEl.style.transform = `translate3d(0px, ${newPos}px, 0)`; - dragEl.style.height = `${newSize}px`; - } - if (params.hide) { - clearTimeout(timeout); - el.style.opacity = 1; - timeout = setTimeout(() => { - el.style.opacity = 0; - el.style.transitionDuration = '400ms'; - }, 1000); - } - } - function setTransition(duration) { - if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; - swiper.scrollbar.dragEl.style.transitionDuration = `${duration}ms`; - } - function updateSize() { - if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; - const { - scrollbar - } = swiper; - const { - dragEl, - el - } = scrollbar; - dragEl.style.width = ''; - dragEl.style.height = ''; - trackSize = swiper.isHorizontal() ? el.offsetWidth : el.offsetHeight; - divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0)); - if (swiper.params.scrollbar.dragSize === 'auto') { - dragSize = trackSize * divider; - } else { - dragSize = parseInt(swiper.params.scrollbar.dragSize, 10); - } - if (swiper.isHorizontal()) { - dragEl.style.width = `${dragSize}px`; - } else { - dragEl.style.height = `${dragSize}px`; - } - if (divider >= 1) { - el.style.display = 'none'; - } else { - el.style.display = ''; - } - if (swiper.params.scrollbar.hide) { - el.style.opacity = 0; - } - if (swiper.params.watchOverflow && swiper.enabled) { - scrollbar.el.classList[swiper.isLocked ? 'add' : 'remove'](swiper.params.scrollbar.lockClass); - } - } - function getPointerPosition(e) { - return swiper.isHorizontal() ? e.clientX : e.clientY; - } - function setDragPosition(e) { - const { - scrollbar, - rtlTranslate: rtl - } = swiper; - const { - el - } = scrollbar; - let positionRatio; - positionRatio = (getPointerPosition(e) - elementOffset(el)[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize); - positionRatio = Math.max(Math.min(positionRatio, 1), 0); - if (rtl) { - positionRatio = 1 - positionRatio; - } - const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio; - swiper.updateProgress(position); - swiper.setTranslate(position); - swiper.updateActiveIndex(); - swiper.updateSlidesClasses(); - } - function onDragStart(e) { - const params = swiper.params.scrollbar; - const { - scrollbar, - wrapperEl - } = swiper; - const { - el, - dragEl - } = scrollbar; - isTouched = true; - dragStartPos = e.target === dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null; - e.preventDefault(); - e.stopPropagation(); - wrapperEl.style.transitionDuration = '100ms'; - dragEl.style.transitionDuration = '100ms'; - setDragPosition(e); - clearTimeout(dragTimeout); - el.style.transitionDuration = '0ms'; - if (params.hide) { - el.style.opacity = 1; - } - if (swiper.params.cssMode) { - swiper.wrapperEl.style['scroll-snap-type'] = 'none'; - } - emit('scrollbarDragStart', e); - } - function onDragMove(e) { - const { - scrollbar, - wrapperEl - } = swiper; - const { - el, - dragEl - } = scrollbar; - if (!isTouched) return; - if (e.preventDefault) e.preventDefault();else e.returnValue = false; - setDragPosition(e); - wrapperEl.style.transitionDuration = '0ms'; - el.style.transitionDuration = '0ms'; - dragEl.style.transitionDuration = '0ms'; - emit('scrollbarDragMove', e); - } - function onDragEnd(e) { - const params = swiper.params.scrollbar; - const { - scrollbar, - wrapperEl - } = swiper; - const { - el - } = scrollbar; - if (!isTouched) return; - isTouched = false; - if (swiper.params.cssMode) { - swiper.wrapperEl.style['scroll-snap-type'] = ''; - wrapperEl.style.transitionDuration = ''; - } - if (params.hide) { - clearTimeout(dragTimeout); - dragTimeout = nextTick(() => { - el.style.opacity = 0; - el.style.transitionDuration = '400ms'; - }, 1000); - } - emit('scrollbarDragEnd', e); - if (params.snapOnRelease) { - swiper.slideToClosest(); - } - } - function events(method) { - const { - scrollbar, - params - } = swiper; - const el = scrollbar.el; - if (!el) return; - const target = el; - const activeListener = params.passiveListeners ? { - passive: false, - capture: false - } : false; - const passiveListener = params.passiveListeners ? { - passive: true, - capture: false - } : false; - if (!target) return; - const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener'; - target[eventMethod]('pointerdown', onDragStart, activeListener); - document[eventMethod]('pointermove', onDragMove, activeListener); - document[eventMethod]('pointerup', onDragEnd, passiveListener); - } - function enableDraggable() { - if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; - events('on'); - } - function disableDraggable() { - if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; - events('off'); - } - function init() { - const { - scrollbar, - el: swiperEl - } = swiper; - swiper.params.scrollbar = createElementIfNotDefined(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, { - el: 'swiper-scrollbar' - }); - const params = swiper.params.scrollbar; - if (!params.el) return; - let el; - if (typeof params.el === 'string' && swiper.isElement) { - el = swiper.el.querySelector(params.el); - } - if (!el && typeof params.el === 'string') { - el = document.querySelectorAll(params.el); - if (!el.length) return; - } else if (!el) { - el = params.el; - } - if (swiper.params.uniqueNavElements && typeof params.el === 'string' && el.length > 1 && swiperEl.querySelectorAll(params.el).length === 1) { - el = swiperEl.querySelector(params.el); - } - if (el.length > 0) el = el[0]; - el.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass); - let dragEl; - if (el) { - dragEl = el.querySelector(classesToSelector(swiper.params.scrollbar.dragClass)); - if (!dragEl) { - dragEl = createElement('div', swiper.params.scrollbar.dragClass); - el.append(dragEl); - } - } - Object.assign(scrollbar, { - el, - dragEl - }); - if (params.draggable) { - enableDraggable(); - } - if (el) { - el.classList[swiper.enabled ? 'remove' : 'add'](...classesToTokens(swiper.params.scrollbar.lockClass)); - } - } - function destroy() { - const params = swiper.params.scrollbar; - const el = swiper.scrollbar.el; - if (el) { - el.classList.remove(...classesToTokens(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass)); - } - disableDraggable(); - } - on('init', () => { - if (swiper.params.scrollbar.enabled === false) { - // eslint-disable-next-line - disable(); - } else { - init(); - updateSize(); - setTranslate(); - } - }); - on('update resize observerUpdate lock unlock', () => { - updateSize(); - }); - on('setTranslate', () => { - setTranslate(); - }); - on('setTransition', (_s, duration) => { - setTransition(duration); - }); - on('enable disable', () => { - const { - el - } = swiper.scrollbar; - if (el) { - el.classList[swiper.enabled ? 'remove' : 'add'](...classesToTokens(swiper.params.scrollbar.lockClass)); - } - }); - on('destroy', () => { - destroy(); - }); - const enable = () => { - swiper.el.classList.remove(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass)); - if (swiper.scrollbar.el) { - swiper.scrollbar.el.classList.remove(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass)); - } - init(); - updateSize(); - setTranslate(); - }; - const disable = () => { - swiper.el.classList.add(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass)); - if (swiper.scrollbar.el) { - swiper.scrollbar.el.classList.add(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass)); - } - destroy(); - }; - Object.assign(swiper.scrollbar, { - enable, - disable, - updateSize, - setTranslate, - init, - destroy - }); -} - -export { Scrollbar as default }; diff --git a/build/assets/js/vendor/swiper/modules/scrollbar.scss b/build/assets/js/vendor/swiper/modules/scrollbar.scss deleted file mode 100644 index 93882d3..0000000 --- a/build/assets/js/vendor/swiper/modules/scrollbar.scss +++ /dev/null @@ -1,61 +0,0 @@ -@at-root { - :root { - /* - --swiper-scrollbar-border-radius: 10px; - --swiper-scrollbar-top: auto; - --swiper-scrollbar-bottom: 4px; - --swiper-scrollbar-left: auto; - --swiper-scrollbar-right: 4px; - --swiper-scrollbar-sides-offset: 1%; - --swiper-scrollbar-bg-color: rgba(0, 0, 0, 0.1); - --swiper-scrollbar-drag-bg-color: rgba(0, 0, 0, 0.5); - --swiper-scrollbar-size: 4px; - */ - } -} -.swiper-scrollbar { - border-radius: var(--swiper-scrollbar-border-radius, 10px); - position: relative; - -ms-touch-action: none; - touch-action: none; - background: var(--swiper-scrollbar-bg-color, rgba(0, 0, 0, 0.1)); - .swiper-scrollbar-disabled > &, - &.swiper-scrollbar-disabled { - display: none !important; - } - .swiper-horizontal > &, - &.swiper-scrollbar-horizontal { - position: absolute; - left: var(--swiper-scrollbar-sides-offset, 1%); - bottom: var(--swiper-scrollbar-bottom, 4px); - top: var(--swiper-scrollbar-top, auto); - z-index: 50; - height: var(--swiper-scrollbar-size, 4px); - width: calc(100% - 2 * var(--swiper-scrollbar-sides-offset, 1%)); - } - .swiper-vertical > &, - &.swiper-scrollbar-vertical { - position: absolute; - left: var(--swiper-scrollbar-left, auto); - right: var(--swiper-scrollbar-right, 4px); - top: var(--swiper-scrollbar-sides-offset, 1%); - z-index: 50; - width: var(--swiper-scrollbar-size, 4px); - height: calc(100% - 2 * var(--swiper-scrollbar-sides-offset, 1%)); - } -} -.swiper-scrollbar-drag { - height: 100%; - width: 100%; - position: relative; - background: var(--swiper-scrollbar-drag-bg-color, rgba(0, 0, 0, 0.5)); - border-radius: var(--swiper-scrollbar-border-radius, 10px); - left: 0; - top: 0; -} -.swiper-scrollbar-cursor-drag { - cursor: move; -} -.swiper-scrollbar-lock { - display: none; -} diff --git a/build/assets/js/vendor/swiper/modules/thumbs-element.css b/build/assets/js/vendor/swiper/modules/thumbs-element.css deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/thumbs-element.css +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/thumbs-element.min.css b/build/assets/js/vendor/swiper/modules/thumbs-element.min.css deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/thumbs-element.min.css +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/thumbs.css b/build/assets/js/vendor/swiper/modules/thumbs.css deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/thumbs.css +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/thumbs.less b/build/assets/js/vendor/swiper/modules/thumbs.less deleted file mode 100644 index 9eaa1b3..0000000 --- a/build/assets/js/vendor/swiper/modules/thumbs.less +++ /dev/null @@ -1,5 +0,0 @@ -.swiper-thumbs { - .swiper-slide-thumb-active { - // Styles for active thumb slide - } -} diff --git a/build/assets/js/vendor/swiper/modules/thumbs.min.css b/build/assets/js/vendor/swiper/modules/thumbs.min.css deleted file mode 100644 index e69de29..0000000 --- a/build/assets/js/vendor/swiper/modules/thumbs.min.css +++ /dev/null diff --git a/build/assets/js/vendor/swiper/modules/thumbs.min.mjs b/build/assets/js/vendor/swiper/modules/thumbs.min.mjs deleted file mode 100644 index 793c847..0000000 --- a/build/assets/js/vendor/swiper/modules/thumbs.min.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{g as getDocument}from"../shared/ssr-window.esm.min.mjs";import{k as isObject,e as elementChildren}from"../shared/utils.min.mjs";function Thumb(e){let{swiper:s,extendParams:i,on:t}=e;i({thumbs:{swiper:null,multipleActiveThumbs:!0,autoScrollOffset:0,slideThumbActiveClass:"swiper-slide-thumb-active",thumbsContainerClass:"swiper-thumbs"}});let r=!1,a=!1;function l(){const e=s.thumbs.swiper;if(!e||e.destroyed)return;const i=e.clickedIndex,t=e.clickedSlide;if(t&&t.classList.contains(s.params.thumbs.slideThumbActiveClass))return;if(null==i)return;let r;r=e.params.loop?parseInt(e.clickedSlide.getAttribute("data-swiper-slide-index"),10):i,s.params.loop?s.slideToLoop(r):s.slideTo(r)}function n(){const{thumbs:e}=s.params;if(r)return!1;r=!0;const i=s.constructor;if(e.swiper instanceof i)s.thumbs.swiper=e.swiper,Object.assign(s.thumbs.swiper.originalParams,{watchSlidesProgress:!0,slideToClickedSlide:!1}),Object.assign(s.thumbs.swiper.params,{watchSlidesProgress:!0,slideToClickedSlide:!1}),s.thumbs.swiper.update();else if(isObject(e.swiper)){const t=Object.assign({},e.swiper);Object.assign(t,{watchSlidesProgress:!0,slideToClickedSlide:!1}),s.thumbs.swiper=new i(t),a=!0}return s.thumbs.swiper.el.classList.add(s.params.thumbs.thumbsContainerClass),s.thumbs.swiper.on("tap",l),!0}function d(e){const i=s.thumbs.swiper;if(!i||i.destroyed)return;const t="auto"===i.params.slidesPerView?i.slidesPerViewDynamic():i.params.slidesPerView;let r=1;const a=s.params.thumbs.slideThumbActiveClass;if(s.params.slidesPerView>1&&!s.params.centeredSlides&&(r=s.params.slidesPerView),s.params.thumbs.multipleActiveThumbs||(r=1),r=Math.floor(r),i.slides.forEach((e=>e.classList.remove(a))),i.params.loop||i.params.virtual&&i.params.virtual.enabled)for(let e=0;e{e.classList.add(a)}));else for(let e=0;ee.getAttribute("data-swiper-slide-index")===`${s.realIndex}`))[0];a=i.slides.indexOf(e),d=s.activeIndex>s.previousIndex?"next":"prev"}else a=s.realIndex,d=a>s.previousIndex?"next":"prev";n&&(a+="next"===d?l:-1*l),i.visibleSlidesIndexes&&i.visibleSlidesIndexes.indexOf(a)<0&&(i.params.centeredSlides?a=a>r?a-Math.floor(t/2)+1:a+Math.floor(t/2)-1:a>r&&i.params.slidesPerGroup,i.slideTo(a,e?0:void 0))}}s.thumbs={swiper:null},t("beforeInit",(()=>{const{thumbs:e}=s.params;if(e&&e.swiper)if("string"==typeof e.swiper||e.swiper instanceof HTMLElement){const i=getDocument(),t=()=>{const t="string"==typeof e.swiper?i.querySelector(e.swiper):e.swiper;if(t&&t.swiper)e.swiper=t.swiper,n(),d(!0);else if(t){const i=r=>{e.swiper=r.detail[0],t.removeEventListener("init",i),n(),d(!0),e.swiper.update(),s.update()};t.addEventListener("init",i)}return t},r=()=>{if(s.destroyed)return;t()||requestAnimationFrame(r)};requestAnimationFrame(r)}else n(),d(!0)})),t("slideChange update resize observerUpdate",(()=>{d()})),t("setTransition",((e,i)=>{const t=s.thumbs.swiper;t&&!t.destroyed&&t.setTransition(i)})),t("beforeDestroy",(()=>{const e=s.thumbs.swiper;e&&!e.destroyed&&a&&e.destroy()})),Object.assign(s.thumbs,{init:n,update:d})}export{Thumb as default}; -//# sourceMappingURL=thumbs.min.mjs.map \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/thumbs.min.mjs.map b/build/assets/js/vendor/swiper/modules/thumbs.min.mjs.map deleted file mode 100644 index 6d3de20..0000000 --- a/build/assets/js/vendor/swiper/modules/thumbs.min.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"thumbs.mjs.mjs","names":["getDocument","isObject","elementChildren","Thumb","_ref","swiper","extendParams","on","thumbs","multipleActiveThumbs","autoScrollOffset","slideThumbActiveClass","thumbsContainerClass","initialized","swiperCreated","onThumbClick","thumbsSwiper","destroyed","clickedIndex","clickedSlide","classList","contains","params","slideToIndex","loop","parseInt","getAttribute","slideToLoop","slideTo","init","thumbsParams","SwiperClass","constructor","Object","assign","originalParams","watchSlidesProgress","slideToClickedSlide","update","thumbsSwiperParams","el","add","initial","slidesPerView","slidesPerViewDynamic","thumbsToActivate","thumbActiveClass","centeredSlides","Math","floor","slides","forEach","slideEl","remove","virtual","enabled","i","slidesEl","realIndex","useOffset","currentThumbsIndex","activeIndex","newThumbsIndex","direction","newThumbsSlide","filter","indexOf","previousIndex","visibleSlidesIndexes","slidesPerGroup","undefined","HTMLElement","document","getThumbsElementAndInit","thumbsElement","querySelector","onThumbsSwiper","e","detail","removeEventListener","addEventListener","watchForThumbsToAppear","requestAnimationFrame","_s","duration","setTransition","destroy"],"sources":["0"],"mappings":"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"} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/thumbs.mjs b/build/assets/js/vendor/swiper/modules/thumbs.mjs deleted file mode 100644 index 2d61771..0000000 --- a/build/assets/js/vendor/swiper/modules/thumbs.mjs +++ /dev/null @@ -1,192 +0,0 @@ -import { g as getDocument } from '../shared/ssr-window.esm.mjs'; -import { k as isObject, e as elementChildren } from '../shared/utils.mjs'; - -function Thumb(_ref) { - let { - swiper, - extendParams, - on - } = _ref; - extendParams({ - thumbs: { - swiper: null, - multipleActiveThumbs: true, - autoScrollOffset: 0, - slideThumbActiveClass: 'swiper-slide-thumb-active', - thumbsContainerClass: 'swiper-thumbs' - } - }); - let initialized = false; - let swiperCreated = false; - swiper.thumbs = { - swiper: null - }; - function onThumbClick() { - const thumbsSwiper = swiper.thumbs.swiper; - if (!thumbsSwiper || thumbsSwiper.destroyed) return; - const clickedIndex = thumbsSwiper.clickedIndex; - const clickedSlide = thumbsSwiper.clickedSlide; - if (clickedSlide && clickedSlide.classList.contains(swiper.params.thumbs.slideThumbActiveClass)) return; - if (typeof clickedIndex === 'undefined' || clickedIndex === null) return; - let slideToIndex; - if (thumbsSwiper.params.loop) { - slideToIndex = parseInt(thumbsSwiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10); - } else { - slideToIndex = clickedIndex; - } - if (swiper.params.loop) { - swiper.slideToLoop(slideToIndex); - } else { - swiper.slideTo(slideToIndex); - } - } - function init() { - const { - thumbs: thumbsParams - } = swiper.params; - if (initialized) return false; - initialized = true; - const SwiperClass = swiper.constructor; - if (thumbsParams.swiper instanceof SwiperClass) { - swiper.thumbs.swiper = thumbsParams.swiper; - Object.assign(swiper.thumbs.swiper.originalParams, { - watchSlidesProgress: true, - slideToClickedSlide: false - }); - Object.assign(swiper.thumbs.swiper.params, { - watchSlidesProgress: true, - slideToClickedSlide: false - }); - swiper.thumbs.swiper.update(); - } else if (isObject(thumbsParams.swiper)) { - const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper); - Object.assign(thumbsSwiperParams, { - watchSlidesProgress: true, - slideToClickedSlide: false - }); - swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams); - swiperCreated = true; - } - swiper.thumbs.swiper.el.classList.add(swiper.params.thumbs.thumbsContainerClass); - swiper.thumbs.swiper.on('tap', onThumbClick); - return true; - } - function update(initial) { - const thumbsSwiper = swiper.thumbs.swiper; - if (!thumbsSwiper || thumbsSwiper.destroyed) return; - const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView; - - // Activate thumbs - let thumbsToActivate = 1; - const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass; - if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) { - thumbsToActivate = swiper.params.slidesPerView; - } - if (!swiper.params.thumbs.multipleActiveThumbs) { - thumbsToActivate = 1; - } - thumbsToActivate = Math.floor(thumbsToActivate); - thumbsSwiper.slides.forEach(slideEl => slideEl.classList.remove(thumbActiveClass)); - if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) { - for (let i = 0; i < thumbsToActivate; i += 1) { - elementChildren(thumbsSwiper.slidesEl, `[data-swiper-slide-index="${swiper.realIndex + i}"]`).forEach(slideEl => { - slideEl.classList.add(thumbActiveClass); - }); - } - } else { - for (let i = 0; i < thumbsToActivate; i += 1) { - if (thumbsSwiper.slides[swiper.realIndex + i]) { - thumbsSwiper.slides[swiper.realIndex + i].classList.add(thumbActiveClass); - } - } - } - const autoScrollOffset = swiper.params.thumbs.autoScrollOffset; - const useOffset = autoScrollOffset && !thumbsSwiper.params.loop; - if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) { - const currentThumbsIndex = thumbsSwiper.activeIndex; - let newThumbsIndex; - let direction; - if (thumbsSwiper.params.loop) { - const newThumbsSlide = thumbsSwiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') === `${swiper.realIndex}`)[0]; - newThumbsIndex = thumbsSwiper.slides.indexOf(newThumbsSlide); - direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev'; - } else { - newThumbsIndex = swiper.realIndex; - direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev'; - } - if (useOffset) { - newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset; - } - if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) { - if (thumbsSwiper.params.centeredSlides) { - if (newThumbsIndex > currentThumbsIndex) { - newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1; - } else { - newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1; - } - } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) ; - thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined); - } - } - } - on('beforeInit', () => { - const { - thumbs - } = swiper.params; - if (!thumbs || !thumbs.swiper) return; - if (typeof thumbs.swiper === 'string' || thumbs.swiper instanceof HTMLElement) { - const document = getDocument(); - const getThumbsElementAndInit = () => { - const thumbsElement = typeof thumbs.swiper === 'string' ? document.querySelector(thumbs.swiper) : thumbs.swiper; - if (thumbsElement && thumbsElement.swiper) { - thumbs.swiper = thumbsElement.swiper; - init(); - update(true); - } else if (thumbsElement) { - const onThumbsSwiper = e => { - thumbs.swiper = e.detail[0]; - thumbsElement.removeEventListener('init', onThumbsSwiper); - init(); - update(true); - thumbs.swiper.update(); - swiper.update(); - }; - thumbsElement.addEventListener('init', onThumbsSwiper); - } - return thumbsElement; - }; - const watchForThumbsToAppear = () => { - if (swiper.destroyed) return; - const thumbsElement = getThumbsElementAndInit(); - if (!thumbsElement) { - requestAnimationFrame(watchForThumbsToAppear); - } - }; - requestAnimationFrame(watchForThumbsToAppear); - } else { - init(); - update(true); - } - }); - on('slideChange update resize observerUpdate', () => { - update(); - }); - on('setTransition', (_s, duration) => { - const thumbsSwiper = swiper.thumbs.swiper; - if (!thumbsSwiper || thumbsSwiper.destroyed) return; - thumbsSwiper.setTransition(duration); - }); - on('beforeDestroy', () => { - const thumbsSwiper = swiper.thumbs.swiper; - if (!thumbsSwiper || thumbsSwiper.destroyed) return; - if (swiperCreated) { - thumbsSwiper.destroy(); - } - }); - Object.assign(swiper.thumbs, { - init, - update - }); -} - -export { Thumb as default }; diff --git a/build/assets/js/vendor/swiper/modules/thumbs.scss b/build/assets/js/vendor/swiper/modules/thumbs.scss deleted file mode 100644 index 9eaa1b3..0000000 --- a/build/assets/js/vendor/swiper/modules/thumbs.scss +++ /dev/null @@ -1,5 +0,0 @@ -.swiper-thumbs { - .swiper-slide-thumb-active { - // Styles for active thumb slide - } -} diff --git a/build/assets/js/vendor/swiper/modules/virtual-element.css b/build/assets/js/vendor/swiper/modules/virtual-element.css deleted file mode 100644 index 432b52b..0000000 --- a/build/assets/js/vendor/swiper/modules/virtual-element.css +++ /dev/null @@ -1,19 +0,0 @@ -.swiper-virtual ::slotted(swiper-slide) { - -webkit-backface-visibility: hidden; - transform: translateZ(0); -} -.swiper-virtual.swiper-css-mode .swiper-wrapper::after { - content: ''; - position: absolute; - left: 0; - top: 0; - pointer-events: none; -} -.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after { - height: 1px; - width: var(--swiper-virtual-size); -} -.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after { - width: 1px; - height: var(--swiper-virtual-size); -} diff --git a/build/assets/js/vendor/swiper/modules/virtual-element.min.css b/build/assets/js/vendor/swiper/modules/virtual-element.min.css deleted file mode 100644 index d0e6043..0000000 --- a/build/assets/js/vendor/swiper/modules/virtual-element.min.css +++ /dev/null @@ -1 +0,0 @@ -.swiper-virtual ::slotted(swiper-slide){-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper::after{content:'';position:absolute;left:0;top:0;pointer-events:none}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after{width:1px;height:var(--swiper-virtual-size)} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/virtual.css b/build/assets/js/vendor/swiper/modules/virtual.css deleted file mode 100644 index 60ebeea..0000000 --- a/build/assets/js/vendor/swiper/modules/virtual.css +++ /dev/null @@ -1,19 +0,0 @@ -.swiper-virtual .swiper-slide { - -webkit-backface-visibility: hidden; - transform: translateZ(0); -} -.swiper-virtual.swiper-css-mode .swiper-wrapper::after { - content: ''; - position: absolute; - left: 0; - top: 0; - pointer-events: none; -} -.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after { - height: 1px; - width: var(--swiper-virtual-size); -} -.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after { - width: 1px; - height: var(--swiper-virtual-size); -} diff --git a/build/assets/js/vendor/swiper/modules/virtual.less b/build/assets/js/vendor/swiper/modules/virtual.less deleted file mode 100644 index 824cc1e..0000000 --- a/build/assets/js/vendor/swiper/modules/virtual.less +++ /dev/null @@ -1,26 +0,0 @@ -.swiper-virtual .swiper-slide { - -webkit-backface-visibility: hidden; - transform: translateZ(0); -} -.swiper-virtual.swiper-css-mode { - .swiper-wrapper::after { - content: ''; - position: absolute; - left: 0; - top: 0; - pointer-events: none; - } -} -.swiper-virtual.swiper-css-mode.swiper-horizontal { - .swiper-wrapper::after { - height: 1px; - width: var(--swiper-virtual-size); - } -} - -.swiper-virtual.swiper-css-mode.swiper-vertical { - .swiper-wrapper::after { - width: 1px; - height: var(--swiper-virtual-size); - } -} diff --git a/build/assets/js/vendor/swiper/modules/virtual.min.css b/build/assets/js/vendor/swiper/modules/virtual.min.css deleted file mode 100644 index dbb4007..0000000 --- a/build/assets/js/vendor/swiper/modules/virtual.min.css +++ /dev/null @@ -1 +0,0 @@ -.swiper-virtual .swiper-slide{-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper::after{content:'';position:absolute;left:0;top:0;pointer-events:none}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after{width:1px;height:var(--swiper-virtual-size)} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/virtual.min.mjs b/build/assets/js/vendor/swiper/modules/virtual.min.mjs deleted file mode 100644 index 761b2d7..0000000 --- a/build/assets/js/vendor/swiper/modules/virtual.min.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{g as getDocument}from"../shared/ssr-window.esm.min.mjs";import{s as setCSSProperty,e as elementChildren,c as createElement}from"../shared/utils.min.mjs";function Virtual(e){let s,{swiper:t,extendParams:r,on:i,emit:a}=e;r({virtual:{enabled:!1,slides:[],cache:!0,renderSlide:null,renderExternal:null,renderExternalUpdate:!0,addSlidesBefore:0,addSlidesAfter:0}});const l=getDocument();t.virtual={cache:{},from:void 0,to:void 0,slides:[],offset:0,slidesGrid:[]};const d=l.createElement("div");function n(e,s){const r=t.params.virtual;if(r.cache&&t.virtual.cache[s])return t.virtual.cache[s];let i;return r.renderSlide?(i=r.renderSlide.call(t,e,s),"string"==typeof i&&(d.innerHTML=i,i=d.children[0])):i=t.isElement?createElement("swiper-slide"):createElement("div",t.params.slideClass),i.setAttribute("data-swiper-slide-index",s),r.renderSlide||(i.innerHTML=e),r.cache&&(t.virtual.cache[s]=i),i}function c(e){const{slidesPerView:s,slidesPerGroup:r,centeredSlides:i,loop:l}=t.params,{addSlidesBefore:d,addSlidesAfter:c}=t.params.virtual,{from:o,to:u,slides:p,slidesGrid:h,offset:f}=t.virtual;t.params.cssMode||t.updateActiveIndex();const v=t.activeIndex||0;let m,g,E;m=t.rtlTranslate?"right":t.isHorizontal()?"left":"top",i?(g=Math.floor(s/2)+r+c,E=Math.floor(s/2)+r+d):(g=s+(r-1)+c,E=(l?s:r)+d);let x=v-E,w=v+g;l||(x=Math.max(x,0),w=Math.min(w,p.length-1));let S=(t.slidesGrid[x]||0)-(t.slidesGrid[0]||0);function b(){t.updateSlides(),t.updateProgress(),t.updateSlidesClasses(),a("virtualUpdate")}if(l&&v>=E?(x-=E,i||(S+=t.slidesGrid[0])):l&&v{e.style[m]=S-Math.abs(t.cssOverflowAdjustment())+"px"})),t.updateProgress(),void a("virtualUpdate");if(t.params.virtual.renderExternal)return t.params.virtual.renderExternal.call(t,{offset:S,from:x,to:w,slides:function(){const e=[];for(let s=x;s<=w;s+=1)e.push(p[s]);return e}()}),void(t.params.virtual.renderExternalUpdate?b():a("virtualUpdate"));const A=[],M=[],y=e=>{let s=e;return e<0?s=p.length+e:s>=p.length&&(s-=p.length),s};if(e)t.slides.filter((e=>e.matches(`.${t.params.slideClass}, swiper-slide`))).forEach((e=>{e.remove()}));else for(let e=o;e<=u;e+=1)if(ew){const s=y(e);t.slides.filter((e=>e.matches(`.${t.params.slideClass}[data-swiper-slide-index="${s}"], swiper-slide[data-swiper-slide-index="${s}"]`))).forEach((e=>{e.remove()}))}const P=l?-p.length:0,j=l?2*p.length:p.length;for(let s=P;s=x&&s<=w){const t=y(s);void 0===u||e?M.push(t):(s>u&&M.push(t),s{t.slidesEl.append(n(p[e],e))})),l)for(let e=A.length-1;e>=0;e-=1){const s=A[e];t.slidesEl.prepend(n(p[s],s))}else A.sort(((e,s)=>s-e)),A.forEach((e=>{t.slidesEl.prepend(n(p[e],e))}));elementChildren(t.slidesEl,".swiper-slide, swiper-slide").forEach((e=>{e.style[m]=S-Math.abs(t.cssOverflowAdjustment())+"px"})),b()}i("beforeInit",(()=>{if(!t.params.virtual.enabled)return;let e;if(void 0===t.passedParams.virtual.slides){const s=[...t.slidesEl.children].filter((e=>e.matches(`.${t.params.slideClass}, swiper-slide`)));s&&s.length&&(t.virtual.slides=[...s],e=!0,s.forEach(((e,s)=>{e.setAttribute("data-swiper-slide-index",s),t.virtual.cache[s]=e,e.remove()})))}e||(t.virtual.slides=t.params.virtual.slides),t.classNames.push(`${t.params.containerModifierClass}virtual`),t.params.watchSlidesProgress=!0,t.originalParams.watchSlidesProgress=!0,c()})),i("setTranslate",(()=>{t.params.virtual.enabled&&(t.params.cssMode&&!t._immediateVirtual?(clearTimeout(s),s=setTimeout((()=>{c()}),100)):c())})),i("init update resize",(()=>{t.params.virtual.enabled&&t.params.cssMode&&setCSSProperty(t.wrapperEl,"--swiper-virtual-size",`${t.virtualSize}px`)})),Object.assign(t.virtual,{appendSlide:function(e){if("object"==typeof e&&"length"in e)for(let s=0;s{const r=e[t],a=r.getAttribute("data-swiper-slide-index");a&&r.setAttribute("data-swiper-slide-index",parseInt(a,10)+i),s[parseInt(t,10)+i]=r})),t.virtual.cache=s}c(!0),t.slideTo(r,0)},removeSlide:function(e){if(null==e)return;let s=t.activeIndex;if(Array.isArray(e))for(let r=e.length-1;r>=0;r-=1)t.params.virtual.cache&&(delete t.virtual.cache[e[r]],Object.keys(t.virtual.cache).forEach((s=>{s>e&&(t.virtual.cache[s-1]=t.virtual.cache[s],t.virtual.cache[s-1].setAttribute("data-swiper-slide-index",s-1),delete t.virtual.cache[s])}))),t.virtual.slides.splice(e[r],1),e[r]{s>e&&(t.virtual.cache[s-1]=t.virtual.cache[s],t.virtual.cache[s-1].setAttribute("data-swiper-slide-index",s-1),delete t.virtual.cache[s])}))),t.virtual.slides.splice(e,1),e= slidesBefore) { - from -= slidesBefore; - if (!centeredSlides) offset += swiper.slidesGrid[0]; - } else if (isLoop && activeIndex < slidesBefore) { - from = -slidesBefore; - if (centeredSlides) offset += swiper.slidesGrid[0]; - } - Object.assign(swiper.virtual, { - from, - to, - offset, - slidesGrid: swiper.slidesGrid, - slidesBefore, - slidesAfter - }); - function onRendered() { - swiper.updateSlides(); - swiper.updateProgress(); - swiper.updateSlidesClasses(); - emit('virtualUpdate'); - } - if (previousFrom === from && previousTo === to && !force) { - if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) { - swiper.slides.forEach(slideEl => { - slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`; - }); - } - swiper.updateProgress(); - emit('virtualUpdate'); - return; - } - if (swiper.params.virtual.renderExternal) { - swiper.params.virtual.renderExternal.call(swiper, { - offset, - from, - to, - slides: function getSlides() { - const slidesToRender = []; - for (let i = from; i <= to; i += 1) { - slidesToRender.push(slides[i]); - } - return slidesToRender; - }() - }); - if (swiper.params.virtual.renderExternalUpdate) { - onRendered(); - } else { - emit('virtualUpdate'); - } - return; - } - const prependIndexes = []; - const appendIndexes = []; - const getSlideIndex = index => { - let slideIndex = index; - if (index < 0) { - slideIndex = slides.length + index; - } else if (slideIndex >= slides.length) { - // eslint-disable-next-line - slideIndex = slideIndex - slides.length; - } - return slideIndex; - }; - if (force) { - swiper.slides.filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`)).forEach(slideEl => { - slideEl.remove(); - }); - } else { - for (let i = previousFrom; i <= previousTo; i += 1) { - if (i < from || i > to) { - const slideIndex = getSlideIndex(i); - swiper.slides.filter(el => el.matches(`.${swiper.params.slideClass}[data-swiper-slide-index="${slideIndex}"], swiper-slide[data-swiper-slide-index="${slideIndex}"]`)).forEach(slideEl => { - slideEl.remove(); - }); - } - } - } - const loopFrom = isLoop ? -slides.length : 0; - const loopTo = isLoop ? slides.length * 2 : slides.length; - for (let i = loopFrom; i < loopTo; i += 1) { - if (i >= from && i <= to) { - const slideIndex = getSlideIndex(i); - if (typeof previousTo === 'undefined' || force) { - appendIndexes.push(slideIndex); - } else { - if (i > previousTo) appendIndexes.push(slideIndex); - if (i < previousFrom) prependIndexes.push(slideIndex); - } - } - } - appendIndexes.forEach(index => { - swiper.slidesEl.append(renderSlide(slides[index], index)); - }); - if (isLoop) { - for (let i = prependIndexes.length - 1; i >= 0; i -= 1) { - const index = prependIndexes[i]; - swiper.slidesEl.prepend(renderSlide(slides[index], index)); - } - } else { - prependIndexes.sort((a, b) => b - a); - prependIndexes.forEach(index => { - swiper.slidesEl.prepend(renderSlide(slides[index], index)); - }); - } - elementChildren(swiper.slidesEl, '.swiper-slide, swiper-slide').forEach(slideEl => { - slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`; - }); - onRendered(); - } - function appendSlide(slides) { - if (typeof slides === 'object' && 'length' in slides) { - for (let i = 0; i < slides.length; i += 1) { - if (slides[i]) swiper.virtual.slides.push(slides[i]); - } - } else { - swiper.virtual.slides.push(slides); - } - update(true); - } - function prependSlide(slides) { - const activeIndex = swiper.activeIndex; - let newActiveIndex = activeIndex + 1; - let numberOfNewSlides = 1; - if (Array.isArray(slides)) { - for (let i = 0; i < slides.length; i += 1) { - if (slides[i]) swiper.virtual.slides.unshift(slides[i]); - } - newActiveIndex = activeIndex + slides.length; - numberOfNewSlides = slides.length; - } else { - swiper.virtual.slides.unshift(slides); - } - if (swiper.params.virtual.cache) { - const cache = swiper.virtual.cache; - const newCache = {}; - Object.keys(cache).forEach(cachedIndex => { - const cachedEl = cache[cachedIndex]; - const cachedElIndex = cachedEl.getAttribute('data-swiper-slide-index'); - if (cachedElIndex) { - cachedEl.setAttribute('data-swiper-slide-index', parseInt(cachedElIndex, 10) + numberOfNewSlides); - } - newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = cachedEl; - }); - swiper.virtual.cache = newCache; - } - update(true); - swiper.slideTo(newActiveIndex, 0); - } - function removeSlide(slidesIndexes) { - if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return; - let activeIndex = swiper.activeIndex; - if (Array.isArray(slidesIndexes)) { - for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) { - if (swiper.params.virtual.cache) { - delete swiper.virtual.cache[slidesIndexes[i]]; - // shift cache indexes - Object.keys(swiper.virtual.cache).forEach(key => { - if (key > slidesIndexes) { - swiper.virtual.cache[key - 1] = swiper.virtual.cache[key]; - swiper.virtual.cache[key - 1].setAttribute('data-swiper-slide-index', key - 1); - delete swiper.virtual.cache[key]; - } - }); - } - swiper.virtual.slides.splice(slidesIndexes[i], 1); - if (slidesIndexes[i] < activeIndex) activeIndex -= 1; - activeIndex = Math.max(activeIndex, 0); - } - } else { - if (swiper.params.virtual.cache) { - delete swiper.virtual.cache[slidesIndexes]; - // shift cache indexes - Object.keys(swiper.virtual.cache).forEach(key => { - if (key > slidesIndexes) { - swiper.virtual.cache[key - 1] = swiper.virtual.cache[key]; - swiper.virtual.cache[key - 1].setAttribute('data-swiper-slide-index', key - 1); - delete swiper.virtual.cache[key]; - } - }); - } - swiper.virtual.slides.splice(slidesIndexes, 1); - if (slidesIndexes < activeIndex) activeIndex -= 1; - activeIndex = Math.max(activeIndex, 0); - } - update(true); - swiper.slideTo(activeIndex, 0); - } - function removeAllSlides() { - swiper.virtual.slides = []; - if (swiper.params.virtual.cache) { - swiper.virtual.cache = {}; - } - update(true); - swiper.slideTo(0, 0); - } - on('beforeInit', () => { - if (!swiper.params.virtual.enabled) return; - let domSlidesAssigned; - if (typeof swiper.passedParams.virtual.slides === 'undefined') { - const slides = [...swiper.slidesEl.children].filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`)); - if (slides && slides.length) { - swiper.virtual.slides = [...slides]; - domSlidesAssigned = true; - slides.forEach((slideEl, slideIndex) => { - slideEl.setAttribute('data-swiper-slide-index', slideIndex); - swiper.virtual.cache[slideIndex] = slideEl; - slideEl.remove(); - }); - } - } - if (!domSlidesAssigned) { - swiper.virtual.slides = swiper.params.virtual.slides; - } - swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`); - swiper.params.watchSlidesProgress = true; - swiper.originalParams.watchSlidesProgress = true; - update(); - }); - on('setTranslate', () => { - if (!swiper.params.virtual.enabled) return; - if (swiper.params.cssMode && !swiper._immediateVirtual) { - clearTimeout(cssModeTimeout); - cssModeTimeout = setTimeout(() => { - update(); - }, 100); - } else { - update(); - } - }); - on('init update resize', () => { - if (!swiper.params.virtual.enabled) return; - if (swiper.params.cssMode) { - setCSSProperty(swiper.wrapperEl, '--swiper-virtual-size', `${swiper.virtualSize}px`); - } - }); - Object.assign(swiper.virtual, { - appendSlide, - prependSlide, - removeSlide, - removeAllSlides, - update - }); -} - -export { Virtual as default }; diff --git a/build/assets/js/vendor/swiper/modules/virtual.scss b/build/assets/js/vendor/swiper/modules/virtual.scss deleted file mode 100644 index 824cc1e..0000000 --- a/build/assets/js/vendor/swiper/modules/virtual.scss +++ /dev/null @@ -1,26 +0,0 @@ -.swiper-virtual .swiper-slide { - -webkit-backface-visibility: hidden; - transform: translateZ(0); -} -.swiper-virtual.swiper-css-mode { - .swiper-wrapper::after { - content: ''; - position: absolute; - left: 0; - top: 0; - pointer-events: none; - } -} -.swiper-virtual.swiper-css-mode.swiper-horizontal { - .swiper-wrapper::after { - height: 1px; - width: var(--swiper-virtual-size); - } -} - -.swiper-virtual.swiper-css-mode.swiper-vertical { - .swiper-wrapper::after { - width: 1px; - height: var(--swiper-virtual-size); - } -} diff --git a/build/assets/js/vendor/swiper/modules/zoom-element.css b/build/assets/js/vendor/swiper/modules/zoom-element.css deleted file mode 100644 index f81a92b..0000000 --- a/build/assets/js/vendor/swiper/modules/zoom-element.css +++ /dev/null @@ -1,5 +0,0 @@ -/* Zoom container styles start *//* Zoom container styles end */ -::slotted(.swiper-slide-zoomed) { - cursor: move; - touch-action: none; -} diff --git a/build/assets/js/vendor/swiper/modules/zoom-element.min.css b/build/assets/js/vendor/swiper/modules/zoom-element.min.css deleted file mode 100644 index 17d073f..0000000 --- a/build/assets/js/vendor/swiper/modules/zoom-element.min.css +++ /dev/null @@ -1 +0,0 @@ -::slotted(.swiper-slide-zoomed){cursor:move;touch-action:none} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/zoom.css b/build/assets/js/vendor/swiper/modules/zoom.css deleted file mode 100644 index 40f5b10..0000000 --- a/build/assets/js/vendor/swiper/modules/zoom.css +++ /dev/null @@ -1,21 +0,0 @@ -/* Zoom container styles start */ -.swiper-zoom-container { - width: 100%; - height: 100%; - display: flex; - justify-content: center; - align-items: center; - text-align: center; -} -.swiper-zoom-container > img, -.swiper-zoom-container > svg, -.swiper-zoom-container > canvas { - max-width: 100%; - max-height: 100%; - object-fit: contain; -} -/* Zoom container styles end */ -.swiper-slide-zoomed { - cursor: move; - touch-action: none; -} diff --git a/build/assets/js/vendor/swiper/modules/zoom.less b/build/assets/js/vendor/swiper/modules/zoom.less deleted file mode 100644 index d226ae9..0000000 --- a/build/assets/js/vendor/swiper/modules/zoom.less +++ /dev/null @@ -1,23 +0,0 @@ -/* Zoom container styles start */ -.swiper-zoom-container { - width: 100%; - height: 100%; - display: flex; - justify-content: center; - align-items: center; - text-align: center; - - > img, - > svg, - > canvas { - max-width: 100%; - max-height: 100%; - object-fit: contain; - } -} -/* Zoom container styles end */ - -.swiper-slide-zoomed { - cursor: move; - touch-action: none; -} diff --git a/build/assets/js/vendor/swiper/modules/zoom.min.css b/build/assets/js/vendor/swiper/modules/zoom.min.css deleted file mode 100644 index e55cd9a..0000000 --- a/build/assets/js/vendor/swiper/modules/zoom.min.css +++ /dev/null @@ -1 +0,0 @@ -.swiper-zoom-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;object-fit:contain}.swiper-slide-zoomed{cursor:move;touch-action:none} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/zoom.min.mjs b/build/assets/js/vendor/swiper/modules/zoom.min.mjs deleted file mode 100644 index cf83989..0000000 --- a/build/assets/js/vendor/swiper/modules/zoom.min.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{a as getWindow}from"../shared/ssr-window.esm.min.mjs";import{e as elementChildren,a as elementParents,b as elementOffset,i as getTranslate}from"../shared/utils.min.mjs";function Zoom(e){let{swiper:t,extendParams:i,on:a,emit:r}=e;const s=getWindow();i({zoom:{enabled:!1,maxRatio:3,minRatio:1,toggle:!0,containerClass:"swiper-zoom-container",zoomedSlideClass:"swiper-slide-zoomed"}}),t.zoom={enabled:!1};let o,n,l=1,m=!1;const c=[],d={originX:0,originY:0,slideEl:void 0,slideWidth:void 0,slideHeight:void 0,imageEl:void 0,imageWrapEl:void 0,maxRatio:3},u={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:{}},p={x:void 0,y:void 0,prevPositionX:void 0,prevPositionY:void 0,prevTime:void 0};let g=1;function h(){if(c.length<2)return 1;const e=c[0].pageX,t=c[0].pageY,i=c[1].pageX,a=c[1].pageY;return Math.sqrt((i-e)**2+(a-t)**2)}function E(e){const i=t.isElement?"swiper-slide":`.${t.params.slideClass}`;return!!e.target.matches(i)||t.slides.filter((t=>t.contains(e.target))).length>0}function v(e){if("mouse"===e.pointerType&&c.splice(0,c.length),!E(e))return;const i=t.params.zoom;if(o=!1,n=!1,c.push(e),!(c.length<2)){if(o=!0,d.scaleStart=h(),!d.slideEl){d.slideEl=e.target.closest(`.${t.params.slideClass}, swiper-slide`),d.slideEl||(d.slideEl=t.slides[t.activeIndex]);let a=d.slideEl.querySelector(`.${i.containerClass}`);if(a&&(a=a.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),d.imageEl=a,d.imageWrapEl=a?elementParents(d.imageEl,`.${i.containerClass}`)[0]:void 0,!d.imageWrapEl)return void(d.imageEl=void 0);d.maxRatio=d.imageWrapEl.getAttribute("data-swiper-zoom")||i.maxRatio}if(d.imageEl){const[e,t]=function(){if(c.length<2)return{x:null,y:null};const e=d.imageEl.getBoundingClientRect();return[(c[0].pageX+(c[1].pageX-c[0].pageX)/2-e.x-s.scrollX)/l,(c[0].pageY+(c[1].pageY-c[0].pageY)/2-e.y-s.scrollY)/l]}();d.originX=e,d.originY=t,d.imageEl.style.transitionDuration="0ms"}m=!0}}function f(e){if(!E(e))return;const i=t.params.zoom,a=t.zoom,r=c.findIndex((t=>t.pointerId===e.pointerId));r>=0&&(c[r]=e),c.length<2||(n=!0,d.scaleMove=h(),d.imageEl&&(a.scale=d.scaleMove/d.scaleStart*l,a.scale>d.maxRatio&&(a.scale=d.maxRatio-1+(a.scale-d.maxRatio+1)**.5),a.scalet.pointerId===e.pointerId));r>=0&&c.splice(r,1),o&&n&&(o=!1,n=!1,d.imageEl&&(a.scale=Math.max(Math.min(a.scale,d.maxRatio),i.minRatio),d.imageEl.style.transitionDuration=`${t.params.speed}ms`,d.imageEl.style.transform=`translate3d(0,0,0) scale(${a.scale})`,l=a.scale,m=!1,a.scale>1&&d.slideEl?d.slideEl.classList.add(`${i.zoomedSlideClass}`):a.scale<=1&&d.slideEl&&d.slideEl.classList.remove(`${i.zoomedSlideClass}`),1===a.scale&&(d.originX=0,d.originY=0,d.slideEl=void 0)))}function X(e){if(!E(e)||!function(e){const i=`.${t.params.zoom.containerClass}`;return!!e.target.matches(i)||[...t.hostEl.querySelectorAll(i)].filter((t=>t.contains(e.target))).length>0}(e))return;const i=t.zoom;if(!d.imageEl)return;if(!u.isTouched||!d.slideEl)return;u.isMoved||(u.width=d.imageEl.offsetWidth,u.height=d.imageEl.offsetHeight,u.startX=getTranslate(d.imageWrapEl,"x")||0,u.startY=getTranslate(d.imageWrapEl,"y")||0,d.slideWidth=d.slideEl.offsetWidth,d.slideHeight=d.slideEl.offsetHeight,d.imageWrapEl.style.transitionDuration="0ms");const a=u.width*i.scale,r=u.height*i.scale;if(a0?c[0].pageX:e.pageX,u.touchesCurrent.y=c.length>0?c[0].pageY:e.pageY;if(Math.max(Math.abs(u.touchesCurrent.x-u.touchesStart.x),Math.abs(u.touchesCurrent.y-u.touchesStart.y))>5&&(t.allowClick=!1),!u.isMoved&&!m){if(t.isHorizontal()&&(Math.floor(u.minX)===Math.floor(u.startX)&&u.touchesCurrent.xu.touchesStart.x))return void(u.isTouched=!1);if(!t.isHorizontal()&&(Math.floor(u.minY)===Math.floor(u.startY)&&u.touchesCurrent.yu.touchesStart.y))return void(u.isTouched=!1)}e.cancelable&&e.preventDefault(),e.stopPropagation(),u.isMoved=!0;const s=(i.scale-l)/(d.maxRatio-t.params.zoom.minRatio),{originX:o,originY:n}=d;u.currentX=u.touchesCurrent.x-u.touchesStart.x+u.startX+s*(u.width-2*o),u.currentY=u.touchesCurrent.y-u.touchesStart.y+u.startY+s*(u.height-2*n),u.currentXu.maxX&&(u.currentX=u.maxX-1+(u.currentX-u.maxX+1)**.8),u.currentYu.maxY&&(u.currentY=u.maxY-1+(u.currentY-u.maxY+1)**.8),p.prevPositionX||(p.prevPositionX=u.touchesCurrent.x),p.prevPositionY||(p.prevPositionY=u.touchesCurrent.y),p.prevTime||(p.prevTime=Date.now()),p.x=(u.touchesCurrent.x-p.prevPositionX)/(Date.now()-p.prevTime)/2,p.y=(u.touchesCurrent.y-p.prevPositionY)/(Date.now()-p.prevTime)/2,Math.abs(u.touchesCurrent.x-p.prevPositionX)<2&&(p.x=0),Math.abs(u.touchesCurrent.y-p.prevPositionY)<2&&(p.y=0),p.prevPositionX=u.touchesCurrent.x,p.prevPositionY=u.touchesCurrent.y,p.prevTime=Date.now(),d.imageWrapEl.style.transform=`translate3d(${u.currentX}px, ${u.currentY}px,0)`}function Y(){const e=t.zoom;d.slideEl&&t.activeIndex!==t.slides.indexOf(d.slideEl)&&(d.imageEl&&(d.imageEl.style.transform="translate3d(0,0,0) scale(1)"),d.imageWrapEl&&(d.imageWrapEl.style.transform="translate3d(0,0,0)"),d.slideEl.classList.remove(`${t.params.zoom.zoomedSlideClass}`),e.scale=1,l=1,d.slideEl=void 0,d.imageEl=void 0,d.imageWrapEl=void 0,d.originX=0,d.originY=0)}function y(e){const i=t.zoom,a=t.params.zoom;if(!d.slideEl){e&&e.target&&(d.slideEl=e.target.closest(`.${t.params.slideClass}, swiper-slide`)),d.slideEl||(t.params.virtual&&t.params.virtual.enabled&&t.virtual?d.slideEl=elementChildren(t.slidesEl,`.${t.params.slideActiveClass}`)[0]:d.slideEl=t.slides[t.activeIndex]);let i=d.slideEl.querySelector(`.${a.containerClass}`);i&&(i=i.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),d.imageEl=i,d.imageWrapEl=i?elementParents(d.imageEl,`.${a.containerClass}`)[0]:void 0}if(!d.imageEl||!d.imageWrapEl)return;let r,o,n,m,c,p,g,h,E,v,f,x,X,Y,y,z,C,w;t.params.cssMode&&(t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.touchAction="none"),d.slideEl.classList.add(`${a.zoomedSlideClass}`),void 0===u.touchesStart.x&&e?(r=e.pageX,o=e.pageY):(r=u.touchesStart.x,o=u.touchesStart.y);const M="number"==typeof e?e:null;1===l&&M&&(r=void 0,o=void 0),i.scale=M||d.imageWrapEl.getAttribute("data-swiper-zoom")||a.maxRatio,l=M||d.imageWrapEl.getAttribute("data-swiper-zoom")||a.maxRatio,!e||1===l&&M?(g=0,h=0):(C=d.slideEl.offsetWidth,w=d.slideEl.offsetHeight,n=elementOffset(d.slideEl).left+s.scrollX,m=elementOffset(d.slideEl).top+s.scrollY,c=n+C/2-r,p=m+w/2-o,E=d.imageEl.offsetWidth,v=d.imageEl.offsetHeight,f=E*i.scale,x=v*i.scale,X=Math.min(C/2-f/2,0),Y=Math.min(w/2-x/2,0),y=-X,z=-Y,g=c*i.scale,h=p*i.scale,gy&&(g=y),hz&&(h=z)),M&&1===i.scale&&(d.originX=0,d.originY=0),d.imageWrapEl.style.transitionDuration="300ms",d.imageWrapEl.style.transform=`translate3d(${g}px, ${h}px,0)`,d.imageEl.style.transitionDuration="300ms",d.imageEl.style.transform=`translate3d(0,0,0) scale(${i.scale})`}function z(){const e=t.zoom,i=t.params.zoom;if(!d.slideEl){t.params.virtual&&t.params.virtual.enabled&&t.virtual?d.slideEl=elementChildren(t.slidesEl,`.${t.params.slideActiveClass}`)[0]:d.slideEl=t.slides[t.activeIndex];let e=d.slideEl.querySelector(`.${i.containerClass}`);e&&(e=e.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),d.imageEl=e,d.imageWrapEl=e?elementParents(d.imageEl,`.${i.containerClass}`)[0]:void 0}d.imageEl&&d.imageWrapEl&&(t.params.cssMode&&(t.wrapperEl.style.overflow="",t.wrapperEl.style.touchAction=""),e.scale=1,l=1,d.imageWrapEl.style.transitionDuration="300ms",d.imageWrapEl.style.transform="translate3d(0,0,0)",d.imageEl.style.transitionDuration="300ms",d.imageEl.style.transform="translate3d(0,0,0) scale(1)",d.slideEl.classList.remove(`${i.zoomedSlideClass}`),d.slideEl=void 0,d.originX=0,d.originY=0)}function C(e){const i=t.zoom;i.scale&&1!==i.scale?z():y(e)}function w(){return{passiveListener:!!t.params.passiveListeners&&{passive:!0,capture:!1},activeListenerWithCapture:!t.params.passiveListeners||{passive:!1,capture:!0}}}function M(){const e=t.zoom;if(e.enabled)return;e.enabled=!0;const{passiveListener:i,activeListenerWithCapture:a}=w();t.wrapperEl.addEventListener("pointerdown",v,i),t.wrapperEl.addEventListener("pointermove",f,a),["pointerup","pointercancel","pointerout"].forEach((e=>{t.wrapperEl.addEventListener(e,x,i)})),t.wrapperEl.addEventListener("pointermove",X,a)}function W(){const e=t.zoom;if(!e.enabled)return;e.enabled=!1;const{passiveListener:i,activeListenerWithCapture:a}=w();t.wrapperEl.removeEventListener("pointerdown",v,i),t.wrapperEl.removeEventListener("pointermove",f,a),["pointerup","pointercancel","pointerout"].forEach((e=>{t.wrapperEl.removeEventListener(e,x,i)})),t.wrapperEl.removeEventListener("pointermove",X,a)}Object.defineProperty(t.zoom,"scale",{get:()=>g,set(e){if(g!==e){const t=d.imageEl,i=d.slideEl;r("zoomChange",e,t,i)}g=e}}),a("init",(()=>{t.params.zoom.enabled&&M()})),a("destroy",(()=>{W()})),a("touchStart",((e,i)=>{t.zoom.enabled&&function(e){const i=t.device;if(!d.imageEl)return;if(u.isTouched)return;i.android&&e.cancelable&&e.preventDefault(),u.isTouched=!0;const a=c.length>0?c[0]:e;u.touchesStart.x=a.pageX,u.touchesStart.y=a.pageY}(i)})),a("touchEnd",((e,i)=>{t.zoom.enabled&&function(){const e=t.zoom;if(!d.imageEl)return;if(!u.isTouched||!u.isMoved)return u.isTouched=!1,void(u.isMoved=!1);u.isTouched=!1,u.isMoved=!1;let i=300,a=300;const r=p.x*i,s=u.currentX+r,o=p.y*a,n=u.currentY+o;0!==p.x&&(i=Math.abs((s-u.currentX)/p.x)),0!==p.y&&(a=Math.abs((n-u.currentY)/p.y));const l=Math.max(i,a);u.currentX=s,u.currentY=n;const m=u.width*e.scale,c=u.height*e.scale;u.minX=Math.min(d.slideWidth/2-m/2,0),u.maxX=-u.minX,u.minY=Math.min(d.slideHeight/2-c/2,0),u.maxY=-u.minY,u.currentX=Math.max(Math.min(u.currentX,u.maxX),u.minX),u.currentY=Math.max(Math.min(u.currentY,u.maxY),u.minY),d.imageWrapEl.style.transitionDuration=`${l}ms`,d.imageWrapEl.style.transform=`translate3d(${u.currentX}px, ${u.currentY}px,0)`}()})),a("doubleTap",((e,i)=>{!t.animating&&t.params.zoom.enabled&&t.zoom.enabled&&t.params.zoom.toggle&&C(i)})),a("transitionEnd",(()=>{t.zoom.enabled&&t.params.zoom.enabled&&Y()})),a("slideChange",(()=>{t.zoom.enabled&&t.params.zoom.enabled&&t.params.cssMode&&Y()})),Object.assign(t.zoom,{enable:M,disable:W,in:y,out:z,toggle:C})}export{Zoom as default}; -//# sourceMappingURL=zoom.min.mjs.map \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/zoom.min.mjs.map b/build/assets/js/vendor/swiper/modules/zoom.min.mjs.map deleted file mode 100644 index 89bd7ac..0000000 --- a/build/assets/js/vendor/swiper/modules/zoom.min.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"zoom.mjs.mjs","names":["getWindow","elementChildren","elementParents","elementOffset","getTranslate","Zoom","_ref","swiper","extendParams","on","emit","window","zoom","enabled","maxRatio","minRatio","toggle","containerClass","zoomedSlideClass","fakeGestureTouched","fakeGestureMoved","currentScale","isScaling","evCache","gesture","originX","originY","slideEl","undefined","slideWidth","slideHeight","imageEl","imageWrapEl","image","isTouched","isMoved","currentX","currentY","minX","minY","maxX","maxY","width","height","startX","startY","touchesStart","touchesCurrent","velocity","x","y","prevPositionX","prevPositionY","prevTime","scale","getDistanceBetweenTouches","length","x1","pageX","y1","pageY","x2","y2","Math","sqrt","eventWithinSlide","e","slideSelector","isElement","params","slideClass","target","matches","slides","filter","contains","onGestureStart","pointerType","splice","push","scaleStart","closest","activeIndex","querySelector","querySelectorAll","getAttribute","box","getBoundingClientRect","scrollX","scrollY","getScaleOrigin","style","transitionDuration","onGestureChange","pointerIndex","findIndex","cachedEv","pointerId","scaleMove","transform","onGestureEnd","type","max","min","speed","classList","add","remove","onTouchMove","selector","hostEl","containerEl","eventWithinZoomContainer","offsetWidth","offsetHeight","scaledWidth","scaledHeight","abs","allowClick","isHorizontal","floor","cancelable","preventDefault","stopPropagation","scaleRatio","Date","now","onTransitionEnd","indexOf","zoomIn","virtual","slidesEl","slideActiveClass","touchX","touchY","offsetX","offsetY","diffX","diffY","translateX","translateY","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","cssMode","wrapperEl","overflow","touchAction","forceZoomRatio","left","top","zoomOut","zoomToggle","getListeners","passiveListener","passiveListeners","passive","capture","activeListenerWithCapture","enable","addEventListener","forEach","eventName","disable","removeEventListener","Object","defineProperty","get","set","value","_s","device","android","event","onTouchStart","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","momentumDuration","onTouchEnd","animating","assign","in","out"],"sources":["0"],"mappings":"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"} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/modules/zoom.mjs b/build/assets/js/vendor/swiper/modules/zoom.mjs deleted file mode 100644 index 47dfc21..0000000 --- a/build/assets/js/vendor/swiper/modules/zoom.mjs +++ /dev/null @@ -1,591 +0,0 @@ -import { a as getWindow } from '../shared/ssr-window.esm.mjs'; -import { e as elementChildren, a as elementParents, b as elementOffset, i as getTranslate } from '../shared/utils.mjs'; - -function Zoom(_ref) { - let { - swiper, - extendParams, - on, - emit - } = _ref; - const window = getWindow(); - extendParams({ - zoom: { - enabled: false, - maxRatio: 3, - minRatio: 1, - toggle: true, - containerClass: 'swiper-zoom-container', - zoomedSlideClass: 'swiper-slide-zoomed' - } - }); - swiper.zoom = { - enabled: false - }; - let currentScale = 1; - let isScaling = false; - let fakeGestureTouched; - let fakeGestureMoved; - const evCache = []; - const gesture = { - originX: 0, - originY: 0, - slideEl: undefined, - slideWidth: undefined, - slideHeight: undefined, - imageEl: undefined, - imageWrapEl: undefined, - maxRatio: 3 - }; - const image = { - isTouched: undefined, - isMoved: undefined, - currentX: undefined, - currentY: undefined, - minX: undefined, - minY: undefined, - maxX: undefined, - maxY: undefined, - width: undefined, - height: undefined, - startX: undefined, - startY: undefined, - touchesStart: {}, - touchesCurrent: {} - }; - const velocity = { - x: undefined, - y: undefined, - prevPositionX: undefined, - prevPositionY: undefined, - prevTime: undefined - }; - let scale = 1; - Object.defineProperty(swiper.zoom, 'scale', { - get() { - return scale; - }, - set(value) { - if (scale !== value) { - const imageEl = gesture.imageEl; - const slideEl = gesture.slideEl; - emit('zoomChange', value, imageEl, slideEl); - } - scale = value; - } - }); - function getDistanceBetweenTouches() { - if (evCache.length < 2) return 1; - const x1 = evCache[0].pageX; - const y1 = evCache[0].pageY; - const x2 = evCache[1].pageX; - const y2 = evCache[1].pageY; - const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2); - return distance; - } - function getScaleOrigin() { - if (evCache.length < 2) return { - x: null, - y: null - }; - const box = gesture.imageEl.getBoundingClientRect(); - return [(evCache[0].pageX + (evCache[1].pageX - evCache[0].pageX) / 2 - box.x - window.scrollX) / currentScale, (evCache[0].pageY + (evCache[1].pageY - evCache[0].pageY) / 2 - box.y - window.scrollY) / currentScale]; - } - function getSlideSelector() { - return swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`; - } - function eventWithinSlide(e) { - const slideSelector = getSlideSelector(); - if (e.target.matches(slideSelector)) return true; - if (swiper.slides.filter(slideEl => slideEl.contains(e.target)).length > 0) return true; - return false; - } - function eventWithinZoomContainer(e) { - const selector = `.${swiper.params.zoom.containerClass}`; - if (e.target.matches(selector)) return true; - if ([...swiper.hostEl.querySelectorAll(selector)].filter(containerEl => containerEl.contains(e.target)).length > 0) return true; - return false; - } - - // Events - function onGestureStart(e) { - if (e.pointerType === 'mouse') { - evCache.splice(0, evCache.length); - } - if (!eventWithinSlide(e)) return; - const params = swiper.params.zoom; - fakeGestureTouched = false; - fakeGestureMoved = false; - evCache.push(e); - if (evCache.length < 2) { - return; - } - fakeGestureTouched = true; - gesture.scaleStart = getDistanceBetweenTouches(); - if (!gesture.slideEl) { - gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`); - if (!gesture.slideEl) gesture.slideEl = swiper.slides[swiper.activeIndex]; - let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`); - if (imageEl) { - imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0]; - } - gesture.imageEl = imageEl; - if (imageEl) { - gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0]; - } else { - gesture.imageWrapEl = undefined; - } - if (!gesture.imageWrapEl) { - gesture.imageEl = undefined; - return; - } - gesture.maxRatio = gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio; - } - if (gesture.imageEl) { - const [originX, originY] = getScaleOrigin(); - gesture.originX = originX; - gesture.originY = originY; - gesture.imageEl.style.transitionDuration = '0ms'; - } - isScaling = true; - } - function onGestureChange(e) { - if (!eventWithinSlide(e)) return; - const params = swiper.params.zoom; - const zoom = swiper.zoom; - const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId); - if (pointerIndex >= 0) evCache[pointerIndex] = e; - if (evCache.length < 2) { - return; - } - fakeGestureMoved = true; - gesture.scaleMove = getDistanceBetweenTouches(); - if (!gesture.imageEl) { - return; - } - zoom.scale = gesture.scaleMove / gesture.scaleStart * currentScale; - if (zoom.scale > gesture.maxRatio) { - zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5; - } - if (zoom.scale < params.minRatio) { - zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5; - } - gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`; - } - function onGestureEnd(e) { - if (!eventWithinSlide(e)) return; - if (e.pointerType === 'mouse' && e.type === 'pointerout') return; - const params = swiper.params.zoom; - const zoom = swiper.zoom; - const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId); - if (pointerIndex >= 0) evCache.splice(pointerIndex, 1); - if (!fakeGestureTouched || !fakeGestureMoved) { - return; - } - fakeGestureTouched = false; - fakeGestureMoved = false; - if (!gesture.imageEl) return; - zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio); - gesture.imageEl.style.transitionDuration = `${swiper.params.speed}ms`; - gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`; - currentScale = zoom.scale; - isScaling = false; - if (zoom.scale > 1 && gesture.slideEl) { - gesture.slideEl.classList.add(`${params.zoomedSlideClass}`); - } else if (zoom.scale <= 1 && gesture.slideEl) { - gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`); - } - if (zoom.scale === 1) { - gesture.originX = 0; - gesture.originY = 0; - gesture.slideEl = undefined; - } - } - function onTouchStart(e) { - const device = swiper.device; - if (!gesture.imageEl) return; - if (image.isTouched) return; - if (device.android && e.cancelable) e.preventDefault(); - image.isTouched = true; - const event = evCache.length > 0 ? evCache[0] : e; - image.touchesStart.x = event.pageX; - image.touchesStart.y = event.pageY; - } - function onTouchMove(e) { - if (!eventWithinSlide(e) || !eventWithinZoomContainer(e)) return; - const zoom = swiper.zoom; - if (!gesture.imageEl) return; - if (!image.isTouched || !gesture.slideEl) return; - if (!image.isMoved) { - image.width = gesture.imageEl.offsetWidth; - image.height = gesture.imageEl.offsetHeight; - image.startX = getTranslate(gesture.imageWrapEl, 'x') || 0; - image.startY = getTranslate(gesture.imageWrapEl, 'y') || 0; - gesture.slideWidth = gesture.slideEl.offsetWidth; - gesture.slideHeight = gesture.slideEl.offsetHeight; - gesture.imageWrapEl.style.transitionDuration = '0ms'; - } - // Define if we need image drag - const scaledWidth = image.width * zoom.scale; - const scaledHeight = image.height * zoom.scale; - if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return; - image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0); - image.maxX = -image.minX; - image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0); - image.maxY = -image.minY; - image.touchesCurrent.x = evCache.length > 0 ? evCache[0].pageX : e.pageX; - image.touchesCurrent.y = evCache.length > 0 ? evCache[0].pageY : e.pageY; - const touchesDiff = Math.max(Math.abs(image.touchesCurrent.x - image.touchesStart.x), Math.abs(image.touchesCurrent.y - image.touchesStart.y)); - if (touchesDiff > 5) { - swiper.allowClick = false; - } - if (!image.isMoved && !isScaling) { - if (swiper.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) { - image.isTouched = false; - return; - } - if (!swiper.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) { - image.isTouched = false; - return; - } - } - if (e.cancelable) { - e.preventDefault(); - } - e.stopPropagation(); - image.isMoved = true; - const scaleRatio = (zoom.scale - currentScale) / (gesture.maxRatio - swiper.params.zoom.minRatio); - const { - originX, - originY - } = gesture; - image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX + scaleRatio * (image.width - originX * 2); - image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY + scaleRatio * (image.height - originY * 2); - if (image.currentX < image.minX) { - image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8; - } - if (image.currentX > image.maxX) { - image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8; - } - if (image.currentY < image.minY) { - image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8; - } - if (image.currentY > image.maxY) { - image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8; - } - - // Velocity - if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x; - if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y; - if (!velocity.prevTime) velocity.prevTime = Date.now(); - velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2; - velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2; - if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0; - if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0; - velocity.prevPositionX = image.touchesCurrent.x; - velocity.prevPositionY = image.touchesCurrent.y; - velocity.prevTime = Date.now(); - gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`; - } - function onTouchEnd() { - const zoom = swiper.zoom; - if (!gesture.imageEl) return; - if (!image.isTouched || !image.isMoved) { - image.isTouched = false; - image.isMoved = false; - return; - } - image.isTouched = false; - image.isMoved = false; - let momentumDurationX = 300; - let momentumDurationY = 300; - const momentumDistanceX = velocity.x * momentumDurationX; - const newPositionX = image.currentX + momentumDistanceX; - const momentumDistanceY = velocity.y * momentumDurationY; - const newPositionY = image.currentY + momentumDistanceY; - - // Fix duration - if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x); - if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y); - const momentumDuration = Math.max(momentumDurationX, momentumDurationY); - image.currentX = newPositionX; - image.currentY = newPositionY; - // Define if we need image drag - const scaledWidth = image.width * zoom.scale; - const scaledHeight = image.height * zoom.scale; - image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0); - image.maxX = -image.minX; - image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0); - image.maxY = -image.minY; - image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX); - image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY); - gesture.imageWrapEl.style.transitionDuration = `${momentumDuration}ms`; - gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`; - } - function onTransitionEnd() { - const zoom = swiper.zoom; - if (gesture.slideEl && swiper.activeIndex !== swiper.slides.indexOf(gesture.slideEl)) { - if (gesture.imageEl) { - gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)'; - } - if (gesture.imageWrapEl) { - gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)'; - } - gesture.slideEl.classList.remove(`${swiper.params.zoom.zoomedSlideClass}`); - zoom.scale = 1; - currentScale = 1; - gesture.slideEl = undefined; - gesture.imageEl = undefined; - gesture.imageWrapEl = undefined; - gesture.originX = 0; - gesture.originY = 0; - } - } - function zoomIn(e) { - const zoom = swiper.zoom; - const params = swiper.params.zoom; - if (!gesture.slideEl) { - if (e && e.target) { - gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`); - } - if (!gesture.slideEl) { - if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) { - gesture.slideEl = elementChildren(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0]; - } else { - gesture.slideEl = swiper.slides[swiper.activeIndex]; - } - } - let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`); - if (imageEl) { - imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0]; - } - gesture.imageEl = imageEl; - if (imageEl) { - gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0]; - } else { - gesture.imageWrapEl = undefined; - } - } - if (!gesture.imageEl || !gesture.imageWrapEl) return; - if (swiper.params.cssMode) { - swiper.wrapperEl.style.overflow = 'hidden'; - swiper.wrapperEl.style.touchAction = 'none'; - } - gesture.slideEl.classList.add(`${params.zoomedSlideClass}`); - let touchX; - let touchY; - let offsetX; - let offsetY; - let diffX; - let diffY; - let translateX; - let translateY; - let imageWidth; - let imageHeight; - let scaledWidth; - let scaledHeight; - let translateMinX; - let translateMinY; - let translateMaxX; - let translateMaxY; - let slideWidth; - let slideHeight; - if (typeof image.touchesStart.x === 'undefined' && e) { - touchX = e.pageX; - touchY = e.pageY; - } else { - touchX = image.touchesStart.x; - touchY = image.touchesStart.y; - } - const forceZoomRatio = typeof e === 'number' ? e : null; - if (currentScale === 1 && forceZoomRatio) { - touchX = undefined; - touchY = undefined; - } - zoom.scale = forceZoomRatio || gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio; - currentScale = forceZoomRatio || gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio; - if (e && !(currentScale === 1 && forceZoomRatio)) { - slideWidth = gesture.slideEl.offsetWidth; - slideHeight = gesture.slideEl.offsetHeight; - offsetX = elementOffset(gesture.slideEl).left + window.scrollX; - offsetY = elementOffset(gesture.slideEl).top + window.scrollY; - diffX = offsetX + slideWidth / 2 - touchX; - diffY = offsetY + slideHeight / 2 - touchY; - imageWidth = gesture.imageEl.offsetWidth; - imageHeight = gesture.imageEl.offsetHeight; - scaledWidth = imageWidth * zoom.scale; - scaledHeight = imageHeight * zoom.scale; - translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0); - translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0); - translateMaxX = -translateMinX; - translateMaxY = -translateMinY; - translateX = diffX * zoom.scale; - translateY = diffY * zoom.scale; - if (translateX < translateMinX) { - translateX = translateMinX; - } - if (translateX > translateMaxX) { - translateX = translateMaxX; - } - if (translateY < translateMinY) { - translateY = translateMinY; - } - if (translateY > translateMaxY) { - translateY = translateMaxY; - } - } else { - translateX = 0; - translateY = 0; - } - if (forceZoomRatio && zoom.scale === 1) { - gesture.originX = 0; - gesture.originY = 0; - } - gesture.imageWrapEl.style.transitionDuration = '300ms'; - gesture.imageWrapEl.style.transform = `translate3d(${translateX}px, ${translateY}px,0)`; - gesture.imageEl.style.transitionDuration = '300ms'; - gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`; - } - function zoomOut() { - const zoom = swiper.zoom; - const params = swiper.params.zoom; - if (!gesture.slideEl) { - if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) { - gesture.slideEl = elementChildren(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0]; - } else { - gesture.slideEl = swiper.slides[swiper.activeIndex]; - } - let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`); - if (imageEl) { - imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0]; - } - gesture.imageEl = imageEl; - if (imageEl) { - gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0]; - } else { - gesture.imageWrapEl = undefined; - } - } - if (!gesture.imageEl || !gesture.imageWrapEl) return; - if (swiper.params.cssMode) { - swiper.wrapperEl.style.overflow = ''; - swiper.wrapperEl.style.touchAction = ''; - } - zoom.scale = 1; - currentScale = 1; - gesture.imageWrapEl.style.transitionDuration = '300ms'; - gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)'; - gesture.imageEl.style.transitionDuration = '300ms'; - gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)'; - gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`); - gesture.slideEl = undefined; - gesture.originX = 0; - gesture.originY = 0; - } - - // Toggle Zoom - function zoomToggle(e) { - const zoom = swiper.zoom; - if (zoom.scale && zoom.scale !== 1) { - // Zoom Out - zoomOut(); - } else { - // Zoom In - zoomIn(e); - } - } - function getListeners() { - const passiveListener = swiper.params.passiveListeners ? { - passive: true, - capture: false - } : false; - const activeListenerWithCapture = swiper.params.passiveListeners ? { - passive: false, - capture: true - } : true; - return { - passiveListener, - activeListenerWithCapture - }; - } - - // Attach/Detach Events - function enable() { - const zoom = swiper.zoom; - if (zoom.enabled) return; - zoom.enabled = true; - const { - passiveListener, - activeListenerWithCapture - } = getListeners(); - - // Scale image - swiper.wrapperEl.addEventListener('pointerdown', onGestureStart, passiveListener); - swiper.wrapperEl.addEventListener('pointermove', onGestureChange, activeListenerWithCapture); - ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => { - swiper.wrapperEl.addEventListener(eventName, onGestureEnd, passiveListener); - }); - - // Move image - swiper.wrapperEl.addEventListener('pointermove', onTouchMove, activeListenerWithCapture); - } - function disable() { - const zoom = swiper.zoom; - if (!zoom.enabled) return; - zoom.enabled = false; - const { - passiveListener, - activeListenerWithCapture - } = getListeners(); - - // Scale image - swiper.wrapperEl.removeEventListener('pointerdown', onGestureStart, passiveListener); - swiper.wrapperEl.removeEventListener('pointermove', onGestureChange, activeListenerWithCapture); - ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => { - swiper.wrapperEl.removeEventListener(eventName, onGestureEnd, passiveListener); - }); - - // Move image - swiper.wrapperEl.removeEventListener('pointermove', onTouchMove, activeListenerWithCapture); - } - on('init', () => { - if (swiper.params.zoom.enabled) { - enable(); - } - }); - on('destroy', () => { - disable(); - }); - on('touchStart', (_s, e) => { - if (!swiper.zoom.enabled) return; - onTouchStart(e); - }); - on('touchEnd', (_s, e) => { - if (!swiper.zoom.enabled) return; - onTouchEnd(); - }); - on('doubleTap', (_s, e) => { - if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) { - zoomToggle(e); - } - }); - on('transitionEnd', () => { - if (swiper.zoom.enabled && swiper.params.zoom.enabled) { - onTransitionEnd(); - } - }); - on('slideChange', () => { - if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) { - onTransitionEnd(); - } - }); - Object.assign(swiper.zoom, { - enable, - disable, - in: zoomIn, - out: zoomOut, - toggle: zoomToggle - }); -} - -export { Zoom as default }; diff --git a/build/assets/js/vendor/swiper/modules/zoom.scss b/build/assets/js/vendor/swiper/modules/zoom.scss deleted file mode 100644 index 1f56449..0000000 --- a/build/assets/js/vendor/swiper/modules/zoom.scss +++ /dev/null @@ -1,21 +0,0 @@ -.swiper-zoom-container { - width: 100%; - height: 100%; - display: flex; - justify-content: center; - align-items: center; - text-align: center; - - > img, - > svg, - > canvas { - max-width: 100%; - max-height: 100%; - object-fit: contain; - } -} - -.swiper-slide-zoomed { - cursor: move; - touch-action: none; -} diff --git a/build/assets/js/vendor/swiper/package.json b/build/assets/js/vendor/swiper/package.json deleted file mode 100644 index 1591986..0000000 --- a/build/assets/js/vendor/swiper/package.json +++ /dev/null @@ -1,208 +0,0 @@ -{ - "name": "swiper", - "version": "11.0.5", - "description": "Most modern mobile touch slider and framework with hardware accelerated transitions", - "typings": "swiper.d.ts", - "type": "module", - "main": "./swiper.mjs", - "module": "./swiper.mjs", - "exports": { - ".": { - "types": "./swiper.d.ts", - "default": "./swiper.mjs" - }, - "./core": { - "types": "./swiper.d.ts", - "default": "./swiper.mjs" - }, - "./bundle": { - "types": "./swiper.d.ts", - "default": "./swiper-bundle.mjs" - }, - "./css": "./swiper.css", - "./css/bundle": "./swiper-bundle.css", - "./swiper-bundle.css": "./swiper-bundle.css", - "./css/a11y": "./modules/a11y.css", - "./css/autoplay": "./modules/autoplay.css", - "./css/controller": "./modules/controller.css", - "./css/effect-coverflow": "./modules/effect-coverflow.css", - "./css/effect-cube": "./modules/effect-cube.css", - "./css/effect-fade": "./modules/effect-fade.css", - "./css/effect-flip": "./modules/effect-flip.css", - "./css/effect-creative": "./modules/effect-creative.css", - "./css/effect-cards": "./modules/effect-cards.css", - "./css/free-mode": "./modules/free-mode.css", - "./css/grid": "./modules/grid.css", - "./css/hash-navigation": "./modules/hash-navigation.css", - "./css/history": "./modules/history.css", - "./css/keyboard": "./modules/keyboard.css", - "./css/manipulation": "./modules/manipulation.css", - "./css/mousewheel": "./modules/mousewheel.css", - "./css/navigation": "./modules/navigation.css", - "./css/pagination": "./modules/pagination.css", - "./css/parallax": "./modules/parallax.css", - "./css/scrollbar": "./modules/scrollbar.css", - "./css/thumbs": "./modules/thumbs.css", - "./css/virtual": "./modules/virtual.css", - "./css/zoom": "./modules/zoom.css", - "./less": "./swiper.less", - "./less/a11y": "./modules/a11y.less", - "./less/autoplay": "./modules/autoplay.less", - "./less/controller": "./modules/controller.less", - "./less/effect-coverflow": "./modules/effect-coverflow.less", - "./less/effect-cube": "./modules/effect-cube.less", - "./less/effect-fade": "./modules/effect-fade.less", - "./less/effect-flip": "./modules/effect-flip.less", - "./less/effect-creative": "./modules/effect-creative.less", - "./less/effect-cards": "./modules/effect-cards.less", - "./less/free-mode": "./modules/free-mode.less", - "./less/grid": "./modules/grid.less", - "./less/hash-navigation": "./modules/hash-navigation.less", - "./less/history": "./modules/history.less", - "./less/keyboard": "./modules/keyboard.less", - "./less/manipulation": "./modules/manipulation.less", - "./less/mousewheel": "./modules/mousewheel.less", - "./less/navigation": "./modules/navigation.less", - "./less/pagination": "./modules/pagination.less", - "./less/parallax": "./modules/parallax.less", - "./less/scrollbar": "./modules/scrollbar.less", - "./less/thumbs": "./modules/thumbs.less", - "./less/virtual": "./modules/virtual.less", - "./less/zoom": "./modules/zoom.less", - "./scss": "./swiper.scss", - "./scss/a11y": "./modules/a11y.scss", - "./scss/autoplay": "./modules/autoplay.scss", - "./scss/controller": "./modules/controller.scss", - "./scss/effect-coverflow": "./modules/effect-coverflow.scss", - "./scss/effect-cube": "./modules/effect-cube.scss", - "./scss/effect-fade": "./modules/effect-fade.scss", - "./scss/effect-flip": "./modules/effect-flip.scss", - "./scss/effect-creative": "./modules/effect-creative.scss", - "./scss/effect-cards": "./modules/effect-cards.scss", - "./scss/free-mode": "./modules/free-mode.scss", - "./scss/grid": "./modules/grid.scss", - "./scss/hash-navigation": "./modules/hash-navigation.scss", - "./scss/history": "./modules/history.scss", - "./scss/keyboard": "./modules/keyboard.scss", - "./scss/manipulation": "./modules/manipulation.scss", - "./scss/mousewheel": "./modules/mousewheel.scss", - "./scss/navigation": "./modules/navigation.scss", - "./scss/pagination": "./modules/pagination.scss", - "./scss/parallax": "./modules/parallax.scss", - "./scss/scrollbar": "./modules/scrollbar.scss", - "./scss/thumbs": "./modules/thumbs.scss", - "./scss/virtual": "./modules/virtual.scss", - "./scss/zoom": "./modules/zoom.scss", - "./element": { - "types": "./swiper-element.d.ts", - "default": "./swiper-element.mjs" - }, - "./element/bundle": { - "types": "./swiper-element.d.ts", - "default": "./swiper-element-bundle.mjs" - }, - "./element-bundle": { - "types": "./swiper-element.d.ts", - "default": "./swiper-element-bundle.mjs" - }, - "./element/css/a11y": "./modules/a11y-element.css", - "./element/css/autoplay": "./modules/autoplay-element.css", - "./element/css/controller": "./modules/controller-element.css", - "./element/css/effect-coverflow": "./modules/effect-coverflow-element.css", - "./element/css/effect-cube": "./modules/effect-cube-element.css", - "./element/css/effect-fade": "./modules/effect-fade-element.css", - "./element/css/effect-flip": "./modules/effect-flip-element.css", - "./element/css/effect-creative": "./modules/effect-creative-element.css", - "./element/css/effect-cards": "./modules/effect-cards-element.css", - "./element/css/free-mode": "./modules/free-mode-element.css", - "./element/css/grid": "./modules/grid-element.css", - "./element/css/hash-navigation": "./modules/hash-navigation-element.css", - "./element/css/history": "./modules/history-element.css", - "./element/css/keyboard": "./modules/keyboard-element.css", - "./element/css/manipulation": "./modules/manipulation-element.css", - "./element/css/mousewheel": "./modules/mousewheel-element.css", - "./element/css/navigation": "./modules/navigation-element.css", - "./element/css/pagination": "./modules/pagination-element.css", - "./element/css/parallax": "./modules/parallax-element.css", - "./element/css/scrollbar": "./modules/scrollbar-element.css", - "./element/css/thumbs": "./modules/thumbs-element.css", - "./element/css/virtual": "./modules/virtual-element.css", - "./element/css/zoom": "./modules/zoom-element.css", - "./react": { - "types": "./swiper-react.d.ts", - "default": "./swiper-react.mjs" - }, - "./vue": { - "types": "./swiper-vue.d.ts", - "default": "./swiper-vue.mjs" - }, - "./modules": { - "types": "./types/modules/index.d.ts", - "default": "./modules/index.mjs" - }, - "./types": "./types/index.d.ts", - "./package.json": "./package.json" - }, - "typesVersions": { - "*": { - "modules": [ - "./types/modules/index.d.ts" - ], - "element": [ - "./swiper-element.d.ts" - ], - "element/bundle": [ - "./swiper-element.d.ts" - ], - "react": [ - "./swiper-react.d.ts" - ], - "vue": [ - "./swiper-vue.d.ts" - ] - } - }, - "repository": { - "type": "git", - "url": "https://github.com/nolimits4web/Swiper.git" - }, - "keywords": [ - "swiper", - "swipe", - "slider", - "touch", - "ios", - "mobile", - "cordova", - "phonegap", - "app", - "framework", - "framework7", - "carousel", - "gallery", - "plugin", - "react", - "vue", - "slideshow" - ], - "author": "Vladimir Kharlampidi", - "license": "MIT", - "bugs": { - "url": "https://github.com/nolimits4web/swiper/issues" - }, - "homepage": "https://swiperjs.com", - "funding": [ - { - "type": "patreon", - "url": "https://www.patreon.com/swiperjs" - }, - { - "type": "open_collective", - "url": "http://opencollective.com/swiper" - } - ], - "engines": { - "node": ">= 4.7.0" - }, - "releaseDate": "November 22, 2023" -} diff --git a/build/assets/js/vendor/swiper/shared/classes-to-selector.min.mjs b/build/assets/js/vendor/swiper/shared/classes-to-selector.min.mjs deleted file mode 100644 index f177f5b..0000000 --- a/build/assets/js/vendor/swiper/shared/classes-to-selector.min.mjs +++ /dev/null @@ -1,2 +0,0 @@ -function classesToSelector(e){return void 0===e&&(e=""),`.${e.trim().replace(/([\.:!+\/])/g,"\\$1").replace(/ /g,".")}`}export{classesToSelector as c}; -//# sourceMappingURL=classes-to-selector.min.mjs.map \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/shared/classes-to-selector.min.mjs.map b/build/assets/js/vendor/swiper/shared/classes-to-selector.min.mjs.map deleted file mode 100644 index d817369..0000000 --- a/build/assets/js/vendor/swiper/shared/classes-to-selector.min.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"classes-to-selector.mjs.mjs","names":["classesToSelector","classes","trim","replace"],"sources":["0"],"mappings":"AAAA,SAASA,kBAAkBC,GAIzB,YAHgB,IAAZA,IACFA,EAAU,IAEL,IAAIA,EAAQC,OAAOC,QAAQ,eAAgB,QACjDA,QAAQ,KAAM,MACjB,QAESH"} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/shared/classes-to-selector.mjs b/build/assets/js/vendor/swiper/shared/classes-to-selector.mjs deleted file mode 100644 index dd142d5..0000000 --- a/build/assets/js/vendor/swiper/shared/classes-to-selector.mjs +++ /dev/null @@ -1,9 +0,0 @@ -function classesToSelector(classes) { - if (classes === void 0) { - classes = ''; - } - return `.${classes.trim().replace(/([\.:!+\/])/g, '\\$1') // eslint-disable-line - .replace(/ /g, '.')}`; -} - -export { classesToSelector as c }; diff --git a/build/assets/js/vendor/swiper/shared/create-element-if-not-defined.min.mjs b/build/assets/js/vendor/swiper/shared/create-element-if-not-defined.min.mjs deleted file mode 100644 index f92d40d..0000000 --- a/build/assets/js/vendor/swiper/shared/create-element-if-not-defined.min.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{e as elementChildren,c as createElement}from"./utils.min.mjs";function createElementIfNotDefined(e,t,n,a){return e.params.createElements&&Object.keys(a).forEach((l=>{if(!n[l]&&!0===n.auto){let r=elementChildren(e.el,`.${a[l]}`)[0];r||(r=createElement("div",a[l]),r.className=a[l],e.el.append(r)),n[l]=r,t[l]=r}})),n}export{createElementIfNotDefined as c}; -//# sourceMappingURL=create-element-if-not-defined.min.mjs.map \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/shared/create-element-if-not-defined.min.mjs.map b/build/assets/js/vendor/swiper/shared/create-element-if-not-defined.min.mjs.map deleted file mode 100644 index 85a319b..0000000 --- a/build/assets/js/vendor/swiper/shared/create-element-if-not-defined.min.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"create-element-if-not-defined.mjs.mjs","names":["elementChildren","createElement","createElementIfNotDefined","swiper","originalParams","params","checkProps","createElements","Object","keys","forEach","key","auto","element","el","className","append"],"sources":["0"],"mappings":"YAAcA,qBAAsBC,kBAAqB,kBAEzD,SAASC,0BAA0BC,EAAQC,EAAgBC,EAAQC,GAejE,OAdIH,EAAOE,OAAOE,gBAChBC,OAAOC,KAAKH,GAAYI,SAAQC,IAC9B,IAAKN,EAAOM,KAAwB,IAAhBN,EAAOO,KAAe,CACxC,IAAIC,EAAUb,gBAAgBG,EAAOW,GAAI,IAAIR,EAAWK,MAAQ,GAC3DE,IACHA,EAAUZ,cAAc,MAAOK,EAAWK,IAC1CE,EAAQE,UAAYT,EAAWK,GAC/BR,EAAOW,GAAGE,OAAOH,IAEnBR,EAAOM,GAAOE,EACdT,EAAeO,GAAOE,CACxB,KAGGR,CACT,QAESH"} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/shared/create-element-if-not-defined.mjs b/build/assets/js/vendor/swiper/shared/create-element-if-not-defined.mjs deleted file mode 100644 index 10b283f..0000000 --- a/build/assets/js/vendor/swiper/shared/create-element-if-not-defined.mjs +++ /dev/null @@ -1,21 +0,0 @@ -import { e as elementChildren, c as createElement } from './utils.mjs'; - -function createElementIfNotDefined(swiper, originalParams, params, checkProps) { - if (swiper.params.createElements) { - Object.keys(checkProps).forEach(key => { - if (!params[key] && params.auto === true) { - let element = elementChildren(swiper.el, `.${checkProps[key]}`)[0]; - if (!element) { - element = createElement('div', checkProps[key]); - element.className = checkProps[key]; - swiper.el.append(element); - } - params[key] = element; - originalParams[key] = element; - } - }); - } - return params; -} - -export { createElementIfNotDefined as c }; diff --git a/build/assets/js/vendor/swiper/shared/create-shadow.min.mjs b/build/assets/js/vendor/swiper/shared/create-shadow.min.mjs deleted file mode 100644 index 5d337da..0000000 --- a/build/assets/js/vendor/swiper/shared/create-shadow.min.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{l as getSlideTransformEl,c as createElement}from"./utils.min.mjs";function createShadow(e,t,r){const s=`swiper-slide-shadow${r?`-${r}`:""}${e?` swiper-slide-shadow-${e}`:""}`,a=getSlideTransformEl(t);let i=a.querySelector(`.${s.split(" ").join(".")}`);return i||(i=createElement("div",s.split(" ")),a.append(i)),i}export{createShadow as c}; -//# sourceMappingURL=create-shadow.min.mjs.map \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/shared/create-shadow.min.mjs.map b/build/assets/js/vendor/swiper/shared/create-shadow.min.mjs.map deleted file mode 100644 index 4505556..0000000 --- a/build/assets/js/vendor/swiper/shared/create-shadow.min.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"create-shadow.mjs.mjs","names":["getSlideTransformEl","createElement","createShadow","suffix","slideEl","side","shadowClass","shadowContainer","shadowEl","querySelector","split","join","append"],"sources":["0"],"mappings":"YAAcA,yBAA0BC,kBAAqB,kBAE7D,SAASC,aAAaC,EAAQC,EAASC,GACrC,MAAMC,EAAc,sBAAsBD,EAAO,IAAIA,IAAS,KAAKF,EAAS,wBAAwBA,IAAW,KACzGI,EAAkBP,oBAAoBI,GAC5C,IAAII,EAAWD,EAAgBE,cAAc,IAAIH,EAAYI,MAAM,KAAKC,KAAK,QAK7E,OAJKH,IACHA,EAAWP,cAAc,MAAOK,EAAYI,MAAM,MAClDH,EAAgBK,OAAOJ,IAElBA,CACT,QAESN"} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/shared/create-shadow.mjs b/build/assets/js/vendor/swiper/shared/create-shadow.mjs deleted file mode 100644 index 66e7f05..0000000 --- a/build/assets/js/vendor/swiper/shared/create-shadow.mjs +++ /dev/null @@ -1,14 +0,0 @@ -import { l as getSlideTransformEl, c as createElement } from './utils.mjs'; - -function createShadow(suffix, slideEl, side) { - const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}${suffix ? ` swiper-slide-shadow-${suffix}` : ''}`; - const shadowContainer = getSlideTransformEl(slideEl); - let shadowEl = shadowContainer.querySelector(`.${shadowClass.split(' ').join('.')}`); - if (!shadowEl) { - shadowEl = createElement('div', shadowClass.split(' ')); - shadowContainer.append(shadowEl); - } - return shadowEl; -} - -export { createShadow as c }; diff --git a/build/assets/js/vendor/swiper/shared/effect-init.min.mjs b/build/assets/js/vendor/swiper/shared/effect-init.min.mjs deleted file mode 100644 index feed86e..0000000 --- a/build/assets/js/vendor/swiper/shared/effect-init.min.mjs +++ /dev/null @@ -1,2 +0,0 @@ -function effectInit(e){const{effect:s,swiper:a,on:t,setTranslate:r,setTransition:i,overwriteParams:n,perspective:o,recreateShadows:f,getEffectParams:l}=e;let c;t("beforeInit",(()=>{if(a.params.effect!==s)return;a.classNames.push(`${a.params.containerModifierClass}${s}`),o&&o()&&a.classNames.push(`${a.params.containerModifierClass}3d`);const e=n?n():{};Object.assign(a.params,e),Object.assign(a.originalParams,e)})),t("setTranslate",(()=>{a.params.effect===s&&r()})),t("setTransition",((e,t)=>{a.params.effect===s&&i(t)})),t("transitionEnd",(()=>{if(a.params.effect===s&&f){if(!l||!l().slideShadows)return;a.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()))})),f()}})),t("virtualUpdate",(()=>{a.params.effect===s&&(a.slides.length||(c=!0),requestAnimationFrame((()=>{c&&a.slides&&a.slides.length&&(r(),c=!1)})))}))}export{effectInit as e}; -//# sourceMappingURL=effect-init.min.mjs.map \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/shared/effect-init.min.mjs.map b/build/assets/js/vendor/swiper/shared/effect-init.min.mjs.map deleted file mode 100644 index 7250e5b..0000000 --- a/build/assets/js/vendor/swiper/shared/effect-init.min.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"effect-init.mjs.mjs","names":["effectInit","params","effect","swiper","on","setTranslate","setTransition","overwriteParams","perspective","recreateShadows","getEffectParams","requireUpdateOnVirtual","classNames","push","containerModifierClass","overwriteParamsResult","Object","assign","originalParams","_s","duration","slideShadows","slides","forEach","slideEl","querySelectorAll","shadowEl","remove","length","requestAnimationFrame"],"sources":["0"],"mappings":"AAAA,SAASA,WAAWC,GAClB,MAAMC,OACJA,EAAMC,OACNA,EAAMC,GACNA,EAAEC,aACFA,EAAYC,cACZA,EAAaC,gBACbA,EAAeC,YACfA,EAAWC,gBACXA,EAAeC,gBACfA,GACET,EA+BJ,IAAIU,EA9BJP,EAAG,cAAc,KACf,GAAID,EAAOF,OAAOC,SAAWA,EAAQ,OACrCC,EAAOS,WAAWC,KAAK,GAAGV,EAAOF,OAAOa,yBAAyBZ,KAC7DM,GAAeA,KACjBL,EAAOS,WAAWC,KAAK,GAAGV,EAAOF,OAAOa,4BAE1C,MAAMC,EAAwBR,EAAkBA,IAAoB,CAAC,EACrES,OAAOC,OAAOd,EAAOF,OAAQc,GAC7BC,OAAOC,OAAOd,EAAOe,eAAgBH,EAAsB,IAE7DX,EAAG,gBAAgB,KACbD,EAAOF,OAAOC,SAAWA,GAC7BG,GAAc,IAEhBD,EAAG,iBAAiB,CAACe,EAAIC,KACnBjB,EAAOF,OAAOC,SAAWA,GAC7BI,EAAcc,EAAS,IAEzBhB,EAAG,iBAAiB,KAClB,GAAID,EAAOF,OAAOC,SAAWA,GACzBO,EAAiB,CACnB,IAAKC,IAAoBA,IAAkBW,aAAc,OAEzDlB,EAAOmB,OAAOC,SAAQC,IACpBA,EAAQC,iBAAiB,gHAAgHF,SAAQG,GAAYA,EAASC,UAAS,IAGjLlB,GACF,KAGFL,EAAG,iBAAiB,KACdD,EAAOF,OAAOC,SAAWA,IACxBC,EAAOmB,OAAOM,SACjBjB,GAAyB,GAE3BkB,uBAAsB,KAChBlB,GAA0BR,EAAOmB,QAAUnB,EAAOmB,OAAOM,SAC3DvB,IACAM,GAAyB,EAC3B,IACA,GAEN,QAESX"} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/shared/effect-init.mjs b/build/assets/js/vendor/swiper/shared/effect-init.mjs deleted file mode 100644 index d418687..0000000 --- a/build/assets/js/vendor/swiper/shared/effect-init.mjs +++ /dev/null @@ -1,58 +0,0 @@ -function effectInit(params) { - const { - effect, - swiper, - on, - setTranslate, - setTransition, - overwriteParams, - perspective, - recreateShadows, - getEffectParams - } = params; - on('beforeInit', () => { - if (swiper.params.effect !== effect) return; - swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`); - if (perspective && perspective()) { - swiper.classNames.push(`${swiper.params.containerModifierClass}3d`); - } - const overwriteParamsResult = overwriteParams ? overwriteParams() : {}; - Object.assign(swiper.params, overwriteParamsResult); - Object.assign(swiper.originalParams, overwriteParamsResult); - }); - on('setTranslate', () => { - if (swiper.params.effect !== effect) return; - setTranslate(); - }); - on('setTransition', (_s, duration) => { - if (swiper.params.effect !== effect) return; - setTransition(duration); - }); - on('transitionEnd', () => { - if (swiper.params.effect !== effect) return; - if (recreateShadows) { - if (!getEffectParams || !getEffectParams().slideShadows) return; - // remove shadows - swiper.slides.forEach(slideEl => { - slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => shadowEl.remove()); - }); - // create new one - recreateShadows(); - } - }); - let requireUpdateOnVirtual; - on('virtualUpdate', () => { - if (swiper.params.effect !== effect) return; - if (!swiper.slides.length) { - requireUpdateOnVirtual = true; - } - requestAnimationFrame(() => { - if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) { - setTranslate(); - requireUpdateOnVirtual = false; - } - }); - }); -} - -export { effectInit as e }; diff --git a/build/assets/js/vendor/swiper/shared/effect-target.min.mjs b/build/assets/js/vendor/swiper/shared/effect-target.min.mjs deleted file mode 100644 index 82d30c6..0000000 --- a/build/assets/js/vendor/swiper/shared/effect-target.min.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{l as getSlideTransformEl}from"./utils.min.mjs";function effectTarget(e,i){const t=getSlideTransformEl(i);return t!==i&&(t.style.backfaceVisibility="hidden",t.style["-webkit-backface-visibility"]="hidden"),t}export{effectTarget as e}; -//# sourceMappingURL=effect-target.min.mjs.map \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/shared/effect-target.min.mjs.map b/build/assets/js/vendor/swiper/shared/effect-target.min.mjs.map deleted file mode 100644 index 9d0c540..0000000 --- a/build/assets/js/vendor/swiper/shared/effect-target.min.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"effect-target.mjs.mjs","names":["getSlideTransformEl","effectTarget","effectParams","slideEl","transformEl","style","backfaceVisibility"],"sources":["0"],"mappings":"YAAcA,wBAA2B,kBAEzC,SAASC,aAAaC,EAAcC,GAClC,MAAMC,EAAcJ,oBAAoBG,GAKxC,OAJIC,IAAgBD,IAClBC,EAAYC,MAAMC,mBAAqB,SACvCF,EAAYC,MAAM,+BAAiC,UAE9CD,CACT,QAESH"} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/shared/effect-target.mjs b/build/assets/js/vendor/swiper/shared/effect-target.mjs deleted file mode 100644 index ba17d5b..0000000 --- a/build/assets/js/vendor/swiper/shared/effect-target.mjs +++ /dev/null @@ -1,12 +0,0 @@ -import { l as getSlideTransformEl } from './utils.mjs'; - -function effectTarget(effectParams, slideEl) { - const transformEl = getSlideTransformEl(slideEl); - if (transformEl !== slideEl) { - transformEl.style.backfaceVisibility = 'hidden'; - transformEl.style['-webkit-backface-visibility'] = 'hidden'; - } - return transformEl; -} - -export { effectTarget as e }; diff --git a/build/assets/js/vendor/swiper/shared/effect-virtual-transition-end.min.mjs b/build/assets/js/vendor/swiper/shared/effect-virtual-transition-end.min.mjs deleted file mode 100644 index 270263b..0000000 --- a/build/assets/js/vendor/swiper/shared/effect-virtual-transition-end.min.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{j as elementTransitionEnd}from"./utils.min.mjs";function effectVirtualTransitionEnd(e){let{swiper:t,duration:n,transformElements:r,allSlides:i}=e;const{activeIndex:a}=t;if(t.params.virtualTranslate&&0!==n){let e,n=!1;e=i?r:r.filter((e=>{const n=e.classList.contains("swiper-slide-transform")?(e=>{if(!e.parentElement)return t.slides.filter((t=>t.shadowRoot&&t.shadowRoot===e.parentNode))[0];return e.parentElement})(e):e;return t.getSlideIndex(n)===a})),e.forEach((e=>{elementTransitionEnd(e,(()=>{if(n)return;if(!t||t.destroyed)return;n=!0,t.animating=!1;const e=new window.CustomEvent("transitionend",{bubbles:!0,cancelable:!0});t.wrapperEl.dispatchEvent(e)}))}))}}export{effectVirtualTransitionEnd as e}; -//# sourceMappingURL=effect-virtual-transition-end.min.mjs.map \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/shared/effect-virtual-transition-end.min.mjs.map b/build/assets/js/vendor/swiper/shared/effect-virtual-transition-end.min.mjs.map deleted file mode 100644 index da4e095..0000000 --- a/build/assets/js/vendor/swiper/shared/effect-virtual-transition-end.min.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"effect-virtual-transition-end.mjs.mjs","names":["elementTransitionEnd","effectVirtualTransitionEnd","_ref","swiper","duration","transformElements","allSlides","activeIndex","params","virtualTranslate","transitionEndTarget","eventTriggered","filter","transformEl","el","classList","contains","parentElement","slides","slideEl","shadowRoot","parentNode","getSlide","getSlideIndex","forEach","destroyed","animating","evt","window","CustomEvent","bubbles","cancelable","wrapperEl","dispatchEvent"],"sources":["0"],"mappings":"YAAcA,yBAA4B,kBAE1C,SAASC,2BAA2BC,GAClC,IAAIC,OACFA,EAAMC,SACNA,EAAQC,kBACRA,EAAiBC,UACjBA,GACEJ,EACJ,MAAMK,YACJA,GACEJ,EASJ,GAAIA,EAAOK,OAAOC,kBAAiC,IAAbL,EAAgB,CACpD,IACIM,EADAC,GAAiB,EAGnBD,EADEJ,EACoBD,EAEAA,EAAkBO,QAAOC,IAC7C,MAAMC,EAAKD,EAAYE,UAAUC,SAAS,0BAf/BF,KACf,IAAKA,EAAGG,cAGN,OADcd,EAAOe,OAAON,QAAOO,GAAWA,EAAQC,YAAcD,EAAQC,aAAeN,EAAGO,aAAY,GAG5G,OAAOP,EAAGG,aAAa,EASmDK,CAAST,GAAeA,EAC9F,OAAOV,EAAOoB,cAAcT,KAAQP,CAAW,IAGnDG,EAAoBc,SAAQV,IAC1Bd,qBAAqBc,GAAI,KACvB,GAAIH,EAAgB,OACpB,IAAKR,GAAUA,EAAOsB,UAAW,OACjCd,GAAiB,EACjBR,EAAOuB,WAAY,EACnB,MAAMC,EAAM,IAAIC,OAAOC,YAAY,gBAAiB,CAClDC,SAAS,EACTC,YAAY,IAEd5B,EAAO6B,UAAUC,cAAcN,EAAI,GACnC,GAEN,CACF,QAES1B"} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/shared/effect-virtual-transition-end.mjs b/build/assets/js/vendor/swiper/shared/effect-virtual-transition-end.mjs deleted file mode 100644 index 42109a3..0000000 --- a/build/assets/js/vendor/swiper/shared/effect-virtual-transition-end.mjs +++ /dev/null @@ -1,48 +0,0 @@ -import { j as elementTransitionEnd } from './utils.mjs'; - -function effectVirtualTransitionEnd(_ref) { - let { - swiper, - duration, - transformElements, - allSlides - } = _ref; - const { - activeIndex - } = swiper; - const getSlide = el => { - if (!el.parentElement) { - // assume shadow root - const slide = swiper.slides.filter(slideEl => slideEl.shadowRoot && slideEl.shadowRoot === el.parentNode)[0]; - return slide; - } - return el.parentElement; - }; - if (swiper.params.virtualTranslate && duration !== 0) { - let eventTriggered = false; - let transitionEndTarget; - if (allSlides) { - transitionEndTarget = transformElements; - } else { - transitionEndTarget = transformElements.filter(transformEl => { - const el = transformEl.classList.contains('swiper-slide-transform') ? getSlide(transformEl) : transformEl; - return swiper.getSlideIndex(el) === activeIndex; - }); - } - transitionEndTarget.forEach(el => { - elementTransitionEnd(el, () => { - if (eventTriggered) return; - if (!swiper || swiper.destroyed) return; - eventTriggered = true; - swiper.animating = false; - const evt = new window.CustomEvent('transitionend', { - bubbles: true, - cancelable: true - }); - swiper.wrapperEl.dispatchEvent(evt); - }); - }); - } -} - -export { effectVirtualTransitionEnd as e }; diff --git a/build/assets/js/vendor/swiper/shared/get-element-params.min.mjs b/build/assets/js/vendor/swiper/shared/get-element-params.min.mjs deleted file mode 100644 index 8a456d3..0000000 --- a/build/assets/js/vendor/swiper/shared/get-element-params.min.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{e as extend,i as isObject,c as attrToProp,p as paramsList}from"./update-swiper.min.mjs";import{d as defaults}from"./swiper-core.min.mjs";const formatValue=e=>{if(parseFloat(e)===Number(e))return Number(e);if("true"===e)return!0;if(""===e)return!0;if("false"===e)return!1;if("null"===e)return null;if("undefined"!==e){if("string"==typeof e&&e.includes("{")&&e.includes("}")&&e.includes('"')){let a;try{a=JSON.parse(e)}catch(t){a=e}return a}return e}},modulesParamsList=["a11y","autoplay","controller","cards-effect","coverflow-effect","creative-effect","cube-effect","fade-effect","flip-effect","free-mode","grid","hash-navigation","history","keyboard","mousewheel","navigation","pagination","parallax","scrollbar","thumbs","virtual","zoom"];function getParams(e,a,t){const r={},n={};extend(r,defaults);const i=[...paramsList,"on"],o=i.map((e=>e.replace(/_/,"")));i.forEach((a=>{a=a.replace("_",""),void 0!==e[a]&&(n[a]=e[a])}));const s=[...e.attributes];return"string"==typeof a&&void 0!==t&&s.push({name:a,value:isObject(t)?{...t}:t}),s.forEach((e=>{const a=modulesParamsList.filter((a=>0===e.name.indexOf(`${a}-`)))[0];if(a){const t=attrToProp(a),r=attrToProp(e.name.split(`${a}-`)[1]);void 0===n[t]&&(n[t]={}),!0===n[t]&&(n[t]={enabled:!0}),n[t][r]=formatValue(e.value)}else{const a=attrToProp(e.name);if(!o.includes(a))return;const t=formatValue(e.value);n[a]&&modulesParamsList.includes(e.name)&&!isObject(t)?(n[a].constructor!==Object&&(n[a]={}),n[a].enabled=!!t):n[a]=t}})),extend(r,n),r.navigation?r.navigation={prevEl:".swiper-button-prev",nextEl:".swiper-button-next",...!0!==r.navigation?r.navigation:{}}:!1===r.navigation&&delete r.navigation,r.scrollbar?r.scrollbar={el:".swiper-scrollbar",...!0!==r.scrollbar?r.scrollbar:{}}:!1===r.scrollbar&&delete r.scrollbar,r.pagination?r.pagination={el:".swiper-pagination",...!0!==r.pagination?r.pagination:{}}:!1===r.pagination&&delete r.pagination,{params:r,passedParams:n}}export{getParams as g}; -//# sourceMappingURL=get-element-params.min.mjs.map \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/shared/get-element-params.min.mjs.map b/build/assets/js/vendor/swiper/shared/get-element-params.min.mjs.map deleted file mode 100644 index 883b699..0000000 --- a/build/assets/js/vendor/swiper/shared/get-element-params.min.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"get-element-params.mjs.mjs","names":["extend","isObject","attrToProp","paramsList","defaults","formatValue","val","parseFloat","Number","includes","v","JSON","parse","err","modulesParamsList","getParams","element","propName","propValue","params","passedParams","localParamsList","allowedParams","map","key","replace","forEach","paramName","attrsList","attributes","push","name","value","attr","moduleParam","filter","mParam","indexOf","parentObjName","subObjName","split","enabled","constructor","Object","navigation","prevEl","nextEl","scrollbar","el","pagination"],"sources":["0"],"mappings":"YAAcA,YAAaC,cAAeC,gBAAiBC,eAAkB,sCAC/DC,aAAgB,wBAE9B,MAAMC,YAAcC,IAClB,GAAIC,WAAWD,KAASE,OAAOF,GAAM,OAAOE,OAAOF,GACnD,GAAY,SAARA,EAAgB,OAAO,EAC3B,GAAY,KAARA,EAAY,OAAO,EACvB,GAAY,UAARA,EAAiB,OAAO,EAC5B,GAAY,SAARA,EAAgB,OAAO,KAC3B,GAAY,cAARA,EAAJ,CACA,GAAmB,iBAARA,GAAoBA,EAAIG,SAAS,MAAQH,EAAIG,SAAS,MAAQH,EAAIG,SAAS,KAAM,CAC1F,IAAIC,EACJ,IACEA,EAAIC,KAAKC,MAAMN,EACjB,CAAE,MAAOO,GACPH,EAAIJ,CACN,CACA,OAAOI,CACT,CACA,OAAOJ,CAVkC,CAU/B,EAENQ,kBAAoB,CAAC,OAAQ,WAAY,aAAc,eAAgB,mBAAoB,kBAAmB,cAAe,cAAe,cAAe,YAAa,OAAQ,kBAAmB,UAAW,WAAY,aAAc,aAAc,aAAc,WAAY,YAAa,SAAU,UAAW,QACxT,SAASC,UAAUC,EAASC,EAAUC,GACpC,MAAMC,EAAS,CAAC,EACVC,EAAe,CAAC,EACtBpB,OAAOmB,EAAQf,UACf,MAAMiB,EAAkB,IAAIlB,WAAY,MAClCmB,EAAgBD,EAAgBE,KAAIC,GAAOA,EAAIC,QAAQ,IAAK,MAGlEJ,EAAgBK,SAAQC,IACtBA,EAAYA,EAAUF,QAAQ,IAAK,SACD,IAAvBT,EAAQW,KACjBP,EAAaO,GAAaX,EAAQW,GACpC,IAIF,MAAMC,EAAY,IAAIZ,EAAQa,YA6D9B,MA5DwB,iBAAbZ,QAA8C,IAAdC,GACzCU,EAAUE,KAAK,CACbC,KAAMd,EACNe,MAAO/B,SAASiB,GAAa,IACxBA,GACDA,IAGRU,EAAUF,SAAQO,IAChB,MAAMC,EAAcpB,kBAAkBqB,QAAOC,GAA8C,IAApCH,EAAKF,KAAKM,QAAQ,GAAGD,QAAkB,GAC9F,GAAIF,EAAa,CACf,MAAMI,EAAgBpC,WAAWgC,GAC3BK,EAAarC,WAAW+B,EAAKF,KAAKS,MAAM,GAAGN,MAAgB,SACtB,IAAhCd,EAAakB,KAAgClB,EAAakB,GAAiB,CAAC,IACnD,IAAhClB,EAAakB,KACflB,EAAakB,GAAiB,CAC5BG,SAAS,IAGbrB,EAAakB,GAAeC,GAAclC,YAAY4B,EAAKD,MAC7D,KAAO,CACL,MAAMD,EAAO7B,WAAW+B,EAAKF,MAC7B,IAAKT,EAAcb,SAASsB,GAAO,OACnC,MAAMC,EAAQ3B,YAAY4B,EAAKD,OAC3BZ,EAAaW,IAASjB,kBAAkBL,SAASwB,EAAKF,QAAU9B,SAAS+B,IACvEZ,EAAaW,GAAMW,cAAgBC,SACrCvB,EAAaW,GAAQ,CAAC,GAExBX,EAAaW,GAAMU,UAAYT,GAE/BZ,EAAaW,GAAQC,CAEzB,KAEFhC,OAAOmB,EAAQC,GACXD,EAAOyB,WACTzB,EAAOyB,WAAa,CAClBC,OAAQ,sBACRC,OAAQ,0BACkB,IAAtB3B,EAAOyB,WAAsBzB,EAAOyB,WAAa,CAAC,IAEzB,IAAtBzB,EAAOyB,mBACTzB,EAAOyB,WAEZzB,EAAO4B,UACT5B,EAAO4B,UAAY,CACjBC,GAAI,wBACqB,IAArB7B,EAAO4B,UAAqB5B,EAAO4B,UAAY,CAAC,IAExB,IAArB5B,EAAO4B,kBACT5B,EAAO4B,UAEZ5B,EAAO8B,WACT9B,EAAO8B,WAAa,CAClBD,GAAI,yBACsB,IAAtB7B,EAAO8B,WAAsB9B,EAAO8B,WAAa,CAAC,IAEzB,IAAtB9B,EAAO8B,mBACT9B,EAAO8B,WAET,CACL9B,SACAC,eAEJ,QAESL"} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/shared/get-element-params.mjs b/build/assets/js/vendor/swiper/shared/get-element-params.mjs deleted file mode 100644 index eb00b03..0000000 --- a/build/assets/js/vendor/swiper/shared/get-element-params.mjs +++ /dev/null @@ -1,106 +0,0 @@ -import { e as extend, i as isObject, c as attrToProp, p as paramsList } from './update-swiper.mjs'; -import { d as defaults } from './swiper-core.mjs'; - -const formatValue = val => { - if (parseFloat(val) === Number(val)) return Number(val); - if (val === 'true') return true; - if (val === '') return true; - if (val === 'false') return false; - if (val === 'null') return null; - if (val === 'undefined') return undefined; - if (typeof val === 'string' && val.includes('{') && val.includes('}') && val.includes('"')) { - let v; - try { - v = JSON.parse(val); - } catch (err) { - v = val; - } - return v; - } - return val; -}; -const modulesParamsList = ['a11y', 'autoplay', 'controller', 'cards-effect', 'coverflow-effect', 'creative-effect', 'cube-effect', 'fade-effect', 'flip-effect', 'free-mode', 'grid', 'hash-navigation', 'history', 'keyboard', 'mousewheel', 'navigation', 'pagination', 'parallax', 'scrollbar', 'thumbs', 'virtual', 'zoom']; -function getParams(element, propName, propValue) { - const params = {}; - const passedParams = {}; - extend(params, defaults); - const localParamsList = [...paramsList, 'on']; - const allowedParams = localParamsList.map(key => key.replace(/_/, '')); - - // First check props - localParamsList.forEach(paramName => { - paramName = paramName.replace('_', ''); - if (typeof element[paramName] !== 'undefined') { - passedParams[paramName] = element[paramName]; - } - }); - - // Attributes - const attrsList = [...element.attributes]; - if (typeof propName === 'string' && typeof propValue !== 'undefined') { - attrsList.push({ - name: propName, - value: isObject(propValue) ? { - ...propValue - } : propValue - }); - } - attrsList.forEach(attr => { - const moduleParam = modulesParamsList.filter(mParam => attr.name.indexOf(`${mParam}-`) === 0)[0]; - if (moduleParam) { - const parentObjName = attrToProp(moduleParam); - const subObjName = attrToProp(attr.name.split(`${moduleParam}-`)[1]); - if (typeof passedParams[parentObjName] === 'undefined') passedParams[parentObjName] = {}; - if (passedParams[parentObjName] === true) { - passedParams[parentObjName] = { - enabled: true - }; - } - passedParams[parentObjName][subObjName] = formatValue(attr.value); - } else { - const name = attrToProp(attr.name); - if (!allowedParams.includes(name)) return; - const value = formatValue(attr.value); - if (passedParams[name] && modulesParamsList.includes(attr.name) && !isObject(value)) { - if (passedParams[name].constructor !== Object) { - passedParams[name] = {}; - } - passedParams[name].enabled = !!value; - } else { - passedParams[name] = value; - } - } - }); - extend(params, passedParams); - if (params.navigation) { - params.navigation = { - prevEl: '.swiper-button-prev', - nextEl: '.swiper-button-next', - ...(params.navigation !== true ? params.navigation : {}) - }; - } else if (params.navigation === false) { - delete params.navigation; - } - if (params.scrollbar) { - params.scrollbar = { - el: '.swiper-scrollbar', - ...(params.scrollbar !== true ? params.scrollbar : {}) - }; - } else if (params.scrollbar === false) { - delete params.scrollbar; - } - if (params.pagination) { - params.pagination = { - el: '.swiper-pagination', - ...(params.pagination !== true ? params.pagination : {}) - }; - } else if (params.pagination === false) { - delete params.pagination; - } - return { - params, - passedParams - }; -} - -export { getParams as g }; diff --git a/build/assets/js/vendor/swiper/shared/ssr-window.esm.min.mjs b/build/assets/js/vendor/swiper/shared/ssr-window.esm.min.mjs deleted file mode 100644 index 4ee44c8..0000000 --- a/build/assets/js/vendor/swiper/shared/ssr-window.esm.min.mjs +++ /dev/null @@ -1,2 +0,0 @@ -function isObject(e){return null!==e&&"object"==typeof e&&"constructor"in e&&e.constructor===Object}function extend(e,t){void 0===e&&(e={}),void 0===t&&(t={}),Object.keys(t).forEach((n=>{void 0===e[n]?e[n]=t[n]:isObject(t[n])&&isObject(e[n])&&Object.keys(t[n]).length>0&&extend(e[n],t[n])}))}const ssrDocument={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 getDocument(){const e="undefined"!=typeof document?document:{};return extend(e,ssrDocument),e}const ssrWindow={document:ssrDocument,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 getWindow(){const e="undefined"!=typeof window?window:{};return extend(e,ssrWindow),e}export{getWindow as a,getDocument as g}; -//# sourceMappingURL=ssr-window.esm.min.mjs.map \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/shared/ssr-window.esm.min.mjs.map b/build/assets/js/vendor/swiper/shared/ssr-window.esm.min.mjs.map deleted file mode 100644 index 2a3d646..0000000 --- a/build/assets/js/vendor/swiper/shared/ssr-window.esm.min.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ssr-window.esm.mjs.mjs","names":["isObject","obj","constructor","Object","extend","target","src","keys","forEach","key","length","ssrDocument","body","addEventListener","removeEventListener","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","createElement","children","childNodes","style","setAttribute","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","getDocument","doc","document","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","this","getComputedStyle","getPropertyValue","Image","Date","screen","setTimeout","clearTimeout","matchMedia","requestAnimationFrame","callback","cancelAnimationFrame","id","getWindow","win","window"],"sources":["0"],"mappings":"AAYA,SAASA,SAASC,GAChB,OAAe,OAARA,GAA+B,iBAARA,GAAoB,gBAAiBA,GAAOA,EAAIC,cAAgBC,MAChG,CACA,SAASC,OAAOC,EAAQC,QACP,IAAXD,IACFA,EAAS,CAAC,QAEA,IAARC,IACFA,EAAM,CAAC,GAETH,OAAOI,KAAKD,GAAKE,SAAQC,SACI,IAAhBJ,EAAOI,GAAsBJ,EAAOI,GAAOH,EAAIG,GAAcT,SAASM,EAAIG,KAAST,SAASK,EAAOI,KAASN,OAAOI,KAAKD,EAAIG,IAAMC,OAAS,GACpJN,OAAOC,EAAOI,GAAMH,EAAIG,GAC1B,GAEJ,CACA,MAAME,YAAc,CAClBC,KAAM,CAAC,EACP,gBAAAC,GAAoB,EACpB,mBAAAC,GAAuB,EACvBC,cAAe,CACb,IAAAC,GAAQ,EACRC,SAAU,IAEZC,cAAa,IACJ,KAETC,iBAAgB,IACP,GAETC,eAAc,IACL,KAETC,YAAW,KACF,CACL,SAAAC,GAAa,IAGjBC,cAAa,KACJ,CACLC,SAAU,GACVC,WAAY,GACZC,MAAO,CAAC,EACR,YAAAC,GAAgB,EAChBC,qBAAoB,IACX,KAIbC,gBAAe,KACN,CAAC,GAEVC,WAAU,IACD,KAETC,SAAU,CACRC,KAAM,GACNC,KAAM,GACNC,SAAU,GACVC,KAAM,GACNC,OAAQ,GACRC,SAAU,GACVC,SAAU,GACVC,OAAQ,KAGZ,SAASC,cACP,MAAMC,EAA0B,oBAAbC,SAA2BA,SAAW,CAAC,EAE1D,OADAtC,OAAOqC,EAAK9B,aACL8B,CACT,CACA,MAAME,UAAY,CAChBD,SAAU/B,YACViC,UAAW,CACTC,UAAW,IAEbd,SAAU,CACRC,KAAM,GACNC,KAAM,GACNC,SAAU,GACVC,KAAM,GACNC,OAAQ,GACRC,SAAU,GACVC,SAAU,GACVC,OAAQ,IAEVO,QAAS,CACP,YAAAC,GAAgB,EAChB,SAAAC,GAAa,EACb,EAAAC,GAAM,EACN,IAAAC,GAAQ,GAEVC,YAAa,WACX,OAAOC,IACT,EACA,gBAAAvC,GAAoB,EACpB,mBAAAC,GAAuB,EACvBuC,iBAAgB,KACP,CACLC,iBAAgB,IACP,KAIb,KAAAC,GAAS,EACT,IAAAC,GAAQ,EACRC,OAAQ,CAAC,EACT,UAAAC,GAAc,EACd,YAAAC,GAAgB,EAChBC,WAAU,KACD,CAAC,GAEVC,sBAAsBC,GACM,oBAAfJ,YACTI,IACO,MAEFJ,WAAWI,EAAU,GAE9B,oBAAAC,CAAqBC,GACO,oBAAfN,YAGXC,aAAaK,EACf,GAEF,SAASC,YACP,MAAMC,EAAwB,oBAAXC,OAAyBA,OAAS,CAAC,EAEtD,OADA/D,OAAO8D,EAAKvB,WACLuB,CACT,QAESD,eAAgBzB"} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/shared/ssr-window.esm.mjs b/build/assets/js/vendor/swiper/shared/ssr-window.esm.mjs deleted file mode 100644 index 874f0e9..0000000 --- a/build/assets/js/vendor/swiper/shared/ssr-window.esm.mjs +++ /dev/null @@ -1,145 +0,0 @@ -/** - * SSR Window 4.0.2 - * Better handling for window object in SSR environment - * https://github.com/nolimits4web/ssr-window - * - * Copyright 2021, Vladimir Kharlampidi - * - * Licensed under MIT - * - * Released on: December 13, 2021 - */ -/* eslint-disable no-param-reassign */ -function isObject(obj) { - return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object; -} -function extend(target, src) { - if (target === void 0) { - target = {}; - } - if (src === void 0) { - src = {}; - } - Object.keys(src).forEach(key => { - if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) { - extend(target[key], src[key]); - } - }); -} -const ssrDocument = { - body: {}, - addEventListener() {}, - removeEventListener() {}, - activeElement: { - blur() {}, - nodeName: '' - }, - querySelector() { - return null; - }, - querySelectorAll() { - return []; - }, - getElementById() { - return null; - }, - createEvent() { - return { - initEvent() {} - }; - }, - createElement() { - return { - children: [], - childNodes: [], - style: {}, - setAttribute() {}, - getElementsByTagName() { - return []; - } - }; - }, - createElementNS() { - return {}; - }, - importNode() { - return null; - }, - location: { - hash: '', - host: '', - hostname: '', - href: '', - origin: '', - pathname: '', - protocol: '', - search: '' - } -}; -function getDocument() { - const doc = typeof document !== 'undefined' ? document : {}; - extend(doc, ssrDocument); - return doc; -} -const ssrWindow = { - document: ssrDocument, - navigator: { - userAgent: '' - }, - location: { - hash: '', - host: '', - hostname: '', - href: '', - origin: '', - pathname: '', - protocol: '', - search: '' - }, - history: { - replaceState() {}, - pushState() {}, - go() {}, - back() {} - }, - CustomEvent: function CustomEvent() { - return this; - }, - addEventListener() {}, - removeEventListener() {}, - getComputedStyle() { - return { - getPropertyValue() { - return ''; - } - }; - }, - Image() {}, - Date() {}, - screen: {}, - setTimeout() {}, - clearTimeout() {}, - matchMedia() { - return {}; - }, - requestAnimationFrame(callback) { - if (typeof setTimeout === 'undefined') { - callback(); - return null; - } - return setTimeout(callback, 0); - }, - cancelAnimationFrame(id) { - if (typeof setTimeout === 'undefined') { - return; - } - clearTimeout(id); - } -}; -function getWindow() { - const win = typeof window !== 'undefined' ? window : {}; - extend(win, ssrWindow); - return win; -} - -export { getWindow as a, getDocument as g }; diff --git a/build/assets/js/vendor/swiper/shared/swiper-core.min.mjs b/build/assets/js/vendor/swiper/shared/swiper-core.min.mjs deleted file mode 100644 index b67ba34..0000000 --- a/build/assets/js/vendor/swiper/shared/swiper-core.min.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{a as getWindow,g as getDocument}from"./ssr-window.esm.min.mjs";import{a as elementParents,m as elementStyle,e as elementChildren,s as setCSSProperty,f as elementOuterSize,o as elementNextAll,p as elementPrevAll,i as getTranslate,q as animateCSSModeScroll,n as nextTick,r as showWarning,c as createElement,d as now,t as extend,g as elementIndex,u as deleteProps}from"./utils.min.mjs";let support,deviceCached,browser;function calcSupport(){const e=getWindow(),t=getDocument();return{smoothScroll:t.documentElement&&t.documentElement.style&&"scrollBehavior"in t.documentElement.style,touch:!!("ontouchstart"in e||e.DocumentTouch&&t instanceof e.DocumentTouch)}}function getSupport(){return support||(support=calcSupport()),support}function calcDevice(e){let{userAgent:t}=void 0===e?{}:e;const s=getSupport(),i=getWindow(),r=i.navigator.platform,n=t||i.navigator.userAgent,a={ios:!1,android:!1},l=i.screen.width,o=i.screen.height,d=n.match(/(Android);?[\s\/]+([\d.]+)?/);let c=n.match(/(iPad).*OS\s([\d_]+)/);const p=n.match(/(iPod)(.*OS\s([\d_]+))?/),u=!c&&n.match(/(iPhone\sOS|iOS)\s([\d_]+)/),h="Win32"===r;let m="MacIntel"===r;return!c&&m&&s.touch&&["1024x1366","1366x1024","834x1194","1194x834","834x1112","1112x834","768x1024","1024x768","820x1180","1180x820","810x1080","1080x810"].indexOf(`${l}x${o}`)>=0&&(c=n.match(/(Version)\/([\d.]+)/),c||(c=[0,1,"13_0_0"]),m=!1),d&&!h&&(a.os="android",a.android=!0),(c||u||p)&&(a.os="ios",a.ios=!0),a}function getDevice(e){return void 0===e&&(e={}),deviceCached||(deviceCached=calcDevice(e)),deviceCached}function calcBrowser(){const e=getWindow();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,i]=s.split("Version/")[1].split(" ")[0].split(".").map((e=>Number(e)));t=e<16||16===e&&i<2}}return{isSafari:t||s(),needPerspectiveFix:t,isWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(e.navigator.userAgent)}}function getBrowser(){return browser||(browser=calcBrowser()),browser}function Resize(e){let{swiper:t,on:s,emit:i}=e;const r=getWindow();let n=null,a=null;const l=()=>{t&&!t.destroyed&&t.initialized&&(i("beforeResize"),i("resize"))},o=()=>{t&&!t.destroyed&&t.initialized&&i("orientationchange")};s("init",(()=>{t.params.resizeObserver&&void 0!==r.ResizeObserver?t&&!t.destroyed&&t.initialized&&(n=new ResizeObserver((e=>{a=r.requestAnimationFrame((()=>{const{width:s,height:i}=t;let r=s,n=i;e.forEach((e=>{let{contentBoxSize:s,contentRect:i,target:a}=e;a&&a!==t.el||(r=i?i.width:(s[0]||s).inlineSize,n=i?i.height:(s[0]||s).blockSize)})),r===s&&n===i||l()}))})),n.observe(t.el)):(r.addEventListener("resize",l),r.addEventListener("orientationchange",o))})),s("destroy",(()=>{a&&r.cancelAnimationFrame(a),n&&n.unobserve&&t.el&&(n.unobserve(t.el),n=null),r.removeEventListener("resize",l),r.removeEventListener("orientationchange",o)}))}function Observer(e){let{swiper:t,extendParams:s,on:i,emit:r}=e;const n=[],a=getWindow(),l=function(e,s){void 0===s&&(s={});const i=new(a.MutationObserver||a.WebkitMutationObserver)((e=>{if(t.__preventObserver__)return;if(1===e.length)return void r("observerUpdate",e[0]);const s=function(){r("observerUpdate",e[0])};a.requestAnimationFrame?a.requestAnimationFrame(s):a.setTimeout(s,0)}));i.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(i)};s({observer:!1,observeParents:!1,observeSlideChildren:!1}),i("init",(()=>{if(t.params.observer){if(t.params.observeParents){const e=elementParents(t.hostEl);for(let t=0;t{n.forEach((e=>{e.disconnect()})),n.splice(0,n.length)}))}var eventsEmitter={on(e,t,s){const i=this;if(!i.eventsListeners||i.destroyed)return i;if("function"!=typeof t)return i;const r=s?"unshift":"push";return e.split(" ").forEach((e=>{i.eventsListeners[e]||(i.eventsListeners[e]=[]),i.eventsListeners[e][r](t)})),i},once(e,t,s){const i=this;if(!i.eventsListeners||i.destroyed)return i;if("function"!=typeof t)return i;function r(){i.off(e,r),r.__emitterProxy&&delete r.__emitterProxy;for(var s=arguments.length,n=new Array(s),a=0;a=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(((i,r)=>{(i===t||i.__emitterProxy&&i.__emitterProxy===t)&&s.eventsListeners[e].splice(r,1)}))})),s):s},emit(){const e=this;if(!e.eventsListeners||e.destroyed)return e;if(!e.eventsListeners)return e;let t,s,i;for(var r=arguments.length,n=new Array(r),a=0;a{e.eventsAnyListeners&&e.eventsAnyListeners.length&&e.eventsAnyListeners.forEach((e=>{e.apply(i,[t,...s])})),e.eventsListeners&&e.eventsListeners[t]&&e.eventsListeners[t].forEach((e=>{e.apply(i,s)}))})),e}};function updateSize(){const e=this;let t,s;const i=e.el;t=void 0!==e.params.width&&null!==e.params.width?e.params.width:i.clientWidth,s=void 0!==e.params.height&&null!==e.params.height?e.params.height:i.clientHeight,0===t&&e.isHorizontal()||0===s&&e.isVertical()||(t=t-parseInt(elementStyle(i,"padding-left")||0,10)-parseInt(elementStyle(i,"padding-right")||0,10),s=s-parseInt(elementStyle(i,"padding-top")||0,10)-parseInt(elementStyle(i,"padding-bottom")||0,10),Number.isNaN(t)&&(t=0),Number.isNaN(s)&&(s=0),Object.assign(e,{width:t,height:s,size:e.isHorizontal()?t:s}))}function updateSlides(){const e=this;function t(t,s){return parseFloat(t.getPropertyValue(e.getDirectionLabel(s))||0)}const s=e.params,{wrapperEl:i,slidesEl:r,size:n,rtlTranslate:a,wrongRTL:l}=e,o=e.virtual&&s.virtual.enabled,d=o?e.virtual.slides.length:e.slides.length,c=elementChildren(r,`.${e.params.slideClass}, swiper-slide`),p=o?e.virtual.slides.length:c.length;let u=[];const h=[],m=[];let f=s.slidesOffsetBefore;"function"==typeof f&&(f=s.slidesOffsetBefore.call(e));let v=s.slidesOffsetAfter;"function"==typeof v&&(v=s.slidesOffsetAfter.call(e));const g=e.snapGrid.length,w=e.slidesGrid.length;let S=s.spaceBetween,T=-f,b=0,x=0;if(void 0===n)return;"string"==typeof S&&S.indexOf("%")>=0?S=parseFloat(S.replace("%",""))/100*n:"string"==typeof S&&(S=parseFloat(S)),e.virtualSize=-S,c.forEach((e=>{a?e.style.marginLeft="":e.style.marginRight="",e.style.marginBottom="",e.style.marginTop=""})),s.centeredSlides&&s.cssMode&&(setCSSProperty(i,"--swiper-centered-offset-before",""),setCSSProperty(i,"--swiper-centered-offset-after",""));const y=s.grid&&s.grid.rows>1&&e.grid;let E;y?e.grid.initSlides(c):e.grid&&e.grid.unsetSlides();const C="auto"===s.slidesPerView&&s.breakpoints&&Object.keys(s.breakpoints).filter((e=>void 0!==s.breakpoints[e].slidesPerView)).length>0;for(let i=0;i1&&u.push(e.virtualSize-n)}if(o&&s.loop){const t=m[0]+S;if(s.slidesPerGroup>1){const i=Math.ceil((e.virtual.slidesBefore+e.virtual.slidesAfter)/s.slidesPerGroup),r=t*s.slidesPerGroup;for(let e=0;e!(s.cssMode&&!s.loop)||t!==c.length-1)).forEach((e=>{e.style[t]=`${S}px`}))}if(s.centeredSlides&&s.centeredSlidesBounds){let e=0;m.forEach((t=>{e+=t+(S||0)})),e-=S;const t=e-n;u=u.map((e=>e<=0?-f:e>t?t+v:e))}if(s.centerInsufficientSlides){let e=0;if(m.forEach((t=>{e+=t+(S||0)})),e-=S,e{u[s]=e-t})),h.forEach(((e,s)=>{h[s]=e+t}))}}if(Object.assign(e,{slides:c,snapGrid:u,slidesGrid:h,slidesSizesGrid:m}),s.centeredSlides&&s.cssMode&&!s.centeredSlidesBounds){setCSSProperty(i,"--swiper-centered-offset-before",-u[0]+"px"),setCSSProperty(i,"--swiper-centered-offset-after",e.size/2-m[m.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(p!==d&&e.emit("slidesLengthChange"),u.length!==g&&(e.params.watchOverflow&&e.checkOverflow(),e.emit("snapGridLengthChange")),h.length!==w&&e.emit("slidesGridLengthChange"),s.watchSlidesProgress&&e.updateSlidesOffset(),e.emit("slidesUpdated"),!(o||s.cssMode||"slide"!==s.effect&&"fade"!==s.effect)){const t=`${s.containerModifierClass}backface-hidden`,i=e.el.classList.contains(t);p<=s.maxBackfaceHiddenSlides?i||e.el.classList.add(t):i&&e.el.classList.remove(t)}}function updateAutoHeight(e){const t=this,s=[],i=t.virtual&&t.params.virtual.enabled;let r,n=0;"number"==typeof e?t.setTransition(e):!0===e&&t.setTransition(t.params.speed);const a=e=>i?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(r=0;rt.slides.length&&!i)break;s.push(a(e))}else s.push(a(t.activeIndex));for(r=0;rn?e:n}(n||0===n)&&(t.wrapperEl.style.height=`${n}px`)}function updateSlidesOffset(){const e=this,t=e.slides,s=e.isElement?e.isHorizontal()?e.wrapperEl.offsetLeft:e.wrapperEl.offsetTop:0;for(let i=0;i{e.classList.remove(s.slideVisibleClass,s.slideFullyVisibleClass)})),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&&u<=t.size-t.slidesSizesGrid[e];(u>=0&&u1&&h<=t.size||u<=0&&h>=t.size)&&(t.visibleSlides.push(o),t.visibleSlidesIndexes.push(e),i[e].classList.add(s.slideVisibleClass)),m&&i[e].classList.add(s.slideFullyVisibleClass),o.progress=r?-c:c,o.originalProgress=r?-p:p}}function updateProgress(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,i=t.maxTranslate()-t.minTranslate();let{progress:r,isBeginning:n,isEnd:a,progressLoop:l}=t;const o=n,d=a;if(0===i)r=0,n=!0,a=!0;else{r=(e-t.minTranslate())/i;const s=Math.abs(e-t.minTranslate())<1,l=Math.abs(e-t.maxTranslate())<1;n=s||r<=0,a=l||r>=1,s&&(r=0),l&&(r=1)}if(s.loop){const s=t.getSlideIndexByData(0),i=t.getSlideIndexByData(t.slides.length-1),r=t.slidesGrid[s],n=t.slidesGrid[i],a=t.slidesGrid[t.slidesGrid.length-1],o=Math.abs(e);l=o>=r?(o-r)/a:(o+a-n)/a,l>1&&(l-=1)}Object.assign(t,{progress:r,progressLoop:l,isBeginning:n,isEnd:a}),(s.watchSlidesProgress||s.centeredSlides&&s.autoHeight)&&t.updateSlidesProgress(e),n&&!o&&t.emit("reachBeginning toEdge"),a&&!d&&t.emit("reachEnd toEdge"),(o&&!n||d&&!a)&&t.emit("fromEdge"),t.emit("progress",r)}function updateSlidesClasses(){const e=this,{slides:t,params:s,slidesEl:i,activeIndex:r}=e,n=e.virtual&&s.virtual.enabled,a=e.grid&&s.grid&&s.grid.rows>1,l=e=>elementChildren(i,`.${s.slideClass}${e}, swiper-slide${e}`)[0];let o,d,c;if(t.forEach((e=>{e.classList.remove(s.slideActiveClass,s.slideNextClass,s.slidePrevClass)})),n)if(s.loop){let t=r-e.virtual.slidesBefore;t<0&&(t=e.virtual.slides.length+t),t>=e.virtual.slides.length&&(t-=e.virtual.slides.length),o=l(`[data-swiper-slide-index="${t}"]`)}else o=l(`[data-swiper-slide-index="${r}"]`);else a?(o=t.filter((e=>e.column===r))[0],c=t.filter((e=>e.column===r+1))[0],d=t.filter((e=>e.column===r-1))[0]):o=t[r];o&&(o.classList.add(s.slideActiveClass),a?(c&&c.classList.add(s.slideNextClass),d&&d.classList.add(s.slidePrevClass)):(c=elementNextAll(o,`.${s.slideClass}, swiper-slide`)[0],s.loop&&!c&&(c=t[0]),c&&c.classList.add(s.slideNextClass),d=elementPrevAll(o,`.${s.slideClass}, swiper-slide`)[0],s.loop&&0===!d&&(d=t[t.length-1]),d&&d.classList.add(s.slidePrevClass))),e.emitSlidesClasses()}const processLazyPreloader=(e,t)=>{if(!e||e.destroyed||!e.params)return;const s=t.closest(e.isElement?"swiper-slide":`.${e.params.slideClass}`);if(s){let t=s.querySelector(`.${e.params.lazyPreloaderClass}`);!t&&e.isElement&&(s.shadowRoot?t=s.shadowRoot.querySelector(`.${e.params.lazyPreloaderClass}`):requestAnimationFrame((()=>{s.shadowRoot&&(t=s.shadowRoot.querySelector(`.${e.params.lazyPreloaderClass}`),t&&t.remove())}))),t&&t.remove()}},unlazy=(e,t)=>{if(!e.slides[t])return;const s=e.slides[t].querySelector('[loading="lazy"]');s&&s.removeAttribute("loading")},preload=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 i="auto"===e.params.slidesPerView?e.slidesPerViewDynamic():Math.ceil(e.params.slidesPerView),r=e.activeIndex;if(e.params.grid&&e.params.grid.rows>1){const s=r,n=[s-t];return n.push(...Array.from({length:t}).map(((e,t)=>s+i+t))),void e.slides.forEach(((t,s)=>{n.includes(t.column)&&unlazy(e,s)}))}const n=r+i-1;if(e.params.rewind||e.params.loop)for(let i=r-t;i<=n+t;i+=1){const t=(i%s+s)%s;(tn)&&unlazy(e,t)}else for(let i=Math.max(r-t,0);i<=Math.min(n+t,s-1);i+=1)i!==r&&(i>n||i=t[e]&&i=t[e]&&i=t[e]&&(r=e);return s.normalizeSlideIndex&&(r<0||void 0===r)&&(r=0),r}function updateActiveIndex(e){const t=this,s=t.rtlTranslate?t.translate:-t.translate,{snapGrid:i,params:r,activeIndex:n,realIndex:a,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=getActiveIndexByTranslate(t)),i.indexOf(s)>=0)o=i.indexOf(s);else{const e=Math.min(r.slidesPerGroupSkip,d);o=e+Math.floor((d-e)/r.slidesPerGroup)}if(o>=i.length&&(o=i.length-1),d===n&&!t.params.loop)return void(o!==l&&(t.snapIndex=o,t.emit("snapIndexChange")));if(d===n&&t.params.loop&&t.virtual&&t.params.virtual.enabled)return void(t.realIndex=c(d));const p=t.grid&&r.grid&&r.grid.rows>1;let u;if(t.virtual&&r.virtual.enabled&&r.loop)u=c(d);else if(p){const e=t.slides.filter((e=>e.column===d))[0];let s=parseInt(e.getAttribute("data-swiper-slide-index"),10);Number.isNaN(s)&&(s=Math.max(t.slides.indexOf(e),0)),u=Math.floor(s/r.grid.rows)}else if(t.slides[d]){const e=t.slides[d].getAttribute("data-swiper-slide-index");u=e?parseInt(e,10):d}else u=d;Object.assign(t,{previousSnapIndex:l,snapIndex:o,previousRealIndex:a,realIndex:u,previousIndex:n,activeIndex:d}),t.initialized&&preload(t),t.emit("activeIndexChange"),t.emit("snapIndexChange"),(t.initialized||t.params.runCallbacksOnInit)&&(a!==u&&t.emit("realIndexChange"),t.emit("slideChange"))}function updateClickedSlide(e,t){const s=this,i=s.params;let r=e.closest(`.${i.slideClass}, swiper-slide`);!r&&s.isElement&&t&&t.length>1&&t.includes(e)&&[...t.slice(t.indexOf(e)+1,t.length)].forEach((e=>{!r&&e.matches&&e.matches(`.${i.slideClass}, swiper-slide`)&&(r=e)}));let n,a=!1;if(r)for(let e=0;eo?o:i&&ea?"next":n=o.length&&(v=o.length-1);const g=-o[v];if(l.normalizeSlideIndex)for(let e=0;e=s&&t=s&&t=s&&(a=e)}if(n.initialized&&a!==p){if(!n.allowSlideNext&&(u?g>n.translate&&g>n.minTranslate():gn.translate&&g>n.maxTranslate()&&(p||0)!==a)return!1}let w;if(a!==(c||0)&&s&&n.emit("beforeSlideChangeStart"),n.updateProgress(g),w=a>p?"next":a0?(n._cssModeVirtualInitialSet=!0,requestAnimationFrame((()=>{h[e?"scrollLeft":"scrollTop"]=s}))):h[e?"scrollLeft":"scrollTop"]=s,t&&requestAnimationFrame((()=>{n.wrapperEl.style.scrollSnapType="",n._immediateVirtual=!1}))}else{if(!n.support.smoothScroll)return animateCSSModeScroll({swiper:n,targetPosition:s,side:e?"left":"top"}),!0;h.scrollTo({[e?"left":"top"]:s,behavior:"smooth"})}return!0}return n.setTransition(t),n.setTranslate(g),n.updateActiveIndex(a),n.updateSlidesClasses(),n.emit("beforeTransitionStart",t,i),n.transitionStart(s,w),0===t?n.transitionEnd(s,w):n.animating||(n.animating=!0,n.onSlideToWrapperTransitionEnd||(n.onSlideToWrapperTransitionEnd=function(e){n&&!n.destroyed&&e.target===this&&(n.wrapperEl.removeEventListener("transitionend",n.onSlideToWrapperTransitionEnd),n.onSlideToWrapperTransitionEnd=null,delete n.onSlideToWrapperTransitionEnd,n.transitionEnd(s,w))}),n.wrapperEl.addEventListener("transitionend",n.onSlideToWrapperTransitionEnd)),!0}function slideToLoop(e,t,s,i){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 r=this,n=r.grid&&r.params.grid&&r.params.grid.rows>1;let a=e;if(r.params.loop)if(r.virtual&&r.params.virtual.enabled)a+=r.virtual.slidesBefore;else{let e;if(n){const t=a*r.params.grid.rows;e=r.slides.filter((e=>1*e.getAttribute("data-swiper-slide-index")===t))[0].column}else e=r.getSlideIndexByData(a);const t=n?Math.ceil(r.slides.length/r.params.grid.rows):r.slides.length,{centeredSlides:s}=r.params;let i=r.params.slidesPerView;"auto"===i?i=r.slidesPerViewDynamic():(i=Math.ceil(parseFloat(r.params.slidesPerView,10)),s&&i%2==0&&(i+=1));let l=t-e1*t.getAttribute("data-swiper-slide-index")===e))[0].column}else a=r.getSlideIndexByData(a)}return requestAnimationFrame((()=>{r.slideTo(a,t,s,i)})),r}function slideNext(e,t,s){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);const i=this,{enabled:r,params:n,animating:a}=i;if(!r)return i;let l=n.slidesPerGroup;"auto"===n.slidesPerView&&1===n.slidesPerGroup&&n.slidesPerGroupAuto&&(l=Math.max(i.slidesPerViewDynamic("current",!0),1));const o=i.activeIndex{i.slideTo(i.activeIndex+o,e,t,s)})),!0}return n.rewind&&i.isEnd?i.slideTo(0,e,t,s):i.slideTo(i.activeIndex+o,e,t,s)}function slidePrev(e,t,s){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);const i=this,{params:r,snapGrid:n,slidesGrid:a,rtlTranslate:l,enabled:o,animating:d}=i;if(!o)return i;const c=i.virtual&&r.virtual.enabled;if(r.loop){if(d&&!c&&r.loopPreventsSliding)return!1;i.loopFix({direction:"prev"}),i._clientLeft=i.wrapperEl.clientLeft}function p(e){return e<0?-Math.floor(Math.abs(e)):Math.floor(e)}const u=p(l?i.translate:-i.translate),h=n.map((e=>p(e)));let m=n[h.indexOf(u)-1];if(void 0===m&&r.cssMode){let e;n.forEach(((t,s)=>{u>=t&&(e=s)})),void 0!==e&&(m=n[e>0?e-1:e])}let f=0;if(void 0!==m&&(f=a.indexOf(m),f<0&&(f=i.activeIndex-1),"auto"===r.slidesPerView&&1===r.slidesPerGroup&&r.slidesPerGroupAuto&&(f=f-i.slidesPerViewDynamic("previous",!0)+1,f=Math.max(f,0))),r.rewind&&i.isBeginning){const r=i.params.virtual&&i.params.virtual.enabled&&i.virtual?i.virtual.slides.length-1:i.slides.length-1;return i.slideTo(r,e,t,s)}return r.loop&&0===i.activeIndex&&r.cssMode?(requestAnimationFrame((()=>{i.slideTo(f,e,t,s)})),!0):i.slideTo(f,e,t,s)}function slideReset(e,t,s){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);return this.slideTo(this.activeIndex,e,t,s)}function slideToClosest(e,t,s,i){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0),void 0===i&&(i=.5);const r=this;let n=r.activeIndex;const a=Math.min(r.params.slidesPerGroupSkip,n),l=a+Math.floor((n-a)/r.params.slidesPerGroup),o=r.rtlTranslate?r.translate:-r.translate;if(o>=r.snapGrid[l]){const e=r.snapGrid[l];o-e>(r.snapGrid[l+1]-e)*i&&(n+=r.params.slidesPerGroup)}else{const e=r.snapGrid[l-1];o-e<=(r.snapGrid[l]-e)*i&&(n-=r.params.slidesPerGroup)}return n=Math.max(n,0),n=Math.min(n,r.slidesGrid.length-1),r.slideTo(n,e,t,s)}function slideToClickedSlide(){const e=this,{params:t,slidesEl:s}=e,i="auto"===t.slidesPerView?e.slidesPerViewDynamic():t.slidesPerView;let r,n=e.clickedIndex;const a=e.isElement?"swiper-slide":`.${t.slideClass}`;if(t.loop){if(e.animating)return;r=parseInt(e.clickedSlide.getAttribute("data-swiper-slide-index"),10),t.centeredSlides?ne.slides.length-e.loopedSlides+i/2?(e.loopFix(),n=e.getSlideIndex(elementChildren(s,`${a}[data-swiper-slide-index="${r}"]`)[0]),nextTick((()=>{e.slideTo(n)}))):e.slideTo(n):n>e.slides.length-i?(e.loopFix(),n=e.getSlideIndex(elementChildren(s,`${a}[data-swiper-slide-index="${r}"]`)[0]),nextTick((()=>{e.slideTo(n)}))):e.slideTo(n)}else e.slideTo(n)}var slide={slideTo:slideTo,slideToLoop:slideToLoop,slideNext:slideNext,slidePrev:slidePrev,slideReset:slideReset,slideToClosest:slideToClosest,slideToClickedSlide:slideToClickedSlide};function loopCreate(e){const t=this,{params:s,slidesEl:i}=t;if(!s.loop||t.virtual&&t.params.virtual.enabled)return;const r=()=>{elementChildren(i,`.${s.slideClass}, swiper-slide`).forEach(((e,t)=>{e.setAttribute("data-swiper-slide-index",t)}))},n=t.grid&&s.grid&&s.grid.rows>1,a=s.slidesPerGroup*(n?s.grid.rows:1),l=t.slides.length%a!=0,o=n&&t.slides.length%s.grid.rows!=0,d=e=>{for(let i=0;i1;d.lengthe.classList.contains(h.slideActiveClass)))[0]):b=n;const x="next"===i||!i,y="prev"===i||!i;let E=0,C=0;const P=w?Math.ceil(d.length/h.grid.rows):d.length,M=(w?d[n].column:n)+(m&&void 0===r?-f/2+.5:0);if(M=0;t-=1)d[t].column===e&&S.push(t)}else S.push(P-t-1)}}else if(M+f>P-g){C=Math.max(M-(P-2*g),v);for(let e=0;e{e.column===t&&T.push(s)})):T.push(t)}}if(o.__preventObserver__=!0,requestAnimationFrame((()=>{o.__preventObserver__=!1})),y&&S.forEach((e=>{d[e].swiperLoopMoveDOM=!0,u.prepend(d[e]),d[e].swiperLoopMoveDOM=!1})),x&&T.forEach((e=>{d[e].swiperLoopMoveDOM=!0,u.append(d[e]),d[e].swiperLoopMoveDOM=!1})),o.recalcSlides(),"auto"===h.slidesPerView?o.updateSlides():w&&(S.length>0&&y||T.length>0&&x)&&o.slides.forEach(((e,t)=>{o.grid.updateSlide(t,e,o.slides)})),h.watchSlidesProgress&&o.updateSlidesOffset(),s)if(S.length>0&&y){if(void 0===t){const e=o.slidesGrid[b],t=o.slidesGrid[b+E]-e;l?o.setTranslate(o.translate-t):(o.slideTo(b+E,0,!1,!0),r&&(o.touchEventsData.startTranslate=o.touchEventsData.startTranslate-t,o.touchEventsData.currentTranslate=o.touchEventsData.currentTranslate-t))}else if(r){const e=w?S.length/h.grid.rows:S.length;o.slideTo(o.activeIndex+e,0,!1,!0),o.touchEventsData.currentTranslate=o.translate}}else if(T.length>0&&x)if(void 0===t){const e=o.slidesGrid[b],t=o.slidesGrid[b-C]-e;l?o.setTranslate(o.translate-t):(o.slideTo(b-C,0,!1,!0),r&&(o.touchEventsData.startTranslate=o.touchEventsData.startTranslate-t,o.touchEventsData.currentTranslate=o.touchEventsData.currentTranslate-t))}else{const e=w?T.length/h.grid.rows:T.length;o.slideTo(o.activeIndex-e,0,!1,!0)}if(o.allowSlidePrev=c,o.allowSlideNext=p,o.controller&&o.controller.control&&!a){const e={slideRealIndex:t,direction:i,setTranslate:r,activeSlideIndex:n,byController:!0};Array.isArray(o.controller.control)?o.controller.control.forEach((t=>{!t.destroyed&&t.params.loop&&t.loopFix({...e,slideTo:t.params.slidesPerView===h.slidesPerView&&s})})):o.controller.control instanceof o.constructor&&o.controller.control.params.loop&&o.controller.control.loopFix({...e,slideTo:o.controller.control.params.slidesPerView===h.slidesPerView&&s})}o.emit("loopFix")}function loopDestroy(){const e=this,{params:t,slidesEl:s}=e;if(!t.loop||e.virtual&&e.params.virtual.enabled)return;e.recalcSlides();const i=[];e.slides.forEach((e=>{const t=void 0===e.swiperSlideIndex?1*e.getAttribute("data-swiper-slide-index"):e.swiperSlideIndex;i[t]=e})),e.slides.forEach((e=>{e.removeAttribute("data-swiper-slide-index")})),i.forEach((e=>{s.append(e)})),e.recalcSlides(),e.slideTo(e.realIndex,0)}var loop={loopCreate:loopCreate,loopFix:loopFix,loopDestroy:loopDestroy};function setGrabCursor(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}))}function unsetGrabCursor(){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})))}var grabCursor={setGrabCursor:setGrabCursor,unsetGrabCursor:unsetGrabCursor};function closestElement(e,t){return void 0===t&&(t=this),function t(s){if(!s||s===getDocument()||s===getWindow())return null;s.assignedSlot&&(s=s.assignedSlot);const i=s.closest(e);return i||s.getRootNode?i||t(s.getRootNode().host):null}(t)}function preventEdgeSwipe(e,t,s){const i=getWindow(),{params:r}=e,n=r.edgeSwipeDetection,a=r.edgeSwipeThreshold;return!n||!(s<=a||s>=i.innerWidth-a)||"prevent"===n&&(t.preventDefault(),!0)}function onTouchStart(e){const t=this,s=getDocument();let i=e;i.originalEvent&&(i=i.originalEvent);const r=t.touchEventsData;if("pointerdown"===i.type){if(null!==r.pointerId&&r.pointerId!==i.pointerId)return;r.pointerId=i.pointerId}else"touchstart"===i.type&&1===i.targetTouches.length&&(r.touchId=i.targetTouches[0].identifier);if("touchstart"===i.type)return void preventEdgeSwipe(t,i,i.targetTouches[0].pageX);const{params:n,touches:a,enabled:l}=t;if(!l)return;if(!n.simulateTouch&&"mouse"===i.pointerType)return;if(t.animating&&n.preventInteractionOnTransition)return;!t.animating&&n.cssMode&&n.loop&&t.loopFix();let o=i.target;if("wrapper"===n.touchEventsTarget&&!t.wrapperEl.contains(o))return;if("which"in i&&3===i.which)return;if("button"in i&&i.button>0)return;if(r.isTouched&&r.isMoved)return;const d=!!n.noSwipingClass&&""!==n.noSwipingClass,c=i.composedPath?i.composedPath():i.path;d&&i.target&&i.target.shadowRoot&&c&&(o=c[0]);const p=n.noSwipingSelector?n.noSwipingSelector:`.${n.noSwipingClass}`,u=!(!i.target||!i.target.shadowRoot);if(n.noSwiping&&(u?closestElement(p,o):o.closest(p)))return void(t.allowClick=!0);if(n.swipeHandler&&!o.closest(n.swipeHandler))return;a.currentX=i.pageX,a.currentY=i.pageY;const h=a.currentX,m=a.currentY;if(!preventEdgeSwipe(t,i,h))return;Object.assign(r,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),a.startX=h,a.startY=m,r.touchStartTime=now(),t.allowClick=!0,t.updateSize(),t.swipeDirection=void 0,n.threshold>0&&(r.allowThresholdMove=!1);let f=!0;o.matches(r.focusableElements)&&(f=!1,"SELECT"===o.nodeName&&(r.isTouched=!1)),s.activeElement&&s.activeElement.matches(r.focusableElements)&&s.activeElement!==o&&s.activeElement.blur();const v=f&&t.allowTouchMove&&n.touchStartPreventDefault;!n.touchStartForcePreventDefault&&!v||o.isContentEditable||i.preventDefault(),n.freeMode&&n.freeMode.enabled&&t.freeMode&&t.animating&&!n.cssMode&&t.freeMode.onTouchStart(),t.emit("touchStart",i)}function onTouchMove(e){const t=getDocument(),s=this,i=s.touchEventsData,{params:r,touches:n,rtlTranslate:a,enabled:l}=s;if(!l)return;if(!r.simulateTouch&&"mouse"===e.pointerType)return;let o,d=e;if(d.originalEvent&&(d=d.originalEvent),"pointermove"===d.type){if(null!==i.touchId)return;if(d.pointerId!==i.pointerId)return}if("touchmove"===d.type){if(o=[...d.changedTouches].filter((e=>e.identifier===i.touchId))[0],!o||o.identifier!==i.touchId)return}else o=d;if(!i.isTouched)return void(i.startMoving&&i.isScrolling&&s.emit("touchMoveOpposite",d));const c=o.pageX,p=o.pageY;if(d.preventedByNestedSwiper)return n.startX=c,void(n.startY=p);if(!s.allowTouchMove)return d.target.matches(i.focusableElements)||(s.allowClick=!1),void(i.isTouched&&(Object.assign(n,{startX:c,startY:p,currentX:c,currentY:p}),i.touchStartTime=now()));if(r.touchReleaseOnEdges&&!r.loop)if(s.isVertical()){if(pn.startY&&s.translate>=s.minTranslate())return i.isTouched=!1,void(i.isMoved=!1)}else if(cn.startX&&s.translate>=s.minTranslate())return;if(t.activeElement&&d.target===t.activeElement&&d.target.matches(i.focusableElements))return i.isMoved=!0,void(s.allowClick=!1);i.allowTouchCallbacks&&s.emit("touchMove",d),n.previousX=n.currentX,n.previousY=n.currentY,n.currentX=c,n.currentY=p;const u=n.currentX-n.startX,h=n.currentY-n.startY;if(s.params.threshold&&Math.sqrt(u**2+h**2)=25&&(e=180*Math.atan2(Math.abs(h),Math.abs(u))/Math.PI,i.isScrolling=s.isHorizontal()?e>r.touchAngle:90-e>r.touchAngle)}if(i.isScrolling&&s.emit("touchMoveOpposite",d),void 0===i.startMoving&&(n.currentX===n.startX&&n.currentY===n.startY||(i.startMoving=!0)),i.isScrolling)return void(i.isTouched=!1);if(!i.startMoving)return;s.allowClick=!1,!r.cssMode&&d.cancelable&&d.preventDefault(),r.touchMoveStopPropagation&&!r.nested&&d.stopPropagation();let m=s.isHorizontal()?u:h,f=s.isHorizontal()?n.currentX-n.previousX:n.currentY-n.previousY;r.oneWayMovement&&(m=Math.abs(m)*(a?1:-1),f=Math.abs(f)*(a?1:-1)),n.diff=m,m*=r.touchRatio,a&&(m=-m,f=-f);const v=s.touchesDirection;s.swipeDirection=m>0?"prev":"next",s.touchesDirection=f>0?"prev":"next";const g=s.params.loop&&!r.cssMode,w="next"===s.touchesDirection&&s.allowSlideNext||"prev"===s.touchesDirection&&s.allowSlidePrev;if(!i.isMoved){if(g&&w&&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",d)}if((new Date).getTime(),i.isMoved&&i.allowThresholdMove&&v!==s.touchesDirection&&g&&w&&Math.abs(m)>=1)return Object.assign(n,{startX:c,startY:p,currentX:c,currentY:p,startTranslate:i.currentTranslate}),i.loopSwapReset=!0,void(i.startTranslate=i.currentTranslate);s.emit("sliderMove",d),i.isMoved=!0,i.currentTranslate=m+i.startTranslate;let S=!0,T=r.resistanceRatio;if(r.touchReleaseOnEdges&&(T=0),m>0?(g&&w&&i.allowThresholdMove&&i.currentTranslate>(r.centeredSlides?s.minTranslate()-s.slidesSizesGrid[s.activeIndex+1]:s.minTranslate())&&s.loopFix({direction:"prev",setTranslate:!0,activeSlideIndex:0}),i.currentTranslate>s.minTranslate()&&(S=!1,r.resistance&&(i.currentTranslate=s.minTranslate()-1+(-s.minTranslate()+i.startTranslate+m)**T))):m<0&&(g&&w&&i.allowThresholdMove&&i.currentTranslate<(r.centeredSlides?s.maxTranslate()+s.slidesSizesGrid[s.slidesSizesGrid.length-1]: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(m)>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 onTouchEnd(e){const t=this,s=t.touchEventsData;let i,r=e;r.originalEvent&&(r=r.originalEvent);if("touchend"===r.type||"touchcancel"===r.type){if(i=[...r.changedTouches].filter((e=>e.identifier===s.touchId))[0],!i||i.identifier!==s.touchId)return}else{if(null!==s.touchId)return;if(r.pointerId!==s.pointerId)return;i=r}if(["pointercancel","pointerout","pointerleave","contextmenu"].includes(r.type)){if(!(["pointercancel","contextmenu"].includes(r.type)&&(t.browser.isSafari||t.browser.isWebView)))return}s.pointerId=null,s.touchId=null;const{params:n,touches:a,rtlTranslate:l,slidesGrid:o,enabled:d}=t;if(!d)return;if(!n.simulateTouch&&"mouse"===r.pointerType)return;if(s.allowTouchCallbacks&&t.emit("touchEnd",r),s.allowTouchCallbacks=!1,!s.isTouched)return s.isMoved&&n.grabCursor&&t.setGrabCursor(!1),s.isMoved=!1,void(s.startMoving=!1);n.grabCursor&&s.isMoved&&s.isTouched&&(!0===t.allowSlideNext||!0===t.allowSlidePrev)&&t.setGrabCursor(!1);const c=now(),p=c-s.touchStartTime;if(t.allowClick){const e=r.path||r.composedPath&&r.composedPath();t.updateClickedSlide(e&&e[0]||r.target,e),t.emit("tap click",r),p<300&&c-s.lastClickTime<300&&t.emit("doubleTap doubleClick",r)}if(s.lastClickTime=now(),nextTick((()=>{t.destroyed||(t.allowClick=!0)})),!s.isTouched||!s.isMoved||!t.swipeDirection||0===a.diff&&!s.loopSwapReset||s.currentTranslate===s.startTranslate&&!s.loopSwapReset)return s.isTouched=!1,s.isMoved=!1,void(s.startMoving=!1);let u;if(s.isTouched=!1,s.isMoved=!1,s.startMoving=!1,u=n.followFinger?l?t.translate:-t.translate:-s.currentTranslate,n.cssMode)return;if(n.freeMode&&n.freeMode.enabled)return void t.freeMode.onTouchEnd({currentPos:u});const h=u>=-t.maxTranslate()&&!t.params.loop;let m=0,f=t.slidesSizesGrid[0];for(let e=0;e=o[e]&&u=o[e])&&(m=e,f=o[o.length-1]-o[o.length-2])}let v=null,g=null;n.rewind&&(t.isBeginning?g=n.virtual&&n.virtual.enabled&&t.virtual?t.virtual.slides.length-1:t.slides.length-1:t.isEnd&&(v=0));const w=(u-o[m])/f,S=mn.longSwipesMs){if(!n.longSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&(w>=n.longSwipesRatio?t.slideTo(n.rewind&&t.isEnd?v:m+S):t.slideTo(m)),"prev"===t.swipeDirection&&(w>1-n.longSwipesRatio?t.slideTo(m+S):null!==g&&w<0&&Math.abs(w)>n.longSwipesRatio?t.slideTo(g):t.slideTo(m))}else{if(!n.shortSwipes)return void t.slideTo(t.activeIndex);t.navigation&&(r.target===t.navigation.nextEl||r.target===t.navigation.prevEl)?r.target===t.navigation.nextEl?t.slideTo(m+S):t.slideTo(m):("next"===t.swipeDirection&&t.slideTo(null!==v?v:m+S),"prev"===t.swipeDirection&&t.slideTo(null!==g?g:m))}}function onResize(){const e=this,{params:t,el:s}=e;if(s&&0===s.offsetWidth)return;t.breakpoints&&e.setBreakpoint();const{allowSlideNext:i,allowSlidePrev:r,snapGrid:n}=e,a=e.virtual&&e.params.virtual.enabled;e.allowSlideNext=!0,e.allowSlidePrev=!0,e.updateSize(),e.updateSlides(),e.updateSlidesClasses();const l=a&&t.loop;!("auto"===t.slidesPerView||t.slidesPerView>1)||!e.isEnd||e.isBeginning||e.params.centeredSlides||l?e.params.loop&&!a?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=r,e.allowSlideNext=i,e.params.watchOverflow&&n!==e.snapGrid&&e.checkOverflow()}function onClick(e){const t=this;t.enabled&&(t.allowClick||(t.params.preventClicks&&e.preventDefault(),t.params.preventClicksPropagation&&t.animating&&(e.stopPropagation(),e.stopImmediatePropagation())))}function onScroll(){const e=this,{wrapperEl:t,rtlTranslate:s,enabled:i}=e;if(!i)return;let r;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 n=e.maxTranslate()-e.minTranslate();r=0===n?0:(e.translate-e.minTranslate())/n,r!==e.progress&&e.updateProgress(s?-e.translate:e.translate),e.emit("setTranslate",e.translate,!1)}function onLoad(e){const t=this;processLazyPreloader(t,e.target),t.params.cssMode||"auto"!==t.params.slidesPerView&&!t.params.autoHeight||t.update()}function onDocumentTouchStart(){const e=this;e.documentTouchHandlerProceeded||(e.documentTouchHandlerProceeded=!0,e.params.touchReleaseOnEdges&&(e.el.style.touchAction="auto"))}const events=(e,t)=>{const s=getDocument(),{params:i,el:r,wrapperEl:n,device:a}=e,l=!!i.nested,o="on"===t?"addEventListener":"removeEventListener",d=t;s[o]("touchstart",e.onDocumentTouchStart,{passive:!1,capture:l}),r[o]("touchstart",e.onTouchStart,{passive:!1}),r[o]("pointerdown",e.onTouchStart,{passive:!1}),s[o]("touchmove",e.onTouchMove,{passive:!1,capture:l}),s[o]("pointermove",e.onTouchMove,{passive:!1,capture:l}),s[o]("touchend",e.onTouchEnd,{passive:!0}),s[o]("pointerup",e.onTouchEnd,{passive:!0}),s[o]("pointercancel",e.onTouchEnd,{passive:!0}),s[o]("touchcancel",e.onTouchEnd,{passive:!0}),s[o]("pointerout",e.onTouchEnd,{passive:!0}),s[o]("pointerleave",e.onTouchEnd,{passive:!0}),s[o]("contextmenu",e.onTouchEnd,{passive:!0}),(i.preventClicks||i.preventClicksPropagation)&&r[o]("click",e.onClick,!0),i.cssMode&&n[o]("scroll",e.onScroll),i.updateOnWindowResize?e[d](a.ios||a.android?"resize orientationchange observerUpdate":"resize observerUpdate",onResize,!0):e[d]("observerUpdate",onResize,!0),r[o]("load",e.onLoad,{capture:!0})};function attachEvents(){const e=this,{params:t}=e;e.onTouchStart=onTouchStart.bind(e),e.onTouchMove=onTouchMove.bind(e),e.onTouchEnd=onTouchEnd.bind(e),e.onDocumentTouchStart=onDocumentTouchStart.bind(e),t.cssMode&&(e.onScroll=onScroll.bind(e)),e.onClick=onClick.bind(e),e.onLoad=onLoad.bind(e),events(e,"on")}function detachEvents(){events(this,"off")}var events$1={attachEvents:attachEvents,detachEvents:detachEvents};const isGridEnabled=(e,t)=>e.grid&&t.grid&&t.grid.rows>1;function setBreakpoint(){const e=this,{realIndex:t,initialized:s,params:i,el:r}=e,n=i.breakpoints;if(!n||n&&0===Object.keys(n).length)return;const a=e.getBreakpoint(n,e.params.breakpointsBase,e.el);if(!a||e.currentBreakpoint===a)return;const l=(a in n?n[a]:void 0)||e.originalParams,o=isGridEnabled(e,i),d=isGridEnabled(e,l),c=i.enabled;o&&!d?(r.classList.remove(`${i.containerModifierClass}grid`,`${i.containerModifierClass}grid-column`),e.emitContainerClasses()):!o&&d&&(r.classList.add(`${i.containerModifierClass}grid`),(l.grid.fill&&"column"===l.grid.fill||!l.grid.fill&&"column"===i.grid.fill)&&r.classList.add(`${i.containerModifierClass}grid-column`),e.emitContainerClasses()),["navigation","pagination","scrollbar"].forEach((t=>{if(void 0===l[t])return;const s=i[t]&&i[t].enabled,r=l[t]&&l[t].enabled;s&&!r&&e[t].disable(),!s&&r&&e[t].enable()}));const p=l.direction&&l.direction!==i.direction,u=i.loop&&(l.slidesPerView!==i.slidesPerView||p),h=i.loop;p&&s&&e.changeDirection(),extend(e.params,l);const m=e.params.enabled,f=e.params.loop;Object.assign(e,{allowTouchMove:e.params.allowTouchMove,allowSlideNext:e.params.allowSlideNext,allowSlidePrev:e.params.allowSlidePrev}),c&&!m?e.disable():!c&&m&&e.enable(),e.currentBreakpoint=a,e.emit("_beforeBreakpoint",l),s&&(u?(e.loopDestroy(),e.loopCreate(t),e.updateSlides()):!h&&f?(e.loopCreate(t),e.updateSlides()):h&&!f&&e.loopDestroy()),e.emit("breakpoint",l)}function getBreakpoint(e,t,s){if(void 0===t&&(t="window"),!e||"container"===t&&!s)return;let i=!1;const r=getWindow(),n="window"===t?r.innerHeight:s.clientHeight,a=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}}));a.sort(((e,t)=>parseInt(e.value,10)-parseInt(t.value,10)));for(let e=0;e{"object"==typeof e?Object.keys(e).forEach((i=>{e[i]&&s.push(t+i)})):"string"==typeof e&&s.push(t+e)})),s}function addClasses(){const e=this,{classNames:t,params:s,rtl:i,el:r,device:n}=e,a=prepareClasses(["initialized",s.direction,{"free-mode":e.params.freeMode&&s.freeMode.enabled},{autoheight:s.autoHeight},{rtl:i},{grid:s.grid&&s.grid.rows>1},{"grid-column":s.grid&&s.grid.rows>1&&"column"===s.grid.fill},{android:n.android},{ios:n.ios},{"css-mode":s.cssMode},{centered:s.cssMode&&s.centeredSlides},{"watch-progress":s.watchSlidesProgress}],s.containerModifierClass);t.push(...a),r.classList.add(...t),e.emitContainerClasses()}function removeClasses(){const{el:e,classNames:t}=this;e.classList.remove(...t),this.emitContainerClasses()}var classes={addClasses:addClasses,removeClasses:removeClasses};function checkOverflow(){const e=this,{isLocked:t,params:s}=e,{slidesOffsetBefore:i}=s;if(i){const t=e.slides.length-1,s=e.slidesGrid[t]+e.slidesSizesGrid[t]+2*i;e.isLocked=e.size>s}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")}var checkOverflow$1={checkOverflow:checkOverflow},defaults={init:!0,direction:"horizontal",oneWayMovement:!1,touchEventsTarget:"wrapper",initialSlide:0,speed:300,cssMode:!1,updateOnWindowResize:!0,resizeObserver:!0,nested:!1,createElements:!1,eventsPrefix:"swiper",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,loopAddBlankSlides:!0,loopAdditionalSlides:0,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",slideBlankClass:"swiper-slide-blank",slideActiveClass:"swiper-slide-active",slideVisibleClass:"swiper-slide-visible",slideFullyVisibleClass:"swiper-slide-fully-visible",slideNextClass:"swiper-slide-next",slidePrevClass:"swiper-slide-prev",wrapperClass:"swiper-wrapper",lazyPreloaderClass:"swiper-lazy-preloader",lazyPreloadPrevNext:0,runCallbacksOnInit:!0,_emitClasses:!1};function moduleExtendParams(e,t){return function(s){void 0===s&&(s={});const i=Object.keys(s)[0],r=s[i];"object"==typeof r&&null!==r?(!0===e[i]&&(e[i]={enabled:!0}),"navigation"===i&&e[i]&&e[i].enabled&&!e[i].prevEl&&!e[i].nextEl&&(e[i].auto=!0),["pagination","scrollbar"].indexOf(i)>=0&&e[i]&&e[i].enabled&&!e[i].el&&(e[i].auto=!0),i in e&&"enabled"in r?("object"!=typeof e[i]||"enabled"in e[i]||(e[i].enabled=!0),e[i]||(e[i]={enabled:!1}),extend(t,s)):extend(t,s)):extend(t,s)}}const prototypes={eventsEmitter:eventsEmitter,update:update,translate:translate,transition:transition,slide:slide,loop:loop,grabCursor:grabCursor,events:events$1,breakpoints:breakpoints,checkOverflow:checkOverflow$1,classes:classes},extendedDefaults={};class Swiper{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 i=extend({},t,{el:s});e.push(new Swiper(i))})),e}const a=this;a.__swiper__=!0,a.support=getSupport(),a.device=getDevice({userAgent:t.userAgent}),a.browser=getBrowser(),a.eventsListeners={},a.eventsAnyListeners=[],a.modules=[...a.__modules__],t.modules&&Array.isArray(t.modules)&&a.modules.push(...t.modules);const l={};a.modules.forEach((e=>{e({params:t,swiper:a,extendParams:moduleExtendParams(t,l),on:a.on.bind(a),once:a.once.bind(a),off:a.off.bind(a),emit:a.emit.bind(a)})}));const o=extend({},defaults,l);return a.params=extend({},o,extendedDefaults,t),a.originalParams=extend({},a.params),a.passedParams=extend({},t),a.params&&a.params.on&&Object.keys(a.params.on).forEach((e=>{a.on(e,a.params.on[e])})),a.params&&a.params.onAny&&a.onAny(a.params.onAny),Object.assign(a,{enabled:a.params.enabled,el:e,classNames:[],slides:[],slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal:()=>"horizontal"===a.params.direction,isVertical:()=>"vertical"===a.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:a.params.allowSlideNext,allowSlidePrev:a.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:a.params.focusableElements,lastClickTime:0,clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,startMoving:void 0,pointerId:null,touchId:null},allowClick:!0,allowTouchMove:a.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),a.emit("_swiper"),a.params.init&&a.init(),a}getDirectionLabel(e){return this.isHorizontal()?e:{width:"height","margin-top":"margin-left","margin-bottom ":"margin-right","margin-left":"margin-top","margin-right":"margin-bottom","padding-left":"padding-top","padding-right":"padding-bottom",marginRight:"marginBottom"}[e]}getSlideIndex(e){const{slidesEl:t,params:s}=this,i=elementChildren(t,`.${s.slideClass}, swiper-slide`),r=elementIndex(i[0]);return elementIndex(e)-r}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=elementChildren(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 i=s.minTranslate(),r=(s.maxTranslate()-i)*e+i;s.translateTo(r,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 i=e.getSlideClasses(s);t.push({slideEl:s,classNames:i}),e.emit("_slideClass",s,i)})),e.emit("_slideClasses",t)}slidesPerViewDynamic(e,t){void 0===e&&(e="current"),void 0===t&&(t=!1);const{params:s,slides:i,slidesGrid:r,slidesSizesGrid:n,size:a,activeIndex:l}=this;let o=1;if("number"==typeof s.slidesPerView)return s.slidesPerView;if(s.centeredSlides){let e,t=i[l]?i[l].swiperSlideSize:0;for(let s=l+1;sa&&(e=!0));for(let s=l-1;s>=0;s-=1)i[s]&&!e&&(t+=i[s].swiperSlideSize,o+=1,t>a&&(e=!0))}else if("current"===e)for(let e=l+1;e=0;e-=1){r[l]-r[e]{t.complete&&processLazyPreloader(e,t)})),e.updateSize(),e.updateSlides(),e.updateProgress(),e.updateSlidesClasses(),s.freeMode&&s.freeMode.enabled&&!s.cssMode)i(),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;r=e.slideTo(t.length-1,0,!1,!0)}else r=e.slideTo(e.activeIndex,0,!1,!0);r||i()}s.watchOverflow&&t!==e.snapGrid&&e.checkOverflow(),e.emit("update")}changeDirection(e,t){void 0===t&&(t=!0);const s=this,i=s.params.direction;return e||(e="horizontal"===i?"vertical":"horizontal"),e===i||"horizontal"!==e&&"vertical"!==e||(s.el.classList.remove(`${s.params.containerModifierClass}${i}`),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.parentNode&&s.parentNode.host&&"SWIPER-CONTAINER"===s.parentNode.host.nodeName&&(t.isElement=!0);const i=()=>`.${(t.params.wrapperClass||"").trim().split(" ").join(".")}`;let r=(()=>{if(s&&s.shadowRoot&&s.shadowRoot.querySelector){return s.shadowRoot.querySelector(i())}return elementChildren(s,i())[0]})();return!r&&t.params.createElements&&(r=createElement("div",t.params.wrapperClass),s.append(r),elementChildren(s,`.${t.params.slideClass}`).forEach((e=>{r.append(e)}))),Object.assign(t,{el:s,wrapperEl:r,slidesEl:t.isElement&&!s.parentNode.host.slideSlots?s.parentNode.host:r,hostEl:t.isElement?s.parentNode.host:s,mounted:!0,rtl:"rtl"===s.dir.toLowerCase()||"rtl"===elementStyle(s,"direction"),rtlTranslate:"horizontal"===t.params.direction&&("rtl"===s.dir.toLowerCase()||"rtl"===elementStyle(s,"direction")),wrongRTL:"-webkit-box"===elementStyle(r,"display")}),!0}init(e){const t=this;if(t.initialized)return t;if(!1===t.mount(e))return t;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();const s=[...t.el.querySelectorAll('[loading="lazy"]')];return t.isElement&&s.push(...t.hostEl.querySelectorAll('[loading="lazy"]')),s.forEach((e=>{e.complete?processLazyPreloader(t,e):e.addEventListener("load",(e=>{processLazyPreloader(t,e.target)}))})),preload(t),t.initialized=!0,preload(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:i,el:r,wrapperEl:n,slides:a}=s;return void 0===s.params||s.destroyed||(s.emit("beforeDestroy"),s.initialized=!1,s.detachEvents(),i.loop&&s.loopDestroy(),t&&(s.removeClasses(),r.removeAttribute("style"),n.removeAttribute("style"),a&&a.length&&a.forEach((e=>{e.classList.remove(i.slideVisibleClass,i.slideFullyVisibleClass,i.slideActiveClass,i.slideNextClass,i.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,deleteProps(s)),s.destroyed=!0),null}static extendDefaults(e){extend(extendedDefaults,e)}static get extendedDefaults(){return extendedDefaults}static get defaults(){return defaults}static installModule(e){Swiper.prototype.__modules__||(Swiper.prototype.__modules__=[]);const t=Swiper.prototype.__modules__;"function"==typeof e&&t.indexOf(e)<0&&t.push(e)}static use(e){return Array.isArray(e)?(e.forEach((e=>Swiper.installModule(e))),Swiper):(Swiper.installModule(e),Swiper)}}Object.keys(prototypes).forEach((e=>{Object.keys(prototypes[e]).forEach((t=>{Swiper.prototype[t]=prototypes[e][t]}))})),Swiper.use([Resize,Observer]);export{Swiper as S,defaults as d}; -//# sourceMappingURL=swiper-core.min.mjs.map \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/shared/swiper-core.min.mjs.map b/build/assets/js/vendor/swiper/shared/swiper-core.min.mjs.map deleted file mode 100644 index 7a44a6f..0000000 --- a/build/assets/js/vendor/swiper/shared/swiper-core.min.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"swiper-core.mjs.mjs","names":["getWindow","getDocument","elementParents","elementStyle","elementChildren","setCSSProperty","elementOuterSize","elementNextAll","elementPrevAll","getTranslate","animateCSSModeScroll","nextTick","showWarning","createElement","now","extend","elementIndex","deleteProps","support","deviceCached","browser","calcSupport","window","document","smoothScroll","documentElement","style","touch","DocumentTouch","getSupport","calcDevice","_temp","userAgent","platform","navigator","ua","device","ios","android","screenWidth","screen","width","screenHeight","height","match","ipad","ipod","iphone","windows","macos","indexOf","os","getDevice","overrides","calcBrowser","needPerspectiveFix","isSafari","toLowerCase","String","includes","major","minor","split","map","num","Number","isWebView","test","getBrowser","Resize","_ref","swiper","on","emit","observer","animationFrame","resizeHandler","destroyed","initialized","orientationChangeHandler","params","resizeObserver","ResizeObserver","entries","requestAnimationFrame","newWidth","newHeight","forEach","_ref2","contentBoxSize","contentRect","target","el","inlineSize","blockSize","observe","addEventListener","cancelAnimationFrame","unobserve","removeEventListener","Observer","extendParams","observers","attach","options","MutationObserver","WebkitMutationObserver","mutations","__preventObserver__","length","observerUpdate","setTimeout","attributes","childList","characterData","push","observeParents","observeSlideChildren","containerParents","hostEl","i","wrapperEl","disconnect","splice","eventsEmitter","events","handler","priority","self","this","eventsListeners","method","event","once","onceHandler","off","__emitterProxy","_len","arguments","args","Array","_key","apply","onAny","eventsAnyListeners","offAny","index","eventHandler","data","context","_len2","_key2","isArray","slice","unshift","updateSize","clientWidth","clientHeight","isHorizontal","isVertical","parseInt","isNaN","Object","assign","size","updateSlides","getDirectionPropertyValue","node","label","parseFloat","getPropertyValue","getDirectionLabel","slidesEl","swiperSize","rtlTranslate","rtl","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slides","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","call","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","replace","virtualSize","slideEl","marginLeft","marginRight","marginBottom","marginTop","centeredSlides","cssMode","gridEnabled","grid","rows","slideSize","initSlides","unsetSlides","shouldResetSlideSize","slidesPerView","breakpoints","keys","filter","key","slide","updateSlide","slideStyles","getComputedStyle","currentTransform","transform","currentWebKitTransform","webkitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","offsetWidth","Math","floor","swiperSlideSize","abs","slidesPerGroup","min","slidesPerGroupSkip","max","effect","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","loop","groups","ceil","slidesBefore","slidesAfter","groupSize","_","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","v","watchOverflow","checkOverflow","watchSlidesProgress","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","classList","contains","maxBackfaceHiddenSlides","add","remove","updateAutoHeight","speed","activeSlides","setTransition","getSlideByIndex","getSlideIndexByData","visibleSlides","activeIndex","offsetHeight","minusOffset","isElement","offsetLeft","offsetTop","swiperSlideOffset","cssOverflowAdjustment","updateSlidesProgress","translate","offsetCenter","slideVisibleClass","slideFullyVisibleClass","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","isFullyVisible","progress","originalProgress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","progressLoop","wasBeginning","wasEnd","isBeginningRounded","isEndRounded","firstSlideIndex","lastSlideIndex","firstSlideTranslate","lastSlideTranslate","translateMax","translateAbs","autoHeight","updateSlidesClasses","getFilteredSlide","selector","activeSlide","prevSlide","nextSlide","slideActiveClass","slideNextClass","slidePrevClass","column","emitSlidesClasses","processLazyPreloader","imageEl","closest","lazyEl","querySelector","lazyPreloaderClass","shadowRoot","unlazy","removeAttribute","preload","amount","lazyPreloadPrevNext","len","slidesPerViewDynamic","activeColumn","preloadColumns","from","slideIndexLastInView","rewind","realIndex","getActiveIndexByTranslate","normalizeSlideIndex","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","getVirtualRealIndex","aIndex","skip","firstSlideInColumn","activeSlideIndex","getAttribute","runCallbacksOnInit","updateClickedSlide","path","pathEl","matches","slideFound","clickedSlide","undefined","clickedIndex","slideToClickedSlide","update","getSwiperTranslate","axis","virtualTranslate","currentTranslate","setTranslate","byController","x","y","newProgress","previousTranslate","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","isH","targetPosition","side","scrollTo","behavior","onTranslateToWrapperTransitionEnd","e","duration","transitionDuration","transitionDelay","transitionEmit","direction","step","dir","transitionStart","transitionEnd","transition","slideTo","initial","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","t","scrollSnapType","_immediateVirtual","_cssModeVirtualInitialSet","initialSlide","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","targetSlideIndex","cols","needLoopFix","loopFix","slideRealIndex","slideNext","perGroup","slidesPerGroupAuto","increment","loopPreventsSliding","_clientLeft","clientLeft","slidePrev","normalize","val","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","lastIndex","slideReset","slideToClosest","threshold","currentSnap","slideToIndex","slideSelector","loopedSlides","getSlideIndex","loopCreate","setAttribute","shouldFillGroup","shouldFillGrid","addBlankSlides","amountOfSlides","slideBlankClass","append","loopAddBlankSlides","recalcSlides","byMousewheel","loopAdditionalSlides","fill","prependSlidesIndexes","appendSlidesIndexes","isNext","isPrev","slidesPrepended","slidesAppended","activeColIndexWithShift","colIndexToPrepend","swiperLoopMoveDOM","prepend","currentSlideTranslate","diff","touchEventsData","startTranslate","shift","controller","control","loopParams","c","constructor","loopDestroy","newSlidesOrder","swiperSlideIndex","setGrabCursor","moving","simulateTouch","isLocked","touchEventsTarget","cursor","unsetGrabCursor","grabCursor","closestElement","base","__closestFrom","assignedSlot","found","getRootNode","host","preventEdgeSwipe","startX","edgeSwipeDetection","edgeSwipeThreshold","innerWidth","preventDefault","onTouchStart","originalEvent","type","pointerId","targetTouches","touchId","identifier","pageX","touches","pointerType","targetEl","which","button","isTouched","isMoved","swipingClassHasValue","noSwipingClass","eventPath","composedPath","noSwipingSelector","isTargetShadow","noSwiping","allowClick","swipeHandler","currentX","currentY","pageY","startY","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","nodeName","activeElement","blur","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","freeMode","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","previousX","previousY","diffX","diffY","sqrt","touchAngle","atan2","PI","cancelable","touchMoveStopPropagation","nested","stopPropagation","touchesDiff","oneWayMovement","touchRatio","prevTouchesDirection","touchesDirection","isLoop","allowLoopFix","evt","CustomEvent","bubbles","dispatchEvent","allowMomentumBounce","Date","getTime","loopSwapReset","disableParentSwiper","resistanceRatio","resistance","followFinger","onTouchEnd","touchEndTime","timeDiff","pathTree","lastClickTime","currentPos","swipeToLast","stopIndex","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","setBreakpoint","isVirtualLoop","autoplay","running","paused","clearTimeout","resizeTimeout","resume","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","scrollLeft","scrollTop","onLoad","onDocumentTouchStart","documentTouchHandlerProceeded","touchAction","capture","domMethod","swiperMethod","passive","updateOnWindowResize","attachEvents","bind","detachEvents","events$1","isGridEnabled","breakpoint","getBreakpoint","breakpointsBase","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","prop","wasModuleEnabled","isModuleEnabled","disable","enable","directionChanged","needsReLoop","wasLoop","changeDirection","isEnabled","hasLoop","containerEl","currentHeight","innerHeight","points","point","minRatio","substr","value","sort","a","b","matchMedia","prepareClasses","prefix","resultClasses","item","classNames","addClasses","suffixes","autoheight","centered","removeClasses","classes","wasLocked","lastSlideRightEdge","checkOverflow$1","defaults","init","createElements","eventsPrefix","url","uniqueNavElements","passiveListeners","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","obj","moduleParamName","moduleParams","auto","prototypes","extendedDefaults","Swiper","prototype","toString","querySelectorAll","swipers","newParams","__swiper__","modules","__modules__","mod","swiperParams","passedParams","eventName","velocity","trunc","clickTimeout","velocities","imagesToLoad","imagesLoaded","property","setProgress","current","cls","className","join","getSlideClasses","updates","view","exact","spv","breakLoop","translateValue","translated","complete","newDirection","needUpdate","currentDirection","changeLanguageDirection","mount","element","mounted","parentNode","getWrapperSelector","trim","getWrapper","slideSlots","lazyElements","destroy","deleteInstance","cleanStyles","extendDefaults","newDefaults","installModule","use","module","m","prototypeGroup","protoMethod"],"sources":["0"],"mappings":"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"} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/shared/swiper-core.mjs b/build/assets/js/vendor/swiper/shared/swiper-core.mjs deleted file mode 100644 index 8bf1e07..0000000 --- a/build/assets/js/vendor/swiper/shared/swiper-core.mjs +++ /dev/null @@ -1,3880 +0,0 @@ -import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs'; -import { a as elementParents, m as elementStyle, e as elementChildren, s as setCSSProperty, f as elementOuterSize, o as elementNextAll, p as elementPrevAll, i as getTranslate, q as animateCSSModeScroll, n as nextTick, r as showWarning, c as createElement, d as now, t as extend, g as elementIndex, u as deleteProps } from './utils.mjs'; - -let support; -function calcSupport() { - const window = getWindow(); - const document = getDocument(); - return { - smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style, - touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch) - }; -} -function getSupport() { - if (!support) { - support = calcSupport(); - } - return support; -} - -let deviceCached; -function calcDevice(_temp) { - let { - userAgent - } = _temp === void 0 ? {} : _temp; - const support = getSupport(); - const window = getWindow(); - const platform = window.navigator.platform; - const ua = userAgent || window.navigator.userAgent; - const device = { - ios: false, - android: false - }; - const screenWidth = window.screen.width; - const screenHeight = window.screen.height; - const android = ua.match(/(Android);?[\s\/]+([\d.]+)?/); // eslint-disable-line - let ipad = ua.match(/(iPad).*OS\s([\d_]+)/); - const ipod = ua.match(/(iPod)(.*OS\s([\d_]+))?/); - const iphone = !ipad && ua.match(/(iPhone\sOS|iOS)\s([\d_]+)/); - const windows = platform === 'Win32'; - let macos = platform === 'MacIntel'; - - // iPadOs 13 fix - const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810']; - if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) { - ipad = ua.match(/(Version)\/([\d.]+)/); - if (!ipad) ipad = [0, 1, '13_0_0']; - macos = false; - } - - // Android - if (android && !windows) { - device.os = 'android'; - device.android = true; - } - if (ipad || iphone || ipod) { - device.os = 'ios'; - device.ios = true; - } - - // Export object - return device; -} -function getDevice(overrides) { - if (overrides === void 0) { - overrides = {}; - } - if (!deviceCached) { - deviceCached = calcDevice(overrides); - } - return deviceCached; -} - -let browser; -function calcBrowser() { - const window = getWindow(); - let needPerspectiveFix = false; - function isSafari() { - const ua = window.navigator.userAgent.toLowerCase(); - return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0; - } - if (isSafari()) { - const ua = String(window.navigator.userAgent); - if (ua.includes('Version/')) { - const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num)); - needPerspectiveFix = major < 16 || major === 16 && minor < 2; - } - } - return { - isSafari: needPerspectiveFix || isSafari(), - needPerspectiveFix, - isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent) - }; -} -function getBrowser() { - if (!browser) { - browser = calcBrowser(); - } - return browser; -} - -function Resize(_ref) { - let { - swiper, - on, - emit - } = _ref; - const window = getWindow(); - let observer = null; - let animationFrame = null; - const resizeHandler = () => { - if (!swiper || swiper.destroyed || !swiper.initialized) return; - emit('beforeResize'); - emit('resize'); - }; - const createObserver = () => { - if (!swiper || swiper.destroyed || !swiper.initialized) return; - observer = new ResizeObserver(entries => { - animationFrame = window.requestAnimationFrame(() => { - const { - width, - height - } = swiper; - let newWidth = width; - let newHeight = height; - entries.forEach(_ref2 => { - let { - contentBoxSize, - contentRect, - target - } = _ref2; - if (target && target !== swiper.el) return; - newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize; - newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize; - }); - if (newWidth !== width || newHeight !== height) { - resizeHandler(); - } - }); - }); - observer.observe(swiper.el); - }; - const removeObserver = () => { - if (animationFrame) { - window.cancelAnimationFrame(animationFrame); - } - if (observer && observer.unobserve && swiper.el) { - observer.unobserve(swiper.el); - observer = null; - } - }; - const orientationChangeHandler = () => { - if (!swiper || swiper.destroyed || !swiper.initialized) return; - emit('orientationchange'); - }; - on('init', () => { - if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') { - createObserver(); - return; - } - window.addEventListener('resize', resizeHandler); - window.addEventListener('orientationchange', orientationChangeHandler); - }); - on('destroy', () => { - removeObserver(); - window.removeEventListener('resize', resizeHandler); - window.removeEventListener('orientationchange', orientationChangeHandler); - }); -} - -function Observer(_ref) { - let { - swiper, - extendParams, - on, - emit - } = _ref; - const observers = []; - const window = getWindow(); - const attach = function (target, options) { - if (options === void 0) { - options = {}; - } - const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver; - const observer = new ObserverFunc(mutations => { - // The observerUpdate event should only be triggered - // once despite the number of mutations. Additional - // triggers are redundant and are very costly - if (swiper.__preventObserver__) return; - if (mutations.length === 1) { - emit('observerUpdate', mutations[0]); - return; - } - const observerUpdate = function observerUpdate() { - emit('observerUpdate', mutations[0]); - }; - if (window.requestAnimationFrame) { - window.requestAnimationFrame(observerUpdate); - } else { - window.setTimeout(observerUpdate, 0); - } - }); - observer.observe(target, { - attributes: typeof options.attributes === 'undefined' ? true : options.attributes, - childList: typeof options.childList === 'undefined' ? true : options.childList, - characterData: typeof options.characterData === 'undefined' ? true : options.characterData - }); - observers.push(observer); - }; - const init = () => { - if (!swiper.params.observer) return; - if (swiper.params.observeParents) { - const containerParents = elementParents(swiper.hostEl); - for (let i = 0; i < containerParents.length; i += 1) { - attach(containerParents[i]); - } - } - // Observe container - attach(swiper.hostEl, { - childList: swiper.params.observeSlideChildren - }); - - // Observe wrapper - attach(swiper.wrapperEl, { - attributes: false - }); - }; - const destroy = () => { - observers.forEach(observer => { - observer.disconnect(); - }); - observers.splice(0, observers.length); - }; - extendParams({ - observer: false, - observeParents: false, - observeSlideChildren: false - }); - on('init', init); - on('destroy', destroy); -} - -/* eslint-disable no-underscore-dangle */ - -var eventsEmitter = { - on(events, handler, priority) { - const self = this; - if (!self.eventsListeners || self.destroyed) return self; - if (typeof handler !== 'function') return self; - const method = priority ? 'unshift' : 'push'; - events.split(' ').forEach(event => { - if (!self.eventsListeners[event]) self.eventsListeners[event] = []; - self.eventsListeners[event][method](handler); - }); - return self; - }, - once(events, handler, priority) { - const self = this; - if (!self.eventsListeners || self.destroyed) return self; - if (typeof handler !== 'function') return self; - function onceHandler() { - self.off(events, onceHandler); - if (onceHandler.__emitterProxy) { - delete onceHandler.__emitterProxy; - } - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - handler.apply(self, args); - } - onceHandler.__emitterProxy = handler; - return self.on(events, onceHandler, priority); - }, - onAny(handler, priority) { - const self = this; - if (!self.eventsListeners || self.destroyed) return self; - if (typeof handler !== 'function') return self; - const method = priority ? 'unshift' : 'push'; - if (self.eventsAnyListeners.indexOf(handler) < 0) { - self.eventsAnyListeners[method](handler); - } - return self; - }, - offAny(handler) { - const self = this; - if (!self.eventsListeners || self.destroyed) return self; - if (!self.eventsAnyListeners) return self; - const index = self.eventsAnyListeners.indexOf(handler); - if (index >= 0) { - self.eventsAnyListeners.splice(index, 1); - } - return self; - }, - off(events, handler) { - const self = this; - if (!self.eventsListeners || self.destroyed) return self; - if (!self.eventsListeners) return self; - events.split(' ').forEach(event => { - if (typeof handler === 'undefined') { - self.eventsListeners[event] = []; - } else if (self.eventsListeners[event]) { - self.eventsListeners[event].forEach((eventHandler, index) => { - if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) { - self.eventsListeners[event].splice(index, 1); - } - }); - } - }); - return self; - }, - emit() { - const self = this; - if (!self.eventsListeners || self.destroyed) return self; - if (!self.eventsListeners) return self; - let events; - let data; - let context; - for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - args[_key2] = arguments[_key2]; - } - if (typeof args[0] === 'string' || Array.isArray(args[0])) { - events = args[0]; - data = args.slice(1, args.length); - context = self; - } else { - events = args[0].events; - data = args[0].data; - context = args[0].context || self; - } - data.unshift(context); - const eventsArray = Array.isArray(events) ? events : events.split(' '); - eventsArray.forEach(event => { - if (self.eventsAnyListeners && self.eventsAnyListeners.length) { - self.eventsAnyListeners.forEach(eventHandler => { - eventHandler.apply(context, [event, ...data]); - }); - } - if (self.eventsListeners && self.eventsListeners[event]) { - self.eventsListeners[event].forEach(eventHandler => { - eventHandler.apply(context, data); - }); - } - }); - return self; - } -}; - -function updateSize() { - const swiper = this; - let width; - let height; - const el = swiper.el; - if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) { - width = swiper.params.width; - } else { - width = el.clientWidth; - } - if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) { - height = swiper.params.height; - } else { - height = el.clientHeight; - } - if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) { - return; - } - - // Subtract paddings - width = width - parseInt(elementStyle(el, 'padding-left') || 0, 10) - parseInt(elementStyle(el, 'padding-right') || 0, 10); - height = height - parseInt(elementStyle(el, 'padding-top') || 0, 10) - parseInt(elementStyle(el, 'padding-bottom') || 0, 10); - if (Number.isNaN(width)) width = 0; - if (Number.isNaN(height)) height = 0; - Object.assign(swiper, { - width, - height, - size: swiper.isHorizontal() ? width : height - }); -} - -function updateSlides() { - const swiper = this; - function getDirectionPropertyValue(node, label) { - return parseFloat(node.getPropertyValue(swiper.getDirectionLabel(label)) || 0); - } - const params = swiper.params; - const { - wrapperEl, - slidesEl, - size: swiperSize, - rtlTranslate: rtl, - wrongRTL - } = swiper; - const isVirtual = swiper.virtual && params.virtual.enabled; - const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length; - const slides = elementChildren(slidesEl, `.${swiper.params.slideClass}, swiper-slide`); - const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length; - let snapGrid = []; - const slidesGrid = []; - const slidesSizesGrid = []; - let offsetBefore = params.slidesOffsetBefore; - if (typeof offsetBefore === 'function') { - offsetBefore = params.slidesOffsetBefore.call(swiper); - } - let offsetAfter = params.slidesOffsetAfter; - if (typeof offsetAfter === 'function') { - offsetAfter = params.slidesOffsetAfter.call(swiper); - } - const previousSnapGridLength = swiper.snapGrid.length; - const previousSlidesGridLength = swiper.slidesGrid.length; - let spaceBetween = params.spaceBetween; - let slidePosition = -offsetBefore; - let prevSlideSize = 0; - let index = 0; - if (typeof swiperSize === 'undefined') { - return; - } - if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) { - spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize; - } else if (typeof spaceBetween === 'string') { - spaceBetween = parseFloat(spaceBetween); - } - swiper.virtualSize = -spaceBetween; - - // reset margins - slides.forEach(slideEl => { - if (rtl) { - slideEl.style.marginLeft = ''; - } else { - slideEl.style.marginRight = ''; - } - slideEl.style.marginBottom = ''; - slideEl.style.marginTop = ''; - }); - - // reset cssMode offsets - if (params.centeredSlides && params.cssMode) { - setCSSProperty(wrapperEl, '--swiper-centered-offset-before', ''); - setCSSProperty(wrapperEl, '--swiper-centered-offset-after', ''); - } - const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid; - if (gridEnabled) { - swiper.grid.initSlides(slides); - } else if (swiper.grid) { - swiper.grid.unsetSlides(); - } - - // Calc slides - let slideSize; - const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => { - return typeof params.breakpoints[key].slidesPerView !== 'undefined'; - }).length > 0; - for (let i = 0; i < slidesLength; i += 1) { - slideSize = 0; - let slide; - if (slides[i]) slide = slides[i]; - if (gridEnabled) { - swiper.grid.updateSlide(i, slide, slides); - } - if (slides[i] && elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line - - if (params.slidesPerView === 'auto') { - if (shouldResetSlideSize) { - slides[i].style[swiper.getDirectionLabel('width')] = ``; - } - const slideStyles = getComputedStyle(slide); - const currentTransform = slide.style.transform; - const currentWebKitTransform = slide.style.webkitTransform; - if (currentTransform) { - slide.style.transform = 'none'; - } - if (currentWebKitTransform) { - slide.style.webkitTransform = 'none'; - } - if (params.roundLengths) { - slideSize = swiper.isHorizontal() ? elementOuterSize(slide, 'width', true) : elementOuterSize(slide, 'height', true); - } else { - // eslint-disable-next-line - const width = getDirectionPropertyValue(slideStyles, 'width'); - const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left'); - const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right'); - const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left'); - const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right'); - const boxSizing = slideStyles.getPropertyValue('box-sizing'); - if (boxSizing && boxSizing === 'border-box') { - slideSize = width + marginLeft + marginRight; - } else { - const { - clientWidth, - offsetWidth - } = slide; - slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth); - } - } - if (currentTransform) { - slide.style.transform = currentTransform; - } - if (currentWebKitTransform) { - slide.style.webkitTransform = currentWebKitTransform; - } - if (params.roundLengths) slideSize = Math.floor(slideSize); - } else { - slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView; - if (params.roundLengths) slideSize = Math.floor(slideSize); - if (slides[i]) { - slides[i].style[swiper.getDirectionLabel('width')] = `${slideSize}px`; - } - } - if (slides[i]) { - slides[i].swiperSlideSize = slideSize; - } - slidesSizesGrid.push(slideSize); - if (params.centeredSlides) { - slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween; - if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween; - if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween; - if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0; - if (params.roundLengths) slidePosition = Math.floor(slidePosition); - if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition); - slidesGrid.push(slidePosition); - } else { - if (params.roundLengths) slidePosition = Math.floor(slidePosition); - if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition); - slidesGrid.push(slidePosition); - slidePosition = slidePosition + slideSize + spaceBetween; - } - swiper.virtualSize += slideSize + spaceBetween; - prevSlideSize = slideSize; - index += 1; - } - swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter; - if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) { - wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`; - } - if (params.setWrapperSize) { - wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`; - } - if (gridEnabled) { - swiper.grid.updateWrapperSize(slideSize, snapGrid); - } - - // Remove last grid elements depending on width - if (!params.centeredSlides) { - const newSlidesGrid = []; - for (let i = 0; i < snapGrid.length; i += 1) { - let slidesGridItem = snapGrid[i]; - if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem); - if (snapGrid[i] <= swiper.virtualSize - swiperSize) { - newSlidesGrid.push(slidesGridItem); - } - } - snapGrid = newSlidesGrid; - if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) { - snapGrid.push(swiper.virtualSize - swiperSize); - } - } - if (isVirtual && params.loop) { - const size = slidesSizesGrid[0] + spaceBetween; - if (params.slidesPerGroup > 1) { - const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup); - const groupSize = size * params.slidesPerGroup; - for (let i = 0; i < groups; i += 1) { - snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize); - } - } - for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) { - if (params.slidesPerGroup === 1) { - snapGrid.push(snapGrid[snapGrid.length - 1] + size); - } - slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size); - swiper.virtualSize += size; - } - } - if (snapGrid.length === 0) snapGrid = [0]; - if (spaceBetween !== 0) { - const key = swiper.isHorizontal() && rtl ? 'marginLeft' : swiper.getDirectionLabel('marginRight'); - slides.filter((_, slideIndex) => { - if (!params.cssMode || params.loop) return true; - if (slideIndex === slides.length - 1) { - return false; - } - return true; - }).forEach(slideEl => { - slideEl.style[key] = `${spaceBetween}px`; - }); - } - if (params.centeredSlides && params.centeredSlidesBounds) { - let allSlidesSize = 0; - slidesSizesGrid.forEach(slideSizeValue => { - allSlidesSize += slideSizeValue + (spaceBetween || 0); - }); - allSlidesSize -= spaceBetween; - const maxSnap = allSlidesSize - swiperSize; - snapGrid = snapGrid.map(snap => { - if (snap <= 0) return -offsetBefore; - if (snap > maxSnap) return maxSnap + offsetAfter; - return snap; - }); - } - if (params.centerInsufficientSlides) { - let allSlidesSize = 0; - slidesSizesGrid.forEach(slideSizeValue => { - allSlidesSize += slideSizeValue + (spaceBetween || 0); - }); - allSlidesSize -= spaceBetween; - if (allSlidesSize < swiperSize) { - const allSlidesOffset = (swiperSize - allSlidesSize) / 2; - snapGrid.forEach((snap, snapIndex) => { - snapGrid[snapIndex] = snap - allSlidesOffset; - }); - slidesGrid.forEach((snap, snapIndex) => { - slidesGrid[snapIndex] = snap + allSlidesOffset; - }); - } - } - Object.assign(swiper, { - slides, - snapGrid, - slidesGrid, - slidesSizesGrid - }); - if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) { - setCSSProperty(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`); - setCSSProperty(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`); - const addToSnapGrid = -swiper.snapGrid[0]; - const addToSlidesGrid = -swiper.slidesGrid[0]; - swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid); - swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid); - } - if (slidesLength !== previousSlidesLength) { - swiper.emit('slidesLengthChange'); - } - if (snapGrid.length !== previousSnapGridLength) { - if (swiper.params.watchOverflow) swiper.checkOverflow(); - swiper.emit('snapGridLengthChange'); - } - if (slidesGrid.length !== previousSlidesGridLength) { - swiper.emit('slidesGridLengthChange'); - } - if (params.watchSlidesProgress) { - swiper.updateSlidesOffset(); - } - swiper.emit('slidesUpdated'); - if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) { - const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`; - const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass); - if (slidesLength <= params.maxBackfaceHiddenSlides) { - if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass); - } else if (hasClassBackfaceClassAdded) { - swiper.el.classList.remove(backFaceHiddenClass); - } - } -} - -function updateAutoHeight(speed) { - const swiper = this; - const activeSlides = []; - const isVirtual = swiper.virtual && swiper.params.virtual.enabled; - let newHeight = 0; - let i; - if (typeof speed === 'number') { - swiper.setTransition(speed); - } else if (speed === true) { - swiper.setTransition(swiper.params.speed); - } - const getSlideByIndex = index => { - if (isVirtual) { - return swiper.slides[swiper.getSlideIndexByData(index)]; - } - return swiper.slides[index]; - }; - // Find slides currently in view - if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) { - if (swiper.params.centeredSlides) { - (swiper.visibleSlides || []).forEach(slide => { - activeSlides.push(slide); - }); - } else { - for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) { - const index = swiper.activeIndex + i; - if (index > swiper.slides.length && !isVirtual) break; - activeSlides.push(getSlideByIndex(index)); - } - } - } else { - activeSlides.push(getSlideByIndex(swiper.activeIndex)); - } - - // Find new height from highest slide in view - for (i = 0; i < activeSlides.length; i += 1) { - if (typeof activeSlides[i] !== 'undefined') { - const height = activeSlides[i].offsetHeight; - newHeight = height > newHeight ? height : newHeight; - } - } - - // Update Height - if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`; -} - -function updateSlidesOffset() { - const swiper = this; - const slides = swiper.slides; - // eslint-disable-next-line - const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0; - for (let i = 0; i < slides.length; i += 1) { - slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment(); - } -} - -function updateSlidesProgress(translate) { - if (translate === void 0) { - translate = this && this.translate || 0; - } - const swiper = this; - const params = swiper.params; - const { - slides, - rtlTranslate: rtl, - snapGrid - } = swiper; - if (slides.length === 0) return; - if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset(); - let offsetCenter = -translate; - if (rtl) offsetCenter = translate; - - // Visible Slides - slides.forEach(slideEl => { - slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass); - }); - swiper.visibleSlidesIndexes = []; - swiper.visibleSlides = []; - let spaceBetween = params.spaceBetween; - if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) { - spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size; - } else if (typeof spaceBetween === 'string') { - spaceBetween = parseFloat(spaceBetween); - } - for (let i = 0; i < slides.length; i += 1) { - const slide = slides[i]; - let slideOffset = slide.swiperSlideOffset; - if (params.cssMode && params.centeredSlides) { - slideOffset -= slides[0].swiperSlideOffset; - } - const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween); - const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween); - const slideBefore = -(offsetCenter - slideOffset); - const slideAfter = slideBefore + swiper.slidesSizesGrid[i]; - const isFullyVisible = slideBefore >= 0 && slideBefore <= swiper.size - swiper.slidesSizesGrid[i]; - const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size; - if (isVisible) { - swiper.visibleSlides.push(slide); - swiper.visibleSlidesIndexes.push(i); - slides[i].classList.add(params.slideVisibleClass); - } - if (isFullyVisible) { - slides[i].classList.add(params.slideFullyVisibleClass); - } - slide.progress = rtl ? -slideProgress : slideProgress; - slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress; - } -} - -function updateProgress(translate) { - const swiper = this; - if (typeof translate === 'undefined') { - const multiplier = swiper.rtlTranslate ? -1 : 1; - // eslint-disable-next-line - translate = swiper && swiper.translate && swiper.translate * multiplier || 0; - } - const params = swiper.params; - const translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); - let { - progress, - isBeginning, - isEnd, - progressLoop - } = swiper; - const wasBeginning = isBeginning; - const wasEnd = isEnd; - if (translatesDiff === 0) { - progress = 0; - isBeginning = true; - isEnd = true; - } else { - progress = (translate - swiper.minTranslate()) / translatesDiff; - const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1; - const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1; - isBeginning = isBeginningRounded || progress <= 0; - isEnd = isEndRounded || progress >= 1; - if (isBeginningRounded) progress = 0; - if (isEndRounded) progress = 1; - } - if (params.loop) { - const firstSlideIndex = swiper.getSlideIndexByData(0); - const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1); - const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex]; - const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex]; - const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1]; - const translateAbs = Math.abs(translate); - if (translateAbs >= firstSlideTranslate) { - progressLoop = (translateAbs - firstSlideTranslate) / translateMax; - } else { - progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax; - } - if (progressLoop > 1) progressLoop -= 1; - } - Object.assign(swiper, { - progress, - progressLoop, - isBeginning, - isEnd - }); - if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate); - if (isBeginning && !wasBeginning) { - swiper.emit('reachBeginning toEdge'); - } - if (isEnd && !wasEnd) { - swiper.emit('reachEnd toEdge'); - } - if (wasBeginning && !isBeginning || wasEnd && !isEnd) { - swiper.emit('fromEdge'); - } - swiper.emit('progress', progress); -} - -function updateSlidesClasses() { - const swiper = this; - const { - slides, - params, - slidesEl, - activeIndex - } = swiper; - const isVirtual = swiper.virtual && params.virtual.enabled; - const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1; - const getFilteredSlide = selector => { - return elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0]; - }; - slides.forEach(slideEl => { - slideEl.classList.remove(params.slideActiveClass, params.slideNextClass, params.slidePrevClass); - }); - let activeSlide; - let prevSlide; - let nextSlide; - if (isVirtual) { - if (params.loop) { - let slideIndex = activeIndex - swiper.virtual.slidesBefore; - if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex; - if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length; - activeSlide = getFilteredSlide(`[data-swiper-slide-index="${slideIndex}"]`); - } else { - activeSlide = getFilteredSlide(`[data-swiper-slide-index="${activeIndex}"]`); - } - } else { - if (gridEnabled) { - activeSlide = slides.filter(slideEl => slideEl.column === activeIndex)[0]; - nextSlide = slides.filter(slideEl => slideEl.column === activeIndex + 1)[0]; - prevSlide = slides.filter(slideEl => slideEl.column === activeIndex - 1)[0]; - } else { - activeSlide = slides[activeIndex]; - } - } - if (activeSlide) { - // Active classes - activeSlide.classList.add(params.slideActiveClass); - if (gridEnabled) { - if (nextSlide) { - nextSlide.classList.add(params.slideNextClass); - } - if (prevSlide) { - prevSlide.classList.add(params.slidePrevClass); - } - } else { - // Next Slide - nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0]; - if (params.loop && !nextSlide) { - nextSlide = slides[0]; - } - if (nextSlide) { - nextSlide.classList.add(params.slideNextClass); - } - - // Prev Slide - prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0]; - if (params.loop && !prevSlide === 0) { - prevSlide = slides[slides.length - 1]; - } - if (prevSlide) { - prevSlide.classList.add(params.slidePrevClass); - } - } - } - swiper.emitSlidesClasses(); -} - -const processLazyPreloader = (swiper, imageEl) => { - if (!swiper || swiper.destroyed || !swiper.params) return; - const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`; - const slideEl = imageEl.closest(slideSelector()); - if (slideEl) { - let lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`); - if (!lazyEl && swiper.isElement) { - if (slideEl.shadowRoot) { - lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`); - } else { - // init later - requestAnimationFrame(() => { - if (slideEl.shadowRoot) { - lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`); - if (lazyEl) lazyEl.remove(); - } - }); - } - } - if (lazyEl) lazyEl.remove(); - } -}; -const unlazy = (swiper, index) => { - if (!swiper.slides[index]) return; - const imageEl = swiper.slides[index].querySelector('[loading="lazy"]'); - if (imageEl) imageEl.removeAttribute('loading'); -}; -const preload = swiper => { - if (!swiper || swiper.destroyed || !swiper.params) return; - let amount = swiper.params.lazyPreloadPrevNext; - const len = swiper.slides.length; - if (!len || !amount || amount < 0) return; - amount = Math.min(amount, len); - const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView); - const activeIndex = swiper.activeIndex; - if (swiper.params.grid && swiper.params.grid.rows > 1) { - const activeColumn = activeIndex; - const preloadColumns = [activeColumn - amount]; - preloadColumns.push(...Array.from({ - length: amount - }).map((_, i) => { - return activeColumn + slidesPerView + i; - })); - swiper.slides.forEach((slideEl, i) => { - if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i); - }); - return; - } - const slideIndexLastInView = activeIndex + slidesPerView - 1; - if (swiper.params.rewind || swiper.params.loop) { - for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) { - const realIndex = (i % len + len) % len; - if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex); - } - } else { - for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) { - if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) { - unlazy(swiper, i); - } - } - } -}; - -function getActiveIndexByTranslate(swiper) { - const { - slidesGrid, - params - } = swiper; - const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate; - let activeIndex; - for (let i = 0; i < slidesGrid.length; i += 1) { - if (typeof slidesGrid[i + 1] !== 'undefined') { - if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) { - activeIndex = i; - } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) { - activeIndex = i + 1; - } - } else if (translate >= slidesGrid[i]) { - activeIndex = i; - } - } - // Normalize slideIndex - if (params.normalizeSlideIndex) { - if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0; - } - return activeIndex; -} -function updateActiveIndex(newActiveIndex) { - const swiper = this; - const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate; - const { - snapGrid, - params, - activeIndex: previousIndex, - realIndex: previousRealIndex, - snapIndex: previousSnapIndex - } = swiper; - let activeIndex = newActiveIndex; - let snapIndex; - const getVirtualRealIndex = aIndex => { - let realIndex = aIndex - swiper.virtual.slidesBefore; - if (realIndex < 0) { - realIndex = swiper.virtual.slides.length + realIndex; - } - if (realIndex >= swiper.virtual.slides.length) { - realIndex -= swiper.virtual.slides.length; - } - return realIndex; - }; - if (typeof activeIndex === 'undefined') { - activeIndex = getActiveIndexByTranslate(swiper); - } - if (snapGrid.indexOf(translate) >= 0) { - snapIndex = snapGrid.indexOf(translate); - } else { - const skip = Math.min(params.slidesPerGroupSkip, activeIndex); - snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup); - } - if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1; - if (activeIndex === previousIndex && !swiper.params.loop) { - if (snapIndex !== previousSnapIndex) { - swiper.snapIndex = snapIndex; - swiper.emit('snapIndexChange'); - } - return; - } - if (activeIndex === previousIndex && swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) { - swiper.realIndex = getVirtualRealIndex(activeIndex); - return; - } - const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1; - - // Get real index - let realIndex; - if (swiper.virtual && params.virtual.enabled && params.loop) { - realIndex = getVirtualRealIndex(activeIndex); - } else if (gridEnabled) { - const firstSlideInColumn = swiper.slides.filter(slideEl => slideEl.column === activeIndex)[0]; - let activeSlideIndex = parseInt(firstSlideInColumn.getAttribute('data-swiper-slide-index'), 10); - if (Number.isNaN(activeSlideIndex)) { - activeSlideIndex = Math.max(swiper.slides.indexOf(firstSlideInColumn), 0); - } - realIndex = Math.floor(activeSlideIndex / params.grid.rows); - } else if (swiper.slides[activeIndex]) { - const slideIndex = swiper.slides[activeIndex].getAttribute('data-swiper-slide-index'); - if (slideIndex) { - realIndex = parseInt(slideIndex, 10); - } else { - realIndex = activeIndex; - } - } else { - realIndex = activeIndex; - } - Object.assign(swiper, { - previousSnapIndex, - snapIndex, - previousRealIndex, - realIndex, - previousIndex, - activeIndex - }); - if (swiper.initialized) { - preload(swiper); - } - swiper.emit('activeIndexChange'); - swiper.emit('snapIndexChange'); - if (swiper.initialized || swiper.params.runCallbacksOnInit) { - if (previousRealIndex !== realIndex) { - swiper.emit('realIndexChange'); - } - swiper.emit('slideChange'); - } -} - -function updateClickedSlide(el, path) { - const swiper = this; - const params = swiper.params; - let slide = el.closest(`.${params.slideClass}, swiper-slide`); - if (!slide && swiper.isElement && path && path.length > 1 && path.includes(el)) { - [...path.slice(path.indexOf(el) + 1, path.length)].forEach(pathEl => { - if (!slide && pathEl.matches && pathEl.matches(`.${params.slideClass}, swiper-slide`)) { - slide = pathEl; - } - }); - } - let slideFound = false; - let slideIndex; - if (slide) { - for (let i = 0; i < swiper.slides.length; i += 1) { - if (swiper.slides[i] === slide) { - slideFound = true; - slideIndex = i; - break; - } - } - } - if (slide && slideFound) { - swiper.clickedSlide = slide; - if (swiper.virtual && swiper.params.virtual.enabled) { - swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10); - } else { - swiper.clickedIndex = slideIndex; - } - } else { - swiper.clickedSlide = undefined; - swiper.clickedIndex = undefined; - return; - } - if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) { - swiper.slideToClickedSlide(); - } -} - -var update = { - updateSize, - updateSlides, - updateAutoHeight, - updateSlidesOffset, - updateSlidesProgress, - updateProgress, - updateSlidesClasses, - updateActiveIndex, - updateClickedSlide -}; - -function getSwiperTranslate(axis) { - if (axis === void 0) { - axis = this.isHorizontal() ? 'x' : 'y'; - } - const swiper = this; - const { - params, - rtlTranslate: rtl, - translate, - wrapperEl - } = swiper; - if (params.virtualTranslate) { - return rtl ? -translate : translate; - } - if (params.cssMode) { - return translate; - } - let currentTranslate = getTranslate(wrapperEl, axis); - currentTranslate += swiper.cssOverflowAdjustment(); - if (rtl) currentTranslate = -currentTranslate; - return currentTranslate || 0; -} - -function setTranslate(translate, byController) { - const swiper = this; - const { - rtlTranslate: rtl, - params, - wrapperEl, - progress - } = swiper; - let x = 0; - let y = 0; - const z = 0; - if (swiper.isHorizontal()) { - x = rtl ? -translate : translate; - } else { - y = translate; - } - if (params.roundLengths) { - x = Math.floor(x); - y = Math.floor(y); - } - swiper.previousTranslate = swiper.translate; - swiper.translate = swiper.isHorizontal() ? x : y; - if (params.cssMode) { - wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y; - } else if (!params.virtualTranslate) { - if (swiper.isHorizontal()) { - x -= swiper.cssOverflowAdjustment(); - } else { - y -= swiper.cssOverflowAdjustment(); - } - wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`; - } - - // Check if we need to update progress - let newProgress; - const translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); - if (translatesDiff === 0) { - newProgress = 0; - } else { - newProgress = (translate - swiper.minTranslate()) / translatesDiff; - } - if (newProgress !== progress) { - swiper.updateProgress(translate); - } - swiper.emit('setTranslate', swiper.translate, byController); -} - -function minTranslate() { - return -this.snapGrid[0]; -} - -function maxTranslate() { - return -this.snapGrid[this.snapGrid.length - 1]; -} - -function translateTo(translate, speed, runCallbacks, translateBounds, internal) { - if (translate === void 0) { - translate = 0; - } - if (speed === void 0) { - speed = this.params.speed; - } - if (runCallbacks === void 0) { - runCallbacks = true; - } - if (translateBounds === void 0) { - translateBounds = true; - } - const swiper = this; - const { - params, - wrapperEl - } = swiper; - if (swiper.animating && params.preventInteractionOnTransition) { - return false; - } - const minTranslate = swiper.minTranslate(); - const maxTranslate = swiper.maxTranslate(); - let newTranslate; - if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; - - // Update progress - swiper.updateProgress(newTranslate); - if (params.cssMode) { - const isH = swiper.isHorizontal(); - if (speed === 0) { - wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate; - } else { - if (!swiper.support.smoothScroll) { - animateCSSModeScroll({ - swiper, - targetPosition: -newTranslate, - side: isH ? 'left' : 'top' - }); - return true; - } - wrapperEl.scrollTo({ - [isH ? 'left' : 'top']: -newTranslate, - behavior: 'smooth' - }); - } - return true; - } - if (speed === 0) { - swiper.setTransition(0); - swiper.setTranslate(newTranslate); - if (runCallbacks) { - swiper.emit('beforeTransitionStart', speed, internal); - swiper.emit('transitionEnd'); - } - } else { - swiper.setTransition(speed); - swiper.setTranslate(newTranslate); - if (runCallbacks) { - swiper.emit('beforeTransitionStart', speed, internal); - swiper.emit('transitionStart'); - } - if (!swiper.animating) { - swiper.animating = true; - if (!swiper.onTranslateToWrapperTransitionEnd) { - swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) { - if (!swiper || swiper.destroyed) return; - if (e.target !== this) return; - swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd); - swiper.onTranslateToWrapperTransitionEnd = null; - delete swiper.onTranslateToWrapperTransitionEnd; - if (runCallbacks) { - swiper.emit('transitionEnd'); - } - }; - } - swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd); - } - } - return true; -} - -var translate = { - getTranslate: getSwiperTranslate, - setTranslate, - minTranslate, - maxTranslate, - translateTo -}; - -function setTransition(duration, byController) { - const swiper = this; - if (!swiper.params.cssMode) { - swiper.wrapperEl.style.transitionDuration = `${duration}ms`; - swiper.wrapperEl.style.transitionDelay = duration === 0 ? `0ms` : ''; - } - swiper.emit('setTransition', duration, byController); -} - -function transitionEmit(_ref) { - let { - swiper, - runCallbacks, - direction, - step - } = _ref; - const { - activeIndex, - previousIndex - } = swiper; - let dir = direction; - if (!dir) { - if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset'; - } - swiper.emit(`transition${step}`); - if (runCallbacks && activeIndex !== previousIndex) { - if (dir === 'reset') { - swiper.emit(`slideResetTransition${step}`); - return; - } - swiper.emit(`slideChangeTransition${step}`); - if (dir === 'next') { - swiper.emit(`slideNextTransition${step}`); - } else { - swiper.emit(`slidePrevTransition${step}`); - } - } -} - -function transitionStart(runCallbacks, direction) { - if (runCallbacks === void 0) { - runCallbacks = true; - } - const swiper = this; - const { - params - } = swiper; - if (params.cssMode) return; - if (params.autoHeight) { - swiper.updateAutoHeight(); - } - transitionEmit({ - swiper, - runCallbacks, - direction, - step: 'Start' - }); -} - -function transitionEnd(runCallbacks, direction) { - if (runCallbacks === void 0) { - runCallbacks = true; - } - const swiper = this; - const { - params - } = swiper; - swiper.animating = false; - if (params.cssMode) return; - swiper.setTransition(0); - transitionEmit({ - swiper, - runCallbacks, - direction, - step: 'End' - }); -} - -var transition = { - setTransition, - transitionStart, - transitionEnd -}; - -function slideTo(index, speed, runCallbacks, internal, initial) { - if (index === void 0) { - index = 0; - } - if (speed === void 0) { - speed = this.params.speed; - } - if (runCallbacks === void 0) { - runCallbacks = true; - } - if (typeof index === 'string') { - index = parseInt(index, 10); - } - const swiper = this; - let slideIndex = index; - if (slideIndex < 0) slideIndex = 0; - const { - params, - snapGrid, - slidesGrid, - previousIndex, - activeIndex, - rtlTranslate: rtl, - wrapperEl, - enabled - } = swiper; - if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) { - return false; - } - const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex); - let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup); - if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1; - const translate = -snapGrid[snapIndex]; - // Normalize slideIndex - if (params.normalizeSlideIndex) { - for (let i = 0; i < slidesGrid.length; i += 1) { - const normalizedTranslate = -Math.floor(translate * 100); - const normalizedGrid = Math.floor(slidesGrid[i] * 100); - const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100); - if (typeof slidesGrid[i + 1] !== 'undefined') { - if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) { - slideIndex = i; - } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) { - slideIndex = i + 1; - } - } else if (normalizedTranslate >= normalizedGrid) { - slideIndex = i; - } - } - } - // Directions locks - if (swiper.initialized && slideIndex !== activeIndex) { - if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) { - return false; - } - if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) { - if ((activeIndex || 0) !== slideIndex) { - return false; - } - } - } - if (slideIndex !== (previousIndex || 0) && runCallbacks) { - swiper.emit('beforeSlideChangeStart'); - } - - // Update progress - swiper.updateProgress(translate); - let direction; - if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; - - // Update Index - if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) { - swiper.updateActiveIndex(slideIndex); - // Update Height - if (params.autoHeight) { - swiper.updateAutoHeight(); - } - swiper.updateSlidesClasses(); - if (params.effect !== 'slide') { - swiper.setTranslate(translate); - } - if (direction !== 'reset') { - swiper.transitionStart(runCallbacks, direction); - swiper.transitionEnd(runCallbacks, direction); - } - return false; - } - if (params.cssMode) { - const isH = swiper.isHorizontal(); - const t = rtl ? translate : -translate; - if (speed === 0) { - const isVirtual = swiper.virtual && swiper.params.virtual.enabled; - if (isVirtual) { - swiper.wrapperEl.style.scrollSnapType = 'none'; - swiper._immediateVirtual = true; - } - if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) { - swiper._cssModeVirtualInitialSet = true; - requestAnimationFrame(() => { - wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t; - }); - } else { - wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t; - } - if (isVirtual) { - requestAnimationFrame(() => { - swiper.wrapperEl.style.scrollSnapType = ''; - swiper._immediateVirtual = false; - }); - } - } else { - if (!swiper.support.smoothScroll) { - animateCSSModeScroll({ - swiper, - targetPosition: t, - side: isH ? 'left' : 'top' - }); - return true; - } - wrapperEl.scrollTo({ - [isH ? 'left' : 'top']: t, - behavior: 'smooth' - }); - } - return true; - } - swiper.setTransition(speed); - swiper.setTranslate(translate); - swiper.updateActiveIndex(slideIndex); - swiper.updateSlidesClasses(); - swiper.emit('beforeTransitionStart', speed, internal); - swiper.transitionStart(runCallbacks, direction); - if (speed === 0) { - swiper.transitionEnd(runCallbacks, direction); - } else if (!swiper.animating) { - swiper.animating = true; - if (!swiper.onSlideToWrapperTransitionEnd) { - swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) { - if (!swiper || swiper.destroyed) return; - if (e.target !== this) return; - swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd); - swiper.onSlideToWrapperTransitionEnd = null; - delete swiper.onSlideToWrapperTransitionEnd; - swiper.transitionEnd(runCallbacks, direction); - }; - } - swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd); - } - return true; -} - -function slideToLoop(index, speed, runCallbacks, internal) { - if (index === void 0) { - index = 0; - } - if (speed === void 0) { - speed = this.params.speed; - } - if (runCallbacks === void 0) { - runCallbacks = true; - } - if (typeof index === 'string') { - const indexAsNumber = parseInt(index, 10); - index = indexAsNumber; - } - const swiper = this; - const gridEnabled = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1; - let newIndex = index; - if (swiper.params.loop) { - if (swiper.virtual && swiper.params.virtual.enabled) { - // eslint-disable-next-line - newIndex = newIndex + swiper.virtual.slidesBefore; - } else { - let targetSlideIndex; - if (gridEnabled) { - const slideIndex = newIndex * swiper.params.grid.rows; - targetSlideIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column; - } else { - targetSlideIndex = swiper.getSlideIndexByData(newIndex); - } - const cols = gridEnabled ? Math.ceil(swiper.slides.length / swiper.params.grid.rows) : swiper.slides.length; - const { - centeredSlides - } = swiper.params; - let slidesPerView = swiper.params.slidesPerView; - if (slidesPerView === 'auto') { - slidesPerView = swiper.slidesPerViewDynamic(); - } else { - slidesPerView = Math.ceil(parseFloat(swiper.params.slidesPerView, 10)); - if (centeredSlides && slidesPerView % 2 === 0) { - slidesPerView = slidesPerView + 1; - } - } - let needLoopFix = cols - targetSlideIndex < slidesPerView; - if (centeredSlides) { - needLoopFix = needLoopFix || targetSlideIndex < Math.ceil(slidesPerView / 2); - } - if (needLoopFix) { - const direction = centeredSlides ? targetSlideIndex < swiper.activeIndex ? 'prev' : 'next' : targetSlideIndex - swiper.activeIndex - 1 < swiper.params.slidesPerView ? 'next' : 'prev'; - swiper.loopFix({ - direction, - slideTo: true, - activeSlideIndex: direction === 'next' ? targetSlideIndex + 1 : targetSlideIndex - cols + 1, - slideRealIndex: direction === 'next' ? swiper.realIndex : undefined - }); - } - if (gridEnabled) { - const slideIndex = newIndex * swiper.params.grid.rows; - newIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column; - } else { - newIndex = swiper.getSlideIndexByData(newIndex); - } - } - } - requestAnimationFrame(() => { - swiper.slideTo(newIndex, speed, runCallbacks, internal); - }); - return swiper; -} - -/* eslint no-unused-vars: "off" */ -function slideNext(speed, runCallbacks, internal) { - if (speed === void 0) { - speed = this.params.speed; - } - if (runCallbacks === void 0) { - runCallbacks = true; - } - const swiper = this; - const { - enabled, - params, - animating - } = swiper; - if (!enabled) return swiper; - let perGroup = params.slidesPerGroup; - if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) { - perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1); - } - const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup; - const isVirtual = swiper.virtual && params.virtual.enabled; - if (params.loop) { - if (animating && !isVirtual && params.loopPreventsSliding) return false; - swiper.loopFix({ - direction: 'next' - }); - // eslint-disable-next-line - swiper._clientLeft = swiper.wrapperEl.clientLeft; - if (swiper.activeIndex === swiper.slides.length - 1 && params.cssMode) { - requestAnimationFrame(() => { - swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal); - }); - return true; - } - } - if (params.rewind && swiper.isEnd) { - return swiper.slideTo(0, speed, runCallbacks, internal); - } - return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal); -} - -/* eslint no-unused-vars: "off" */ -function slidePrev(speed, runCallbacks, internal) { - if (speed === void 0) { - speed = this.params.speed; - } - if (runCallbacks === void 0) { - runCallbacks = true; - } - const swiper = this; - const { - params, - snapGrid, - slidesGrid, - rtlTranslate, - enabled, - animating - } = swiper; - if (!enabled) return swiper; - const isVirtual = swiper.virtual && params.virtual.enabled; - if (params.loop) { - if (animating && !isVirtual && params.loopPreventsSliding) return false; - swiper.loopFix({ - direction: 'prev' - }); - // eslint-disable-next-line - swiper._clientLeft = swiper.wrapperEl.clientLeft; - } - const translate = rtlTranslate ? swiper.translate : -swiper.translate; - function normalize(val) { - if (val < 0) return -Math.floor(Math.abs(val)); - return Math.floor(val); - } - const normalizedTranslate = normalize(translate); - const normalizedSnapGrid = snapGrid.map(val => normalize(val)); - let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1]; - if (typeof prevSnap === 'undefined' && params.cssMode) { - let prevSnapIndex; - snapGrid.forEach((snap, snapIndex) => { - if (normalizedTranslate >= snap) { - // prevSnap = snap; - prevSnapIndex = snapIndex; - } - }); - if (typeof prevSnapIndex !== 'undefined') { - prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex]; - } - } - let prevIndex = 0; - if (typeof prevSnap !== 'undefined') { - prevIndex = slidesGrid.indexOf(prevSnap); - if (prevIndex < 0) prevIndex = swiper.activeIndex - 1; - if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) { - prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1; - prevIndex = Math.max(prevIndex, 0); - } - } - if (params.rewind && swiper.isBeginning) { - const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1; - return swiper.slideTo(lastIndex, speed, runCallbacks, internal); - } else if (params.loop && swiper.activeIndex === 0 && params.cssMode) { - requestAnimationFrame(() => { - swiper.slideTo(prevIndex, speed, runCallbacks, internal); - }); - return true; - } - return swiper.slideTo(prevIndex, speed, runCallbacks, internal); -} - -/* eslint no-unused-vars: "off" */ -function slideReset(speed, runCallbacks, internal) { - if (speed === void 0) { - speed = this.params.speed; - } - if (runCallbacks === void 0) { - runCallbacks = true; - } - const swiper = this; - return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal); -} - -/* eslint no-unused-vars: "off" */ -function slideToClosest(speed, runCallbacks, internal, threshold) { - if (speed === void 0) { - speed = this.params.speed; - } - if (runCallbacks === void 0) { - runCallbacks = true; - } - if (threshold === void 0) { - threshold = 0.5; - } - const swiper = this; - let index = swiper.activeIndex; - const skip = Math.min(swiper.params.slidesPerGroupSkip, index); - const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup); - const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate; - if (translate >= swiper.snapGrid[snapIndex]) { - // The current translate is on or after the current snap index, so the choice - // is between the current index and the one after it. - const currentSnap = swiper.snapGrid[snapIndex]; - const nextSnap = swiper.snapGrid[snapIndex + 1]; - if (translate - currentSnap > (nextSnap - currentSnap) * threshold) { - index += swiper.params.slidesPerGroup; - } - } else { - // The current translate is before the current snap index, so the choice - // is between the current index and the one before it. - const prevSnap = swiper.snapGrid[snapIndex - 1]; - const currentSnap = swiper.snapGrid[snapIndex]; - if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) { - index -= swiper.params.slidesPerGroup; - } - } - index = Math.max(index, 0); - index = Math.min(index, swiper.slidesGrid.length - 1); - return swiper.slideTo(index, speed, runCallbacks, internal); -} - -function slideToClickedSlide() { - const swiper = this; - const { - params, - slidesEl - } = swiper; - const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView; - let slideToIndex = swiper.clickedIndex; - let realIndex; - const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`; - if (params.loop) { - if (swiper.animating) return; - realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10); - if (params.centeredSlides) { - if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) { - swiper.loopFix(); - slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index="${realIndex}"]`)[0]); - nextTick(() => { - swiper.slideTo(slideToIndex); - }); - } else { - swiper.slideTo(slideToIndex); - } - } else if (slideToIndex > swiper.slides.length - slidesPerView) { - swiper.loopFix(); - slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index="${realIndex}"]`)[0]); - nextTick(() => { - swiper.slideTo(slideToIndex); - }); - } else { - swiper.slideTo(slideToIndex); - } - } else { - swiper.slideTo(slideToIndex); - } -} - -var slide = { - slideTo, - slideToLoop, - slideNext, - slidePrev, - slideReset, - slideToClosest, - slideToClickedSlide -}; - -function loopCreate(slideRealIndex) { - const swiper = this; - const { - params, - slidesEl - } = swiper; - if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return; - const initSlides = () => { - const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`); - slides.forEach((el, index) => { - el.setAttribute('data-swiper-slide-index', index); - }); - }; - const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1; - const slidesPerGroup = params.slidesPerGroup * (gridEnabled ? params.grid.rows : 1); - const shouldFillGroup = swiper.slides.length % slidesPerGroup !== 0; - const shouldFillGrid = gridEnabled && swiper.slides.length % params.grid.rows !== 0; - const addBlankSlides = amountOfSlides => { - for (let i = 0; i < amountOfSlides; i += 1) { - const slideEl = swiper.isElement ? createElement('swiper-slide', [params.slideBlankClass]) : createElement('div', [params.slideClass, params.slideBlankClass]); - swiper.slidesEl.append(slideEl); - } - }; - if (shouldFillGroup) { - if (params.loopAddBlankSlides) { - const slidesToAdd = slidesPerGroup - swiper.slides.length % slidesPerGroup; - addBlankSlides(slidesToAdd); - swiper.recalcSlides(); - swiper.updateSlides(); - } else { - showWarning('Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)'); - } - initSlides(); - } else if (shouldFillGrid) { - if (params.loopAddBlankSlides) { - const slidesToAdd = params.grid.rows - swiper.slides.length % params.grid.rows; - addBlankSlides(slidesToAdd); - swiper.recalcSlides(); - swiper.updateSlides(); - } else { - showWarning('Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)'); - } - initSlides(); - } else { - initSlides(); - } - swiper.loopFix({ - slideRealIndex, - direction: params.centeredSlides ? undefined : 'next' - }); -} - -function loopFix(_temp) { - let { - slideRealIndex, - slideTo = true, - direction, - setTranslate, - activeSlideIndex, - byController, - byMousewheel - } = _temp === void 0 ? {} : _temp; - const swiper = this; - if (!swiper.params.loop) return; - swiper.emit('beforeLoopFix'); - const { - slides, - allowSlidePrev, - allowSlideNext, - slidesEl, - params - } = swiper; - const { - centeredSlides - } = params; - swiper.allowSlidePrev = true; - swiper.allowSlideNext = true; - if (swiper.virtual && params.virtual.enabled) { - if (slideTo) { - if (!params.centeredSlides && swiper.snapIndex === 0) { - swiper.slideTo(swiper.virtual.slides.length, 0, false, true); - } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) { - swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true); - } else if (swiper.snapIndex === swiper.snapGrid.length - 1) { - swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true); - } - } - swiper.allowSlidePrev = allowSlidePrev; - swiper.allowSlideNext = allowSlideNext; - swiper.emit('loopFix'); - return; - } - let slidesPerView = params.slidesPerView; - if (slidesPerView === 'auto') { - slidesPerView = swiper.slidesPerViewDynamic(); - } else { - slidesPerView = Math.ceil(parseFloat(params.slidesPerView, 10)); - if (centeredSlides && slidesPerView % 2 === 0) { - slidesPerView = slidesPerView + 1; - } - } - const slidesPerGroup = params.slidesPerGroupAuto ? slidesPerView : params.slidesPerGroup; - let loopedSlides = slidesPerGroup; - if (loopedSlides % slidesPerGroup !== 0) { - loopedSlides += slidesPerGroup - loopedSlides % slidesPerGroup; - } - loopedSlides += params.loopAdditionalSlides; - swiper.loopedSlides = loopedSlides; - const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1; - if (slides.length < slidesPerView + loopedSlides) { - showWarning('Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled and not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters'); - } else if (gridEnabled && params.grid.fill === 'row') { - showWarning('Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`'); - } - const prependSlidesIndexes = []; - const appendSlidesIndexes = []; - let activeIndex = swiper.activeIndex; - if (typeof activeSlideIndex === 'undefined') { - activeSlideIndex = swiper.getSlideIndex(slides.filter(el => el.classList.contains(params.slideActiveClass))[0]); - } else { - activeIndex = activeSlideIndex; - } - const isNext = direction === 'next' || !direction; - const isPrev = direction === 'prev' || !direction; - let slidesPrepended = 0; - let slidesAppended = 0; - const cols = gridEnabled ? Math.ceil(slides.length / params.grid.rows) : slides.length; - const activeColIndex = gridEnabled ? slides[activeSlideIndex].column : activeSlideIndex; - const activeColIndexWithShift = activeColIndex + (centeredSlides && typeof setTranslate === 'undefined' ? -slidesPerView / 2 + 0.5 : 0); - // prepend last slides before start - if (activeColIndexWithShift < loopedSlides) { - slidesPrepended = Math.max(loopedSlides - activeColIndexWithShift, slidesPerGroup); - for (let i = 0; i < loopedSlides - activeColIndexWithShift; i += 1) { - const index = i - Math.floor(i / cols) * cols; - if (gridEnabled) { - const colIndexToPrepend = cols - index - 1; - for (let i = slides.length - 1; i >= 0; i -= 1) { - if (slides[i].column === colIndexToPrepend) prependSlidesIndexes.push(i); - } - // slides.forEach((slide, slideIndex) => { - // if (slide.column === colIndexToPrepend) prependSlidesIndexes.push(slideIndex); - // }); - } else { - prependSlidesIndexes.push(cols - index - 1); - } - } - } else if (activeColIndexWithShift + slidesPerView > cols - loopedSlides) { - slidesAppended = Math.max(activeColIndexWithShift - (cols - loopedSlides * 2), slidesPerGroup); - for (let i = 0; i < slidesAppended; i += 1) { - const index = i - Math.floor(i / cols) * cols; - if (gridEnabled) { - slides.forEach((slide, slideIndex) => { - if (slide.column === index) appendSlidesIndexes.push(slideIndex); - }); - } else { - appendSlidesIndexes.push(index); - } - } - } - swiper.__preventObserver__ = true; - requestAnimationFrame(() => { - swiper.__preventObserver__ = false; - }); - if (isPrev) { - prependSlidesIndexes.forEach(index => { - slides[index].swiperLoopMoveDOM = true; - slidesEl.prepend(slides[index]); - slides[index].swiperLoopMoveDOM = false; - }); - } - if (isNext) { - appendSlidesIndexes.forEach(index => { - slides[index].swiperLoopMoveDOM = true; - slidesEl.append(slides[index]); - slides[index].swiperLoopMoveDOM = false; - }); - } - swiper.recalcSlides(); - if (params.slidesPerView === 'auto') { - swiper.updateSlides(); - } else if (gridEnabled && (prependSlidesIndexes.length > 0 && isPrev || appendSlidesIndexes.length > 0 && isNext)) { - swiper.slides.forEach((slide, slideIndex) => { - swiper.grid.updateSlide(slideIndex, slide, swiper.slides); - }); - } - if (params.watchSlidesProgress) { - swiper.updateSlidesOffset(); - } - if (slideTo) { - if (prependSlidesIndexes.length > 0 && isPrev) { - if (typeof slideRealIndex === 'undefined') { - const currentSlideTranslate = swiper.slidesGrid[activeIndex]; - const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended]; - const diff = newSlideTranslate - currentSlideTranslate; - if (byMousewheel) { - swiper.setTranslate(swiper.translate - diff); - } else { - swiper.slideTo(activeIndex + slidesPrepended, 0, false, true); - if (setTranslate) { - swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff; - swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff; - } - } - } else { - if (setTranslate) { - const shift = gridEnabled ? prependSlidesIndexes.length / params.grid.rows : prependSlidesIndexes.length; - swiper.slideTo(swiper.activeIndex + shift, 0, false, true); - swiper.touchEventsData.currentTranslate = swiper.translate; - } - } - } else if (appendSlidesIndexes.length > 0 && isNext) { - if (typeof slideRealIndex === 'undefined') { - const currentSlideTranslate = swiper.slidesGrid[activeIndex]; - const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended]; - const diff = newSlideTranslate - currentSlideTranslate; - if (byMousewheel) { - swiper.setTranslate(swiper.translate - diff); - } else { - swiper.slideTo(activeIndex - slidesAppended, 0, false, true); - if (setTranslate) { - swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff; - swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff; - } - } - } else { - const shift = gridEnabled ? appendSlidesIndexes.length / params.grid.rows : appendSlidesIndexes.length; - swiper.slideTo(swiper.activeIndex - shift, 0, false, true); - } - } - } - swiper.allowSlidePrev = allowSlidePrev; - swiper.allowSlideNext = allowSlideNext; - if (swiper.controller && swiper.controller.control && !byController) { - const loopParams = { - slideRealIndex, - direction, - setTranslate, - activeSlideIndex, - byController: true - }; - if (Array.isArray(swiper.controller.control)) { - swiper.controller.control.forEach(c => { - if (!c.destroyed && c.params.loop) c.loopFix({ - ...loopParams, - slideTo: c.params.slidesPerView === params.slidesPerView ? slideTo : false - }); - }); - } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) { - swiper.controller.control.loopFix({ - ...loopParams, - slideTo: swiper.controller.control.params.slidesPerView === params.slidesPerView ? slideTo : false - }); - } - } - swiper.emit('loopFix'); -} - -function loopDestroy() { - const swiper = this; - const { - params, - slidesEl - } = swiper; - if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return; - swiper.recalcSlides(); - const newSlidesOrder = []; - swiper.slides.forEach(slideEl => { - const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex; - newSlidesOrder[index] = slideEl; - }); - swiper.slides.forEach(slideEl => { - slideEl.removeAttribute('data-swiper-slide-index'); - }); - newSlidesOrder.forEach(slideEl => { - slidesEl.append(slideEl); - }); - swiper.recalcSlides(); - swiper.slideTo(swiper.realIndex, 0); -} - -var loop = { - loopCreate, - loopFix, - loopDestroy -}; - -function setGrabCursor(moving) { - const swiper = this; - if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return; - const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl; - if (swiper.isElement) { - swiper.__preventObserver__ = true; - } - el.style.cursor = 'move'; - el.style.cursor = moving ? 'grabbing' : 'grab'; - if (swiper.isElement) { - requestAnimationFrame(() => { - swiper.__preventObserver__ = false; - }); - } -} - -function unsetGrabCursor() { - const swiper = this; - if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) { - return; - } - if (swiper.isElement) { - swiper.__preventObserver__ = true; - } - swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = ''; - if (swiper.isElement) { - requestAnimationFrame(() => { - swiper.__preventObserver__ = false; - }); - } -} - -var grabCursor = { - setGrabCursor, - unsetGrabCursor -}; - -// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd -function closestElement(selector, base) { - if (base === void 0) { - base = this; - } - function __closestFrom(el) { - if (!el || el === getDocument() || el === getWindow()) return null; - if (el.assignedSlot) el = el.assignedSlot; - const found = el.closest(selector); - if (!found && !el.getRootNode) { - return null; - } - return found || __closestFrom(el.getRootNode().host); - } - return __closestFrom(base); -} -function preventEdgeSwipe(swiper, event, startX) { - const window = getWindow(); - const { - params - } = swiper; - const edgeSwipeDetection = params.edgeSwipeDetection; - const edgeSwipeThreshold = params.edgeSwipeThreshold; - if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) { - if (edgeSwipeDetection === 'prevent') { - event.preventDefault(); - return true; - } - return false; - } - return true; -} -function onTouchStart(event) { - const swiper = this; - const document = getDocument(); - let e = event; - if (e.originalEvent) e = e.originalEvent; - const data = swiper.touchEventsData; - if (e.type === 'pointerdown') { - if (data.pointerId !== null && data.pointerId !== e.pointerId) { - return; - } - data.pointerId = e.pointerId; - } else if (e.type === 'touchstart' && e.targetTouches.length === 1) { - data.touchId = e.targetTouches[0].identifier; - } - if (e.type === 'touchstart') { - // don't proceed touch event - preventEdgeSwipe(swiper, e, e.targetTouches[0].pageX); - return; - } - const { - params, - touches, - enabled - } = swiper; - if (!enabled) return; - if (!params.simulateTouch && e.pointerType === 'mouse') return; - if (swiper.animating && params.preventInteractionOnTransition) { - return; - } - if (!swiper.animating && params.cssMode && params.loop) { - swiper.loopFix(); - } - let targetEl = e.target; - if (params.touchEventsTarget === 'wrapper') { - if (!swiper.wrapperEl.contains(targetEl)) return; - } - if ('which' in e && e.which === 3) return; - if ('button' in e && e.button > 0) return; - if (data.isTouched && data.isMoved) return; - - // change target el for shadow root component - const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== ''; - // eslint-disable-next-line - const eventPath = e.composedPath ? e.composedPath() : e.path; - if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) { - targetEl = eventPath[0]; - } - const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`; - const isTargetShadow = !!(e.target && e.target.shadowRoot); - - // use closestElement for shadow root element to get the actual closest for nested shadow root element - if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) { - swiper.allowClick = true; - return; - } - if (params.swipeHandler) { - if (!targetEl.closest(params.swipeHandler)) return; - } - touches.currentX = e.pageX; - touches.currentY = e.pageY; - const startX = touches.currentX; - const startY = touches.currentY; - - // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore - - if (!preventEdgeSwipe(swiper, e, startX)) { - return; - } - Object.assign(data, { - isTouched: true, - isMoved: false, - allowTouchCallbacks: true, - isScrolling: undefined, - startMoving: undefined - }); - touches.startX = startX; - touches.startY = startY; - data.touchStartTime = now(); - swiper.allowClick = true; - swiper.updateSize(); - swiper.swipeDirection = undefined; - if (params.threshold > 0) data.allowThresholdMove = false; - let preventDefault = true; - if (targetEl.matches(data.focusableElements)) { - preventDefault = false; - if (targetEl.nodeName === 'SELECT') { - data.isTouched = false; - } - } - if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl) { - document.activeElement.blur(); - } - const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault; - if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) { - e.preventDefault(); - } - if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) { - swiper.freeMode.onTouchStart(); - } - swiper.emit('touchStart', e); -} - -function onTouchMove(event) { - const document = getDocument(); - const swiper = this; - const data = swiper.touchEventsData; - const { - params, - touches, - rtlTranslate: rtl, - enabled - } = swiper; - if (!enabled) return; - if (!params.simulateTouch && event.pointerType === 'mouse') return; - let e = event; - if (e.originalEvent) e = e.originalEvent; - if (e.type === 'pointermove') { - if (data.touchId !== null) return; // return from pointer if we use touch - const id = e.pointerId; - if (id !== data.pointerId) return; - } - let targetTouch; - if (e.type === 'touchmove') { - targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0]; - if (!targetTouch || targetTouch.identifier !== data.touchId) return; - } else { - targetTouch = e; - } - if (!data.isTouched) { - if (data.startMoving && data.isScrolling) { - swiper.emit('touchMoveOpposite', e); - } - return; - } - const pageX = targetTouch.pageX; - const pageY = targetTouch.pageY; - if (e.preventedByNestedSwiper) { - touches.startX = pageX; - touches.startY = pageY; - return; - } - if (!swiper.allowTouchMove) { - if (!e.target.matches(data.focusableElements)) { - swiper.allowClick = false; - } - if (data.isTouched) { - Object.assign(touches, { - startX: pageX, - startY: pageY, - currentX: pageX, - currentY: pageY - }); - data.touchStartTime = now(); - } - return; - } - if (params.touchReleaseOnEdges && !params.loop) { - if (swiper.isVertical()) { - // Vertical - if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) { - data.isTouched = false; - data.isMoved = false; - return; - } - } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) { - return; - } - } - if (document.activeElement) { - if (e.target === document.activeElement && e.target.matches(data.focusableElements)) { - data.isMoved = true; - swiper.allowClick = false; - return; - } - } - if (data.allowTouchCallbacks) { - swiper.emit('touchMove', e); - } - touches.previousX = touches.currentX; - touches.previousY = touches.currentY; - touches.currentX = pageX; - touches.currentY = pageY; - const diffX = touches.currentX - touches.startX; - const diffY = touches.currentY - touches.startY; - if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return; - if (typeof data.isScrolling === 'undefined') { - let touchAngle; - if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) { - data.isScrolling = false; - } else { - // eslint-disable-next-line - if (diffX * diffX + diffY * diffY >= 25) { - touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI; - data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle; - } - } - } - if (data.isScrolling) { - swiper.emit('touchMoveOpposite', e); - } - if (typeof data.startMoving === 'undefined') { - if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) { - data.startMoving = true; - } - } - if (data.isScrolling) { - data.isTouched = false; - return; - } - if (!data.startMoving) { - return; - } - swiper.allowClick = false; - if (!params.cssMode && e.cancelable) { - e.preventDefault(); - } - if (params.touchMoveStopPropagation && !params.nested) { - e.stopPropagation(); - } - let diff = swiper.isHorizontal() ? diffX : diffY; - let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY; - if (params.oneWayMovement) { - diff = Math.abs(diff) * (rtl ? 1 : -1); - touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1); - } - touches.diff = diff; - diff *= params.touchRatio; - if (rtl) { - diff = -diff; - touchesDiff = -touchesDiff; - } - const prevTouchesDirection = swiper.touchesDirection; - swiper.swipeDirection = diff > 0 ? 'prev' : 'next'; - swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next'; - const isLoop = swiper.params.loop && !params.cssMode; - const allowLoopFix = swiper.touchesDirection === 'next' && swiper.allowSlideNext || swiper.touchesDirection === 'prev' && swiper.allowSlidePrev; - if (!data.isMoved) { - if (isLoop && allowLoopFix) { - swiper.loopFix({ - direction: swiper.swipeDirection - }); - } - data.startTranslate = swiper.getTranslate(); - swiper.setTransition(0); - if (swiper.animating) { - const evt = new window.CustomEvent('transitionend', { - bubbles: true, - cancelable: true - }); - swiper.wrapperEl.dispatchEvent(evt); - } - data.allowMomentumBounce = false; - // Grab Cursor - if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) { - swiper.setGrabCursor(true); - } - swiper.emit('sliderFirstMove', e); - } - let loopFixed; - new Date().getTime(); - if (data.isMoved && data.allowThresholdMove && prevTouchesDirection !== swiper.touchesDirection && isLoop && allowLoopFix && Math.abs(diff) >= 1) { - Object.assign(touches, { - startX: pageX, - startY: pageY, - currentX: pageX, - currentY: pageY, - startTranslate: data.currentTranslate - }); - data.loopSwapReset = true; - data.startTranslate = data.currentTranslate; - return; - } - swiper.emit('sliderMove', e); - data.isMoved = true; - data.currentTranslate = diff + data.startTranslate; - let disableParentSwiper = true; - let resistanceRatio = params.resistanceRatio; - if (params.touchReleaseOnEdges) { - resistanceRatio = 0; - } - if (diff > 0) { - if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.slidesSizesGrid[swiper.activeIndex + 1] : swiper.minTranslate())) { - swiper.loopFix({ - direction: 'prev', - setTranslate: true, - activeSlideIndex: 0 - }); - } - if (data.currentTranslate > swiper.minTranslate()) { - disableParentSwiper = false; - if (params.resistance) { - data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio; - } - } - } else if (diff < 0) { - if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] : swiper.maxTranslate())) { - swiper.loopFix({ - direction: 'next', - setTranslate: true, - activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10))) - }); - } - if (data.currentTranslate < swiper.maxTranslate()) { - disableParentSwiper = false; - if (params.resistance) { - data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio; - } - } - } - if (disableParentSwiper) { - e.preventedByNestedSwiper = true; - } - - // Directions locks - if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) { - data.currentTranslate = data.startTranslate; - } - if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) { - data.currentTranslate = data.startTranslate; - } - if (!swiper.allowSlidePrev && !swiper.allowSlideNext) { - data.currentTranslate = data.startTranslate; - } - - // Threshold - if (params.threshold > 0) { - if (Math.abs(diff) > params.threshold || data.allowThresholdMove) { - if (!data.allowThresholdMove) { - data.allowThresholdMove = true; - touches.startX = touches.currentX; - touches.startY = touches.currentY; - data.currentTranslate = data.startTranslate; - touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY; - return; - } - } else { - data.currentTranslate = data.startTranslate; - return; - } - } - if (!params.followFinger || params.cssMode) return; - - // Update active index in free mode - if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) { - swiper.updateActiveIndex(); - swiper.updateSlidesClasses(); - } - if (params.freeMode && params.freeMode.enabled && swiper.freeMode) { - swiper.freeMode.onTouchMove(); - } - // Update progress - swiper.updateProgress(data.currentTranslate); - // Update translate - swiper.setTranslate(data.currentTranslate); -} - -function onTouchEnd(event) { - const swiper = this; - const data = swiper.touchEventsData; - let e = event; - if (e.originalEvent) e = e.originalEvent; - let targetTouch; - const isTouchEvent = e.type === 'touchend' || e.type === 'touchcancel'; - if (!isTouchEvent) { - if (data.touchId !== null) return; // return from pointer if we use touch - if (e.pointerId !== data.pointerId) return; - targetTouch = e; - } else { - targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0]; - if (!targetTouch || targetTouch.identifier !== data.touchId) return; - } - if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(e.type)) { - const proceed = ['pointercancel', 'contextmenu'].includes(e.type) && (swiper.browser.isSafari || swiper.browser.isWebView); - if (!proceed) { - return; - } - } - data.pointerId = null; - data.touchId = null; - const { - params, - touches, - rtlTranslate: rtl, - slidesGrid, - enabled - } = swiper; - if (!enabled) return; - if (!params.simulateTouch && e.pointerType === 'mouse') return; - if (data.allowTouchCallbacks) { - swiper.emit('touchEnd', e); - } - data.allowTouchCallbacks = false; - if (!data.isTouched) { - if (data.isMoved && params.grabCursor) { - swiper.setGrabCursor(false); - } - data.isMoved = false; - data.startMoving = false; - return; - } - - // Return Grab Cursor - if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) { - swiper.setGrabCursor(false); - } - - // Time diff - const touchEndTime = now(); - const timeDiff = touchEndTime - data.touchStartTime; - - // Tap, doubleTap, Click - if (swiper.allowClick) { - const pathTree = e.path || e.composedPath && e.composedPath(); - swiper.updateClickedSlide(pathTree && pathTree[0] || e.target, pathTree); - swiper.emit('tap click', e); - if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) { - swiper.emit('doubleTap doubleClick', e); - } - } - data.lastClickTime = now(); - nextTick(() => { - if (!swiper.destroyed) swiper.allowClick = true; - }); - if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 && !data.loopSwapReset || data.currentTranslate === data.startTranslate && !data.loopSwapReset) { - data.isTouched = false; - data.isMoved = false; - data.startMoving = false; - return; - } - data.isTouched = false; - data.isMoved = false; - data.startMoving = false; - let currentPos; - if (params.followFinger) { - currentPos = rtl ? swiper.translate : -swiper.translate; - } else { - currentPos = -data.currentTranslate; - } - if (params.cssMode) { - return; - } - if (params.freeMode && params.freeMode.enabled) { - swiper.freeMode.onTouchEnd({ - currentPos - }); - return; - } - - // Find current slide - const swipeToLast = currentPos >= -swiper.maxTranslate() && !swiper.params.loop; - let stopIndex = 0; - let groupSize = swiper.slidesSizesGrid[0]; - for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) { - const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup; - if (typeof slidesGrid[i + increment] !== 'undefined') { - if (swipeToLast || currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) { - stopIndex = i; - groupSize = slidesGrid[i + increment] - slidesGrid[i]; - } - } else if (swipeToLast || currentPos >= slidesGrid[i]) { - stopIndex = i; - groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2]; - } - } - let rewindFirstIndex = null; - let rewindLastIndex = null; - if (params.rewind) { - if (swiper.isBeginning) { - rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1; - } else if (swiper.isEnd) { - rewindFirstIndex = 0; - } - } - // Find current slide size - const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize; - const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup; - if (timeDiff > params.longSwipesMs) { - // Long touches - if (!params.longSwipes) { - swiper.slideTo(swiper.activeIndex); - return; - } - if (swiper.swipeDirection === 'next') { - if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex); - } - if (swiper.swipeDirection === 'prev') { - if (ratio > 1 - params.longSwipesRatio) { - swiper.slideTo(stopIndex + increment); - } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) { - swiper.slideTo(rewindLastIndex); - } else { - swiper.slideTo(stopIndex); - } - } - } else { - // Short swipes - if (!params.shortSwipes) { - swiper.slideTo(swiper.activeIndex); - return; - } - const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl); - if (!isNavButtonTarget) { - if (swiper.swipeDirection === 'next') { - swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment); - } - if (swiper.swipeDirection === 'prev') { - swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex); - } - } else if (e.target === swiper.navigation.nextEl) { - swiper.slideTo(stopIndex + increment); - } else { - swiper.slideTo(stopIndex); - } - } -} - -function onResize() { - const swiper = this; - const { - params, - el - } = swiper; - if (el && el.offsetWidth === 0) return; - - // Breakpoints - if (params.breakpoints) { - swiper.setBreakpoint(); - } - - // Save locks - const { - allowSlideNext, - allowSlidePrev, - snapGrid - } = swiper; - const isVirtual = swiper.virtual && swiper.params.virtual.enabled; - - // Disable locks on resize - swiper.allowSlideNext = true; - swiper.allowSlidePrev = true; - swiper.updateSize(); - swiper.updateSlides(); - swiper.updateSlidesClasses(); - const isVirtualLoop = isVirtual && params.loop; - if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) { - swiper.slideTo(swiper.slides.length - 1, 0, false, true); - } else { - if (swiper.params.loop && !isVirtual) { - swiper.slideToLoop(swiper.realIndex, 0, false, true); - } else { - swiper.slideTo(swiper.activeIndex, 0, false, true); - } - } - if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) { - clearTimeout(swiper.autoplay.resizeTimeout); - swiper.autoplay.resizeTimeout = setTimeout(() => { - if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) { - swiper.autoplay.resume(); - } - }, 500); - } - // Return locks after resize - swiper.allowSlidePrev = allowSlidePrev; - swiper.allowSlideNext = allowSlideNext; - if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) { - swiper.checkOverflow(); - } -} - -function onClick(e) { - const swiper = this; - if (!swiper.enabled) return; - if (!swiper.allowClick) { - if (swiper.params.preventClicks) e.preventDefault(); - if (swiper.params.preventClicksPropagation && swiper.animating) { - e.stopPropagation(); - e.stopImmediatePropagation(); - } - } -} - -function onScroll() { - const swiper = this; - const { - wrapperEl, - rtlTranslate, - enabled - } = swiper; - if (!enabled) return; - swiper.previousTranslate = swiper.translate; - if (swiper.isHorizontal()) { - swiper.translate = -wrapperEl.scrollLeft; - } else { - swiper.translate = -wrapperEl.scrollTop; - } - // eslint-disable-next-line - if (swiper.translate === 0) swiper.translate = 0; - swiper.updateActiveIndex(); - swiper.updateSlidesClasses(); - let newProgress; - const translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); - if (translatesDiff === 0) { - newProgress = 0; - } else { - newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff; - } - if (newProgress !== swiper.progress) { - swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate); - } - swiper.emit('setTranslate', swiper.translate, false); -} - -function onLoad(e) { - const swiper = this; - processLazyPreloader(swiper, e.target); - if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) { - return; - } - swiper.update(); -} - -function onDocumentTouchStart() { - const swiper = this; - if (swiper.documentTouchHandlerProceeded) return; - swiper.documentTouchHandlerProceeded = true; - if (swiper.params.touchReleaseOnEdges) { - swiper.el.style.touchAction = 'auto'; - } -} - -const events = (swiper, method) => { - const document = getDocument(); - const { - params, - el, - wrapperEl, - device - } = swiper; - const capture = !!params.nested; - const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener'; - const swiperMethod = method; - - // Touch Events - document[domMethod]('touchstart', swiper.onDocumentTouchStart, { - passive: false, - capture - }); - el[domMethod]('touchstart', swiper.onTouchStart, { - passive: false - }); - el[domMethod]('pointerdown', swiper.onTouchStart, { - passive: false - }); - document[domMethod]('touchmove', swiper.onTouchMove, { - passive: false, - capture - }); - document[domMethod]('pointermove', swiper.onTouchMove, { - passive: false, - capture - }); - document[domMethod]('touchend', swiper.onTouchEnd, { - passive: true - }); - document[domMethod]('pointerup', swiper.onTouchEnd, { - passive: true - }); - document[domMethod]('pointercancel', swiper.onTouchEnd, { - passive: true - }); - document[domMethod]('touchcancel', swiper.onTouchEnd, { - passive: true - }); - document[domMethod]('pointerout', swiper.onTouchEnd, { - passive: true - }); - document[domMethod]('pointerleave', swiper.onTouchEnd, { - passive: true - }); - document[domMethod]('contextmenu', swiper.onTouchEnd, { - passive: true - }); - - // Prevent Links Clicks - if (params.preventClicks || params.preventClicksPropagation) { - el[domMethod]('click', swiper.onClick, true); - } - if (params.cssMode) { - wrapperEl[domMethod]('scroll', swiper.onScroll); - } - - // Resize handler - if (params.updateOnWindowResize) { - swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true); - } else { - swiper[swiperMethod]('observerUpdate', onResize, true); - } - - // Images loader - el[domMethod]('load', swiper.onLoad, { - capture: true - }); -}; -function attachEvents() { - const swiper = this; - const { - params - } = swiper; - swiper.onTouchStart = onTouchStart.bind(swiper); - swiper.onTouchMove = onTouchMove.bind(swiper); - swiper.onTouchEnd = onTouchEnd.bind(swiper); - swiper.onDocumentTouchStart = onDocumentTouchStart.bind(swiper); - if (params.cssMode) { - swiper.onScroll = onScroll.bind(swiper); - } - swiper.onClick = onClick.bind(swiper); - swiper.onLoad = onLoad.bind(swiper); - events(swiper, 'on'); -} -function detachEvents() { - const swiper = this; - events(swiper, 'off'); -} -var events$1 = { - attachEvents, - detachEvents -}; - -const isGridEnabled = (swiper, params) => { - return swiper.grid && params.grid && params.grid.rows > 1; -}; -function setBreakpoint() { - const swiper = this; - const { - realIndex, - initialized, - params, - el - } = swiper; - const breakpoints = params.breakpoints; - if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; - - // Get breakpoint for window width and update parameters - const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el); - if (!breakpoint || swiper.currentBreakpoint === breakpoint) return; - const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined; - const breakpointParams = breakpointOnlyParams || swiper.originalParams; - const wasMultiRow = isGridEnabled(swiper, params); - const isMultiRow = isGridEnabled(swiper, breakpointParams); - const wasEnabled = params.enabled; - if (wasMultiRow && !isMultiRow) { - el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`); - swiper.emitContainerClasses(); - } else if (!wasMultiRow && isMultiRow) { - el.classList.add(`${params.containerModifierClass}grid`); - if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') { - el.classList.add(`${params.containerModifierClass}grid-column`); - } - swiper.emitContainerClasses(); - } - - // Toggle navigation, pagination, scrollbar - ['navigation', 'pagination', 'scrollbar'].forEach(prop => { - if (typeof breakpointParams[prop] === 'undefined') return; - const wasModuleEnabled = params[prop] && params[prop].enabled; - const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled; - if (wasModuleEnabled && !isModuleEnabled) { - swiper[prop].disable(); - } - if (!wasModuleEnabled && isModuleEnabled) { - swiper[prop].enable(); - } - }); - const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction; - const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged); - const wasLoop = params.loop; - if (directionChanged && initialized) { - swiper.changeDirection(); - } - extend(swiper.params, breakpointParams); - const isEnabled = swiper.params.enabled; - const hasLoop = swiper.params.loop; - Object.assign(swiper, { - allowTouchMove: swiper.params.allowTouchMove, - allowSlideNext: swiper.params.allowSlideNext, - allowSlidePrev: swiper.params.allowSlidePrev - }); - if (wasEnabled && !isEnabled) { - swiper.disable(); - } else if (!wasEnabled && isEnabled) { - swiper.enable(); - } - swiper.currentBreakpoint = breakpoint; - swiper.emit('_beforeBreakpoint', breakpointParams); - if (initialized) { - if (needsReLoop) { - swiper.loopDestroy(); - swiper.loopCreate(realIndex); - swiper.updateSlides(); - } else if (!wasLoop && hasLoop) { - swiper.loopCreate(realIndex); - swiper.updateSlides(); - } else if (wasLoop && !hasLoop) { - swiper.loopDestroy(); - } - } - swiper.emit('breakpoint', breakpointParams); -} - -function getBreakpoint(breakpoints, base, containerEl) { - if (base === void 0) { - base = 'window'; - } - if (!breakpoints || base === 'container' && !containerEl) return undefined; - let breakpoint = false; - const window = getWindow(); - const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight; - const points = Object.keys(breakpoints).map(point => { - if (typeof point === 'string' && point.indexOf('@') === 0) { - const minRatio = parseFloat(point.substr(1)); - const value = currentHeight * minRatio; - return { - value, - point - }; - } - return { - value: point, - point - }; - }); - points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10)); - for (let i = 0; i < points.length; i += 1) { - const { - point, - value - } = points[i]; - if (base === 'window') { - if (window.matchMedia(`(min-width: ${value}px)`).matches) { - breakpoint = point; - } - } else if (value <= containerEl.clientWidth) { - breakpoint = point; - } - } - return breakpoint || 'max'; -} - -var breakpoints = { - setBreakpoint, - getBreakpoint -}; - -function prepareClasses(entries, prefix) { - const resultClasses = []; - entries.forEach(item => { - if (typeof item === 'object') { - Object.keys(item).forEach(classNames => { - if (item[classNames]) { - resultClasses.push(prefix + classNames); - } - }); - } else if (typeof item === 'string') { - resultClasses.push(prefix + item); - } - }); - return resultClasses; -} -function addClasses() { - const swiper = this; - const { - classNames, - params, - rtl, - el, - device - } = swiper; - // prettier-ignore - const suffixes = prepareClasses(['initialized', params.direction, { - 'free-mode': swiper.params.freeMode && params.freeMode.enabled - }, { - 'autoheight': params.autoHeight - }, { - 'rtl': rtl - }, { - 'grid': params.grid && params.grid.rows > 1 - }, { - 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column' - }, { - 'android': device.android - }, { - 'ios': device.ios - }, { - 'css-mode': params.cssMode - }, { - 'centered': params.cssMode && params.centeredSlides - }, { - 'watch-progress': params.watchSlidesProgress - }], params.containerModifierClass); - classNames.push(...suffixes); - el.classList.add(...classNames); - swiper.emitContainerClasses(); -} - -function removeClasses() { - const swiper = this; - const { - el, - classNames - } = swiper; - el.classList.remove(...classNames); - swiper.emitContainerClasses(); -} - -var classes = { - addClasses, - removeClasses -}; - -function checkOverflow() { - const swiper = this; - const { - isLocked: wasLocked, - params - } = swiper; - const { - slidesOffsetBefore - } = params; - if (slidesOffsetBefore) { - const lastSlideIndex = swiper.slides.length - 1; - const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2; - swiper.isLocked = swiper.size > lastSlideRightEdge; - } else { - swiper.isLocked = swiper.snapGrid.length === 1; - } - if (params.allowSlideNext === true) { - swiper.allowSlideNext = !swiper.isLocked; - } - if (params.allowSlidePrev === true) { - swiper.allowSlidePrev = !swiper.isLocked; - } - if (wasLocked && wasLocked !== swiper.isLocked) { - swiper.isEnd = false; - } - if (wasLocked !== swiper.isLocked) { - swiper.emit(swiper.isLocked ? 'lock' : 'unlock'); - } -} -var checkOverflow$1 = { - checkOverflow -}; - -var defaults = { - init: true, - direction: 'horizontal', - oneWayMovement: false, - touchEventsTarget: 'wrapper', - initialSlide: 0, - speed: 300, - cssMode: false, - updateOnWindowResize: true, - resizeObserver: true, - nested: false, - createElements: false, - eventsPrefix: 'swiper', - enabled: true, - focusableElements: 'input, select, option, textarea, button, video, label', - // Overrides - width: null, - height: null, - // - preventInteractionOnTransition: false, - // ssr - userAgent: null, - url: null, - // To support iOS's swipe-to-go-back gesture (when being used in-app). - edgeSwipeDetection: false, - edgeSwipeThreshold: 20, - // Autoheight - autoHeight: false, - // Set wrapper width - setWrapperSize: false, - // Virtual Translate - virtualTranslate: false, - // Effects - effect: 'slide', - // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip' - - // Breakpoints - breakpoints: undefined, - breakpointsBase: 'window', - // Slides grid - spaceBetween: 0, - slidesPerView: 1, - slidesPerGroup: 1, - slidesPerGroupSkip: 0, - slidesPerGroupAuto: false, - centeredSlides: false, - centeredSlidesBounds: false, - slidesOffsetBefore: 0, - // in px - slidesOffsetAfter: 0, - // in px - normalizeSlideIndex: true, - centerInsufficientSlides: false, - // Disable swiper and hide navigation when container not overflow - watchOverflow: true, - // Round length - roundLengths: false, - // Touches - touchRatio: 1, - touchAngle: 45, - simulateTouch: true, - shortSwipes: true, - longSwipes: true, - longSwipesRatio: 0.5, - longSwipesMs: 300, - followFinger: true, - allowTouchMove: true, - threshold: 5, - touchMoveStopPropagation: false, - touchStartPreventDefault: true, - touchStartForcePreventDefault: false, - touchReleaseOnEdges: false, - // Unique Navigation Elements - uniqueNavElements: true, - // Resistance - resistance: true, - resistanceRatio: 0.85, - // Progress - watchSlidesProgress: false, - // Cursor - grabCursor: false, - // Clicks - preventClicks: true, - preventClicksPropagation: true, - slideToClickedSlide: false, - // loop - loop: false, - loopAddBlankSlides: true, - loopAdditionalSlides: 0, - loopPreventsSliding: true, - // rewind - rewind: false, - // Swiping/no swiping - allowSlidePrev: true, - allowSlideNext: true, - swipeHandler: null, - // '.swipe-handler', - noSwiping: true, - noSwipingClass: 'swiper-no-swiping', - noSwipingSelector: null, - // Passive Listeners - passiveListeners: true, - maxBackfaceHiddenSlides: 10, - // NS - containerModifierClass: 'swiper-', - // NEW - slideClass: 'swiper-slide', - slideBlankClass: 'swiper-slide-blank', - slideActiveClass: 'swiper-slide-active', - slideVisibleClass: 'swiper-slide-visible', - slideFullyVisibleClass: 'swiper-slide-fully-visible', - slideNextClass: 'swiper-slide-next', - slidePrevClass: 'swiper-slide-prev', - wrapperClass: 'swiper-wrapper', - lazyPreloaderClass: 'swiper-lazy-preloader', - lazyPreloadPrevNext: 0, - // Callbacks - runCallbacksOnInit: true, - // Internals - _emitClasses: false -}; - -function moduleExtendParams(params, allModulesParams) { - return function extendParams(obj) { - if (obj === void 0) { - obj = {}; - } - const moduleParamName = Object.keys(obj)[0]; - const moduleParams = obj[moduleParamName]; - if (typeof moduleParams !== 'object' || moduleParams === null) { - extend(allModulesParams, obj); - return; - } - if (params[moduleParamName] === true) { - params[moduleParamName] = { - enabled: true - }; - } - if (moduleParamName === 'navigation' && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].prevEl && !params[moduleParamName].nextEl) { - params[moduleParamName].auto = true; - } - if (['pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].el) { - params[moduleParamName].auto = true; - } - if (!(moduleParamName in params && 'enabled' in moduleParams)) { - extend(allModulesParams, obj); - return; - } - if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) { - params[moduleParamName].enabled = true; - } - if (!params[moduleParamName]) params[moduleParamName] = { - enabled: false - }; - extend(allModulesParams, obj); - }; -} - -/* eslint no-param-reassign: "off" */ -const prototypes = { - eventsEmitter, - update, - translate, - transition, - slide, - loop, - grabCursor, - events: events$1, - breakpoints, - checkOverflow: checkOverflow$1, - classes -}; -const extendedDefaults = {}; -class Swiper { - constructor() { - let el; - let params; - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') { - params = args[0]; - } else { - [el, params] = args; - } - if (!params) params = {}; - params = extend({}, params); - if (el && !params.el) params.el = el; - const document = getDocument(); - if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) { - const swipers = []; - document.querySelectorAll(params.el).forEach(containerEl => { - const newParams = extend({}, params, { - el: containerEl - }); - swipers.push(new Swiper(newParams)); - }); - // eslint-disable-next-line no-constructor-return - return swipers; - } - - // Swiper Instance - const swiper = this; - swiper.__swiper__ = true; - swiper.support = getSupport(); - swiper.device = getDevice({ - userAgent: params.userAgent - }); - swiper.browser = getBrowser(); - swiper.eventsListeners = {}; - swiper.eventsAnyListeners = []; - swiper.modules = [...swiper.__modules__]; - if (params.modules && Array.isArray(params.modules)) { - swiper.modules.push(...params.modules); - } - const allModulesParams = {}; - swiper.modules.forEach(mod => { - mod({ - params, - swiper, - extendParams: moduleExtendParams(params, allModulesParams), - on: swiper.on.bind(swiper), - once: swiper.once.bind(swiper), - off: swiper.off.bind(swiper), - emit: swiper.emit.bind(swiper) - }); - }); - - // Extend defaults with modules params - const swiperParams = extend({}, defaults, allModulesParams); - - // Extend defaults with passed params - swiper.params = extend({}, swiperParams, extendedDefaults, params); - swiper.originalParams = extend({}, swiper.params); - swiper.passedParams = extend({}, params); - - // add event listeners - if (swiper.params && swiper.params.on) { - Object.keys(swiper.params.on).forEach(eventName => { - swiper.on(eventName, swiper.params.on[eventName]); - }); - } - if (swiper.params && swiper.params.onAny) { - swiper.onAny(swiper.params.onAny); - } - - // Extend Swiper - Object.assign(swiper, { - enabled: swiper.params.enabled, - el, - // Classes - classNames: [], - // Slides - slides: [], - slidesGrid: [], - snapGrid: [], - slidesSizesGrid: [], - // isDirection - isHorizontal() { - return swiper.params.direction === 'horizontal'; - }, - isVertical() { - return swiper.params.direction === 'vertical'; - }, - // Indexes - activeIndex: 0, - realIndex: 0, - // - isBeginning: true, - isEnd: false, - // Props - translate: 0, - previousTranslate: 0, - progress: 0, - velocity: 0, - animating: false, - cssOverflowAdjustment() { - // Returns 0 unless `translate` is > 2**23 - // Should be subtracted from css values to prevent overflow - return Math.trunc(this.translate / 2 ** 23) * 2 ** 23; - }, - // Locks - allowSlideNext: swiper.params.allowSlideNext, - allowSlidePrev: swiper.params.allowSlidePrev, - // Touch Events - touchEventsData: { - isTouched: undefined, - isMoved: undefined, - allowTouchCallbacks: undefined, - touchStartTime: undefined, - isScrolling: undefined, - currentTranslate: undefined, - startTranslate: undefined, - allowThresholdMove: undefined, - // Form elements to match - focusableElements: swiper.params.focusableElements, - // Last click time - lastClickTime: 0, - clickTimeout: undefined, - // Velocities - velocities: [], - allowMomentumBounce: undefined, - startMoving: undefined, - pointerId: null, - touchId: null - }, - // Clicks - allowClick: true, - // Touches - allowTouchMove: swiper.params.allowTouchMove, - touches: { - startX: 0, - startY: 0, - currentX: 0, - currentY: 0, - diff: 0 - }, - // Images - imagesToLoad: [], - imagesLoaded: 0 - }); - swiper.emit('_swiper'); - - // Init - if (swiper.params.init) { - swiper.init(); - } - - // Return app instance - // eslint-disable-next-line no-constructor-return - return swiper; - } - getDirectionLabel(property) { - if (this.isHorizontal()) { - return property; - } - // prettier-ignore - return { - 'width': 'height', - 'margin-top': 'margin-left', - 'margin-bottom ': 'margin-right', - 'margin-left': 'margin-top', - 'margin-right': 'margin-bottom', - 'padding-left': 'padding-top', - 'padding-right': 'padding-bottom', - 'marginRight': 'marginBottom' - }[property]; - } - getSlideIndex(slideEl) { - const { - slidesEl, - params - } = this; - const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`); - const firstSlideIndex = elementIndex(slides[0]); - return elementIndex(slideEl) - firstSlideIndex; - } - getSlideIndexByData(index) { - return this.getSlideIndex(this.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index)[0]); - } - recalcSlides() { - const swiper = this; - const { - slidesEl, - params - } = swiper; - swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`); - } - enable() { - const swiper = this; - if (swiper.enabled) return; - swiper.enabled = true; - if (swiper.params.grabCursor) { - swiper.setGrabCursor(); - } - swiper.emit('enable'); - } - disable() { - const swiper = this; - if (!swiper.enabled) return; - swiper.enabled = false; - if (swiper.params.grabCursor) { - swiper.unsetGrabCursor(); - } - swiper.emit('disable'); - } - setProgress(progress, speed) { - const swiper = this; - progress = Math.min(Math.max(progress, 0), 1); - const min = swiper.minTranslate(); - const max = swiper.maxTranslate(); - const current = (max - min) * progress + min; - swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed); - swiper.updateActiveIndex(); - swiper.updateSlidesClasses(); - } - emitContainerClasses() { - const swiper = this; - if (!swiper.params._emitClasses || !swiper.el) return; - const cls = swiper.el.className.split(' ').filter(className => { - return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0; - }); - swiper.emit('_containerClasses', cls.join(' ')); - } - getSlideClasses(slideEl) { - const swiper = this; - if (swiper.destroyed) return ''; - return slideEl.className.split(' ').filter(className => { - return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0; - }).join(' '); - } - emitSlidesClasses() { - const swiper = this; - if (!swiper.params._emitClasses || !swiper.el) return; - const updates = []; - swiper.slides.forEach(slideEl => { - const classNames = swiper.getSlideClasses(slideEl); - updates.push({ - slideEl, - classNames - }); - swiper.emit('_slideClass', slideEl, classNames); - }); - swiper.emit('_slideClasses', updates); - } - slidesPerViewDynamic(view, exact) { - if (view === void 0) { - view = 'current'; - } - if (exact === void 0) { - exact = false; - } - const swiper = this; - const { - params, - slides, - slidesGrid, - slidesSizesGrid, - size: swiperSize, - activeIndex - } = swiper; - let spv = 1; - if (typeof params.slidesPerView === 'number') return params.slidesPerView; - if (params.centeredSlides) { - let slideSize = slides[activeIndex] ? slides[activeIndex].swiperSlideSize : 0; - let breakLoop; - for (let i = activeIndex + 1; i < slides.length; i += 1) { - if (slides[i] && !breakLoop) { - slideSize += slides[i].swiperSlideSize; - spv += 1; - if (slideSize > swiperSize) breakLoop = true; - } - } - for (let i = activeIndex - 1; i >= 0; i -= 1) { - if (slides[i] && !breakLoop) { - slideSize += slides[i].swiperSlideSize; - spv += 1; - if (slideSize > swiperSize) breakLoop = true; - } - } - } else { - // eslint-disable-next-line - if (view === 'current') { - for (let i = activeIndex + 1; i < slides.length; i += 1) { - const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize; - if (slideInView) { - spv += 1; - } - } - } else { - // previous - for (let i = activeIndex - 1; i >= 0; i -= 1) { - const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize; - if (slideInView) { - spv += 1; - } - } - } - } - return spv; - } - update() { - const swiper = this; - if (!swiper || swiper.destroyed) return; - const { - snapGrid, - params - } = swiper; - // Breakpoints - if (params.breakpoints) { - swiper.setBreakpoint(); - } - [...swiper.el.querySelectorAll('[loading="lazy"]')].forEach(imageEl => { - if (imageEl.complete) { - processLazyPreloader(swiper, imageEl); - } - }); - swiper.updateSize(); - swiper.updateSlides(); - swiper.updateProgress(); - swiper.updateSlidesClasses(); - function setTranslate() { - const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate; - const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate()); - swiper.setTranslate(newTranslate); - swiper.updateActiveIndex(); - swiper.updateSlidesClasses(); - } - let translated; - if (params.freeMode && params.freeMode.enabled && !params.cssMode) { - setTranslate(); - if (params.autoHeight) { - swiper.updateAutoHeight(); - } - } else { - if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) { - const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides; - translated = swiper.slideTo(slides.length - 1, 0, false, true); - } else { - translated = swiper.slideTo(swiper.activeIndex, 0, false, true); - } - if (!translated) { - setTranslate(); - } - } - if (params.watchOverflow && snapGrid !== swiper.snapGrid) { - swiper.checkOverflow(); - } - swiper.emit('update'); - } - changeDirection(newDirection, needUpdate) { - if (needUpdate === void 0) { - needUpdate = true; - } - const swiper = this; - const currentDirection = swiper.params.direction; - if (!newDirection) { - // eslint-disable-next-line - newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal'; - } - if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') { - return swiper; - } - swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`); - swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`); - swiper.emitContainerClasses(); - swiper.params.direction = newDirection; - swiper.slides.forEach(slideEl => { - if (newDirection === 'vertical') { - slideEl.style.width = ''; - } else { - slideEl.style.height = ''; - } - }); - swiper.emit('changeDirection'); - if (needUpdate) swiper.update(); - return swiper; - } - changeLanguageDirection(direction) { - const swiper = this; - if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return; - swiper.rtl = direction === 'rtl'; - swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl; - if (swiper.rtl) { - swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`); - swiper.el.dir = 'rtl'; - } else { - swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`); - swiper.el.dir = 'ltr'; - } - swiper.update(); - } - mount(element) { - const swiper = this; - if (swiper.mounted) return true; - - // Find el - let el = element || swiper.params.el; - if (typeof el === 'string') { - el = document.querySelector(el); - } - if (!el) { - return false; - } - el.swiper = swiper; - if (el.parentNode && el.parentNode.host && el.parentNode.host.nodeName === 'SWIPER-CONTAINER') { - swiper.isElement = true; - } - const getWrapperSelector = () => { - return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`; - }; - const getWrapper = () => { - if (el && el.shadowRoot && el.shadowRoot.querySelector) { - const res = el.shadowRoot.querySelector(getWrapperSelector()); - // Children needs to return slot items - return res; - } - return elementChildren(el, getWrapperSelector())[0]; - }; - // Find Wrapper - let wrapperEl = getWrapper(); - if (!wrapperEl && swiper.params.createElements) { - wrapperEl = createElement('div', swiper.params.wrapperClass); - el.append(wrapperEl); - elementChildren(el, `.${swiper.params.slideClass}`).forEach(slideEl => { - wrapperEl.append(slideEl); - }); - } - Object.assign(swiper, { - el, - wrapperEl, - slidesEl: swiper.isElement && !el.parentNode.host.slideSlots ? el.parentNode.host : wrapperEl, - hostEl: swiper.isElement ? el.parentNode.host : el, - mounted: true, - // RTL - rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl', - rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'), - wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box' - }); - return true; - } - init(el) { - const swiper = this; - if (swiper.initialized) return swiper; - const mounted = swiper.mount(el); - if (mounted === false) return swiper; - swiper.emit('beforeInit'); - - // Set breakpoint - if (swiper.params.breakpoints) { - swiper.setBreakpoint(); - } - - // Add Classes - swiper.addClasses(); - - // Update size - swiper.updateSize(); - - // Update slides - swiper.updateSlides(); - if (swiper.params.watchOverflow) { - swiper.checkOverflow(); - } - - // Set Grab Cursor - if (swiper.params.grabCursor && swiper.enabled) { - swiper.setGrabCursor(); - } - - // Slide To Initial Slide - if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) { - swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true); - } else { - swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true); - } - - // Create loop - if (swiper.params.loop) { - swiper.loopCreate(); - } - - // Attach events - swiper.attachEvents(); - const lazyElements = [...swiper.el.querySelectorAll('[loading="lazy"]')]; - if (swiper.isElement) { - lazyElements.push(...swiper.hostEl.querySelectorAll('[loading="lazy"]')); - } - lazyElements.forEach(imageEl => { - if (imageEl.complete) { - processLazyPreloader(swiper, imageEl); - } else { - imageEl.addEventListener('load', e => { - processLazyPreloader(swiper, e.target); - }); - } - }); - preload(swiper); - - // Init Flag - swiper.initialized = true; - preload(swiper); - - // Emit - swiper.emit('init'); - swiper.emit('afterInit'); - return swiper; - } - destroy(deleteInstance, cleanStyles) { - if (deleteInstance === void 0) { - deleteInstance = true; - } - if (cleanStyles === void 0) { - cleanStyles = true; - } - const swiper = this; - const { - params, - el, - wrapperEl, - slides - } = swiper; - if (typeof swiper.params === 'undefined' || swiper.destroyed) { - return null; - } - swiper.emit('beforeDestroy'); - - // Init Flag - swiper.initialized = false; - - // Detach events - swiper.detachEvents(); - - // Destroy loop - if (params.loop) { - swiper.loopDestroy(); - } - - // Cleanup styles - if (cleanStyles) { - swiper.removeClasses(); - el.removeAttribute('style'); - wrapperEl.removeAttribute('style'); - if (slides && slides.length) { - slides.forEach(slideEl => { - slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass); - slideEl.removeAttribute('style'); - slideEl.removeAttribute('data-swiper-slide-index'); - }); - } - } - swiper.emit('destroy'); - - // Detach emitter events - Object.keys(swiper.eventsListeners).forEach(eventName => { - swiper.off(eventName); - }); - if (deleteInstance !== false) { - swiper.el.swiper = null; - deleteProps(swiper); - } - swiper.destroyed = true; - return null; - } - static extendDefaults(newDefaults) { - extend(extendedDefaults, newDefaults); - } - static get extendedDefaults() { - return extendedDefaults; - } - static get defaults() { - return defaults; - } - static installModule(mod) { - if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = []; - const modules = Swiper.prototype.__modules__; - if (typeof mod === 'function' && modules.indexOf(mod) < 0) { - modules.push(mod); - } - } - static use(module) { - if (Array.isArray(module)) { - module.forEach(m => Swiper.installModule(m)); - return Swiper; - } - Swiper.installModule(module); - return Swiper; - } -} -Object.keys(prototypes).forEach(prototypeGroup => { - Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => { - Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod]; - }); -}); -Swiper.use([Resize, Observer]); - -export { Swiper as S, defaults as d }; diff --git a/build/assets/js/vendor/swiper/shared/update-on-virtual-data.min.mjs b/build/assets/js/vendor/swiper/shared/update-on-virtual-data.min.mjs deleted file mode 100644 index 54c8e04..0000000 --- a/build/assets/js/vendor/swiper/shared/update-on-virtual-data.min.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{e as extend,p as paramsList,i as isObject,n as needsNavigation,a as needsPagination,b as needsScrollbar}from"./update-swiper.min.mjs";import{d as defaults}from"./swiper-core.min.mjs";function getParams(a,e){void 0===a&&(a={}),void 0===e&&(e=!0);const s={on:{}},n={},t={};extend(s,defaults),s._emitClasses=!0,s.init=!1;const r={},i=paramsList.map((a=>a.replace(/_/,""))),l=Object.assign({},a);return Object.keys(l).forEach((l=>{void 0!==a[l]&&(i.indexOf(l)>=0?isObject(a[l])?(s[l]={},t[l]={},extend(s[l],a[l]),extend(t[l],a[l])):(s[l]=a[l],t[l]=a[l]):0===l.search(/on[A-Z]/)&&"function"==typeof a[l]?e?n[`${l[2].toLowerCase()}${l.substr(3)}`]=a[l]:s.on[`${l[2].toLowerCase()}${l.substr(3)}`]=a[l]:r[l]=a[l])})),["navigation","pagination","scrollbar"].forEach((a=>{!0===s[a]&&(s[a]={}),!1===s[a]&&delete s[a]})),{params:s,passedParams:t,rest:r,events:n}}function mountSwiper(a,e){let{el:s,nextEl:n,prevEl:t,paginationEl:r,scrollbarEl:i,swiper:l}=a;needsNavigation(e)&&n&&t&&(l.params.navigation.nextEl=n,l.originalParams.navigation.nextEl=n,l.params.navigation.prevEl=t,l.originalParams.navigation.prevEl=t),needsPagination(e)&&r&&(l.params.pagination.el=r,l.originalParams.pagination.el=r),needsScrollbar(e)&&i&&(l.params.scrollbar.el=i,l.originalParams.scrollbar.el=i),l.init(s)}function getChangedParams(a,e,s,n,t){const r=[];if(!e)return r;const i=a=>{r.indexOf(a)<0&&r.push(a)};if(s&&n){const a=n.map(t),e=s.map(t);a.join("")!==e.join("")&&i("children"),n.length!==s.length&&i("children")}return paramsList.filter((a=>"_"===a[0])).map((a=>a.replace(/_/,""))).forEach((s=>{if(s in a&&s in e)if(isObject(a[s])&&isObject(e[s])){const n=Object.keys(a[s]),t=Object.keys(e[s]);n.length!==t.length?i(s):(n.forEach((n=>{a[s][n]!==e[s][n]&&i(s)})),t.forEach((n=>{a[s][n]!==e[s][n]&&i(s)})))}else a[s]!==e[s]&&i(s)})),r}const updateOnVirtualData=a=>{!a||a.destroyed||!a.params.virtual||a.params.virtual&&!a.params.virtual.enabled||(a.updateSlides(),a.updateProgress(),a.updateSlidesClasses(),a.parallax&&a.params.parallax&&a.params.parallax.enabled&&a.parallax.setTranslate())};export{getChangedParams as a,getParams as g,mountSwiper as m,updateOnVirtualData as u}; -//# sourceMappingURL=update-on-virtual-data.min.mjs.map \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/shared/update-on-virtual-data.min.mjs.map b/build/assets/js/vendor/swiper/shared/update-on-virtual-data.min.mjs.map deleted file mode 100644 index 88b07d2..0000000 --- a/build/assets/js/vendor/swiper/shared/update-on-virtual-data.min.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"update-on-virtual-data.mjs.mjs","names":["extend","paramsList","isObject","needsNavigation","needsPagination","needsScrollbar","defaults","getParams","obj","splitEvents","params","on","events","passedParams","_emitClasses","init","rest","allowedParams","map","key","replace","plainObj","Object","assign","keys","forEach","indexOf","search","toLowerCase","substr","mountSwiper","_ref","swiperParams","el","nextEl","prevEl","paginationEl","scrollbarEl","swiper","navigation","originalParams","pagination","scrollbar","getChangedParams","oldParams","children","oldChildren","getKey","addKey","push","oldChildrenKeys","childrenKeys","join","length","filter","newKeys","oldKeys","newKey","oldKey","updateOnVirtualData","destroyed","virtual","enabled","updateSlides","updateProgress","updateSlidesClasses","parallax","setTranslate"],"sources":["0"],"mappings":"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"} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/shared/update-on-virtual-data.mjs b/build/assets/js/vendor/swiper/shared/update-on-virtual-data.mjs deleted file mode 100644 index 0fc3050..0000000 --- a/build/assets/js/vendor/swiper/shared/update-on-virtual-data.mjs +++ /dev/null @@ -1,130 +0,0 @@ -import { e as extend, p as paramsList, i as isObject, n as needsNavigation, a as needsPagination, b as needsScrollbar } from './update-swiper.mjs'; -import { d as defaults } from './swiper-core.mjs'; - -function getParams(obj, splitEvents) { - if (obj === void 0) { - obj = {}; - } - if (splitEvents === void 0) { - splitEvents = true; - } - const params = { - on: {} - }; - const events = {}; - const passedParams = {}; - extend(params, defaults); - params._emitClasses = true; - params.init = false; - const rest = {}; - const allowedParams = paramsList.map(key => key.replace(/_/, '')); - const plainObj = Object.assign({}, obj); - Object.keys(plainObj).forEach(key => { - if (typeof obj[key] === 'undefined') return; - if (allowedParams.indexOf(key) >= 0) { - if (isObject(obj[key])) { - params[key] = {}; - passedParams[key] = {}; - extend(params[key], obj[key]); - extend(passedParams[key], obj[key]); - } else { - params[key] = obj[key]; - passedParams[key] = obj[key]; - } - } else if (key.search(/on[A-Z]/) === 0 && typeof obj[key] === 'function') { - if (splitEvents) { - events[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key]; - } else { - params.on[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key]; - } - } else { - rest[key] = obj[key]; - } - }); - ['navigation', 'pagination', 'scrollbar'].forEach(key => { - if (params[key] === true) params[key] = {}; - if (params[key] === false) delete params[key]; - }); - return { - params, - passedParams, - rest, - events - }; -} - -function mountSwiper(_ref, swiperParams) { - let { - el, - nextEl, - prevEl, - paginationEl, - scrollbarEl, - swiper - } = _ref; - if (needsNavigation(swiperParams) && nextEl && prevEl) { - swiper.params.navigation.nextEl = nextEl; - swiper.originalParams.navigation.nextEl = nextEl; - swiper.params.navigation.prevEl = prevEl; - swiper.originalParams.navigation.prevEl = prevEl; - } - if (needsPagination(swiperParams) && paginationEl) { - swiper.params.pagination.el = paginationEl; - swiper.originalParams.pagination.el = paginationEl; - } - if (needsScrollbar(swiperParams) && scrollbarEl) { - swiper.params.scrollbar.el = scrollbarEl; - swiper.originalParams.scrollbar.el = scrollbarEl; - } - swiper.init(el); -} - -function getChangedParams(swiperParams, oldParams, children, oldChildren, getKey) { - const keys = []; - if (!oldParams) return keys; - const addKey = key => { - if (keys.indexOf(key) < 0) keys.push(key); - }; - if (children && oldChildren) { - const oldChildrenKeys = oldChildren.map(getKey); - const childrenKeys = children.map(getKey); - if (oldChildrenKeys.join('') !== childrenKeys.join('')) addKey('children'); - if (oldChildren.length !== children.length) addKey('children'); - } - const watchParams = paramsList.filter(key => key[0] === '_').map(key => key.replace(/_/, '')); - watchParams.forEach(key => { - if (key in swiperParams && key in oldParams) { - if (isObject(swiperParams[key]) && isObject(oldParams[key])) { - const newKeys = Object.keys(swiperParams[key]); - const oldKeys = Object.keys(oldParams[key]); - if (newKeys.length !== oldKeys.length) { - addKey(key); - } else { - newKeys.forEach(newKey => { - if (swiperParams[key][newKey] !== oldParams[key][newKey]) { - addKey(key); - } - }); - oldKeys.forEach(oldKey => { - if (swiperParams[key][oldKey] !== oldParams[key][oldKey]) addKey(key); - }); - } - } else if (swiperParams[key] !== oldParams[key]) { - addKey(key); - } - } - }); - return keys; -} - -const updateOnVirtualData = swiper => { - if (!swiper || swiper.destroyed || !swiper.params.virtual || swiper.params.virtual && !swiper.params.virtual.enabled) return; - swiper.updateSlides(); - swiper.updateProgress(); - swiper.updateSlidesClasses(); - if (swiper.parallax && swiper.params.parallax && swiper.params.parallax.enabled) { - swiper.parallax.setTranslate(); - } -}; - -export { getChangedParams as a, getParams as g, mountSwiper as m, updateOnVirtualData as u }; diff --git a/build/assets/js/vendor/swiper/shared/update-swiper.min.mjs b/build/assets/js/vendor/swiper/shared/update-swiper.min.mjs deleted file mode 100644 index b61cade..0000000 --- a/build/assets/js/vendor/swiper/shared/update-swiper.min.mjs +++ /dev/null @@ -1,2 +0,0 @@ -const paramsList=["eventsPrefix","injectStyles","injectStylesUrls","modules","init","_direction","oneWayMovement","touchEventsTarget","initialSlide","_speed","cssMode","updateOnWindowResize","resizeObserver","nested","focusableElements","_enabled","_width","_height","preventInteractionOnTransition","userAgent","url","_edgeSwipeDetection","_edgeSwipeThreshold","_freeMode","_autoHeight","setWrapperSize","virtualTranslate","_effect","breakpoints","breakpointsBase","_spaceBetween","_slidesPerView","maxBackfaceHiddenSlides","_grid","_slidesPerGroup","_slidesPerGroupSkip","_slidesPerGroupAuto","_centeredSlides","_centeredSlidesBounds","_slidesOffsetBefore","_slidesOffsetAfter","normalizeSlideIndex","_centerInsufficientSlides","_watchOverflow","roundLengths","touchRatio","touchAngle","simulateTouch","_shortSwipes","_longSwipes","longSwipesRatio","longSwipesMs","_followFinger","allowTouchMove","_threshold","touchMoveStopPropagation","touchStartPreventDefault","touchStartForcePreventDefault","touchReleaseOnEdges","uniqueNavElements","_resistance","_resistanceRatio","_watchSlidesProgress","_grabCursor","preventClicks","preventClicksPropagation","_slideToClickedSlide","_loop","loopAdditionalSlides","loopAddBlankSlides","loopPreventsSliding","_rewind","_allowSlidePrev","_allowSlideNext","_swipeHandler","_noSwiping","noSwipingClass","noSwipingSelector","passiveListeners","containerModifierClass","slideClass","slideActiveClass","slideVisibleClass","slideFullyVisibleClass","slideNextClass","slidePrevClass","slideBlankClass","wrapperClass","lazyPreloaderClass","lazyPreloadPrevNext","runCallbacksOnInit","observer","observeParents","observeSlideChildren","a11y","_autoplay","_controller","coverflowEffect","cubeEffect","fadeEffect","flipEffect","creativeEffect","cardsEffect","hashNavigation","history","keyboard","mousewheel","_navigation","_pagination","parallax","_scrollbar","_thumbs","virtual","zoom","control"];function isObject(e){return"object"==typeof e&&null!==e&&e.constructor&&"Object"===Object.prototype.toString.call(e).slice(8,-1)&&!e.__swiper__}function extend(e,t){const i=["__proto__","constructor","prototype"];Object.keys(t).filter((e=>i.indexOf(e)<0)).forEach((i=>{void 0===e[i]?e[i]=t[i]:isObject(t[i])&&isObject(e[i])&&Object.keys(t[i]).length>0?t[i].__swiper__?e[i]=t[i]:extend(e[i],t[i]):e[i]=t[i]}))}function needsNavigation(e){return void 0===e&&(e={}),e.navigation&&void 0===e.navigation.nextEl&&void 0===e.navigation.prevEl}function needsPagination(e){return void 0===e&&(e={}),e.pagination&&void 0===e.pagination.el}function needsScrollbar(e){return void 0===e&&(e={}),e.scrollbar&&void 0===e.scrollbar.el}function uniqueClasses(e){void 0===e&&(e="");const t=e.split(" ").map((e=>e.trim())).filter((e=>!!e)),i=[];return t.forEach((e=>{i.indexOf(e)<0&&i.push(e)})),i.join(" ")}function attrToProp(e){return void 0===e&&(e=""),e.replace(/-[a-z]/g,(e=>e.toUpperCase().replace("-","")))}function wrapperClass(e){return void 0===e&&(e=""),e?e.includes("swiper-wrapper")?e:`swiper-wrapper ${e}`:"swiper-wrapper"}function updateSwiper(e){let{swiper:t,slides:i,passedParams:l,changedParams:n,nextEl:o,prevEl:r,scrollbarEl:a,paginationEl:s}=e;const d=n.filter((e=>"children"!==e&&"direction"!==e&&"wrapperClass"!==e)),{params:c,pagination:p,navigation:u,scrollbar:v,virtual:g,thumbs:b}=t;let f,_,w,h,S,E,m,C;n.includes("thumbs")&&l.thumbs&&l.thumbs.swiper&&c.thumbs&&!c.thumbs.swiper&&(f=!0),n.includes("controller")&&l.controller&&l.controller.control&&c.controller&&!c.controller.control&&(_=!0),n.includes("pagination")&&l.pagination&&(l.pagination.el||s)&&(c.pagination||!1===c.pagination)&&p&&!p.el&&(w=!0),n.includes("scrollbar")&&l.scrollbar&&(l.scrollbar.el||a)&&(c.scrollbar||!1===c.scrollbar)&&v&&!v.el&&(h=!0),n.includes("navigation")&&l.navigation&&(l.navigation.prevEl||r)&&(l.navigation.nextEl||o)&&(c.navigation||!1===c.navigation)&&u&&!u.prevEl&&!u.nextEl&&(S=!0);const x=e=>{t[e]&&(t[e].destroy(),"navigation"===e?(t.isElement&&(t[e].prevEl.remove(),t[e].nextEl.remove()),c[e].prevEl=void 0,c[e].nextEl=void 0,t[e].prevEl=void 0,t[e].nextEl=void 0):(t.isElement&&t[e].el.remove(),c[e].el=void 0,t[e].el=void 0))};if(n.includes("loop")&&t.isElement&&(c.loop&&!l.loop?E=!0:!c.loop&&l.loop?m=!0:C=!0),d.forEach((e=>{if(isObject(c[e])&&isObject(l[e]))Object.assign(c[e],l[e]),"navigation"!==e&&"pagination"!==e&&"scrollbar"!==e||!("enabled"in l[e])||l[e].enabled||x(e);else{const t=l[e];!0!==t&&!1!==t||"navigation"!==e&&"pagination"!==e&&"scrollbar"!==e?c[e]=l[e]:!1===t&&x(e)}})),d.includes("controller")&&!_&&t.controller&&t.controller.control&&c.controller&&c.controller.control&&(t.controller.control=c.controller.control),n.includes("children")&&i&&g&&c.virtual.enabled?(g.slides=i,g.update(!0)):n.includes("virtual")&&g&&c.virtual.enabled&&(i&&(g.slides=i),g.update(!0)),n.includes("children")&&i&&c.loop&&(C=!0),f){b.init()&&b.update(!0)}_&&(t.controller.control=c.controller.control),w&&(!t.isElement||s&&"string"!=typeof s||(s=document.createElement("div"),s.classList.add("swiper-pagination"),s.part.add("pagination"),t.el.appendChild(s)),s&&(c.pagination.el=s),p.init(),p.render(),p.update()),h&&(!t.isElement||a&&"string"!=typeof a||(a=document.createElement("div"),a.classList.add("swiper-scrollbar"),a.part.add("scrollbar"),t.el.appendChild(a)),a&&(c.scrollbar.el=a),v.init(),v.updateSize(),v.setTranslate()),S&&(t.isElement&&(o&&"string"!=typeof o||(o=document.createElement("div"),o.classList.add("swiper-button-next"),o.innerHTML=t.hostEl.constructor.nextButtonSvg,o.part.add("button-next"),t.el.appendChild(o)),r&&"string"!=typeof r||(r=document.createElement("div"),r.classList.add("swiper-button-prev"),r.innerHTML=t.hostEl.constructor.prevButtonSvg,r.part.add("button-prev"),t.el.appendChild(r))),o&&(c.navigation.nextEl=o),r&&(c.navigation.prevEl=r),u.init(),u.update()),n.includes("allowSlideNext")&&(t.allowSlideNext=l.allowSlideNext),n.includes("allowSlidePrev")&&(t.allowSlidePrev=l.allowSlidePrev),n.includes("direction")&&t.changeDirection(l.direction,!1),(E||C)&&t.loopDestroy(),(m||C)&&t.loopCreate(),t.update()}export{needsPagination as a,needsScrollbar as b,attrToProp as c,uniqueClasses as d,extend as e,isObject as i,needsNavigation as n,paramsList as p,updateSwiper as u,wrapperClass as w}; -//# sourceMappingURL=update-swiper.min.mjs.map \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/shared/update-swiper.min.mjs.map b/build/assets/js/vendor/swiper/shared/update-swiper.min.mjs.map deleted file mode 100644 index f2edef9..0000000 --- a/build/assets/js/vendor/swiper/shared/update-swiper.min.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"update-swiper.mjs.mjs","names":["paramsList","isObject","o","constructor","Object","prototype","toString","call","slice","__swiper__","extend","target","src","noExtend","keys","filter","key","indexOf","forEach","length","needsNavigation","params","navigation","nextEl","prevEl","needsPagination","pagination","el","needsScrollbar","scrollbar","uniqueClasses","classNames","classes","split","map","c","trim","unique","push","join","attrToProp","attrName","replace","l","toUpperCase","wrapperClass","className","includes","updateSwiper","_ref","swiper","slides","passedParams","changedParams","scrollbarEl","paginationEl","updateParams","currentParams","virtual","thumbs","needThumbsInit","needControllerInit","needPaginationInit","needScrollbarInit","needNavigationInit","loopNeedDestroy","loopNeedEnable","loopNeedReloop","controller","control","destroyModule","mod","destroy","isElement","remove","undefined","loop","assign","enabled","newValue","update","init","document","createElement","classList","add","part","appendChild","render","updateSize","setTranslate","innerHTML","hostEl","nextButtonSvg","prevButtonSvg","allowSlideNext","allowSlidePrev","changeDirection","direction","loopDestroy","loopCreate"],"sources":["0"],"mappings":"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"} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/shared/update-swiper.mjs b/build/assets/js/vendor/swiper/shared/update-swiper.mjs deleted file mode 100644 index da63c81..0000000 --- a/build/assets/js/vendor/swiper/shared/update-swiper.mjs +++ /dev/null @@ -1,236 +0,0 @@ -/* underscore in name -> watch for changes */ -const paramsList = ['eventsPrefix', 'injectStyles', 'injectStylesUrls', 'modules', 'init', '_direction', 'oneWayMovement', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', 'focusableElements', '_enabled', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', 'breakpointsBase', '_spaceBetween', '_slidesPerView', 'maxBackfaceHiddenSlides', '_grid', '_slidesPerGroup', '_slidesPerGroupSkip', '_slidesPerGroupAuto', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_loop', 'loopAdditionalSlides', 'loopAddBlankSlides', 'loopPreventsSliding', '_rewind', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideActiveClass', 'slideVisibleClass', 'slideFullyVisibleClass', 'slideNextClass', 'slidePrevClass', 'slideBlankClass', 'wrapperClass', 'lazyPreloaderClass', 'lazyPreloadPrevNext', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren', -// modules -'a11y', '_autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'creativeEffect', 'cardsEffect', 'hashNavigation', 'history', 'keyboard', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom', 'control']; - -function isObject(o) { - return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object' && !o.__swiper__; -} -function extend(target, src) { - const noExtend = ['__proto__', 'constructor', 'prototype']; - Object.keys(src).filter(key => noExtend.indexOf(key) < 0).forEach(key => { - if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) { - if (src[key].__swiper__) target[key] = src[key];else extend(target[key], src[key]); - } else { - target[key] = src[key]; - } - }); -} -function needsNavigation(params) { - if (params === void 0) { - params = {}; - } - return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined'; -} -function needsPagination(params) { - if (params === void 0) { - params = {}; - } - return params.pagination && typeof params.pagination.el === 'undefined'; -} -function needsScrollbar(params) { - if (params === void 0) { - params = {}; - } - return params.scrollbar && typeof params.scrollbar.el === 'undefined'; -} -function uniqueClasses(classNames) { - if (classNames === void 0) { - classNames = ''; - } - const classes = classNames.split(' ').map(c => c.trim()).filter(c => !!c); - const unique = []; - classes.forEach(c => { - if (unique.indexOf(c) < 0) unique.push(c); - }); - return unique.join(' '); -} -function attrToProp(attrName) { - if (attrName === void 0) { - attrName = ''; - } - return attrName.replace(/-[a-z]/g, l => l.toUpperCase().replace('-', '')); -} -function wrapperClass(className) { - if (className === void 0) { - className = ''; - } - if (!className) return 'swiper-wrapper'; - if (!className.includes('swiper-wrapper')) return `swiper-wrapper ${className}`; - return className; -} - -function updateSwiper(_ref) { - let { - swiper, - slides, - passedParams, - changedParams, - nextEl, - prevEl, - scrollbarEl, - paginationEl - } = _ref; - const updateParams = changedParams.filter(key => key !== 'children' && key !== 'direction' && key !== 'wrapperClass'); - const { - params: currentParams, - pagination, - navigation, - scrollbar, - virtual, - thumbs - } = swiper; - let needThumbsInit; - let needControllerInit; - let needPaginationInit; - let needScrollbarInit; - let needNavigationInit; - let loopNeedDestroy; - let loopNeedEnable; - let loopNeedReloop; - if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && currentParams.thumbs && !currentParams.thumbs.swiper) { - needThumbsInit = true; - } - if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) { - needControllerInit = true; - } - if (changedParams.includes('pagination') && passedParams.pagination && (passedParams.pagination.el || paginationEl) && (currentParams.pagination || currentParams.pagination === false) && pagination && !pagination.el) { - needPaginationInit = true; - } - if (changedParams.includes('scrollbar') && passedParams.scrollbar && (passedParams.scrollbar.el || scrollbarEl) && (currentParams.scrollbar || currentParams.scrollbar === false) && scrollbar && !scrollbar.el) { - needScrollbarInit = true; - } - if (changedParams.includes('navigation') && passedParams.navigation && (passedParams.navigation.prevEl || prevEl) && (passedParams.navigation.nextEl || nextEl) && (currentParams.navigation || currentParams.navigation === false) && navigation && !navigation.prevEl && !navigation.nextEl) { - needNavigationInit = true; - } - const destroyModule = mod => { - if (!swiper[mod]) return; - swiper[mod].destroy(); - if (mod === 'navigation') { - if (swiper.isElement) { - swiper[mod].prevEl.remove(); - swiper[mod].nextEl.remove(); - } - currentParams[mod].prevEl = undefined; - currentParams[mod].nextEl = undefined; - swiper[mod].prevEl = undefined; - swiper[mod].nextEl = undefined; - } else { - if (swiper.isElement) { - swiper[mod].el.remove(); - } - currentParams[mod].el = undefined; - swiper[mod].el = undefined; - } - }; - if (changedParams.includes('loop') && swiper.isElement) { - if (currentParams.loop && !passedParams.loop) { - loopNeedDestroy = true; - } else if (!currentParams.loop && passedParams.loop) { - loopNeedEnable = true; - } else { - loopNeedReloop = true; - } - } - updateParams.forEach(key => { - if (isObject(currentParams[key]) && isObject(passedParams[key])) { - Object.assign(currentParams[key], passedParams[key]); - if ((key === 'navigation' || key === 'pagination' || key === 'scrollbar') && 'enabled' in passedParams[key] && !passedParams[key].enabled) { - destroyModule(key); - } - } else { - const newValue = passedParams[key]; - if ((newValue === true || newValue === false) && (key === 'navigation' || key === 'pagination' || key === 'scrollbar')) { - if (newValue === false) { - destroyModule(key); - } - } else { - currentParams[key] = passedParams[key]; - } - } - }); - if (updateParams.includes('controller') && !needControllerInit && swiper.controller && swiper.controller.control && currentParams.controller && currentParams.controller.control) { - swiper.controller.control = currentParams.controller.control; - } - if (changedParams.includes('children') && slides && virtual && currentParams.virtual.enabled) { - virtual.slides = slides; - virtual.update(true); - } else if (changedParams.includes('virtual') && virtual && currentParams.virtual.enabled) { - if (slides) virtual.slides = slides; - virtual.update(true); - } - if (changedParams.includes('children') && slides && currentParams.loop) { - loopNeedReloop = true; - } - if (needThumbsInit) { - const initialized = thumbs.init(); - if (initialized) thumbs.update(true); - } - if (needControllerInit) { - swiper.controller.control = currentParams.controller.control; - } - if (needPaginationInit) { - if (swiper.isElement && (!paginationEl || typeof paginationEl === 'string')) { - paginationEl = document.createElement('div'); - paginationEl.classList.add('swiper-pagination'); - paginationEl.part.add('pagination'); - swiper.el.appendChild(paginationEl); - } - if (paginationEl) currentParams.pagination.el = paginationEl; - pagination.init(); - pagination.render(); - pagination.update(); - } - if (needScrollbarInit) { - if (swiper.isElement && (!scrollbarEl || typeof scrollbarEl === 'string')) { - scrollbarEl = document.createElement('div'); - scrollbarEl.classList.add('swiper-scrollbar'); - scrollbarEl.part.add('scrollbar'); - swiper.el.appendChild(scrollbarEl); - } - if (scrollbarEl) currentParams.scrollbar.el = scrollbarEl; - scrollbar.init(); - scrollbar.updateSize(); - scrollbar.setTranslate(); - } - if (needNavigationInit) { - if (swiper.isElement) { - if (!nextEl || typeof nextEl === 'string') { - nextEl = document.createElement('div'); - nextEl.classList.add('swiper-button-next'); - nextEl.innerHTML = swiper.hostEl.constructor.nextButtonSvg; - nextEl.part.add('button-next'); - swiper.el.appendChild(nextEl); - } - if (!prevEl || typeof prevEl === 'string') { - prevEl = document.createElement('div'); - prevEl.classList.add('swiper-button-prev'); - prevEl.innerHTML = swiper.hostEl.constructor.prevButtonSvg; - prevEl.part.add('button-prev'); - swiper.el.appendChild(prevEl); - } - } - if (nextEl) currentParams.navigation.nextEl = nextEl; - if (prevEl) currentParams.navigation.prevEl = prevEl; - navigation.init(); - navigation.update(); - } - if (changedParams.includes('allowSlideNext')) { - swiper.allowSlideNext = passedParams.allowSlideNext; - } - if (changedParams.includes('allowSlidePrev')) { - swiper.allowSlidePrev = passedParams.allowSlidePrev; - } - if (changedParams.includes('direction')) { - swiper.changeDirection(passedParams.direction, false); - } - if (loopNeedDestroy || loopNeedReloop) { - swiper.loopDestroy(); - } - if (loopNeedEnable || loopNeedReloop) { - swiper.loopCreate(); - } - swiper.update(); -} - -export { needsPagination as a, needsScrollbar as b, attrToProp as c, uniqueClasses as d, extend as e, isObject as i, needsNavigation as n, paramsList as p, updateSwiper as u, wrapperClass as w }; diff --git a/build/assets/js/vendor/swiper/shared/utils.min.mjs b/build/assets/js/vendor/swiper/shared/utils.min.mjs deleted file mode 100644 index 83dd858..0000000 --- a/build/assets/js/vendor/swiper/shared/utils.min.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import{a as getWindow,g as getDocument}from"./ssr-window.esm.min.mjs";function classesToTokens(e){return void 0===e&&(e=""),e.trim().split(" ").filter((e=>!!e.trim()))}function deleteProps(e){const t=e;Object.keys(t).forEach((e=>{try{t[e]=null}catch(e){}try{delete t[e]}catch(e){}}))}function nextTick(e,t){return void 0===t&&(t=0),setTimeout(e,t)}function now(){return Date.now()}function getComputedStyle(e){const t=getWindow();let n;return t.getComputedStyle&&(n=t.getComputedStyle(e,null)),!n&&e.currentStyle&&(n=e.currentStyle),n||(n=e.style),n}function getTranslate(e,t){void 0===t&&(t="x");const n=getWindow();let r,o,l;const s=getComputedStyle(e);return n.WebKitCSSMatrix?(o=s.transform||s.webkitTransform,o.split(",").length>6&&(o=o.split(", ").map((e=>e.replace(",","."))).join(", ")),l=new n.WebKitCSSMatrix("none"===o?"":o)):(l=s.MozTransform||s.OTransform||s.MsTransform||s.msTransform||s.transform||s.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),r=l.toString().split(",")),"x"===t&&(o=n.WebKitCSSMatrix?l.m41:16===r.length?parseFloat(r[12]):parseFloat(r[4])),"y"===t&&(o=n.WebKitCSSMatrix?l.m42:16===r.length?parseFloat(r[13]):parseFloat(r[5])),o||0}function isObject(e){return"object"==typeof e&&null!==e&&e.constructor&&"Object"===Object.prototype.toString.call(e).slice(8,-1)}function isNode(e){return"undefined"!=typeof window&&void 0!==window.HTMLElement?e instanceof HTMLElement:e&&(1===e.nodeType||11===e.nodeType)}function extend(){const e=Object(arguments.length<=0?void 0:arguments[0]),t=["__proto__","constructor","prototype"];for(let n=1;nt.indexOf(e)<0));for(let t=0,o=n.length;tl?"next":"prev",m=(e,t)=>"next"===c&&e>=t||"prev"===c&&e<=t,u=()=>{s=(new Date).getTime(),null===i&&(i=s);const e=Math.max(Math.min((s-i)/a,1),0),c=.5-Math.cos(e*Math.PI)/2;let p=l+c*(n-l);if(m(p,n)&&(p=n),t.wrapperEl.scrollTo({[r]:p}),m(p,n))return t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.scrollSnapType="",setTimeout((()=>{t.wrapperEl.style.overflow="",t.wrapperEl.scrollTo({[r]:p})})),void o.cancelAnimationFrame(t.cssModeFrameID);t.cssModeFrameID=o.requestAnimationFrame(u)};u()}function getSlideTransformEl(e){return e.querySelector(".swiper-slide-transform")||e.shadowRoot&&e.shadowRoot.querySelector(".swiper-slide-transform")||e}function elementChildren(e,t){return void 0===t&&(t=""),[...e.children].filter((e=>e.matches(t)))}function showWarning(e){try{return void console.warn(e)}catch(e){}}function createElement(e,t){void 0===t&&(t=[]);const n=document.createElement(e);return n.classList.add(...Array.isArray(t)?t:classesToTokens(t)),n}function elementOffset(e){const t=getWindow(),n=getDocument(),r=e.getBoundingClientRect(),o=n.body,l=e.clientTop||o.clientTop||0,s=e.clientLeft||o.clientLeft||0,i=e===t?t.scrollY:e.scrollTop,a=e===t?t.scrollX:e.scrollLeft;return{top:r.top+i-l,left:r.left+a-s}}function elementPrevAll(e,t){const n=[];for(;e.previousElementSibling;){const r=e.previousElementSibling;t?r.matches(t)&&n.push(r):n.push(r),e=r}return n}function elementNextAll(e,t){const n=[];for(;e.nextElementSibling;){const r=e.nextElementSibling;t?r.matches(t)&&n.push(r):n.push(r),e=r}return n}function elementStyle(e,t){return getWindow().getComputedStyle(e,null).getPropertyValue(t)}function elementIndex(e){let t,n=e;if(n){for(t=0;null!==(n=n.previousSibling);)1===n.nodeType&&(t+=1);return t}}function elementParents(e,t){const n=[];let r=e.parentElement;for(;r;)t?r.matches(t)&&n.push(r):n.push(r),r=r.parentElement;return n}function elementTransitionEnd(e,t){t&&e.addEventListener("transitionend",(function n(r){r.target===e&&(t.call(e,r),e.removeEventListener("transitionend",n))}))}function elementOuterSize(e,t,n){const r=getWindow();return n?e["width"===t?"offsetWidth":"offsetHeight"]+parseFloat(r.getComputedStyle(e,null).getPropertyValue("width"===t?"margin-right":"margin-top"))+parseFloat(r.getComputedStyle(e,null).getPropertyValue("width"===t?"margin-left":"margin-bottom")):e.offsetWidth}export{elementParents as a,elementOffset as b,createElement as c,now as d,elementChildren as e,elementOuterSize as f,elementIndex as g,classesToTokens as h,getTranslate as i,elementTransitionEnd as j,isObject as k,getSlideTransformEl as l,elementStyle as m,nextTick as n,elementNextAll as o,elementPrevAll as p,animateCSSModeScroll as q,showWarning as r,setCSSProperty as s,extend as t,deleteProps as u}; -//# sourceMappingURL=utils.min.mjs.map \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/shared/utils.min.mjs.map b/build/assets/js/vendor/swiper/shared/utils.min.mjs.map deleted file mode 100644 index f6717ed..0000000 --- a/build/assets/js/vendor/swiper/shared/utils.min.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"utils.mjs.mjs","names":["getWindow","getDocument","classesToTokens","classes","trim","split","filter","c","deleteProps","obj","object","Object","keys","forEach","key","e","nextTick","callback","delay","setTimeout","now","Date","getComputedStyle","el","window","style","currentStyle","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","transform","webkitTransform","length","map","a","replace","join","MozTransform","OTransform","MsTransform","msTransform","getPropertyValue","toString","m41","parseFloat","m42","isObject","o","constructor","prototype","call","slice","isNode","node","HTMLElement","nodeType","extend","to","arguments","undefined","noExtend","i","nextSource","keysArray","indexOf","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","enumerable","__swiper__","setCSSProperty","varName","varValue","setProperty","animateCSSModeScroll","_ref","swiper","targetPosition","side","startPosition","translate","time","startTime","duration","params","speed","wrapperEl","scrollSnapType","cancelAnimationFrame","cssModeFrameID","dir","isOutOfBound","current","target","animate","getTime","progress","Math","max","min","easeProgress","cos","PI","currentPosition","scrollTo","overflow","requestAnimationFrame","getSlideTransformEl","slideEl","querySelector","shadowRoot","elementChildren","element","selector","children","matches","showWarning","text","console","warn","err","createElement","tag","document","classList","add","Array","isArray","elementOffset","box","getBoundingClientRect","body","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","elementPrevAll","prevEls","previousElementSibling","prev","push","elementNextAll","nextEls","nextElementSibling","next","elementStyle","prop","elementIndex","child","previousSibling","elementParents","parents","parent","parentElement","elementTransitionEnd","addEventListener","fireCallBack","removeEventListener","elementOuterSize","size","includeMargins","offsetWidth"],"sources":["0"],"mappings":"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"} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/shared/utils.mjs b/build/assets/js/vendor/swiper/shared/utils.mjs deleted file mode 100644 index 0689d83..0000000 --- a/build/assets/js/vendor/swiper/shared/utils.mjs +++ /dev/null @@ -1,289 +0,0 @@ -import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs'; - -function classesToTokens(classes) { - if (classes === void 0) { - classes = ''; - } - return classes.trim().split(' ').filter(c => !!c.trim()); -} - -function deleteProps(obj) { - const object = obj; - Object.keys(object).forEach(key => { - try { - object[key] = null; - } catch (e) { - // no getter for object - } - try { - delete object[key]; - } catch (e) { - // something got wrong - } - }); -} -function nextTick(callback, delay) { - if (delay === void 0) { - delay = 0; - } - return setTimeout(callback, delay); -} -function now() { - return Date.now(); -} -function getComputedStyle(el) { - const window = getWindow(); - let style; - if (window.getComputedStyle) { - style = window.getComputedStyle(el, null); - } - if (!style && el.currentStyle) { - style = el.currentStyle; - } - if (!style) { - style = el.style; - } - return style; -} -function getTranslate(el, axis) { - if (axis === void 0) { - axis = 'x'; - } - const window = getWindow(); - let matrix; - let curTransform; - let transformMatrix; - const curStyle = getComputedStyle(el); - if (window.WebKitCSSMatrix) { - curTransform = curStyle.transform || curStyle.webkitTransform; - if (curTransform.split(',').length > 6) { - curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', '); - } - // Some old versions of Webkit choke when 'none' is passed; pass - // empty string instead in this case - transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform); - } else { - transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,'); - matrix = transformMatrix.toString().split(','); - } - if (axis === 'x') { - // Latest Chrome and webkits Fix - if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; - // Crazy IE10 Matrix - else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); - // Normal Browsers - else curTransform = parseFloat(matrix[4]); - } - if (axis === 'y') { - // Latest Chrome and webkits Fix - if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; - // Crazy IE10 Matrix - else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); - // Normal Browsers - else curTransform = parseFloat(matrix[5]); - } - return curTransform || 0; -} -function isObject(o) { - return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object'; -} -function isNode(node) { - // eslint-disable-next-line - if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') { - return node instanceof HTMLElement; - } - return node && (node.nodeType === 1 || node.nodeType === 11); -} -function extend() { - const to = Object(arguments.length <= 0 ? undefined : arguments[0]); - const noExtend = ['__proto__', 'constructor', 'prototype']; - for (let i = 1; i < arguments.length; i += 1) { - const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i]; - if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) { - const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0); - for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) { - const nextKey = keysArray[nextIndex]; - const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey); - if (desc !== undefined && desc.enumerable) { - if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) { - if (nextSource[nextKey].__swiper__) { - to[nextKey] = nextSource[nextKey]; - } else { - extend(to[nextKey], nextSource[nextKey]); - } - } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) { - to[nextKey] = {}; - if (nextSource[nextKey].__swiper__) { - to[nextKey] = nextSource[nextKey]; - } else { - extend(to[nextKey], nextSource[nextKey]); - } - } else { - to[nextKey] = nextSource[nextKey]; - } - } - } - } - } - return to; -} -function setCSSProperty(el, varName, varValue) { - el.style.setProperty(varName, varValue); -} -function animateCSSModeScroll(_ref) { - let { - swiper, - targetPosition, - side - } = _ref; - const window = getWindow(); - const startPosition = -swiper.translate; - let startTime = null; - let time; - const duration = swiper.params.speed; - swiper.wrapperEl.style.scrollSnapType = 'none'; - window.cancelAnimationFrame(swiper.cssModeFrameID); - const dir = targetPosition > startPosition ? 'next' : 'prev'; - const isOutOfBound = (current, target) => { - return dir === 'next' && current >= target || dir === 'prev' && current <= target; - }; - const animate = () => { - time = new Date().getTime(); - if (startTime === null) { - startTime = time; - } - const progress = Math.max(Math.min((time - startTime) / duration, 1), 0); - const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2; - let currentPosition = startPosition + easeProgress * (targetPosition - startPosition); - if (isOutOfBound(currentPosition, targetPosition)) { - currentPosition = targetPosition; - } - swiper.wrapperEl.scrollTo({ - [side]: currentPosition - }); - if (isOutOfBound(currentPosition, targetPosition)) { - swiper.wrapperEl.style.overflow = 'hidden'; - swiper.wrapperEl.style.scrollSnapType = ''; - setTimeout(() => { - swiper.wrapperEl.style.overflow = ''; - swiper.wrapperEl.scrollTo({ - [side]: currentPosition - }); - }); - window.cancelAnimationFrame(swiper.cssModeFrameID); - return; - } - swiper.cssModeFrameID = window.requestAnimationFrame(animate); - }; - animate(); -} -function getSlideTransformEl(slideEl) { - return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowRoot && slideEl.shadowRoot.querySelector('.swiper-slide-transform') || slideEl; -} -function elementChildren(element, selector) { - if (selector === void 0) { - selector = ''; - } - return [...element.children].filter(el => el.matches(selector)); -} -function showWarning(text) { - try { - console.warn(text); - return; - } catch (err) { - // err - } -} -function createElement(tag, classes) { - if (classes === void 0) { - classes = []; - } - const el = document.createElement(tag); - el.classList.add(...(Array.isArray(classes) ? classes : classesToTokens(classes))); - return el; -} -function elementOffset(el) { - const window = getWindow(); - const document = getDocument(); - const box = el.getBoundingClientRect(); - const body = document.body; - const clientTop = el.clientTop || body.clientTop || 0; - const clientLeft = el.clientLeft || body.clientLeft || 0; - const scrollTop = el === window ? window.scrollY : el.scrollTop; - const scrollLeft = el === window ? window.scrollX : el.scrollLeft; - return { - top: box.top + scrollTop - clientTop, - left: box.left + scrollLeft - clientLeft - }; -} -function elementPrevAll(el, selector) { - const prevEls = []; - while (el.previousElementSibling) { - const prev = el.previousElementSibling; // eslint-disable-line - if (selector) { - if (prev.matches(selector)) prevEls.push(prev); - } else prevEls.push(prev); - el = prev; - } - return prevEls; -} -function elementNextAll(el, selector) { - const nextEls = []; - while (el.nextElementSibling) { - const next = el.nextElementSibling; // eslint-disable-line - if (selector) { - if (next.matches(selector)) nextEls.push(next); - } else nextEls.push(next); - el = next; - } - return nextEls; -} -function elementStyle(el, prop) { - const window = getWindow(); - return window.getComputedStyle(el, null).getPropertyValue(prop); -} -function elementIndex(el) { - let child = el; - let i; - if (child) { - i = 0; - // eslint-disable-next-line - while ((child = child.previousSibling) !== null) { - if (child.nodeType === 1) i += 1; - } - return i; - } - return undefined; -} -function elementParents(el, selector) { - const parents = []; // eslint-disable-line - let parent = el.parentElement; // eslint-disable-line - while (parent) { - if (selector) { - if (parent.matches(selector)) parents.push(parent); - } else { - parents.push(parent); - } - parent = parent.parentElement; - } - return parents; -} -function elementTransitionEnd(el, callback) { - function fireCallBack(e) { - if (e.target !== el) return; - callback.call(el, e); - el.removeEventListener('transitionend', fireCallBack); - } - if (callback) { - el.addEventListener('transitionend', fireCallBack); - } -} -function elementOuterSize(el, size, includeMargins) { - const window = getWindow(); - if (includeMargins) { - return el[size === 'width' ? 'offsetWidth' : 'offsetHeight'] + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-right' : 'margin-top')) + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-left' : 'margin-bottom')); - } - return el.offsetWidth; -} - -export { elementParents as a, elementOffset as b, createElement as c, now as d, elementChildren as e, elementOuterSize as f, elementIndex as g, classesToTokens as h, getTranslate as i, elementTransitionEnd as j, isObject as k, getSlideTransformEl as l, elementStyle as m, nextTick as n, elementNextAll as o, elementPrevAll as p, animateCSSModeScroll as q, showWarning as r, setCSSProperty as s, extend as t, deleteProps as u }; diff --git a/build/assets/js/vendor/swiper/swiper-bundle.css b/build/assets/js/vendor/swiper/swiper-bundle.css deleted file mode 100644 index cd5a440..0000000 --- a/build/assets/js/vendor/swiper/swiper-bundle.css +++ /dev/null @@ -1,735 +0,0 @@ -/** - * Swiper 11.0.5 - * 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: November 22, 2023 - */ - -/* FONT_START */ -@font-face { - font-family: 'swiper-icons'; - src: url('data:application/font-woff;charset=utf-8;base64, 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'); - font-weight: 400; - font-style: normal; -} -/* FONT_END */ -:root { - --swiper-theme-color: #007aff; - /* - --swiper-preloader-color: var(--swiper-theme-color); - --swiper-wrapper-transition-timing-function: initial; - */ -} -:host { - position: relative; - display: block; - margin-left: auto; - margin-right: auto; - z-index: 1; -} -.swiper { - margin-left: auto; - margin-right: auto; - position: relative; - overflow: hidden; - list-style: none; - padding: 0; - /* Fix of Webkit flickering */ - z-index: 1; - display: block; -} -.swiper-vertical > .swiper-wrapper { - flex-direction: column; -} -.swiper-wrapper { - position: relative; - width: 100%; - height: 100%; - z-index: 1; - display: flex; - transition-property: transform; - transition-timing-function: var(--swiper-wrapper-transition-timing-function, initial); - box-sizing: content-box; -} -.swiper-android .swiper-slide, -.swiper-ios .swiper-slide, -.swiper-wrapper { - transform: translate3d(0px, 0, 0); -} -.swiper-horizontal { - touch-action: pan-y; -} -.swiper-vertical { - touch-action: pan-x; -} -.swiper-slide { - flex-shrink: 0; - width: 100%; - height: 100%; - position: relative; - transition-property: transform; - display: block; -} -.swiper-slide-invisible-blank { - visibility: hidden; -} -/* Auto Height */ -.swiper-autoheight, -.swiper-autoheight .swiper-slide { - height: auto; -} -.swiper-autoheight .swiper-wrapper { - align-items: flex-start; - transition-property: transform, height; -} -.swiper-backface-hidden .swiper-slide { - transform: translateZ(0); - -webkit-backface-visibility: hidden; - backface-visibility: hidden; -} -/* 3D Effects */ -.swiper-3d.swiper-css-mode .swiper-wrapper { - perspective: 1200px; -} -.swiper-3d .swiper-wrapper { - transform-style: preserve-3d; -} -.swiper-3d { - perspective: 1200px; -} -.swiper-3d .swiper-slide, -.swiper-3d .swiper-cube-shadow { - transform-style: preserve-3d; -} -/* CSS Mode */ -.swiper-css-mode > .swiper-wrapper { - overflow: auto; - scrollbar-width: none; - /* For Firefox */ - -ms-overflow-style: none; - /* For Internet Explorer and Edge */ -} -.swiper-css-mode > .swiper-wrapper::-webkit-scrollbar { - display: none; -} -.swiper-css-mode > .swiper-wrapper > .swiper-slide { - scroll-snap-align: start start; -} -.swiper-css-mode.swiper-horizontal > .swiper-wrapper { - scroll-snap-type: x mandatory; -} -.swiper-css-mode.swiper-vertical > .swiper-wrapper { - scroll-snap-type: y mandatory; -} -.swiper-css-mode.swiper-free-mode > .swiper-wrapper { - scroll-snap-type: none; -} -.swiper-css-mode.swiper-free-mode > .swiper-wrapper > .swiper-slide { - scroll-snap-align: none; -} -.swiper-css-mode.swiper-centered > .swiper-wrapper::before { - content: ''; - flex-shrink: 0; - order: 9999; -} -.swiper-css-mode.swiper-centered > .swiper-wrapper > .swiper-slide { - scroll-snap-align: center center; - scroll-snap-stop: always; -} -.swiper-css-mode.swiper-centered.swiper-horizontal > .swiper-wrapper > .swiper-slide:first-child { - margin-inline-start: var(--swiper-centered-offset-before); -} -.swiper-css-mode.swiper-centered.swiper-horizontal > .swiper-wrapper::before { - height: 100%; - min-height: 1px; - width: var(--swiper-centered-offset-after); -} -.swiper-css-mode.swiper-centered.swiper-vertical > .swiper-wrapper > .swiper-slide:first-child { - margin-block-start: var(--swiper-centered-offset-before); -} -.swiper-css-mode.swiper-centered.swiper-vertical > .swiper-wrapper::before { - width: 100%; - min-width: 1px; - height: var(--swiper-centered-offset-after); -} -/* Slide styles start */ -/* 3D Shadows */ -.swiper-3d .swiper-slide-shadow, -.swiper-3d .swiper-slide-shadow-left, -.swiper-3d .swiper-slide-shadow-right, -.swiper-3d .swiper-slide-shadow-top, -.swiper-3d .swiper-slide-shadow-bottom, -.swiper-3d .swiper-slide-shadow, -.swiper-3d .swiper-slide-shadow-left, -.swiper-3d .swiper-slide-shadow-right, -.swiper-3d .swiper-slide-shadow-top, -.swiper-3d .swiper-slide-shadow-bottom { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - pointer-events: none; - z-index: 10; -} -.swiper-3d .swiper-slide-shadow { - background: rgba(0, 0, 0, 0.15); -} -.swiper-3d .swiper-slide-shadow-left { - background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); -} -.swiper-3d .swiper-slide-shadow-right { - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); -} -.swiper-3d .swiper-slide-shadow-top { - background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); -} -.swiper-3d .swiper-slide-shadow-bottom { - background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); -} -.swiper-lazy-preloader { - width: 42px; - height: 42px; - position: absolute; - left: 50%; - top: 50%; - margin-left: -21px; - margin-top: -21px; - z-index: 10; - transform-origin: 50%; - box-sizing: border-box; - border: 4px solid var(--swiper-preloader-color, var(--swiper-theme-color)); - border-radius: 50%; - border-top-color: transparent; -} -.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader, -.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader { - animation: swiper-preloader-spin 1s infinite linear; -} -.swiper-lazy-preloader-white { - --swiper-preloader-color: #fff; -} -.swiper-lazy-preloader-black { - --swiper-preloader-color: #000; -} -@keyframes swiper-preloader-spin { - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(360deg); - } -} -/* Slide styles end */ -.swiper-virtual .swiper-slide { - -webkit-backface-visibility: hidden; - transform: translateZ(0); -} -.swiper-virtual.swiper-css-mode .swiper-wrapper::after { - content: ''; - position: absolute; - left: 0; - top: 0; - pointer-events: none; -} -.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after { - height: 1px; - width: var(--swiper-virtual-size); -} -.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after { - width: 1px; - height: var(--swiper-virtual-size); -} -:root { - --swiper-navigation-size: 44px; - /* - --swiper-navigation-top-offset: 50%; - --swiper-navigation-sides-offset: 10px; - --swiper-navigation-color: var(--swiper-theme-color); - */ -} -.swiper-button-prev, -.swiper-button-next { - position: absolute; - top: var(--swiper-navigation-top-offset, 50%); - width: calc(var(--swiper-navigation-size) / 44 * 27); - height: var(--swiper-navigation-size); - margin-top: calc(0px - (var(--swiper-navigation-size) / 2)); - z-index: 10; - cursor: pointer; - display: flex; - align-items: center; - justify-content: center; - color: var(--swiper-navigation-color, var(--swiper-theme-color)); -} -.swiper-button-prev.swiper-button-disabled, -.swiper-button-next.swiper-button-disabled { - opacity: 0.35; - cursor: auto; - pointer-events: none; -} -.swiper-button-prev.swiper-button-hidden, -.swiper-button-next.swiper-button-hidden { - opacity: 0; - cursor: auto; - pointer-events: none; -} -.swiper-navigation-disabled .swiper-button-prev, -.swiper-navigation-disabled .swiper-button-next { - display: none !important; -} -.swiper-button-prev svg, -.swiper-button-next svg { - width: 100%; - height: 100%; - object-fit: contain; - transform-origin: center; -} -.swiper-rtl .swiper-button-prev svg, -.swiper-rtl .swiper-button-next svg { - transform: rotate(180deg); -} -.swiper-button-prev, -.swiper-rtl .swiper-button-next { - left: var(--swiper-navigation-sides-offset, 10px); - right: auto; -} -.swiper-button-next, -.swiper-rtl .swiper-button-prev { - right: var(--swiper-navigation-sides-offset, 10px); - left: auto; -} -.swiper-button-lock { - display: none; -} -/* Navigation font start */ -.swiper-button-prev:after, -.swiper-button-next:after { - font-family: swiper-icons; - font-size: var(--swiper-navigation-size); - text-transform: none !important; - letter-spacing: 0; - font-variant: initial; - line-height: 1; -} -.swiper-button-prev:after, -.swiper-rtl .swiper-button-next:after { - content: 'prev'; -} -.swiper-button-next, -.swiper-rtl .swiper-button-prev { - right: var(--swiper-navigation-sides-offset, 10px); - left: auto; -} -.swiper-button-next:after, -.swiper-rtl .swiper-button-prev:after { - content: 'next'; -} -/* Navigation font end */ -:root { - /* - --swiper-pagination-color: var(--swiper-theme-color); - --swiper-pagination-left: auto; - --swiper-pagination-right: 8px; - --swiper-pagination-bottom: 8px; - --swiper-pagination-top: auto; - --swiper-pagination-fraction-color: inherit; - --swiper-pagination-progressbar-bg-color: rgba(0,0,0,0.25); - --swiper-pagination-progressbar-size: 4px; - --swiper-pagination-bullet-size: 8px; - --swiper-pagination-bullet-width: 8px; - --swiper-pagination-bullet-height: 8px; - --swiper-pagination-bullet-border-radius: 50%; - --swiper-pagination-bullet-inactive-color: #000; - --swiper-pagination-bullet-inactive-opacity: 0.2; - --swiper-pagination-bullet-opacity: 1; - --swiper-pagination-bullet-horizontal-gap: 4px; - --swiper-pagination-bullet-vertical-gap: 6px; - */ -} -.swiper-pagination { - position: absolute; - text-align: center; - transition: 300ms opacity; - transform: translate3d(0, 0, 0); - z-index: 10; -} -.swiper-pagination.swiper-pagination-hidden { - opacity: 0; -} -.swiper-pagination-disabled > .swiper-pagination, -.swiper-pagination.swiper-pagination-disabled { - display: none !important; -} -/* Common Styles */ -.swiper-pagination-fraction, -.swiper-pagination-custom, -.swiper-horizontal > .swiper-pagination-bullets, -.swiper-pagination-bullets.swiper-pagination-horizontal { - bottom: var(--swiper-pagination-bottom, 8px); - top: var(--swiper-pagination-top, auto); - left: 0; - width: 100%; -} -/* Bullets */ -.swiper-pagination-bullets-dynamic { - overflow: hidden; - font-size: 0; -} -.swiper-pagination-bullets-dynamic .swiper-pagination-bullet { - transform: scale(0.33); - position: relative; -} -.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active { - transform: scale(1); -} -.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main { - transform: scale(1); -} -.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev { - transform: scale(0.66); -} -.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev { - transform: scale(0.33); -} -.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next { - transform: scale(0.66); -} -.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next { - transform: scale(0.33); -} -.swiper-pagination-bullet { - width: var(--swiper-pagination-bullet-width, var(--swiper-pagination-bullet-size, 8px)); - height: var(--swiper-pagination-bullet-height, var(--swiper-pagination-bullet-size, 8px)); - display: inline-block; - border-radius: var(--swiper-pagination-bullet-border-radius, 50%); - background: var(--swiper-pagination-bullet-inactive-color, #000); - opacity: var(--swiper-pagination-bullet-inactive-opacity, 0.2); -} -button.swiper-pagination-bullet { - border: none; - margin: 0; - padding: 0; - box-shadow: none; - -webkit-appearance: none; - appearance: none; -} -.swiper-pagination-clickable .swiper-pagination-bullet { - cursor: pointer; -} -.swiper-pagination-bullet:only-child { - display: none !important; -} -.swiper-pagination-bullet-active { - opacity: var(--swiper-pagination-bullet-opacity, 1); - background: var(--swiper-pagination-color, var(--swiper-theme-color)); -} -.swiper-vertical > .swiper-pagination-bullets, -.swiper-pagination-vertical.swiper-pagination-bullets { - right: var(--swiper-pagination-right, 8px); - left: var(--swiper-pagination-left, auto); - top: 50%; - transform: translate3d(0px, -50%, 0); -} -.swiper-vertical > .swiper-pagination-bullets .swiper-pagination-bullet, -.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet { - margin: var(--swiper-pagination-bullet-vertical-gap, 6px) 0; - display: block; -} -.swiper-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic, -.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic { - top: 50%; - transform: translateY(-50%); - width: 8px; -} -.swiper-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet, -.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet { - display: inline-block; - transition: 200ms transform, - 200ms top; -} -.swiper-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet, -.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet { - margin: 0 var(--swiper-pagination-bullet-horizontal-gap, 4px); -} -.swiper-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic, -.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic { - left: 50%; - transform: translateX(-50%); - white-space: nowrap; -} -.swiper-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet, -.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet { - transition: 200ms transform, - 200ms left; -} -.swiper-horizontal.swiper-rtl > .swiper-pagination-bullets-dynamic .swiper-pagination-bullet { - transition: 200ms transform, - 200ms right; -} -/* Fraction */ -.swiper-pagination-fraction { - color: var(--swiper-pagination-fraction-color, inherit); -} -/* Progress */ -.swiper-pagination-progressbar { - background: var(--swiper-pagination-progressbar-bg-color, rgba(0, 0, 0, 0.25)); - position: absolute; -} -.swiper-pagination-progressbar .swiper-pagination-progressbar-fill { - background: var(--swiper-pagination-color, var(--swiper-theme-color)); - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - transform: scale(0); - transform-origin: left top; -} -.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill { - transform-origin: right top; -} -.swiper-horizontal > .swiper-pagination-progressbar, -.swiper-pagination-progressbar.swiper-pagination-horizontal, -.swiper-vertical > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite, -.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite { - width: 100%; - height: var(--swiper-pagination-progressbar-size, 4px); - left: 0; - top: 0; -} -.swiper-vertical > .swiper-pagination-progressbar, -.swiper-pagination-progressbar.swiper-pagination-vertical, -.swiper-horizontal > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite, -.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite { - width: var(--swiper-pagination-progressbar-size, 4px); - height: 100%; - left: 0; - top: 0; -} -.swiper-pagination-lock { - display: none; -} -:root { - /* - --swiper-scrollbar-border-radius: 10px; - --swiper-scrollbar-top: auto; - --swiper-scrollbar-bottom: 4px; - --swiper-scrollbar-left: auto; - --swiper-scrollbar-right: 4px; - --swiper-scrollbar-sides-offset: 1%; - --swiper-scrollbar-bg-color: rgba(0, 0, 0, 0.1); - --swiper-scrollbar-drag-bg-color: rgba(0, 0, 0, 0.5); - --swiper-scrollbar-size: 4px; - */ -} -.swiper-scrollbar { - border-radius: var(--swiper-scrollbar-border-radius, 10px); - position: relative; - touch-action: none; - background: var(--swiper-scrollbar-bg-color, rgba(0, 0, 0, 0.1)); -} -.swiper-scrollbar-disabled > .swiper-scrollbar, -.swiper-scrollbar.swiper-scrollbar-disabled { - display: none !important; -} -.swiper-horizontal > .swiper-scrollbar, -.swiper-scrollbar.swiper-scrollbar-horizontal { - position: absolute; - left: var(--swiper-scrollbar-sides-offset, 1%); - bottom: var(--swiper-scrollbar-bottom, 4px); - top: var(--swiper-scrollbar-top, auto); - z-index: 50; - height: var(--swiper-scrollbar-size, 4px); - width: calc(100% - 2 * var(--swiper-scrollbar-sides-offset, 1%)); -} -.swiper-vertical > .swiper-scrollbar, -.swiper-scrollbar.swiper-scrollbar-vertical { - position: absolute; - left: var(--swiper-scrollbar-left, auto); - right: var(--swiper-scrollbar-right, 4px); - top: var(--swiper-scrollbar-sides-offset, 1%); - z-index: 50; - width: var(--swiper-scrollbar-size, 4px); - height: calc(100% - 2 * var(--swiper-scrollbar-sides-offset, 1%)); -} -.swiper-scrollbar-drag { - height: 100%; - width: 100%; - position: relative; - background: var(--swiper-scrollbar-drag-bg-color, rgba(0, 0, 0, 0.5)); - border-radius: var(--swiper-scrollbar-border-radius, 10px); - left: 0; - top: 0; -} -.swiper-scrollbar-cursor-drag { - cursor: move; -} -.swiper-scrollbar-lock { - display: none; -} -/* Zoom container styles start */ -.swiper-zoom-container { - width: 100%; - height: 100%; - display: flex; - justify-content: center; - align-items: center; - text-align: center; -} -.swiper-zoom-container > img, -.swiper-zoom-container > svg, -.swiper-zoom-container > canvas { - max-width: 100%; - max-height: 100%; - object-fit: contain; -} -/* Zoom container styles end */ -.swiper-slide-zoomed { - cursor: move; - touch-action: none; -} -/* a11y */ -.swiper .swiper-notification { - position: absolute; - left: 0; - top: 0; - pointer-events: none; - opacity: 0; - z-index: -1000; -} -.swiper-free-mode > .swiper-wrapper { - transition-timing-function: ease-out; - margin: 0 auto; -} -.swiper-grid > .swiper-wrapper { - flex-wrap: wrap; -} -.swiper-grid-column > .swiper-wrapper { - flex-wrap: wrap; - flex-direction: column; -} -.swiper-fade.swiper-free-mode .swiper-slide { - transition-timing-function: ease-out; -} -.swiper-fade .swiper-slide { - pointer-events: none; - transition-property: opacity; -} -.swiper-fade .swiper-slide .swiper-slide { - pointer-events: none; -} -.swiper-fade .swiper-slide-active { - pointer-events: auto; -} -.swiper-fade .swiper-slide-active .swiper-slide-active { - pointer-events: auto; -} -.swiper-cube { - overflow: visible; -} -.swiper-cube .swiper-slide { - pointer-events: none; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - z-index: 1; - visibility: hidden; - transform-origin: 0 0; - width: 100%; - height: 100%; -} -.swiper-cube .swiper-slide .swiper-slide { - pointer-events: none; -} -.swiper-cube.swiper-rtl .swiper-slide { - transform-origin: 100% 0; -} -.swiper-cube .swiper-slide-active, -.swiper-cube .swiper-slide-active .swiper-slide-active { - pointer-events: auto; -} -.swiper-cube .swiper-slide-active, -.swiper-cube .swiper-slide-next, -.swiper-cube .swiper-slide-prev { - pointer-events: auto; - visibility: visible; -} -.swiper-cube .swiper-cube-shadow { - position: absolute; - left: 0; - bottom: 0px; - width: 100%; - height: 100%; - opacity: 0.6; - z-index: 0; -} -.swiper-cube .swiper-cube-shadow:before { - content: ''; - background: #000; - position: absolute; - left: 0; - top: 0; - bottom: 0; - right: 0; - filter: blur(50px); -} -.swiper-cube .swiper-slide-next + .swiper-slide { - pointer-events: auto; - visibility: visible; -} -/* Cube slide shadows start */ -.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-top, -.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-bottom, -.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-left, -.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-right { - z-index: 0; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; -} -/* Cube slide shadows end */ -.swiper-flip { - overflow: visible; -} -.swiper-flip .swiper-slide { - pointer-events: none; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - z-index: 1; -} -.swiper-flip .swiper-slide .swiper-slide { - pointer-events: none; -} -.swiper-flip .swiper-slide-active, -.swiper-flip .swiper-slide-active .swiper-slide-active { - pointer-events: auto; -} -/* Flip slide shadows start */ -.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-top, -.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-bottom, -.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-left, -.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-right { - z-index: 0; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; -} -/* Flip slide shadows end */ -.swiper-creative .swiper-slide { - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - overflow: hidden; - transition-property: transform, opacity, height; -} -.swiper-cards { - overflow: visible; -} -.swiper-cards .swiper-slide { - transform-origin: center bottom; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - overflow: hidden; -} diff --git a/build/assets/js/vendor/swiper/swiper-bundle.js b/build/assets/js/vendor/swiper/swiper-bundle.js deleted file mode 100644 index e0763d5..0000000 --- a/build/assets/js/vendor/swiper/swiper-bundle.js +++ /dev/null @@ -1,9538 +0,0 @@ -/** - * Swiper 11.0.5 - * 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: November 22, 2023 - */ - -var Swiper = (function () { - 'use strict'; - - /** - * SSR Window 4.0.2 - * Better handling for window object in SSR environment - * https://github.com/nolimits4web/ssr-window - * - * Copyright 2021, Vladimir Kharlampidi - * - * Licensed under MIT - * - * Released on: December 13, 2021 - */ - /* eslint-disable no-param-reassign */ - function isObject$1(obj) { - return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object; - } - function extend$1(target, src) { - if (target === void 0) { - target = {}; - } - if (src === void 0) { - src = {}; - } - Object.keys(src).forEach(key => { - if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject$1(src[key]) && isObject$1(target[key]) && Object.keys(src[key]).length > 0) { - extend$1(target[key], src[key]); - } - }); - } - const ssrDocument = { - body: {}, - addEventListener() {}, - removeEventListener() {}, - activeElement: { - blur() {}, - nodeName: '' - }, - querySelector() { - return null; - }, - querySelectorAll() { - return []; - }, - getElementById() { - return null; - }, - createEvent() { - return { - initEvent() {} - }; - }, - createElement() { - return { - children: [], - childNodes: [], - style: {}, - setAttribute() {}, - getElementsByTagName() { - return []; - } - }; - }, - createElementNS() { - return {}; - }, - importNode() { - return null; - }, - location: { - hash: '', - host: '', - hostname: '', - href: '', - origin: '', - pathname: '', - protocol: '', - search: '' - } - }; - function getDocument() { - const doc = typeof document !== 'undefined' ? document : {}; - extend$1(doc, ssrDocument); - return doc; - } - const ssrWindow = { - document: ssrDocument, - navigator: { - userAgent: '' - }, - location: { - hash: '', - host: '', - hostname: '', - href: '', - origin: '', - pathname: '', - protocol: '', - search: '' - }, - history: { - replaceState() {}, - pushState() {}, - go() {}, - back() {} - }, - CustomEvent: function CustomEvent() { - return this; - }, - addEventListener() {}, - removeEventListener() {}, - getComputedStyle() { - return { - getPropertyValue() { - return ''; - } - }; - }, - Image() {}, - Date() {}, - screen: {}, - setTimeout() {}, - clearTimeout() {}, - matchMedia() { - return {}; - }, - requestAnimationFrame(callback) { - if (typeof setTimeout === 'undefined') { - callback(); - return null; - } - return setTimeout(callback, 0); - }, - cancelAnimationFrame(id) { - if (typeof setTimeout === 'undefined') { - return; - } - clearTimeout(id); - } - }; - function getWindow() { - const win = typeof window !== 'undefined' ? window : {}; - extend$1(win, ssrWindow); - return win; - } - - function classesToTokens(classes) { - if (classes === void 0) { - classes = ''; - } - return classes.trim().split(' ').filter(c => !!c.trim()); - } - - function deleteProps(obj) { - const object = obj; - Object.keys(object).forEach(key => { - try { - object[key] = null; - } catch (e) { - // no getter for object - } - try { - delete object[key]; - } catch (e) { - // something got wrong - } - }); - } - function nextTick(callback, delay) { - if (delay === void 0) { - delay = 0; - } - return setTimeout(callback, delay); - } - function now() { - return Date.now(); - } - function getComputedStyle$1(el) { - const window = getWindow(); - let style; - if (window.getComputedStyle) { - style = window.getComputedStyle(el, null); - } - if (!style && el.currentStyle) { - style = el.currentStyle; - } - if (!style) { - style = el.style; - } - return style; - } - function getTranslate(el, axis) { - if (axis === void 0) { - axis = 'x'; - } - const window = getWindow(); - let matrix; - let curTransform; - let transformMatrix; - const curStyle = getComputedStyle$1(el); - if (window.WebKitCSSMatrix) { - curTransform = curStyle.transform || curStyle.webkitTransform; - if (curTransform.split(',').length > 6) { - curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', '); - } - // Some old versions of Webkit choke when 'none' is passed; pass - // empty string instead in this case - transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform); - } else { - transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,'); - matrix = transformMatrix.toString().split(','); - } - if (axis === 'x') { - // Latest Chrome and webkits Fix - if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; - // Crazy IE10 Matrix - else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); - // Normal Browsers - else curTransform = parseFloat(matrix[4]); - } - if (axis === 'y') { - // Latest Chrome and webkits Fix - if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; - // Crazy IE10 Matrix - else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); - // Normal Browsers - else curTransform = parseFloat(matrix[5]); - } - return curTransform || 0; - } - function isObject(o) { - return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object'; - } - function isNode(node) { - // eslint-disable-next-line - if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') { - return node instanceof HTMLElement; - } - return node && (node.nodeType === 1 || node.nodeType === 11); - } - function extend() { - const to = Object(arguments.length <= 0 ? undefined : arguments[0]); - const noExtend = ['__proto__', 'constructor', 'prototype']; - for (let i = 1; i < arguments.length; i += 1) { - const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i]; - if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) { - const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0); - for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) { - const nextKey = keysArray[nextIndex]; - const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey); - if (desc !== undefined && desc.enumerable) { - if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) { - if (nextSource[nextKey].__swiper__) { - to[nextKey] = nextSource[nextKey]; - } else { - extend(to[nextKey], nextSource[nextKey]); - } - } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) { - to[nextKey] = {}; - if (nextSource[nextKey].__swiper__) { - to[nextKey] = nextSource[nextKey]; - } else { - extend(to[nextKey], nextSource[nextKey]); - } - } else { - to[nextKey] = nextSource[nextKey]; - } - } - } - } - } - return to; - } - function setCSSProperty(el, varName, varValue) { - el.style.setProperty(varName, varValue); - } - function animateCSSModeScroll(_ref) { - let { - swiper, - targetPosition, - side - } = _ref; - const window = getWindow(); - const startPosition = -swiper.translate; - let startTime = null; - let time; - const duration = swiper.params.speed; - swiper.wrapperEl.style.scrollSnapType = 'none'; - window.cancelAnimationFrame(swiper.cssModeFrameID); - const dir = targetPosition > startPosition ? 'next' : 'prev'; - const isOutOfBound = (current, target) => { - return dir === 'next' && current >= target || dir === 'prev' && current <= target; - }; - const animate = () => { - time = new Date().getTime(); - if (startTime === null) { - startTime = time; - } - const progress = Math.max(Math.min((time - startTime) / duration, 1), 0); - const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2; - let currentPosition = startPosition + easeProgress * (targetPosition - startPosition); - if (isOutOfBound(currentPosition, targetPosition)) { - currentPosition = targetPosition; - } - swiper.wrapperEl.scrollTo({ - [side]: currentPosition - }); - if (isOutOfBound(currentPosition, targetPosition)) { - swiper.wrapperEl.style.overflow = 'hidden'; - swiper.wrapperEl.style.scrollSnapType = ''; - setTimeout(() => { - swiper.wrapperEl.style.overflow = ''; - swiper.wrapperEl.scrollTo({ - [side]: currentPosition - }); - }); - window.cancelAnimationFrame(swiper.cssModeFrameID); - return; - } - swiper.cssModeFrameID = window.requestAnimationFrame(animate); - }; - animate(); - } - function getSlideTransformEl(slideEl) { - return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowRoot && slideEl.shadowRoot.querySelector('.swiper-slide-transform') || slideEl; - } - function elementChildren(element, selector) { - if (selector === void 0) { - selector = ''; - } - return [...element.children].filter(el => el.matches(selector)); - } - function showWarning(text) { - try { - console.warn(text); - return; - } catch (err) { - // err - } - } - function createElement(tag, classes) { - if (classes === void 0) { - classes = []; - } - const el = document.createElement(tag); - el.classList.add(...(Array.isArray(classes) ? classes : classesToTokens(classes))); - return el; - } - function elementOffset(el) { - const window = getWindow(); - const document = getDocument(); - const box = el.getBoundingClientRect(); - const body = document.body; - const clientTop = el.clientTop || body.clientTop || 0; - const clientLeft = el.clientLeft || body.clientLeft || 0; - const scrollTop = el === window ? window.scrollY : el.scrollTop; - const scrollLeft = el === window ? window.scrollX : el.scrollLeft; - return { - top: box.top + scrollTop - clientTop, - left: box.left + scrollLeft - clientLeft - }; - } - function elementPrevAll(el, selector) { - const prevEls = []; - while (el.previousElementSibling) { - const prev = el.previousElementSibling; // eslint-disable-line - if (selector) { - if (prev.matches(selector)) prevEls.push(prev); - } else prevEls.push(prev); - el = prev; - } - return prevEls; - } - function elementNextAll(el, selector) { - const nextEls = []; - while (el.nextElementSibling) { - const next = el.nextElementSibling; // eslint-disable-line - if (selector) { - if (next.matches(selector)) nextEls.push(next); - } else nextEls.push(next); - el = next; - } - return nextEls; - } - function elementStyle(el, prop) { - const window = getWindow(); - return window.getComputedStyle(el, null).getPropertyValue(prop); - } - function elementIndex(el) { - let child = el; - let i; - if (child) { - i = 0; - // eslint-disable-next-line - while ((child = child.previousSibling) !== null) { - if (child.nodeType === 1) i += 1; - } - return i; - } - return undefined; - } - function elementParents(el, selector) { - const parents = []; // eslint-disable-line - let parent = el.parentElement; // eslint-disable-line - while (parent) { - if (selector) { - if (parent.matches(selector)) parents.push(parent); - } else { - parents.push(parent); - } - parent = parent.parentElement; - } - return parents; - } - function elementTransitionEnd(el, callback) { - function fireCallBack(e) { - if (e.target !== el) return; - callback.call(el, e); - el.removeEventListener('transitionend', fireCallBack); - } - if (callback) { - el.addEventListener('transitionend', fireCallBack); - } - } - function elementOuterSize(el, size, includeMargins) { - const window = getWindow(); - if (includeMargins) { - return el[size === 'width' ? 'offsetWidth' : 'offsetHeight'] + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-right' : 'margin-top')) + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-left' : 'margin-bottom')); - } - return el.offsetWidth; - } - - let support; - function calcSupport() { - const window = getWindow(); - const document = getDocument(); - return { - smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style, - touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch) - }; - } - function getSupport() { - if (!support) { - support = calcSupport(); - } - return support; - } - - let deviceCached; - function calcDevice(_temp) { - let { - userAgent - } = _temp === void 0 ? {} : _temp; - const support = getSupport(); - const window = getWindow(); - const platform = window.navigator.platform; - const ua = userAgent || window.navigator.userAgent; - const device = { - ios: false, - android: false - }; - const screenWidth = window.screen.width; - const screenHeight = window.screen.height; - const android = ua.match(/(Android);?[\s\/]+([\d.]+)?/); // eslint-disable-line - let ipad = ua.match(/(iPad).*OS\s([\d_]+)/); - const ipod = ua.match(/(iPod)(.*OS\s([\d_]+))?/); - const iphone = !ipad && ua.match(/(iPhone\sOS|iOS)\s([\d_]+)/); - const windows = platform === 'Win32'; - let macos = platform === 'MacIntel'; - - // iPadOs 13 fix - const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810']; - if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) { - ipad = ua.match(/(Version)\/([\d.]+)/); - if (!ipad) ipad = [0, 1, '13_0_0']; - macos = false; - } - - // Android - if (android && !windows) { - device.os = 'android'; - device.android = true; - } - if (ipad || iphone || ipod) { - device.os = 'ios'; - device.ios = true; - } - - // Export object - return device; - } - function getDevice(overrides) { - if (overrides === void 0) { - overrides = {}; - } - if (!deviceCached) { - deviceCached = calcDevice(overrides); - } - return deviceCached; - } - - let browser; - function calcBrowser() { - const window = getWindow(); - let needPerspectiveFix = false; - function isSafari() { - const ua = window.navigator.userAgent.toLowerCase(); - return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0; - } - if (isSafari()) { - const ua = String(window.navigator.userAgent); - if (ua.includes('Version/')) { - const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num)); - needPerspectiveFix = major < 16 || major === 16 && minor < 2; - } - } - return { - isSafari: needPerspectiveFix || isSafari(), - needPerspectiveFix, - isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent) - }; - } - function getBrowser() { - if (!browser) { - browser = calcBrowser(); - } - return browser; - } - - function Resize(_ref) { - let { - swiper, - on, - emit - } = _ref; - const window = getWindow(); - let observer = null; - let animationFrame = null; - const resizeHandler = () => { - if (!swiper || swiper.destroyed || !swiper.initialized) return; - emit('beforeResize'); - emit('resize'); - }; - const createObserver = () => { - if (!swiper || swiper.destroyed || !swiper.initialized) return; - observer = new ResizeObserver(entries => { - animationFrame = window.requestAnimationFrame(() => { - const { - width, - height - } = swiper; - let newWidth = width; - let newHeight = height; - entries.forEach(_ref2 => { - let { - contentBoxSize, - contentRect, - target - } = _ref2; - if (target && target !== swiper.el) return; - newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize; - newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize; - }); - if (newWidth !== width || newHeight !== height) { - resizeHandler(); - } - }); - }); - observer.observe(swiper.el); - }; - const removeObserver = () => { - if (animationFrame) { - window.cancelAnimationFrame(animationFrame); - } - if (observer && observer.unobserve && swiper.el) { - observer.unobserve(swiper.el); - observer = null; - } - }; - const orientationChangeHandler = () => { - if (!swiper || swiper.destroyed || !swiper.initialized) return; - emit('orientationchange'); - }; - on('init', () => { - if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') { - createObserver(); - return; - } - window.addEventListener('resize', resizeHandler); - window.addEventListener('orientationchange', orientationChangeHandler); - }); - on('destroy', () => { - removeObserver(); - window.removeEventListener('resize', resizeHandler); - window.removeEventListener('orientationchange', orientationChangeHandler); - }); - } - - function Observer(_ref) { - let { - swiper, - extendParams, - on, - emit - } = _ref; - const observers = []; - const window = getWindow(); - const attach = function (target, options) { - if (options === void 0) { - options = {}; - } - const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver; - const observer = new ObserverFunc(mutations => { - // The observerUpdate event should only be triggered - // once despite the number of mutations. Additional - // triggers are redundant and are very costly - if (swiper.__preventObserver__) return; - if (mutations.length === 1) { - emit('observerUpdate', mutations[0]); - return; - } - const observerUpdate = function observerUpdate() { - emit('observerUpdate', mutations[0]); - }; - if (window.requestAnimationFrame) { - window.requestAnimationFrame(observerUpdate); - } else { - window.setTimeout(observerUpdate, 0); - } - }); - observer.observe(target, { - attributes: typeof options.attributes === 'undefined' ? true : options.attributes, - childList: typeof options.childList === 'undefined' ? true : options.childList, - characterData: typeof options.characterData === 'undefined' ? true : options.characterData - }); - observers.push(observer); - }; - const init = () => { - if (!swiper.params.observer) return; - if (swiper.params.observeParents) { - const containerParents = elementParents(swiper.hostEl); - for (let i = 0; i < containerParents.length; i += 1) { - attach(containerParents[i]); - } - } - // Observe container - attach(swiper.hostEl, { - childList: swiper.params.observeSlideChildren - }); - - // Observe wrapper - attach(swiper.wrapperEl, { - attributes: false - }); - }; - const destroy = () => { - observers.forEach(observer => { - observer.disconnect(); - }); - observers.splice(0, observers.length); - }; - extendParams({ - observer: false, - observeParents: false, - observeSlideChildren: false - }); - on('init', init); - on('destroy', destroy); - } - - /* eslint-disable no-underscore-dangle */ - - var eventsEmitter = { - on(events, handler, priority) { - const self = this; - if (!self.eventsListeners || self.destroyed) return self; - if (typeof handler !== 'function') return self; - const method = priority ? 'unshift' : 'push'; - events.split(' ').forEach(event => { - if (!self.eventsListeners[event]) self.eventsListeners[event] = []; - self.eventsListeners[event][method](handler); - }); - return self; - }, - once(events, handler, priority) { - const self = this; - if (!self.eventsListeners || self.destroyed) return self; - if (typeof handler !== 'function') return self; - function onceHandler() { - self.off(events, onceHandler); - if (onceHandler.__emitterProxy) { - delete onceHandler.__emitterProxy; - } - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - handler.apply(self, args); - } - onceHandler.__emitterProxy = handler; - return self.on(events, onceHandler, priority); - }, - onAny(handler, priority) { - const self = this; - if (!self.eventsListeners || self.destroyed) return self; - if (typeof handler !== 'function') return self; - const method = priority ? 'unshift' : 'push'; - if (self.eventsAnyListeners.indexOf(handler) < 0) { - self.eventsAnyListeners[method](handler); - } - return self; - }, - offAny(handler) { - const self = this; - if (!self.eventsListeners || self.destroyed) return self; - if (!self.eventsAnyListeners) return self; - const index = self.eventsAnyListeners.indexOf(handler); - if (index >= 0) { - self.eventsAnyListeners.splice(index, 1); - } - return self; - }, - off(events, handler) { - const self = this; - if (!self.eventsListeners || self.destroyed) return self; - if (!self.eventsListeners) return self; - events.split(' ').forEach(event => { - if (typeof handler === 'undefined') { - self.eventsListeners[event] = []; - } else if (self.eventsListeners[event]) { - self.eventsListeners[event].forEach((eventHandler, index) => { - if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) { - self.eventsListeners[event].splice(index, 1); - } - }); - } - }); - return self; - }, - emit() { - const self = this; - if (!self.eventsListeners || self.destroyed) return self; - if (!self.eventsListeners) return self; - let events; - let data; - let context; - for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - args[_key2] = arguments[_key2]; - } - if (typeof args[0] === 'string' || Array.isArray(args[0])) { - events = args[0]; - data = args.slice(1, args.length); - context = self; - } else { - events = args[0].events; - data = args[0].data; - context = args[0].context || self; - } - data.unshift(context); - const eventsArray = Array.isArray(events) ? events : events.split(' '); - eventsArray.forEach(event => { - if (self.eventsAnyListeners && self.eventsAnyListeners.length) { - self.eventsAnyListeners.forEach(eventHandler => { - eventHandler.apply(context, [event, ...data]); - }); - } - if (self.eventsListeners && self.eventsListeners[event]) { - self.eventsListeners[event].forEach(eventHandler => { - eventHandler.apply(context, data); - }); - } - }); - return self; - } - }; - - function updateSize() { - const swiper = this; - let width; - let height; - const el = swiper.el; - if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) { - width = swiper.params.width; - } else { - width = el.clientWidth; - } - if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) { - height = swiper.params.height; - } else { - height = el.clientHeight; - } - if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) { - return; - } - - // Subtract paddings - width = width - parseInt(elementStyle(el, 'padding-left') || 0, 10) - parseInt(elementStyle(el, 'padding-right') || 0, 10); - height = height - parseInt(elementStyle(el, 'padding-top') || 0, 10) - parseInt(elementStyle(el, 'padding-bottom') || 0, 10); - if (Number.isNaN(width)) width = 0; - if (Number.isNaN(height)) height = 0; - Object.assign(swiper, { - width, - height, - size: swiper.isHorizontal() ? width : height - }); - } - - function updateSlides() { - const swiper = this; - function getDirectionPropertyValue(node, label) { - return parseFloat(node.getPropertyValue(swiper.getDirectionLabel(label)) || 0); - } - const params = swiper.params; - const { - wrapperEl, - slidesEl, - size: swiperSize, - rtlTranslate: rtl, - wrongRTL - } = swiper; - const isVirtual = swiper.virtual && params.virtual.enabled; - const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length; - const slides = elementChildren(slidesEl, `.${swiper.params.slideClass}, swiper-slide`); - const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length; - let snapGrid = []; - const slidesGrid = []; - const slidesSizesGrid = []; - let offsetBefore = params.slidesOffsetBefore; - if (typeof offsetBefore === 'function') { - offsetBefore = params.slidesOffsetBefore.call(swiper); - } - let offsetAfter = params.slidesOffsetAfter; - if (typeof offsetAfter === 'function') { - offsetAfter = params.slidesOffsetAfter.call(swiper); - } - const previousSnapGridLength = swiper.snapGrid.length; - const previousSlidesGridLength = swiper.slidesGrid.length; - let spaceBetween = params.spaceBetween; - let slidePosition = -offsetBefore; - let prevSlideSize = 0; - let index = 0; - if (typeof swiperSize === 'undefined') { - return; - } - if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) { - spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize; - } else if (typeof spaceBetween === 'string') { - spaceBetween = parseFloat(spaceBetween); - } - swiper.virtualSize = -spaceBetween; - - // reset margins - slides.forEach(slideEl => { - if (rtl) { - slideEl.style.marginLeft = ''; - } else { - slideEl.style.marginRight = ''; - } - slideEl.style.marginBottom = ''; - slideEl.style.marginTop = ''; - }); - - // reset cssMode offsets - if (params.centeredSlides && params.cssMode) { - setCSSProperty(wrapperEl, '--swiper-centered-offset-before', ''); - setCSSProperty(wrapperEl, '--swiper-centered-offset-after', ''); - } - const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid; - if (gridEnabled) { - swiper.grid.initSlides(slides); - } else if (swiper.grid) { - swiper.grid.unsetSlides(); - } - - // Calc slides - let slideSize; - const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => { - return typeof params.breakpoints[key].slidesPerView !== 'undefined'; - }).length > 0; - for (let i = 0; i < slidesLength; i += 1) { - slideSize = 0; - let slide; - if (slides[i]) slide = slides[i]; - if (gridEnabled) { - swiper.grid.updateSlide(i, slide, slides); - } - if (slides[i] && elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line - - if (params.slidesPerView === 'auto') { - if (shouldResetSlideSize) { - slides[i].style[swiper.getDirectionLabel('width')] = ``; - } - const slideStyles = getComputedStyle(slide); - const currentTransform = slide.style.transform; - const currentWebKitTransform = slide.style.webkitTransform; - if (currentTransform) { - slide.style.transform = 'none'; - } - if (currentWebKitTransform) { - slide.style.webkitTransform = 'none'; - } - if (params.roundLengths) { - slideSize = swiper.isHorizontal() ? elementOuterSize(slide, 'width', true) : elementOuterSize(slide, 'height', true); - } else { - // eslint-disable-next-line - const width = getDirectionPropertyValue(slideStyles, 'width'); - const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left'); - const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right'); - const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left'); - const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right'); - const boxSizing = slideStyles.getPropertyValue('box-sizing'); - if (boxSizing && boxSizing === 'border-box') { - slideSize = width + marginLeft + marginRight; - } else { - const { - clientWidth, - offsetWidth - } = slide; - slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth); - } - } - if (currentTransform) { - slide.style.transform = currentTransform; - } - if (currentWebKitTransform) { - slide.style.webkitTransform = currentWebKitTransform; - } - if (params.roundLengths) slideSize = Math.floor(slideSize); - } else { - slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView; - if (params.roundLengths) slideSize = Math.floor(slideSize); - if (slides[i]) { - slides[i].style[swiper.getDirectionLabel('width')] = `${slideSize}px`; - } - } - if (slides[i]) { - slides[i].swiperSlideSize = slideSize; - } - slidesSizesGrid.push(slideSize); - if (params.centeredSlides) { - slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween; - if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween; - if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween; - if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0; - if (params.roundLengths) slidePosition = Math.floor(slidePosition); - if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition); - slidesGrid.push(slidePosition); - } else { - if (params.roundLengths) slidePosition = Math.floor(slidePosition); - if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition); - slidesGrid.push(slidePosition); - slidePosition = slidePosition + slideSize + spaceBetween; - } - swiper.virtualSize += slideSize + spaceBetween; - prevSlideSize = slideSize; - index += 1; - } - swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter; - if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) { - wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`; - } - if (params.setWrapperSize) { - wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`; - } - if (gridEnabled) { - swiper.grid.updateWrapperSize(slideSize, snapGrid); - } - - // Remove last grid elements depending on width - if (!params.centeredSlides) { - const newSlidesGrid = []; - for (let i = 0; i < snapGrid.length; i += 1) { - let slidesGridItem = snapGrid[i]; - if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem); - if (snapGrid[i] <= swiper.virtualSize - swiperSize) { - newSlidesGrid.push(slidesGridItem); - } - } - snapGrid = newSlidesGrid; - if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) { - snapGrid.push(swiper.virtualSize - swiperSize); - } - } - if (isVirtual && params.loop) { - const size = slidesSizesGrid[0] + spaceBetween; - if (params.slidesPerGroup > 1) { - const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup); - const groupSize = size * params.slidesPerGroup; - for (let i = 0; i < groups; i += 1) { - snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize); - } - } - for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) { - if (params.slidesPerGroup === 1) { - snapGrid.push(snapGrid[snapGrid.length - 1] + size); - } - slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size); - swiper.virtualSize += size; - } - } - if (snapGrid.length === 0) snapGrid = [0]; - if (spaceBetween !== 0) { - const key = swiper.isHorizontal() && rtl ? 'marginLeft' : swiper.getDirectionLabel('marginRight'); - slides.filter((_, slideIndex) => { - if (!params.cssMode || params.loop) return true; - if (slideIndex === slides.length - 1) { - return false; - } - return true; - }).forEach(slideEl => { - slideEl.style[key] = `${spaceBetween}px`; - }); - } - if (params.centeredSlides && params.centeredSlidesBounds) { - let allSlidesSize = 0; - slidesSizesGrid.forEach(slideSizeValue => { - allSlidesSize += slideSizeValue + (spaceBetween || 0); - }); - allSlidesSize -= spaceBetween; - const maxSnap = allSlidesSize - swiperSize; - snapGrid = snapGrid.map(snap => { - if (snap <= 0) return -offsetBefore; - if (snap > maxSnap) return maxSnap + offsetAfter; - return snap; - }); - } - if (params.centerInsufficientSlides) { - let allSlidesSize = 0; - slidesSizesGrid.forEach(slideSizeValue => { - allSlidesSize += slideSizeValue + (spaceBetween || 0); - }); - allSlidesSize -= spaceBetween; - if (allSlidesSize < swiperSize) { - const allSlidesOffset = (swiperSize - allSlidesSize) / 2; - snapGrid.forEach((snap, snapIndex) => { - snapGrid[snapIndex] = snap - allSlidesOffset; - }); - slidesGrid.forEach((snap, snapIndex) => { - slidesGrid[snapIndex] = snap + allSlidesOffset; - }); - } - } - Object.assign(swiper, { - slides, - snapGrid, - slidesGrid, - slidesSizesGrid - }); - if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) { - setCSSProperty(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`); - setCSSProperty(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`); - const addToSnapGrid = -swiper.snapGrid[0]; - const addToSlidesGrid = -swiper.slidesGrid[0]; - swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid); - swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid); - } - if (slidesLength !== previousSlidesLength) { - swiper.emit('slidesLengthChange'); - } - if (snapGrid.length !== previousSnapGridLength) { - if (swiper.params.watchOverflow) swiper.checkOverflow(); - swiper.emit('snapGridLengthChange'); - } - if (slidesGrid.length !== previousSlidesGridLength) { - swiper.emit('slidesGridLengthChange'); - } - if (params.watchSlidesProgress) { - swiper.updateSlidesOffset(); - } - swiper.emit('slidesUpdated'); - if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) { - const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`; - const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass); - if (slidesLength <= params.maxBackfaceHiddenSlides) { - if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass); - } else if (hasClassBackfaceClassAdded) { - swiper.el.classList.remove(backFaceHiddenClass); - } - } - } - - function updateAutoHeight(speed) { - const swiper = this; - const activeSlides = []; - const isVirtual = swiper.virtual && swiper.params.virtual.enabled; - let newHeight = 0; - let i; - if (typeof speed === 'number') { - swiper.setTransition(speed); - } else if (speed === true) { - swiper.setTransition(swiper.params.speed); - } - const getSlideByIndex = index => { - if (isVirtual) { - return swiper.slides[swiper.getSlideIndexByData(index)]; - } - return swiper.slides[index]; - }; - // Find slides currently in view - if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) { - if (swiper.params.centeredSlides) { - (swiper.visibleSlides || []).forEach(slide => { - activeSlides.push(slide); - }); - } else { - for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) { - const index = swiper.activeIndex + i; - if (index > swiper.slides.length && !isVirtual) break; - activeSlides.push(getSlideByIndex(index)); - } - } - } else { - activeSlides.push(getSlideByIndex(swiper.activeIndex)); - } - - // Find new height from highest slide in view - for (i = 0; i < activeSlides.length; i += 1) { - if (typeof activeSlides[i] !== 'undefined') { - const height = activeSlides[i].offsetHeight; - newHeight = height > newHeight ? height : newHeight; - } - } - - // Update Height - if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`; - } - - function updateSlidesOffset() { - const swiper = this; - const slides = swiper.slides; - // eslint-disable-next-line - const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0; - for (let i = 0; i < slides.length; i += 1) { - slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment(); - } - } - - function updateSlidesProgress(translate) { - if (translate === void 0) { - translate = this && this.translate || 0; - } - const swiper = this; - const params = swiper.params; - const { - slides, - rtlTranslate: rtl, - snapGrid - } = swiper; - if (slides.length === 0) return; - if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset(); - let offsetCenter = -translate; - if (rtl) offsetCenter = translate; - - // Visible Slides - slides.forEach(slideEl => { - slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass); - }); - swiper.visibleSlidesIndexes = []; - swiper.visibleSlides = []; - let spaceBetween = params.spaceBetween; - if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) { - spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size; - } else if (typeof spaceBetween === 'string') { - spaceBetween = parseFloat(spaceBetween); - } - for (let i = 0; i < slides.length; i += 1) { - const slide = slides[i]; - let slideOffset = slide.swiperSlideOffset; - if (params.cssMode && params.centeredSlides) { - slideOffset -= slides[0].swiperSlideOffset; - } - const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween); - const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween); - const slideBefore = -(offsetCenter - slideOffset); - const slideAfter = slideBefore + swiper.slidesSizesGrid[i]; - const isFullyVisible = slideBefore >= 0 && slideBefore <= swiper.size - swiper.slidesSizesGrid[i]; - const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size; - if (isVisible) { - swiper.visibleSlides.push(slide); - swiper.visibleSlidesIndexes.push(i); - slides[i].classList.add(params.slideVisibleClass); - } - if (isFullyVisible) { - slides[i].classList.add(params.slideFullyVisibleClass); - } - slide.progress = rtl ? -slideProgress : slideProgress; - slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress; - } - } - - function updateProgress(translate) { - const swiper = this; - if (typeof translate === 'undefined') { - const multiplier = swiper.rtlTranslate ? -1 : 1; - // eslint-disable-next-line - translate = swiper && swiper.translate && swiper.translate * multiplier || 0; - } - const params = swiper.params; - const translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); - let { - progress, - isBeginning, - isEnd, - progressLoop - } = swiper; - const wasBeginning = isBeginning; - const wasEnd = isEnd; - if (translatesDiff === 0) { - progress = 0; - isBeginning = true; - isEnd = true; - } else { - progress = (translate - swiper.minTranslate()) / translatesDiff; - const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1; - const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1; - isBeginning = isBeginningRounded || progress <= 0; - isEnd = isEndRounded || progress >= 1; - if (isBeginningRounded) progress = 0; - if (isEndRounded) progress = 1; - } - if (params.loop) { - const firstSlideIndex = swiper.getSlideIndexByData(0); - const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1); - const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex]; - const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex]; - const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1]; - const translateAbs = Math.abs(translate); - if (translateAbs >= firstSlideTranslate) { - progressLoop = (translateAbs - firstSlideTranslate) / translateMax; - } else { - progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax; - } - if (progressLoop > 1) progressLoop -= 1; - } - Object.assign(swiper, { - progress, - progressLoop, - isBeginning, - isEnd - }); - if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate); - if (isBeginning && !wasBeginning) { - swiper.emit('reachBeginning toEdge'); - } - if (isEnd && !wasEnd) { - swiper.emit('reachEnd toEdge'); - } - if (wasBeginning && !isBeginning || wasEnd && !isEnd) { - swiper.emit('fromEdge'); - } - swiper.emit('progress', progress); - } - - function updateSlidesClasses() { - const swiper = this; - const { - slides, - params, - slidesEl, - activeIndex - } = swiper; - const isVirtual = swiper.virtual && params.virtual.enabled; - const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1; - const getFilteredSlide = selector => { - return elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0]; - }; - slides.forEach(slideEl => { - slideEl.classList.remove(params.slideActiveClass, params.slideNextClass, params.slidePrevClass); - }); - let activeSlide; - let prevSlide; - let nextSlide; - if (isVirtual) { - if (params.loop) { - let slideIndex = activeIndex - swiper.virtual.slidesBefore; - if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex; - if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length; - activeSlide = getFilteredSlide(`[data-swiper-slide-index="${slideIndex}"]`); - } else { - activeSlide = getFilteredSlide(`[data-swiper-slide-index="${activeIndex}"]`); - } - } else { - if (gridEnabled) { - activeSlide = slides.filter(slideEl => slideEl.column === activeIndex)[0]; - nextSlide = slides.filter(slideEl => slideEl.column === activeIndex + 1)[0]; - prevSlide = slides.filter(slideEl => slideEl.column === activeIndex - 1)[0]; - } else { - activeSlide = slides[activeIndex]; - } - } - if (activeSlide) { - // Active classes - activeSlide.classList.add(params.slideActiveClass); - if (gridEnabled) { - if (nextSlide) { - nextSlide.classList.add(params.slideNextClass); - } - if (prevSlide) { - prevSlide.classList.add(params.slidePrevClass); - } - } else { - // Next Slide - nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0]; - if (params.loop && !nextSlide) { - nextSlide = slides[0]; - } - if (nextSlide) { - nextSlide.classList.add(params.slideNextClass); - } - - // Prev Slide - prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0]; - if (params.loop && !prevSlide === 0) { - prevSlide = slides[slides.length - 1]; - } - if (prevSlide) { - prevSlide.classList.add(params.slidePrevClass); - } - } - } - swiper.emitSlidesClasses(); - } - - const processLazyPreloader = (swiper, imageEl) => { - if (!swiper || swiper.destroyed || !swiper.params) return; - const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`; - const slideEl = imageEl.closest(slideSelector()); - if (slideEl) { - let lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`); - if (!lazyEl && swiper.isElement) { - if (slideEl.shadowRoot) { - lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`); - } else { - // init later - requestAnimationFrame(() => { - if (slideEl.shadowRoot) { - lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`); - if (lazyEl) lazyEl.remove(); - } - }); - } - } - if (lazyEl) lazyEl.remove(); - } - }; - const unlazy = (swiper, index) => { - if (!swiper.slides[index]) return; - const imageEl = swiper.slides[index].querySelector('[loading="lazy"]'); - if (imageEl) imageEl.removeAttribute('loading'); - }; - const preload = swiper => { - if (!swiper || swiper.destroyed || !swiper.params) return; - let amount = swiper.params.lazyPreloadPrevNext; - const len = swiper.slides.length; - if (!len || !amount || amount < 0) return; - amount = Math.min(amount, len); - const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView); - const activeIndex = swiper.activeIndex; - if (swiper.params.grid && swiper.params.grid.rows > 1) { - const activeColumn = activeIndex; - const preloadColumns = [activeColumn - amount]; - preloadColumns.push(...Array.from({ - length: amount - }).map((_, i) => { - return activeColumn + slidesPerView + i; - })); - swiper.slides.forEach((slideEl, i) => { - if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i); - }); - return; - } - const slideIndexLastInView = activeIndex + slidesPerView - 1; - if (swiper.params.rewind || swiper.params.loop) { - for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) { - const realIndex = (i % len + len) % len; - if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex); - } - } else { - for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) { - if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) { - unlazy(swiper, i); - } - } - } - }; - - function getActiveIndexByTranslate(swiper) { - const { - slidesGrid, - params - } = swiper; - const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate; - let activeIndex; - for (let i = 0; i < slidesGrid.length; i += 1) { - if (typeof slidesGrid[i + 1] !== 'undefined') { - if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) { - activeIndex = i; - } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) { - activeIndex = i + 1; - } - } else if (translate >= slidesGrid[i]) { - activeIndex = i; - } - } - // Normalize slideIndex - if (params.normalizeSlideIndex) { - if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0; - } - return activeIndex; - } - function updateActiveIndex(newActiveIndex) { - const swiper = this; - const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate; - const { - snapGrid, - params, - activeIndex: previousIndex, - realIndex: previousRealIndex, - snapIndex: previousSnapIndex - } = swiper; - let activeIndex = newActiveIndex; - let snapIndex; - const getVirtualRealIndex = aIndex => { - let realIndex = aIndex - swiper.virtual.slidesBefore; - if (realIndex < 0) { - realIndex = swiper.virtual.slides.length + realIndex; - } - if (realIndex >= swiper.virtual.slides.length) { - realIndex -= swiper.virtual.slides.length; - } - return realIndex; - }; - if (typeof activeIndex === 'undefined') { - activeIndex = getActiveIndexByTranslate(swiper); - } - if (snapGrid.indexOf(translate) >= 0) { - snapIndex = snapGrid.indexOf(translate); - } else { - const skip = Math.min(params.slidesPerGroupSkip, activeIndex); - snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup); - } - if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1; - if (activeIndex === previousIndex && !swiper.params.loop) { - if (snapIndex !== previousSnapIndex) { - swiper.snapIndex = snapIndex; - swiper.emit('snapIndexChange'); - } - return; - } - if (activeIndex === previousIndex && swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) { - swiper.realIndex = getVirtualRealIndex(activeIndex); - return; - } - const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1; - - // Get real index - let realIndex; - if (swiper.virtual && params.virtual.enabled && params.loop) { - realIndex = getVirtualRealIndex(activeIndex); - } else if (gridEnabled) { - const firstSlideInColumn = swiper.slides.filter(slideEl => slideEl.column === activeIndex)[0]; - let activeSlideIndex = parseInt(firstSlideInColumn.getAttribute('data-swiper-slide-index'), 10); - if (Number.isNaN(activeSlideIndex)) { - activeSlideIndex = Math.max(swiper.slides.indexOf(firstSlideInColumn), 0); - } - realIndex = Math.floor(activeSlideIndex / params.grid.rows); - } else if (swiper.slides[activeIndex]) { - const slideIndex = swiper.slides[activeIndex].getAttribute('data-swiper-slide-index'); - if (slideIndex) { - realIndex = parseInt(slideIndex, 10); - } else { - realIndex = activeIndex; - } - } else { - realIndex = activeIndex; - } - Object.assign(swiper, { - previousSnapIndex, - snapIndex, - previousRealIndex, - realIndex, - previousIndex, - activeIndex - }); - if (swiper.initialized) { - preload(swiper); - } - swiper.emit('activeIndexChange'); - swiper.emit('snapIndexChange'); - if (swiper.initialized || swiper.params.runCallbacksOnInit) { - if (previousRealIndex !== realIndex) { - swiper.emit('realIndexChange'); - } - swiper.emit('slideChange'); - } - } - - function updateClickedSlide(el, path) { - const swiper = this; - const params = swiper.params; - let slide = el.closest(`.${params.slideClass}, swiper-slide`); - if (!slide && swiper.isElement && path && path.length > 1 && path.includes(el)) { - [...path.slice(path.indexOf(el) + 1, path.length)].forEach(pathEl => { - if (!slide && pathEl.matches && pathEl.matches(`.${params.slideClass}, swiper-slide`)) { - slide = pathEl; - } - }); - } - let slideFound = false; - let slideIndex; - if (slide) { - for (let i = 0; i < swiper.slides.length; i += 1) { - if (swiper.slides[i] === slide) { - slideFound = true; - slideIndex = i; - break; - } - } - } - if (slide && slideFound) { - swiper.clickedSlide = slide; - if (swiper.virtual && swiper.params.virtual.enabled) { - swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10); - } else { - swiper.clickedIndex = slideIndex; - } - } else { - swiper.clickedSlide = undefined; - swiper.clickedIndex = undefined; - return; - } - if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) { - swiper.slideToClickedSlide(); - } - } - - var update = { - updateSize, - updateSlides, - updateAutoHeight, - updateSlidesOffset, - updateSlidesProgress, - updateProgress, - updateSlidesClasses, - updateActiveIndex, - updateClickedSlide - }; - - function getSwiperTranslate(axis) { - if (axis === void 0) { - axis = this.isHorizontal() ? 'x' : 'y'; - } - const swiper = this; - const { - params, - rtlTranslate: rtl, - translate, - wrapperEl - } = swiper; - if (params.virtualTranslate) { - return rtl ? -translate : translate; - } - if (params.cssMode) { - return translate; - } - let currentTranslate = getTranslate(wrapperEl, axis); - currentTranslate += swiper.cssOverflowAdjustment(); - if (rtl) currentTranslate = -currentTranslate; - return currentTranslate || 0; - } - - function setTranslate(translate, byController) { - const swiper = this; - const { - rtlTranslate: rtl, - params, - wrapperEl, - progress - } = swiper; - let x = 0; - let y = 0; - const z = 0; - if (swiper.isHorizontal()) { - x = rtl ? -translate : translate; - } else { - y = translate; - } - if (params.roundLengths) { - x = Math.floor(x); - y = Math.floor(y); - } - swiper.previousTranslate = swiper.translate; - swiper.translate = swiper.isHorizontal() ? x : y; - if (params.cssMode) { - wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y; - } else if (!params.virtualTranslate) { - if (swiper.isHorizontal()) { - x -= swiper.cssOverflowAdjustment(); - } else { - y -= swiper.cssOverflowAdjustment(); - } - wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`; - } - - // Check if we need to update progress - let newProgress; - const translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); - if (translatesDiff === 0) { - newProgress = 0; - } else { - newProgress = (translate - swiper.minTranslate()) / translatesDiff; - } - if (newProgress !== progress) { - swiper.updateProgress(translate); - } - swiper.emit('setTranslate', swiper.translate, byController); - } - - function minTranslate() { - return -this.snapGrid[0]; - } - - function maxTranslate() { - return -this.snapGrid[this.snapGrid.length - 1]; - } - - function translateTo(translate, speed, runCallbacks, translateBounds, internal) { - if (translate === void 0) { - translate = 0; - } - if (speed === void 0) { - speed = this.params.speed; - } - if (runCallbacks === void 0) { - runCallbacks = true; - } - if (translateBounds === void 0) { - translateBounds = true; - } - const swiper = this; - const { - params, - wrapperEl - } = swiper; - if (swiper.animating && params.preventInteractionOnTransition) { - return false; - } - const minTranslate = swiper.minTranslate(); - const maxTranslate = swiper.maxTranslate(); - let newTranslate; - if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; - - // Update progress - swiper.updateProgress(newTranslate); - if (params.cssMode) { - const isH = swiper.isHorizontal(); - if (speed === 0) { - wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate; - } else { - if (!swiper.support.smoothScroll) { - animateCSSModeScroll({ - swiper, - targetPosition: -newTranslate, - side: isH ? 'left' : 'top' - }); - return true; - } - wrapperEl.scrollTo({ - [isH ? 'left' : 'top']: -newTranslate, - behavior: 'smooth' - }); - } - return true; - } - if (speed === 0) { - swiper.setTransition(0); - swiper.setTranslate(newTranslate); - if (runCallbacks) { - swiper.emit('beforeTransitionStart', speed, internal); - swiper.emit('transitionEnd'); - } - } else { - swiper.setTransition(speed); - swiper.setTranslate(newTranslate); - if (runCallbacks) { - swiper.emit('beforeTransitionStart', speed, internal); - swiper.emit('transitionStart'); - } - if (!swiper.animating) { - swiper.animating = true; - if (!swiper.onTranslateToWrapperTransitionEnd) { - swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) { - if (!swiper || swiper.destroyed) return; - if (e.target !== this) return; - swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd); - swiper.onTranslateToWrapperTransitionEnd = null; - delete swiper.onTranslateToWrapperTransitionEnd; - if (runCallbacks) { - swiper.emit('transitionEnd'); - } - }; - } - swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd); - } - } - return true; - } - - var translate = { - getTranslate: getSwiperTranslate, - setTranslate, - minTranslate, - maxTranslate, - translateTo - }; - - function setTransition(duration, byController) { - const swiper = this; - if (!swiper.params.cssMode) { - swiper.wrapperEl.style.transitionDuration = `${duration}ms`; - swiper.wrapperEl.style.transitionDelay = duration === 0 ? `0ms` : ''; - } - swiper.emit('setTransition', duration, byController); - } - - function transitionEmit(_ref) { - let { - swiper, - runCallbacks, - direction, - step - } = _ref; - const { - activeIndex, - previousIndex - } = swiper; - let dir = direction; - if (!dir) { - if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset'; - } - swiper.emit(`transition${step}`); - if (runCallbacks && activeIndex !== previousIndex) { - if (dir === 'reset') { - swiper.emit(`slideResetTransition${step}`); - return; - } - swiper.emit(`slideChangeTransition${step}`); - if (dir === 'next') { - swiper.emit(`slideNextTransition${step}`); - } else { - swiper.emit(`slidePrevTransition${step}`); - } - } - } - - function transitionStart(runCallbacks, direction) { - if (runCallbacks === void 0) { - runCallbacks = true; - } - const swiper = this; - const { - params - } = swiper; - if (params.cssMode) return; - if (params.autoHeight) { - swiper.updateAutoHeight(); - } - transitionEmit({ - swiper, - runCallbacks, - direction, - step: 'Start' - }); - } - - function transitionEnd(runCallbacks, direction) { - if (runCallbacks === void 0) { - runCallbacks = true; - } - const swiper = this; - const { - params - } = swiper; - swiper.animating = false; - if (params.cssMode) return; - swiper.setTransition(0); - transitionEmit({ - swiper, - runCallbacks, - direction, - step: 'End' - }); - } - - var transition = { - setTransition, - transitionStart, - transitionEnd - }; - - function slideTo(index, speed, runCallbacks, internal, initial) { - if (index === void 0) { - index = 0; - } - if (speed === void 0) { - speed = this.params.speed; - } - if (runCallbacks === void 0) { - runCallbacks = true; - } - if (typeof index === 'string') { - index = parseInt(index, 10); - } - const swiper = this; - let slideIndex = index; - if (slideIndex < 0) slideIndex = 0; - const { - params, - snapGrid, - slidesGrid, - previousIndex, - activeIndex, - rtlTranslate: rtl, - wrapperEl, - enabled - } = swiper; - if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) { - return false; - } - const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex); - let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup); - if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1; - const translate = -snapGrid[snapIndex]; - // Normalize slideIndex - if (params.normalizeSlideIndex) { - for (let i = 0; i < slidesGrid.length; i += 1) { - const normalizedTranslate = -Math.floor(translate * 100); - const normalizedGrid = Math.floor(slidesGrid[i] * 100); - const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100); - if (typeof slidesGrid[i + 1] !== 'undefined') { - if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) { - slideIndex = i; - } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) { - slideIndex = i + 1; - } - } else if (normalizedTranslate >= normalizedGrid) { - slideIndex = i; - } - } - } - // Directions locks - if (swiper.initialized && slideIndex !== activeIndex) { - if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) { - return false; - } - if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) { - if ((activeIndex || 0) !== slideIndex) { - return false; - } - } - } - if (slideIndex !== (previousIndex || 0) && runCallbacks) { - swiper.emit('beforeSlideChangeStart'); - } - - // Update progress - swiper.updateProgress(translate); - let direction; - if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; - - // Update Index - if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) { - swiper.updateActiveIndex(slideIndex); - // Update Height - if (params.autoHeight) { - swiper.updateAutoHeight(); - } - swiper.updateSlidesClasses(); - if (params.effect !== 'slide') { - swiper.setTranslate(translate); - } - if (direction !== 'reset') { - swiper.transitionStart(runCallbacks, direction); - swiper.transitionEnd(runCallbacks, direction); - } - return false; - } - if (params.cssMode) { - const isH = swiper.isHorizontal(); - const t = rtl ? translate : -translate; - if (speed === 0) { - const isVirtual = swiper.virtual && swiper.params.virtual.enabled; - if (isVirtual) { - swiper.wrapperEl.style.scrollSnapType = 'none'; - swiper._immediateVirtual = true; - } - if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) { - swiper._cssModeVirtualInitialSet = true; - requestAnimationFrame(() => { - wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t; - }); - } else { - wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t; - } - if (isVirtual) { - requestAnimationFrame(() => { - swiper.wrapperEl.style.scrollSnapType = ''; - swiper._immediateVirtual = false; - }); - } - } else { - if (!swiper.support.smoothScroll) { - animateCSSModeScroll({ - swiper, - targetPosition: t, - side: isH ? 'left' : 'top' - }); - return true; - } - wrapperEl.scrollTo({ - [isH ? 'left' : 'top']: t, - behavior: 'smooth' - }); - } - return true; - } - swiper.setTransition(speed); - swiper.setTranslate(translate); - swiper.updateActiveIndex(slideIndex); - swiper.updateSlidesClasses(); - swiper.emit('beforeTransitionStart', speed, internal); - swiper.transitionStart(runCallbacks, direction); - if (speed === 0) { - swiper.transitionEnd(runCallbacks, direction); - } else if (!swiper.animating) { - swiper.animating = true; - if (!swiper.onSlideToWrapperTransitionEnd) { - swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) { - if (!swiper || swiper.destroyed) return; - if (e.target !== this) return; - swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd); - swiper.onSlideToWrapperTransitionEnd = null; - delete swiper.onSlideToWrapperTransitionEnd; - swiper.transitionEnd(runCallbacks, direction); - }; - } - swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd); - } - return true; - } - - function slideToLoop(index, speed, runCallbacks, internal) { - if (index === void 0) { - index = 0; - } - if (speed === void 0) { - speed = this.params.speed; - } - if (runCallbacks === void 0) { - runCallbacks = true; - } - if (typeof index === 'string') { - const indexAsNumber = parseInt(index, 10); - index = indexAsNumber; - } - const swiper = this; - const gridEnabled = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1; - let newIndex = index; - if (swiper.params.loop) { - if (swiper.virtual && swiper.params.virtual.enabled) { - // eslint-disable-next-line - newIndex = newIndex + swiper.virtual.slidesBefore; - } else { - let targetSlideIndex; - if (gridEnabled) { - const slideIndex = newIndex * swiper.params.grid.rows; - targetSlideIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column; - } else { - targetSlideIndex = swiper.getSlideIndexByData(newIndex); - } - const cols = gridEnabled ? Math.ceil(swiper.slides.length / swiper.params.grid.rows) : swiper.slides.length; - const { - centeredSlides - } = swiper.params; - let slidesPerView = swiper.params.slidesPerView; - if (slidesPerView === 'auto') { - slidesPerView = swiper.slidesPerViewDynamic(); - } else { - slidesPerView = Math.ceil(parseFloat(swiper.params.slidesPerView, 10)); - if (centeredSlides && slidesPerView % 2 === 0) { - slidesPerView = slidesPerView + 1; - } - } - let needLoopFix = cols - targetSlideIndex < slidesPerView; - if (centeredSlides) { - needLoopFix = needLoopFix || targetSlideIndex < Math.ceil(slidesPerView / 2); - } - if (needLoopFix) { - const direction = centeredSlides ? targetSlideIndex < swiper.activeIndex ? 'prev' : 'next' : targetSlideIndex - swiper.activeIndex - 1 < swiper.params.slidesPerView ? 'next' : 'prev'; - swiper.loopFix({ - direction, - slideTo: true, - activeSlideIndex: direction === 'next' ? targetSlideIndex + 1 : targetSlideIndex - cols + 1, - slideRealIndex: direction === 'next' ? swiper.realIndex : undefined - }); - } - if (gridEnabled) { - const slideIndex = newIndex * swiper.params.grid.rows; - newIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column; - } else { - newIndex = swiper.getSlideIndexByData(newIndex); - } - } - } - requestAnimationFrame(() => { - swiper.slideTo(newIndex, speed, runCallbacks, internal); - }); - return swiper; - } - - /* eslint no-unused-vars: "off" */ - function slideNext(speed, runCallbacks, internal) { - if (speed === void 0) { - speed = this.params.speed; - } - if (runCallbacks === void 0) { - runCallbacks = true; - } - const swiper = this; - const { - enabled, - params, - animating - } = swiper; - if (!enabled) return swiper; - let perGroup = params.slidesPerGroup; - if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) { - perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1); - } - const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup; - const isVirtual = swiper.virtual && params.virtual.enabled; - if (params.loop) { - if (animating && !isVirtual && params.loopPreventsSliding) return false; - swiper.loopFix({ - direction: 'next' - }); - // eslint-disable-next-line - swiper._clientLeft = swiper.wrapperEl.clientLeft; - if (swiper.activeIndex === swiper.slides.length - 1 && params.cssMode) { - requestAnimationFrame(() => { - swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal); - }); - return true; - } - } - if (params.rewind && swiper.isEnd) { - return swiper.slideTo(0, speed, runCallbacks, internal); - } - return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal); - } - - /* eslint no-unused-vars: "off" */ - function slidePrev(speed, runCallbacks, internal) { - if (speed === void 0) { - speed = this.params.speed; - } - if (runCallbacks === void 0) { - runCallbacks = true; - } - const swiper = this; - const { - params, - snapGrid, - slidesGrid, - rtlTranslate, - enabled, - animating - } = swiper; - if (!enabled) return swiper; - const isVirtual = swiper.virtual && params.virtual.enabled; - if (params.loop) { - if (animating && !isVirtual && params.loopPreventsSliding) return false; - swiper.loopFix({ - direction: 'prev' - }); - // eslint-disable-next-line - swiper._clientLeft = swiper.wrapperEl.clientLeft; - } - const translate = rtlTranslate ? swiper.translate : -swiper.translate; - function normalize(val) { - if (val < 0) return -Math.floor(Math.abs(val)); - return Math.floor(val); - } - const normalizedTranslate = normalize(translate); - const normalizedSnapGrid = snapGrid.map(val => normalize(val)); - let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1]; - if (typeof prevSnap === 'undefined' && params.cssMode) { - let prevSnapIndex; - snapGrid.forEach((snap, snapIndex) => { - if (normalizedTranslate >= snap) { - // prevSnap = snap; - prevSnapIndex = snapIndex; - } - }); - if (typeof prevSnapIndex !== 'undefined') { - prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex]; - } - } - let prevIndex = 0; - if (typeof prevSnap !== 'undefined') { - prevIndex = slidesGrid.indexOf(prevSnap); - if (prevIndex < 0) prevIndex = swiper.activeIndex - 1; - if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) { - prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1; - prevIndex = Math.max(prevIndex, 0); - } - } - if (params.rewind && swiper.isBeginning) { - const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1; - return swiper.slideTo(lastIndex, speed, runCallbacks, internal); - } else if (params.loop && swiper.activeIndex === 0 && params.cssMode) { - requestAnimationFrame(() => { - swiper.slideTo(prevIndex, speed, runCallbacks, internal); - }); - return true; - } - return swiper.slideTo(prevIndex, speed, runCallbacks, internal); - } - - /* eslint no-unused-vars: "off" */ - function slideReset(speed, runCallbacks, internal) { - if (speed === void 0) { - speed = this.params.speed; - } - if (runCallbacks === void 0) { - runCallbacks = true; - } - const swiper = this; - return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal); - } - - /* eslint no-unused-vars: "off" */ - function slideToClosest(speed, runCallbacks, internal, threshold) { - if (speed === void 0) { - speed = this.params.speed; - } - if (runCallbacks === void 0) { - runCallbacks = true; - } - if (threshold === void 0) { - threshold = 0.5; - } - const swiper = this; - let index = swiper.activeIndex; - const skip = Math.min(swiper.params.slidesPerGroupSkip, index); - const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup); - const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate; - if (translate >= swiper.snapGrid[snapIndex]) { - // The current translate is on or after the current snap index, so the choice - // is between the current index and the one after it. - const currentSnap = swiper.snapGrid[snapIndex]; - const nextSnap = swiper.snapGrid[snapIndex + 1]; - if (translate - currentSnap > (nextSnap - currentSnap) * threshold) { - index += swiper.params.slidesPerGroup; - } - } else { - // The current translate is before the current snap index, so the choice - // is between the current index and the one before it. - const prevSnap = swiper.snapGrid[snapIndex - 1]; - const currentSnap = swiper.snapGrid[snapIndex]; - if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) { - index -= swiper.params.slidesPerGroup; - } - } - index = Math.max(index, 0); - index = Math.min(index, swiper.slidesGrid.length - 1); - return swiper.slideTo(index, speed, runCallbacks, internal); - } - - function slideToClickedSlide() { - const swiper = this; - const { - params, - slidesEl - } = swiper; - const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView; - let slideToIndex = swiper.clickedIndex; - let realIndex; - const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`; - if (params.loop) { - if (swiper.animating) return; - realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10); - if (params.centeredSlides) { - if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) { - swiper.loopFix(); - slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index="${realIndex}"]`)[0]); - nextTick(() => { - swiper.slideTo(slideToIndex); - }); - } else { - swiper.slideTo(slideToIndex); - } - } else if (slideToIndex > swiper.slides.length - slidesPerView) { - swiper.loopFix(); - slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index="${realIndex}"]`)[0]); - nextTick(() => { - swiper.slideTo(slideToIndex); - }); - } else { - swiper.slideTo(slideToIndex); - } - } else { - swiper.slideTo(slideToIndex); - } - } - - var slide = { - slideTo, - slideToLoop, - slideNext, - slidePrev, - slideReset, - slideToClosest, - slideToClickedSlide - }; - - function loopCreate(slideRealIndex) { - const swiper = this; - const { - params, - slidesEl - } = swiper; - if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return; - const initSlides = () => { - const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`); - slides.forEach((el, index) => { - el.setAttribute('data-swiper-slide-index', index); - }); - }; - const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1; - const slidesPerGroup = params.slidesPerGroup * (gridEnabled ? params.grid.rows : 1); - const shouldFillGroup = swiper.slides.length % slidesPerGroup !== 0; - const shouldFillGrid = gridEnabled && swiper.slides.length % params.grid.rows !== 0; - const addBlankSlides = amountOfSlides => { - for (let i = 0; i < amountOfSlides; i += 1) { - const slideEl = swiper.isElement ? createElement('swiper-slide', [params.slideBlankClass]) : createElement('div', [params.slideClass, params.slideBlankClass]); - swiper.slidesEl.append(slideEl); - } - }; - if (shouldFillGroup) { - if (params.loopAddBlankSlides) { - const slidesToAdd = slidesPerGroup - swiper.slides.length % slidesPerGroup; - addBlankSlides(slidesToAdd); - swiper.recalcSlides(); - swiper.updateSlides(); - } else { - showWarning('Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)'); - } - initSlides(); - } else if (shouldFillGrid) { - if (params.loopAddBlankSlides) { - const slidesToAdd = params.grid.rows - swiper.slides.length % params.grid.rows; - addBlankSlides(slidesToAdd); - swiper.recalcSlides(); - swiper.updateSlides(); - } else { - showWarning('Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)'); - } - initSlides(); - } else { - initSlides(); - } - swiper.loopFix({ - slideRealIndex, - direction: params.centeredSlides ? undefined : 'next' - }); - } - - function loopFix(_temp) { - let { - slideRealIndex, - slideTo = true, - direction, - setTranslate, - activeSlideIndex, - byController, - byMousewheel - } = _temp === void 0 ? {} : _temp; - const swiper = this; - if (!swiper.params.loop) return; - swiper.emit('beforeLoopFix'); - const { - slides, - allowSlidePrev, - allowSlideNext, - slidesEl, - params - } = swiper; - const { - centeredSlides - } = params; - swiper.allowSlidePrev = true; - swiper.allowSlideNext = true; - if (swiper.virtual && params.virtual.enabled) { - if (slideTo) { - if (!params.centeredSlides && swiper.snapIndex === 0) { - swiper.slideTo(swiper.virtual.slides.length, 0, false, true); - } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) { - swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true); - } else if (swiper.snapIndex === swiper.snapGrid.length - 1) { - swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true); - } - } - swiper.allowSlidePrev = allowSlidePrev; - swiper.allowSlideNext = allowSlideNext; - swiper.emit('loopFix'); - return; - } - let slidesPerView = params.slidesPerView; - if (slidesPerView === 'auto') { - slidesPerView = swiper.slidesPerViewDynamic(); - } else { - slidesPerView = Math.ceil(parseFloat(params.slidesPerView, 10)); - if (centeredSlides && slidesPerView % 2 === 0) { - slidesPerView = slidesPerView + 1; - } - } - const slidesPerGroup = params.slidesPerGroupAuto ? slidesPerView : params.slidesPerGroup; - let loopedSlides = slidesPerGroup; - if (loopedSlides % slidesPerGroup !== 0) { - loopedSlides += slidesPerGroup - loopedSlides % slidesPerGroup; - } - loopedSlides += params.loopAdditionalSlides; - swiper.loopedSlides = loopedSlides; - const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1; - if (slides.length < slidesPerView + loopedSlides) { - showWarning('Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled and not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters'); - } else if (gridEnabled && params.grid.fill === 'row') { - showWarning('Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`'); - } - const prependSlidesIndexes = []; - const appendSlidesIndexes = []; - let activeIndex = swiper.activeIndex; - if (typeof activeSlideIndex === 'undefined') { - activeSlideIndex = swiper.getSlideIndex(slides.filter(el => el.classList.contains(params.slideActiveClass))[0]); - } else { - activeIndex = activeSlideIndex; - } - const isNext = direction === 'next' || !direction; - const isPrev = direction === 'prev' || !direction; - let slidesPrepended = 0; - let slidesAppended = 0; - const cols = gridEnabled ? Math.ceil(slides.length / params.grid.rows) : slides.length; - const activeColIndex = gridEnabled ? slides[activeSlideIndex].column : activeSlideIndex; - const activeColIndexWithShift = activeColIndex + (centeredSlides && typeof setTranslate === 'undefined' ? -slidesPerView / 2 + 0.5 : 0); - // prepend last slides before start - if (activeColIndexWithShift < loopedSlides) { - slidesPrepended = Math.max(loopedSlides - activeColIndexWithShift, slidesPerGroup); - for (let i = 0; i < loopedSlides - activeColIndexWithShift; i += 1) { - const index = i - Math.floor(i / cols) * cols; - if (gridEnabled) { - const colIndexToPrepend = cols - index - 1; - for (let i = slides.length - 1; i >= 0; i -= 1) { - if (slides[i].column === colIndexToPrepend) prependSlidesIndexes.push(i); - } - // slides.forEach((slide, slideIndex) => { - // if (slide.column === colIndexToPrepend) prependSlidesIndexes.push(slideIndex); - // }); - } else { - prependSlidesIndexes.push(cols - index - 1); - } - } - } else if (activeColIndexWithShift + slidesPerView > cols - loopedSlides) { - slidesAppended = Math.max(activeColIndexWithShift - (cols - loopedSlides * 2), slidesPerGroup); - for (let i = 0; i < slidesAppended; i += 1) { - const index = i - Math.floor(i / cols) * cols; - if (gridEnabled) { - slides.forEach((slide, slideIndex) => { - if (slide.column === index) appendSlidesIndexes.push(slideIndex); - }); - } else { - appendSlidesIndexes.push(index); - } - } - } - swiper.__preventObserver__ = true; - requestAnimationFrame(() => { - swiper.__preventObserver__ = false; - }); - if (isPrev) { - prependSlidesIndexes.forEach(index => { - slides[index].swiperLoopMoveDOM = true; - slidesEl.prepend(slides[index]); - slides[index].swiperLoopMoveDOM = false; - }); - } - if (isNext) { - appendSlidesIndexes.forEach(index => { - slides[index].swiperLoopMoveDOM = true; - slidesEl.append(slides[index]); - slides[index].swiperLoopMoveDOM = false; - }); - } - swiper.recalcSlides(); - if (params.slidesPerView === 'auto') { - swiper.updateSlides(); - } else if (gridEnabled && (prependSlidesIndexes.length > 0 && isPrev || appendSlidesIndexes.length > 0 && isNext)) { - swiper.slides.forEach((slide, slideIndex) => { - swiper.grid.updateSlide(slideIndex, slide, swiper.slides); - }); - } - if (params.watchSlidesProgress) { - swiper.updateSlidesOffset(); - } - if (slideTo) { - if (prependSlidesIndexes.length > 0 && isPrev) { - if (typeof slideRealIndex === 'undefined') { - const currentSlideTranslate = swiper.slidesGrid[activeIndex]; - const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended]; - const diff = newSlideTranslate - currentSlideTranslate; - if (byMousewheel) { - swiper.setTranslate(swiper.translate - diff); - } else { - swiper.slideTo(activeIndex + slidesPrepended, 0, false, true); - if (setTranslate) { - swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff; - swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff; - } - } - } else { - if (setTranslate) { - const shift = gridEnabled ? prependSlidesIndexes.length / params.grid.rows : prependSlidesIndexes.length; - swiper.slideTo(swiper.activeIndex + shift, 0, false, true); - swiper.touchEventsData.currentTranslate = swiper.translate; - } - } - } else if (appendSlidesIndexes.length > 0 && isNext) { - if (typeof slideRealIndex === 'undefined') { - const currentSlideTranslate = swiper.slidesGrid[activeIndex]; - const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended]; - const diff = newSlideTranslate - currentSlideTranslate; - if (byMousewheel) { - swiper.setTranslate(swiper.translate - diff); - } else { - swiper.slideTo(activeIndex - slidesAppended, 0, false, true); - if (setTranslate) { - swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff; - swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff; - } - } - } else { - const shift = gridEnabled ? appendSlidesIndexes.length / params.grid.rows : appendSlidesIndexes.length; - swiper.slideTo(swiper.activeIndex - shift, 0, false, true); - } - } - } - swiper.allowSlidePrev = allowSlidePrev; - swiper.allowSlideNext = allowSlideNext; - if (swiper.controller && swiper.controller.control && !byController) { - const loopParams = { - slideRealIndex, - direction, - setTranslate, - activeSlideIndex, - byController: true - }; - if (Array.isArray(swiper.controller.control)) { - swiper.controller.control.forEach(c => { - if (!c.destroyed && c.params.loop) c.loopFix({ - ...loopParams, - slideTo: c.params.slidesPerView === params.slidesPerView ? slideTo : false - }); - }); - } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) { - swiper.controller.control.loopFix({ - ...loopParams, - slideTo: swiper.controller.control.params.slidesPerView === params.slidesPerView ? slideTo : false - }); - } - } - swiper.emit('loopFix'); - } - - function loopDestroy() { - const swiper = this; - const { - params, - slidesEl - } = swiper; - if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return; - swiper.recalcSlides(); - const newSlidesOrder = []; - swiper.slides.forEach(slideEl => { - const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex; - newSlidesOrder[index] = slideEl; - }); - swiper.slides.forEach(slideEl => { - slideEl.removeAttribute('data-swiper-slide-index'); - }); - newSlidesOrder.forEach(slideEl => { - slidesEl.append(slideEl); - }); - swiper.recalcSlides(); - swiper.slideTo(swiper.realIndex, 0); - } - - var loop = { - loopCreate, - loopFix, - loopDestroy - }; - - function setGrabCursor(moving) { - const swiper = this; - if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return; - const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl; - if (swiper.isElement) { - swiper.__preventObserver__ = true; - } - el.style.cursor = 'move'; - el.style.cursor = moving ? 'grabbing' : 'grab'; - if (swiper.isElement) { - requestAnimationFrame(() => { - swiper.__preventObserver__ = false; - }); - } - } - - function unsetGrabCursor() { - const swiper = this; - if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) { - return; - } - if (swiper.isElement) { - swiper.__preventObserver__ = true; - } - swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = ''; - if (swiper.isElement) { - requestAnimationFrame(() => { - swiper.__preventObserver__ = false; - }); - } - } - - var grabCursor = { - setGrabCursor, - unsetGrabCursor - }; - - // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd - function closestElement(selector, base) { - if (base === void 0) { - base = this; - } - function __closestFrom(el) { - if (!el || el === getDocument() || el === getWindow()) return null; - if (el.assignedSlot) el = el.assignedSlot; - const found = el.closest(selector); - if (!found && !el.getRootNode) { - return null; - } - return found || __closestFrom(el.getRootNode().host); - } - return __closestFrom(base); - } - function preventEdgeSwipe(swiper, event, startX) { - const window = getWindow(); - const { - params - } = swiper; - const edgeSwipeDetection = params.edgeSwipeDetection; - const edgeSwipeThreshold = params.edgeSwipeThreshold; - if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) { - if (edgeSwipeDetection === 'prevent') { - event.preventDefault(); - return true; - } - return false; - } - return true; - } - function onTouchStart(event) { - const swiper = this; - const document = getDocument(); - let e = event; - if (e.originalEvent) e = e.originalEvent; - const data = swiper.touchEventsData; - if (e.type === 'pointerdown') { - if (data.pointerId !== null && data.pointerId !== e.pointerId) { - return; - } - data.pointerId = e.pointerId; - } else if (e.type === 'touchstart' && e.targetTouches.length === 1) { - data.touchId = e.targetTouches[0].identifier; - } - if (e.type === 'touchstart') { - // don't proceed touch event - preventEdgeSwipe(swiper, e, e.targetTouches[0].pageX); - return; - } - const { - params, - touches, - enabled - } = swiper; - if (!enabled) return; - if (!params.simulateTouch && e.pointerType === 'mouse') return; - if (swiper.animating && params.preventInteractionOnTransition) { - return; - } - if (!swiper.animating && params.cssMode && params.loop) { - swiper.loopFix(); - } - let targetEl = e.target; - if (params.touchEventsTarget === 'wrapper') { - if (!swiper.wrapperEl.contains(targetEl)) return; - } - if ('which' in e && e.which === 3) return; - if ('button' in e && e.button > 0) return; - if (data.isTouched && data.isMoved) return; - - // change target el for shadow root component - const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== ''; - // eslint-disable-next-line - const eventPath = e.composedPath ? e.composedPath() : e.path; - if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) { - targetEl = eventPath[0]; - } - const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`; - const isTargetShadow = !!(e.target && e.target.shadowRoot); - - // use closestElement for shadow root element to get the actual closest for nested shadow root element - if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) { - swiper.allowClick = true; - return; - } - if (params.swipeHandler) { - if (!targetEl.closest(params.swipeHandler)) return; - } - touches.currentX = e.pageX; - touches.currentY = e.pageY; - const startX = touches.currentX; - const startY = touches.currentY; - - // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore - - if (!preventEdgeSwipe(swiper, e, startX)) { - return; - } - Object.assign(data, { - isTouched: true, - isMoved: false, - allowTouchCallbacks: true, - isScrolling: undefined, - startMoving: undefined - }); - touches.startX = startX; - touches.startY = startY; - data.touchStartTime = now(); - swiper.allowClick = true; - swiper.updateSize(); - swiper.swipeDirection = undefined; - if (params.threshold > 0) data.allowThresholdMove = false; - let preventDefault = true; - if (targetEl.matches(data.focusableElements)) { - preventDefault = false; - if (targetEl.nodeName === 'SELECT') { - data.isTouched = false; - } - } - if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl) { - document.activeElement.blur(); - } - const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault; - if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) { - e.preventDefault(); - } - if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) { - swiper.freeMode.onTouchStart(); - } - swiper.emit('touchStart', e); - } - - function onTouchMove(event) { - const document = getDocument(); - const swiper = this; - const data = swiper.touchEventsData; - const { - params, - touches, - rtlTranslate: rtl, - enabled - } = swiper; - if (!enabled) return; - if (!params.simulateTouch && event.pointerType === 'mouse') return; - let e = event; - if (e.originalEvent) e = e.originalEvent; - if (e.type === 'pointermove') { - if (data.touchId !== null) return; // return from pointer if we use touch - const id = e.pointerId; - if (id !== data.pointerId) return; - } - let targetTouch; - if (e.type === 'touchmove') { - targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0]; - if (!targetTouch || targetTouch.identifier !== data.touchId) return; - } else { - targetTouch = e; - } - if (!data.isTouched) { - if (data.startMoving && data.isScrolling) { - swiper.emit('touchMoveOpposite', e); - } - return; - } - const pageX = targetTouch.pageX; - const pageY = targetTouch.pageY; - if (e.preventedByNestedSwiper) { - touches.startX = pageX; - touches.startY = pageY; - return; - } - if (!swiper.allowTouchMove) { - if (!e.target.matches(data.focusableElements)) { - swiper.allowClick = false; - } - if (data.isTouched) { - Object.assign(touches, { - startX: pageX, - startY: pageY, - currentX: pageX, - currentY: pageY - }); - data.touchStartTime = now(); - } - return; - } - if (params.touchReleaseOnEdges && !params.loop) { - if (swiper.isVertical()) { - // Vertical - if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) { - data.isTouched = false; - data.isMoved = false; - return; - } - } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) { - return; - } - } - if (document.activeElement) { - if (e.target === document.activeElement && e.target.matches(data.focusableElements)) { - data.isMoved = true; - swiper.allowClick = false; - return; - } - } - if (data.allowTouchCallbacks) { - swiper.emit('touchMove', e); - } - touches.previousX = touches.currentX; - touches.previousY = touches.currentY; - touches.currentX = pageX; - touches.currentY = pageY; - const diffX = touches.currentX - touches.startX; - const diffY = touches.currentY - touches.startY; - if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return; - if (typeof data.isScrolling === 'undefined') { - let touchAngle; - if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) { - data.isScrolling = false; - } else { - // eslint-disable-next-line - if (diffX * diffX + diffY * diffY >= 25) { - touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI; - data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle; - } - } - } - if (data.isScrolling) { - swiper.emit('touchMoveOpposite', e); - } - if (typeof data.startMoving === 'undefined') { - if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) { - data.startMoving = true; - } - } - if (data.isScrolling) { - data.isTouched = false; - return; - } - if (!data.startMoving) { - return; - } - swiper.allowClick = false; - if (!params.cssMode && e.cancelable) { - e.preventDefault(); - } - if (params.touchMoveStopPropagation && !params.nested) { - e.stopPropagation(); - } - let diff = swiper.isHorizontal() ? diffX : diffY; - let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY; - if (params.oneWayMovement) { - diff = Math.abs(diff) * (rtl ? 1 : -1); - touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1); - } - touches.diff = diff; - diff *= params.touchRatio; - if (rtl) { - diff = -diff; - touchesDiff = -touchesDiff; - } - const prevTouchesDirection = swiper.touchesDirection; - swiper.swipeDirection = diff > 0 ? 'prev' : 'next'; - swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next'; - const isLoop = swiper.params.loop && !params.cssMode; - const allowLoopFix = swiper.touchesDirection === 'next' && swiper.allowSlideNext || swiper.touchesDirection === 'prev' && swiper.allowSlidePrev; - if (!data.isMoved) { - if (isLoop && allowLoopFix) { - swiper.loopFix({ - direction: swiper.swipeDirection - }); - } - data.startTranslate = swiper.getTranslate(); - swiper.setTransition(0); - if (swiper.animating) { - const evt = new window.CustomEvent('transitionend', { - bubbles: true, - cancelable: true - }); - swiper.wrapperEl.dispatchEvent(evt); - } - data.allowMomentumBounce = false; - // Grab Cursor - if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) { - swiper.setGrabCursor(true); - } - swiper.emit('sliderFirstMove', e); - } - let loopFixed; - new Date().getTime(); - if (data.isMoved && data.allowThresholdMove && prevTouchesDirection !== swiper.touchesDirection && isLoop && allowLoopFix && Math.abs(diff) >= 1) { - Object.assign(touches, { - startX: pageX, - startY: pageY, - currentX: pageX, - currentY: pageY, - startTranslate: data.currentTranslate - }); - data.loopSwapReset = true; - data.startTranslate = data.currentTranslate; - return; - } - swiper.emit('sliderMove', e); - data.isMoved = true; - data.currentTranslate = diff + data.startTranslate; - let disableParentSwiper = true; - let resistanceRatio = params.resistanceRatio; - if (params.touchReleaseOnEdges) { - resistanceRatio = 0; - } - if (diff > 0) { - if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.slidesSizesGrid[swiper.activeIndex + 1] : swiper.minTranslate())) { - swiper.loopFix({ - direction: 'prev', - setTranslate: true, - activeSlideIndex: 0 - }); - } - if (data.currentTranslate > swiper.minTranslate()) { - disableParentSwiper = false; - if (params.resistance) { - data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio; - } - } - } else if (diff < 0) { - if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] : swiper.maxTranslate())) { - swiper.loopFix({ - direction: 'next', - setTranslate: true, - activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10))) - }); - } - if (data.currentTranslate < swiper.maxTranslate()) { - disableParentSwiper = false; - if (params.resistance) { - data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio; - } - } - } - if (disableParentSwiper) { - e.preventedByNestedSwiper = true; - } - - // Directions locks - if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) { - data.currentTranslate = data.startTranslate; - } - if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) { - data.currentTranslate = data.startTranslate; - } - if (!swiper.allowSlidePrev && !swiper.allowSlideNext) { - data.currentTranslate = data.startTranslate; - } - - // Threshold - if (params.threshold > 0) { - if (Math.abs(diff) > params.threshold || data.allowThresholdMove) { - if (!data.allowThresholdMove) { - data.allowThresholdMove = true; - touches.startX = touches.currentX; - touches.startY = touches.currentY; - data.currentTranslate = data.startTranslate; - touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY; - return; - } - } else { - data.currentTranslate = data.startTranslate; - return; - } - } - if (!params.followFinger || params.cssMode) return; - - // Update active index in free mode - if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) { - swiper.updateActiveIndex(); - swiper.updateSlidesClasses(); - } - if (params.freeMode && params.freeMode.enabled && swiper.freeMode) { - swiper.freeMode.onTouchMove(); - } - // Update progress - swiper.updateProgress(data.currentTranslate); - // Update translate - swiper.setTranslate(data.currentTranslate); - } - - function onTouchEnd(event) { - const swiper = this; - const data = swiper.touchEventsData; - let e = event; - if (e.originalEvent) e = e.originalEvent; - let targetTouch; - const isTouchEvent = e.type === 'touchend' || e.type === 'touchcancel'; - if (!isTouchEvent) { - if (data.touchId !== null) return; // return from pointer if we use touch - if (e.pointerId !== data.pointerId) return; - targetTouch = e; - } else { - targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0]; - if (!targetTouch || targetTouch.identifier !== data.touchId) return; - } - if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(e.type)) { - const proceed = ['pointercancel', 'contextmenu'].includes(e.type) && (swiper.browser.isSafari || swiper.browser.isWebView); - if (!proceed) { - return; - } - } - data.pointerId = null; - data.touchId = null; - const { - params, - touches, - rtlTranslate: rtl, - slidesGrid, - enabled - } = swiper; - if (!enabled) return; - if (!params.simulateTouch && e.pointerType === 'mouse') return; - if (data.allowTouchCallbacks) { - swiper.emit('touchEnd', e); - } - data.allowTouchCallbacks = false; - if (!data.isTouched) { - if (data.isMoved && params.grabCursor) { - swiper.setGrabCursor(false); - } - data.isMoved = false; - data.startMoving = false; - return; - } - - // Return Grab Cursor - if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) { - swiper.setGrabCursor(false); - } - - // Time diff - const touchEndTime = now(); - const timeDiff = touchEndTime - data.touchStartTime; - - // Tap, doubleTap, Click - if (swiper.allowClick) { - const pathTree = e.path || e.composedPath && e.composedPath(); - swiper.updateClickedSlide(pathTree && pathTree[0] || e.target, pathTree); - swiper.emit('tap click', e); - if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) { - swiper.emit('doubleTap doubleClick', e); - } - } - data.lastClickTime = now(); - nextTick(() => { - if (!swiper.destroyed) swiper.allowClick = true; - }); - if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 && !data.loopSwapReset || data.currentTranslate === data.startTranslate && !data.loopSwapReset) { - data.isTouched = false; - data.isMoved = false; - data.startMoving = false; - return; - } - data.isTouched = false; - data.isMoved = false; - data.startMoving = false; - let currentPos; - if (params.followFinger) { - currentPos = rtl ? swiper.translate : -swiper.translate; - } else { - currentPos = -data.currentTranslate; - } - if (params.cssMode) { - return; - } - if (params.freeMode && params.freeMode.enabled) { - swiper.freeMode.onTouchEnd({ - currentPos - }); - return; - } - - // Find current slide - const swipeToLast = currentPos >= -swiper.maxTranslate() && !swiper.params.loop; - let stopIndex = 0; - let groupSize = swiper.slidesSizesGrid[0]; - for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) { - const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup; - if (typeof slidesGrid[i + increment] !== 'undefined') { - if (swipeToLast || currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) { - stopIndex = i; - groupSize = slidesGrid[i + increment] - slidesGrid[i]; - } - } else if (swipeToLast || currentPos >= slidesGrid[i]) { - stopIndex = i; - groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2]; - } - } - let rewindFirstIndex = null; - let rewindLastIndex = null; - if (params.rewind) { - if (swiper.isBeginning) { - rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1; - } else if (swiper.isEnd) { - rewindFirstIndex = 0; - } - } - // Find current slide size - const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize; - const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup; - if (timeDiff > params.longSwipesMs) { - // Long touches - if (!params.longSwipes) { - swiper.slideTo(swiper.activeIndex); - return; - } - if (swiper.swipeDirection === 'next') { - if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex); - } - if (swiper.swipeDirection === 'prev') { - if (ratio > 1 - params.longSwipesRatio) { - swiper.slideTo(stopIndex + increment); - } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) { - swiper.slideTo(rewindLastIndex); - } else { - swiper.slideTo(stopIndex); - } - } - } else { - // Short swipes - if (!params.shortSwipes) { - swiper.slideTo(swiper.activeIndex); - return; - } - const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl); - if (!isNavButtonTarget) { - if (swiper.swipeDirection === 'next') { - swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment); - } - if (swiper.swipeDirection === 'prev') { - swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex); - } - } else if (e.target === swiper.navigation.nextEl) { - swiper.slideTo(stopIndex + increment); - } else { - swiper.slideTo(stopIndex); - } - } - } - - function onResize() { - const swiper = this; - const { - params, - el - } = swiper; - if (el && el.offsetWidth === 0) return; - - // Breakpoints - if (params.breakpoints) { - swiper.setBreakpoint(); - } - - // Save locks - const { - allowSlideNext, - allowSlidePrev, - snapGrid - } = swiper; - const isVirtual = swiper.virtual && swiper.params.virtual.enabled; - - // Disable locks on resize - swiper.allowSlideNext = true; - swiper.allowSlidePrev = true; - swiper.updateSize(); - swiper.updateSlides(); - swiper.updateSlidesClasses(); - const isVirtualLoop = isVirtual && params.loop; - if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) { - swiper.slideTo(swiper.slides.length - 1, 0, false, true); - } else { - if (swiper.params.loop && !isVirtual) { - swiper.slideToLoop(swiper.realIndex, 0, false, true); - } else { - swiper.slideTo(swiper.activeIndex, 0, false, true); - } - } - if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) { - clearTimeout(swiper.autoplay.resizeTimeout); - swiper.autoplay.resizeTimeout = setTimeout(() => { - if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) { - swiper.autoplay.resume(); - } - }, 500); - } - // Return locks after resize - swiper.allowSlidePrev = allowSlidePrev; - swiper.allowSlideNext = allowSlideNext; - if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) { - swiper.checkOverflow(); - } - } - - function onClick(e) { - const swiper = this; - if (!swiper.enabled) return; - if (!swiper.allowClick) { - if (swiper.params.preventClicks) e.preventDefault(); - if (swiper.params.preventClicksPropagation && swiper.animating) { - e.stopPropagation(); - e.stopImmediatePropagation(); - } - } - } - - function onScroll() { - const swiper = this; - const { - wrapperEl, - rtlTranslate, - enabled - } = swiper; - if (!enabled) return; - swiper.previousTranslate = swiper.translate; - if (swiper.isHorizontal()) { - swiper.translate = -wrapperEl.scrollLeft; - } else { - swiper.translate = -wrapperEl.scrollTop; - } - // eslint-disable-next-line - if (swiper.translate === 0) swiper.translate = 0; - swiper.updateActiveIndex(); - swiper.updateSlidesClasses(); - let newProgress; - const translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); - if (translatesDiff === 0) { - newProgress = 0; - } else { - newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff; - } - if (newProgress !== swiper.progress) { - swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate); - } - swiper.emit('setTranslate', swiper.translate, false); - } - - function onLoad(e) { - const swiper = this; - processLazyPreloader(swiper, e.target); - if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) { - return; - } - swiper.update(); - } - - function onDocumentTouchStart() { - const swiper = this; - if (swiper.documentTouchHandlerProceeded) return; - swiper.documentTouchHandlerProceeded = true; - if (swiper.params.touchReleaseOnEdges) { - swiper.el.style.touchAction = 'auto'; - } - } - - const events = (swiper, method) => { - const document = getDocument(); - const { - params, - el, - wrapperEl, - device - } = swiper; - const capture = !!params.nested; - const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener'; - const swiperMethod = method; - - // Touch Events - document[domMethod]('touchstart', swiper.onDocumentTouchStart, { - passive: false, - capture - }); - el[domMethod]('touchstart', swiper.onTouchStart, { - passive: false - }); - el[domMethod]('pointerdown', swiper.onTouchStart, { - passive: false - }); - document[domMethod]('touchmove', swiper.onTouchMove, { - passive: false, - capture - }); - document[domMethod]('pointermove', swiper.onTouchMove, { - passive: false, - capture - }); - document[domMethod]('touchend', swiper.onTouchEnd, { - passive: true - }); - document[domMethod]('pointerup', swiper.onTouchEnd, { - passive: true - }); - document[domMethod]('pointercancel', swiper.onTouchEnd, { - passive: true - }); - document[domMethod]('touchcancel', swiper.onTouchEnd, { - passive: true - }); - document[domMethod]('pointerout', swiper.onTouchEnd, { - passive: true - }); - document[domMethod]('pointerleave', swiper.onTouchEnd, { - passive: true - }); - document[domMethod]('contextmenu', swiper.onTouchEnd, { - passive: true - }); - - // Prevent Links Clicks - if (params.preventClicks || params.preventClicksPropagation) { - el[domMethod]('click', swiper.onClick, true); - } - if (params.cssMode) { - wrapperEl[domMethod]('scroll', swiper.onScroll); - } - - // Resize handler - if (params.updateOnWindowResize) { - swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true); - } else { - swiper[swiperMethod]('observerUpdate', onResize, true); - } - - // Images loader - el[domMethod]('load', swiper.onLoad, { - capture: true - }); - }; - function attachEvents() { - const swiper = this; - const { - params - } = swiper; - swiper.onTouchStart = onTouchStart.bind(swiper); - swiper.onTouchMove = onTouchMove.bind(swiper); - swiper.onTouchEnd = onTouchEnd.bind(swiper); - swiper.onDocumentTouchStart = onDocumentTouchStart.bind(swiper); - if (params.cssMode) { - swiper.onScroll = onScroll.bind(swiper); - } - swiper.onClick = onClick.bind(swiper); - swiper.onLoad = onLoad.bind(swiper); - events(swiper, 'on'); - } - function detachEvents() { - const swiper = this; - events(swiper, 'off'); - } - var events$1 = { - attachEvents, - detachEvents - }; - - const isGridEnabled = (swiper, params) => { - return swiper.grid && params.grid && params.grid.rows > 1; - }; - function setBreakpoint() { - const swiper = this; - const { - realIndex, - initialized, - params, - el - } = swiper; - const breakpoints = params.breakpoints; - if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; - - // Get breakpoint for window width and update parameters - const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el); - if (!breakpoint || swiper.currentBreakpoint === breakpoint) return; - const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined; - const breakpointParams = breakpointOnlyParams || swiper.originalParams; - const wasMultiRow = isGridEnabled(swiper, params); - const isMultiRow = isGridEnabled(swiper, breakpointParams); - const wasEnabled = params.enabled; - if (wasMultiRow && !isMultiRow) { - el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`); - swiper.emitContainerClasses(); - } else if (!wasMultiRow && isMultiRow) { - el.classList.add(`${params.containerModifierClass}grid`); - if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') { - el.classList.add(`${params.containerModifierClass}grid-column`); - } - swiper.emitContainerClasses(); - } - - // Toggle navigation, pagination, scrollbar - ['navigation', 'pagination', 'scrollbar'].forEach(prop => { - if (typeof breakpointParams[prop] === 'undefined') return; - const wasModuleEnabled = params[prop] && params[prop].enabled; - const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled; - if (wasModuleEnabled && !isModuleEnabled) { - swiper[prop].disable(); - } - if (!wasModuleEnabled && isModuleEnabled) { - swiper[prop].enable(); - } - }); - const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction; - const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged); - const wasLoop = params.loop; - if (directionChanged && initialized) { - swiper.changeDirection(); - } - extend(swiper.params, breakpointParams); - const isEnabled = swiper.params.enabled; - const hasLoop = swiper.params.loop; - Object.assign(swiper, { - allowTouchMove: swiper.params.allowTouchMove, - allowSlideNext: swiper.params.allowSlideNext, - allowSlidePrev: swiper.params.allowSlidePrev - }); - if (wasEnabled && !isEnabled) { - swiper.disable(); - } else if (!wasEnabled && isEnabled) { - swiper.enable(); - } - swiper.currentBreakpoint = breakpoint; - swiper.emit('_beforeBreakpoint', breakpointParams); - if (initialized) { - if (needsReLoop) { - swiper.loopDestroy(); - swiper.loopCreate(realIndex); - swiper.updateSlides(); - } else if (!wasLoop && hasLoop) { - swiper.loopCreate(realIndex); - swiper.updateSlides(); - } else if (wasLoop && !hasLoop) { - swiper.loopDestroy(); - } - } - swiper.emit('breakpoint', breakpointParams); - } - - function getBreakpoint(breakpoints, base, containerEl) { - if (base === void 0) { - base = 'window'; - } - if (!breakpoints || base === 'container' && !containerEl) return undefined; - let breakpoint = false; - const window = getWindow(); - const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight; - const points = Object.keys(breakpoints).map(point => { - if (typeof point === 'string' && point.indexOf('@') === 0) { - const minRatio = parseFloat(point.substr(1)); - const value = currentHeight * minRatio; - return { - value, - point - }; - } - return { - value: point, - point - }; - }); - points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10)); - for (let i = 0; i < points.length; i += 1) { - const { - point, - value - } = points[i]; - if (base === 'window') { - if (window.matchMedia(`(min-width: ${value}px)`).matches) { - breakpoint = point; - } - } else if (value <= containerEl.clientWidth) { - breakpoint = point; - } - } - return breakpoint || 'max'; - } - - var breakpoints = { - setBreakpoint, - getBreakpoint - }; - - function prepareClasses(entries, prefix) { - const resultClasses = []; - entries.forEach(item => { - if (typeof item === 'object') { - Object.keys(item).forEach(classNames => { - if (item[classNames]) { - resultClasses.push(prefix + classNames); - } - }); - } else if (typeof item === 'string') { - resultClasses.push(prefix + item); - } - }); - return resultClasses; - } - function addClasses() { - const swiper = this; - const { - classNames, - params, - rtl, - el, - device - } = swiper; - // prettier-ignore - const suffixes = prepareClasses(['initialized', params.direction, { - 'free-mode': swiper.params.freeMode && params.freeMode.enabled - }, { - 'autoheight': params.autoHeight - }, { - 'rtl': rtl - }, { - 'grid': params.grid && params.grid.rows > 1 - }, { - 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column' - }, { - 'android': device.android - }, { - 'ios': device.ios - }, { - 'css-mode': params.cssMode - }, { - 'centered': params.cssMode && params.centeredSlides - }, { - 'watch-progress': params.watchSlidesProgress - }], params.containerModifierClass); - classNames.push(...suffixes); - el.classList.add(...classNames); - swiper.emitContainerClasses(); - } - - function removeClasses() { - const swiper = this; - const { - el, - classNames - } = swiper; - el.classList.remove(...classNames); - swiper.emitContainerClasses(); - } - - var classes = { - addClasses, - removeClasses - }; - - function checkOverflow() { - const swiper = this; - const { - isLocked: wasLocked, - params - } = swiper; - const { - slidesOffsetBefore - } = params; - if (slidesOffsetBefore) { - const lastSlideIndex = swiper.slides.length - 1; - const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2; - swiper.isLocked = swiper.size > lastSlideRightEdge; - } else { - swiper.isLocked = swiper.snapGrid.length === 1; - } - if (params.allowSlideNext === true) { - swiper.allowSlideNext = !swiper.isLocked; - } - if (params.allowSlidePrev === true) { - swiper.allowSlidePrev = !swiper.isLocked; - } - if (wasLocked && wasLocked !== swiper.isLocked) { - swiper.isEnd = false; - } - if (wasLocked !== swiper.isLocked) { - swiper.emit(swiper.isLocked ? 'lock' : 'unlock'); - } - } - var checkOverflow$1 = { - checkOverflow - }; - - var defaults = { - init: true, - direction: 'horizontal', - oneWayMovement: false, - touchEventsTarget: 'wrapper', - initialSlide: 0, - speed: 300, - cssMode: false, - updateOnWindowResize: true, - resizeObserver: true, - nested: false, - createElements: false, - eventsPrefix: 'swiper', - enabled: true, - focusableElements: 'input, select, option, textarea, button, video, label', - // Overrides - width: null, - height: null, - // - preventInteractionOnTransition: false, - // ssr - userAgent: null, - url: null, - // To support iOS's swipe-to-go-back gesture (when being used in-app). - edgeSwipeDetection: false, - edgeSwipeThreshold: 20, - // Autoheight - autoHeight: false, - // Set wrapper width - setWrapperSize: false, - // Virtual Translate - virtualTranslate: false, - // Effects - effect: 'slide', - // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip' - - // Breakpoints - breakpoints: undefined, - breakpointsBase: 'window', - // Slides grid - spaceBetween: 0, - slidesPerView: 1, - slidesPerGroup: 1, - slidesPerGroupSkip: 0, - slidesPerGroupAuto: false, - centeredSlides: false, - centeredSlidesBounds: false, - slidesOffsetBefore: 0, - // in px - slidesOffsetAfter: 0, - // in px - normalizeSlideIndex: true, - centerInsufficientSlides: false, - // Disable swiper and hide navigation when container not overflow - watchOverflow: true, - // Round length - roundLengths: false, - // Touches - touchRatio: 1, - touchAngle: 45, - simulateTouch: true, - shortSwipes: true, - longSwipes: true, - longSwipesRatio: 0.5, - longSwipesMs: 300, - followFinger: true, - allowTouchMove: true, - threshold: 5, - touchMoveStopPropagation: false, - touchStartPreventDefault: true, - touchStartForcePreventDefault: false, - touchReleaseOnEdges: false, - // Unique Navigation Elements - uniqueNavElements: true, - // Resistance - resistance: true, - resistanceRatio: 0.85, - // Progress - watchSlidesProgress: false, - // Cursor - grabCursor: false, - // Clicks - preventClicks: true, - preventClicksPropagation: true, - slideToClickedSlide: false, - // loop - loop: false, - loopAddBlankSlides: true, - loopAdditionalSlides: 0, - loopPreventsSliding: true, - // rewind - rewind: false, - // Swiping/no swiping - allowSlidePrev: true, - allowSlideNext: true, - swipeHandler: null, - // '.swipe-handler', - noSwiping: true, - noSwipingClass: 'swiper-no-swiping', - noSwipingSelector: null, - // Passive Listeners - passiveListeners: true, - maxBackfaceHiddenSlides: 10, - // NS - containerModifierClass: 'swiper-', - // NEW - slideClass: 'swiper-slide', - slideBlankClass: 'swiper-slide-blank', - slideActiveClass: 'swiper-slide-active', - slideVisibleClass: 'swiper-slide-visible', - slideFullyVisibleClass: 'swiper-slide-fully-visible', - slideNextClass: 'swiper-slide-next', - slidePrevClass: 'swiper-slide-prev', - wrapperClass: 'swiper-wrapper', - lazyPreloaderClass: 'swiper-lazy-preloader', - lazyPreloadPrevNext: 0, - // Callbacks - runCallbacksOnInit: true, - // Internals - _emitClasses: false - }; - - function moduleExtendParams(params, allModulesParams) { - return function extendParams(obj) { - if (obj === void 0) { - obj = {}; - } - const moduleParamName = Object.keys(obj)[0]; - const moduleParams = obj[moduleParamName]; - if (typeof moduleParams !== 'object' || moduleParams === null) { - extend(allModulesParams, obj); - return; - } - if (params[moduleParamName] === true) { - params[moduleParamName] = { - enabled: true - }; - } - if (moduleParamName === 'navigation' && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].prevEl && !params[moduleParamName].nextEl) { - params[moduleParamName].auto = true; - } - if (['pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].el) { - params[moduleParamName].auto = true; - } - if (!(moduleParamName in params && 'enabled' in moduleParams)) { - extend(allModulesParams, obj); - return; - } - if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) { - params[moduleParamName].enabled = true; - } - if (!params[moduleParamName]) params[moduleParamName] = { - enabled: false - }; - extend(allModulesParams, obj); - }; - } - - /* eslint no-param-reassign: "off" */ - const prototypes = { - eventsEmitter, - update, - translate, - transition, - slide, - loop, - grabCursor, - events: events$1, - breakpoints, - checkOverflow: checkOverflow$1, - classes - }; - const extendedDefaults = {}; - class Swiper { - constructor() { - let el; - let params; - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') { - params = args[0]; - } else { - [el, params] = args; - } - if (!params) params = {}; - params = extend({}, params); - if (el && !params.el) params.el = el; - const document = getDocument(); - if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) { - const swipers = []; - document.querySelectorAll(params.el).forEach(containerEl => { - const newParams = extend({}, params, { - el: containerEl - }); - swipers.push(new Swiper(newParams)); - }); - // eslint-disable-next-line no-constructor-return - return swipers; - } - - // Swiper Instance - const swiper = this; - swiper.__swiper__ = true; - swiper.support = getSupport(); - swiper.device = getDevice({ - userAgent: params.userAgent - }); - swiper.browser = getBrowser(); - swiper.eventsListeners = {}; - swiper.eventsAnyListeners = []; - swiper.modules = [...swiper.__modules__]; - if (params.modules && Array.isArray(params.modules)) { - swiper.modules.push(...params.modules); - } - const allModulesParams = {}; - swiper.modules.forEach(mod => { - mod({ - params, - swiper, - extendParams: moduleExtendParams(params, allModulesParams), - on: swiper.on.bind(swiper), - once: swiper.once.bind(swiper), - off: swiper.off.bind(swiper), - emit: swiper.emit.bind(swiper) - }); - }); - - // Extend defaults with modules params - const swiperParams = extend({}, defaults, allModulesParams); - - // Extend defaults with passed params - swiper.params = extend({}, swiperParams, extendedDefaults, params); - swiper.originalParams = extend({}, swiper.params); - swiper.passedParams = extend({}, params); - - // add event listeners - if (swiper.params && swiper.params.on) { - Object.keys(swiper.params.on).forEach(eventName => { - swiper.on(eventName, swiper.params.on[eventName]); - }); - } - if (swiper.params && swiper.params.onAny) { - swiper.onAny(swiper.params.onAny); - } - - // Extend Swiper - Object.assign(swiper, { - enabled: swiper.params.enabled, - el, - // Classes - classNames: [], - // Slides - slides: [], - slidesGrid: [], - snapGrid: [], - slidesSizesGrid: [], - // isDirection - isHorizontal() { - return swiper.params.direction === 'horizontal'; - }, - isVertical() { - return swiper.params.direction === 'vertical'; - }, - // Indexes - activeIndex: 0, - realIndex: 0, - // - isBeginning: true, - isEnd: false, - // Props - translate: 0, - previousTranslate: 0, - progress: 0, - velocity: 0, - animating: false, - cssOverflowAdjustment() { - // Returns 0 unless `translate` is > 2**23 - // Should be subtracted from css values to prevent overflow - return Math.trunc(this.translate / 2 ** 23) * 2 ** 23; - }, - // Locks - allowSlideNext: swiper.params.allowSlideNext, - allowSlidePrev: swiper.params.allowSlidePrev, - // Touch Events - touchEventsData: { - isTouched: undefined, - isMoved: undefined, - allowTouchCallbacks: undefined, - touchStartTime: undefined, - isScrolling: undefined, - currentTranslate: undefined, - startTranslate: undefined, - allowThresholdMove: undefined, - // Form elements to match - focusableElements: swiper.params.focusableElements, - // Last click time - lastClickTime: 0, - clickTimeout: undefined, - // Velocities - velocities: [], - allowMomentumBounce: undefined, - startMoving: undefined, - pointerId: null, - touchId: null - }, - // Clicks - allowClick: true, - // Touches - allowTouchMove: swiper.params.allowTouchMove, - touches: { - startX: 0, - startY: 0, - currentX: 0, - currentY: 0, - diff: 0 - }, - // Images - imagesToLoad: [], - imagesLoaded: 0 - }); - swiper.emit('_swiper'); - - // Init - if (swiper.params.init) { - swiper.init(); - } - - // Return app instance - // eslint-disable-next-line no-constructor-return - return swiper; - } - getDirectionLabel(property) { - if (this.isHorizontal()) { - return property; - } - // prettier-ignore - return { - 'width': 'height', - 'margin-top': 'margin-left', - 'margin-bottom ': 'margin-right', - 'margin-left': 'margin-top', - 'margin-right': 'margin-bottom', - 'padding-left': 'padding-top', - 'padding-right': 'padding-bottom', - 'marginRight': 'marginBottom' - }[property]; - } - getSlideIndex(slideEl) { - const { - slidesEl, - params - } = this; - const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`); - const firstSlideIndex = elementIndex(slides[0]); - return elementIndex(slideEl) - firstSlideIndex; - } - getSlideIndexByData(index) { - return this.getSlideIndex(this.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index)[0]); - } - recalcSlides() { - const swiper = this; - const { - slidesEl, - params - } = swiper; - swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`); - } - enable() { - const swiper = this; - if (swiper.enabled) return; - swiper.enabled = true; - if (swiper.params.grabCursor) { - swiper.setGrabCursor(); - } - swiper.emit('enable'); - } - disable() { - const swiper = this; - if (!swiper.enabled) return; - swiper.enabled = false; - if (swiper.params.grabCursor) { - swiper.unsetGrabCursor(); - } - swiper.emit('disable'); - } - setProgress(progress, speed) { - const swiper = this; - progress = Math.min(Math.max(progress, 0), 1); - const min = swiper.minTranslate(); - const max = swiper.maxTranslate(); - const current = (max - min) * progress + min; - swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed); - swiper.updateActiveIndex(); - swiper.updateSlidesClasses(); - } - emitContainerClasses() { - const swiper = this; - if (!swiper.params._emitClasses || !swiper.el) return; - const cls = swiper.el.className.split(' ').filter(className => { - return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0; - }); - swiper.emit('_containerClasses', cls.join(' ')); - } - getSlideClasses(slideEl) { - const swiper = this; - if (swiper.destroyed) return ''; - return slideEl.className.split(' ').filter(className => { - return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0; - }).join(' '); - } - emitSlidesClasses() { - const swiper = this; - if (!swiper.params._emitClasses || !swiper.el) return; - const updates = []; - swiper.slides.forEach(slideEl => { - const classNames = swiper.getSlideClasses(slideEl); - updates.push({ - slideEl, - classNames - }); - swiper.emit('_slideClass', slideEl, classNames); - }); - swiper.emit('_slideClasses', updates); - } - slidesPerViewDynamic(view, exact) { - if (view === void 0) { - view = 'current'; - } - if (exact === void 0) { - exact = false; - } - const swiper = this; - const { - params, - slides, - slidesGrid, - slidesSizesGrid, - size: swiperSize, - activeIndex - } = swiper; - let spv = 1; - if (typeof params.slidesPerView === 'number') return params.slidesPerView; - if (params.centeredSlides) { - let slideSize = slides[activeIndex] ? slides[activeIndex].swiperSlideSize : 0; - let breakLoop; - for (let i = activeIndex + 1; i < slides.length; i += 1) { - if (slides[i] && !breakLoop) { - slideSize += slides[i].swiperSlideSize; - spv += 1; - if (slideSize > swiperSize) breakLoop = true; - } - } - for (let i = activeIndex - 1; i >= 0; i -= 1) { - if (slides[i] && !breakLoop) { - slideSize += slides[i].swiperSlideSize; - spv += 1; - if (slideSize > swiperSize) breakLoop = true; - } - } - } else { - // eslint-disable-next-line - if (view === 'current') { - for (let i = activeIndex + 1; i < slides.length; i += 1) { - const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize; - if (slideInView) { - spv += 1; - } - } - } else { - // previous - for (let i = activeIndex - 1; i >= 0; i -= 1) { - const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize; - if (slideInView) { - spv += 1; - } - } - } - } - return spv; - } - update() { - const swiper = this; - if (!swiper || swiper.destroyed) return; - const { - snapGrid, - params - } = swiper; - // Breakpoints - if (params.breakpoints) { - swiper.setBreakpoint(); - } - [...swiper.el.querySelectorAll('[loading="lazy"]')].forEach(imageEl => { - if (imageEl.complete) { - processLazyPreloader(swiper, imageEl); - } - }); - swiper.updateSize(); - swiper.updateSlides(); - swiper.updateProgress(); - swiper.updateSlidesClasses(); - function setTranslate() { - const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate; - const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate()); - swiper.setTranslate(newTranslate); - swiper.updateActiveIndex(); - swiper.updateSlidesClasses(); - } - let translated; - if (params.freeMode && params.freeMode.enabled && !params.cssMode) { - setTranslate(); - if (params.autoHeight) { - swiper.updateAutoHeight(); - } - } else { - if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) { - const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides; - translated = swiper.slideTo(slides.length - 1, 0, false, true); - } else { - translated = swiper.slideTo(swiper.activeIndex, 0, false, true); - } - if (!translated) { - setTranslate(); - } - } - if (params.watchOverflow && snapGrid !== swiper.snapGrid) { - swiper.checkOverflow(); - } - swiper.emit('update'); - } - changeDirection(newDirection, needUpdate) { - if (needUpdate === void 0) { - needUpdate = true; - } - const swiper = this; - const currentDirection = swiper.params.direction; - if (!newDirection) { - // eslint-disable-next-line - newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal'; - } - if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') { - return swiper; - } - swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`); - swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`); - swiper.emitContainerClasses(); - swiper.params.direction = newDirection; - swiper.slides.forEach(slideEl => { - if (newDirection === 'vertical') { - slideEl.style.width = ''; - } else { - slideEl.style.height = ''; - } - }); - swiper.emit('changeDirection'); - if (needUpdate) swiper.update(); - return swiper; - } - changeLanguageDirection(direction) { - const swiper = this; - if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return; - swiper.rtl = direction === 'rtl'; - swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl; - if (swiper.rtl) { - swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`); - swiper.el.dir = 'rtl'; - } else { - swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`); - swiper.el.dir = 'ltr'; - } - swiper.update(); - } - mount(element) { - const swiper = this; - if (swiper.mounted) return true; - - // Find el - let el = element || swiper.params.el; - if (typeof el === 'string') { - el = document.querySelector(el); - } - if (!el) { - return false; - } - el.swiper = swiper; - if (el.parentNode && el.parentNode.host && el.parentNode.host.nodeName === 'SWIPER-CONTAINER') { - swiper.isElement = true; - } - const getWrapperSelector = () => { - return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`; - }; - const getWrapper = () => { - if (el && el.shadowRoot && el.shadowRoot.querySelector) { - const res = el.shadowRoot.querySelector(getWrapperSelector()); - // Children needs to return slot items - return res; - } - return elementChildren(el, getWrapperSelector())[0]; - }; - // Find Wrapper - let wrapperEl = getWrapper(); - if (!wrapperEl && swiper.params.createElements) { - wrapperEl = createElement('div', swiper.params.wrapperClass); - el.append(wrapperEl); - elementChildren(el, `.${swiper.params.slideClass}`).forEach(slideEl => { - wrapperEl.append(slideEl); - }); - } - Object.assign(swiper, { - el, - wrapperEl, - slidesEl: swiper.isElement && !el.parentNode.host.slideSlots ? el.parentNode.host : wrapperEl, - hostEl: swiper.isElement ? el.parentNode.host : el, - mounted: true, - // RTL - rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl', - rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'), - wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box' - }); - return true; - } - init(el) { - const swiper = this; - if (swiper.initialized) return swiper; - const mounted = swiper.mount(el); - if (mounted === false) return swiper; - swiper.emit('beforeInit'); - - // Set breakpoint - if (swiper.params.breakpoints) { - swiper.setBreakpoint(); - } - - // Add Classes - swiper.addClasses(); - - // Update size - swiper.updateSize(); - - // Update slides - swiper.updateSlides(); - if (swiper.params.watchOverflow) { - swiper.checkOverflow(); - } - - // Set Grab Cursor - if (swiper.params.grabCursor && swiper.enabled) { - swiper.setGrabCursor(); - } - - // Slide To Initial Slide - if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) { - swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true); - } else { - swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true); - } - - // Create loop - if (swiper.params.loop) { - swiper.loopCreate(); - } - - // Attach events - swiper.attachEvents(); - const lazyElements = [...swiper.el.querySelectorAll('[loading="lazy"]')]; - if (swiper.isElement) { - lazyElements.push(...swiper.hostEl.querySelectorAll('[loading="lazy"]')); - } - lazyElements.forEach(imageEl => { - if (imageEl.complete) { - processLazyPreloader(swiper, imageEl); - } else { - imageEl.addEventListener('load', e => { - processLazyPreloader(swiper, e.target); - }); - } - }); - preload(swiper); - - // Init Flag - swiper.initialized = true; - preload(swiper); - - // Emit - swiper.emit('init'); - swiper.emit('afterInit'); - return swiper; - } - destroy(deleteInstance, cleanStyles) { - if (deleteInstance === void 0) { - deleteInstance = true; - } - if (cleanStyles === void 0) { - cleanStyles = true; - } - const swiper = this; - const { - params, - el, - wrapperEl, - slides - } = swiper; - if (typeof swiper.params === 'undefined' || swiper.destroyed) { - return null; - } - swiper.emit('beforeDestroy'); - - // Init Flag - swiper.initialized = false; - - // Detach events - swiper.detachEvents(); - - // Destroy loop - if (params.loop) { - swiper.loopDestroy(); - } - - // Cleanup styles - if (cleanStyles) { - swiper.removeClasses(); - el.removeAttribute('style'); - wrapperEl.removeAttribute('style'); - if (slides && slides.length) { - slides.forEach(slideEl => { - slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass); - slideEl.removeAttribute('style'); - slideEl.removeAttribute('data-swiper-slide-index'); - }); - } - } - swiper.emit('destroy'); - - // Detach emitter events - Object.keys(swiper.eventsListeners).forEach(eventName => { - swiper.off(eventName); - }); - if (deleteInstance !== false) { - swiper.el.swiper = null; - deleteProps(swiper); - } - swiper.destroyed = true; - return null; - } - static extendDefaults(newDefaults) { - extend(extendedDefaults, newDefaults); - } - static get extendedDefaults() { - return extendedDefaults; - } - static get defaults() { - return defaults; - } - static installModule(mod) { - if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = []; - const modules = Swiper.prototype.__modules__; - if (typeof mod === 'function' && modules.indexOf(mod) < 0) { - modules.push(mod); - } - } - static use(module) { - if (Array.isArray(module)) { - module.forEach(m => Swiper.installModule(m)); - return Swiper; - } - Swiper.installModule(module); - return Swiper; - } - } - Object.keys(prototypes).forEach(prototypeGroup => { - Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => { - Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod]; - }); - }); - Swiper.use([Resize, Observer]); - - function Virtual(_ref) { - let { - swiper, - extendParams, - on, - emit - } = _ref; - extendParams({ - virtual: { - enabled: false, - slides: [], - cache: true, - renderSlide: null, - renderExternal: null, - renderExternalUpdate: true, - addSlidesBefore: 0, - addSlidesAfter: 0 - } - }); - let cssModeTimeout; - const document = getDocument(); - swiper.virtual = { - cache: {}, - from: undefined, - to: undefined, - slides: [], - offset: 0, - slidesGrid: [] - }; - const tempDOM = document.createElement('div'); - function renderSlide(slide, index) { - const params = swiper.params.virtual; - if (params.cache && swiper.virtual.cache[index]) { - return swiper.virtual.cache[index]; - } - // eslint-disable-next-line - let slideEl; - if (params.renderSlide) { - slideEl = params.renderSlide.call(swiper, slide, index); - if (typeof slideEl === 'string') { - tempDOM.innerHTML = slideEl; - slideEl = tempDOM.children[0]; - } - } else if (swiper.isElement) { - slideEl = createElement('swiper-slide'); - } else { - slideEl = createElement('div', swiper.params.slideClass); - } - slideEl.setAttribute('data-swiper-slide-index', index); - if (!params.renderSlide) { - slideEl.innerHTML = slide; - } - if (params.cache) { - swiper.virtual.cache[index] = slideEl; - } - return slideEl; - } - function update(force) { - const { - slidesPerView, - slidesPerGroup, - centeredSlides, - loop: isLoop - } = swiper.params; - const { - addSlidesBefore, - addSlidesAfter - } = swiper.params.virtual; - const { - from: previousFrom, - to: previousTo, - slides, - slidesGrid: previousSlidesGrid, - offset: previousOffset - } = swiper.virtual; - if (!swiper.params.cssMode) { - swiper.updateActiveIndex(); - } - const activeIndex = swiper.activeIndex || 0; - let offsetProp; - if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top'; - let slidesAfter; - let slidesBefore; - if (centeredSlides) { - slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter; - slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore; - } else { - slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter; - slidesBefore = (isLoop ? slidesPerView : slidesPerGroup) + addSlidesBefore; - } - let from = activeIndex - slidesBefore; - let to = activeIndex + slidesAfter; - if (!isLoop) { - from = Math.max(from, 0); - to = Math.min(to, slides.length - 1); - } - let offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0); - if (isLoop && activeIndex >= slidesBefore) { - from -= slidesBefore; - if (!centeredSlides) offset += swiper.slidesGrid[0]; - } else if (isLoop && activeIndex < slidesBefore) { - from = -slidesBefore; - if (centeredSlides) offset += swiper.slidesGrid[0]; - } - Object.assign(swiper.virtual, { - from, - to, - offset, - slidesGrid: swiper.slidesGrid, - slidesBefore, - slidesAfter - }); - function onRendered() { - swiper.updateSlides(); - swiper.updateProgress(); - swiper.updateSlidesClasses(); - emit('virtualUpdate'); - } - if (previousFrom === from && previousTo === to && !force) { - if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) { - swiper.slides.forEach(slideEl => { - slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`; - }); - } - swiper.updateProgress(); - emit('virtualUpdate'); - return; - } - if (swiper.params.virtual.renderExternal) { - swiper.params.virtual.renderExternal.call(swiper, { - offset, - from, - to, - slides: function getSlides() { - const slidesToRender = []; - for (let i = from; i <= to; i += 1) { - slidesToRender.push(slides[i]); - } - return slidesToRender; - }() - }); - if (swiper.params.virtual.renderExternalUpdate) { - onRendered(); - } else { - emit('virtualUpdate'); - } - return; - } - const prependIndexes = []; - const appendIndexes = []; - const getSlideIndex = index => { - let slideIndex = index; - if (index < 0) { - slideIndex = slides.length + index; - } else if (slideIndex >= slides.length) { - // eslint-disable-next-line - slideIndex = slideIndex - slides.length; - } - return slideIndex; - }; - if (force) { - swiper.slides.filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`)).forEach(slideEl => { - slideEl.remove(); - }); - } else { - for (let i = previousFrom; i <= previousTo; i += 1) { - if (i < from || i > to) { - const slideIndex = getSlideIndex(i); - swiper.slides.filter(el => el.matches(`.${swiper.params.slideClass}[data-swiper-slide-index="${slideIndex}"], swiper-slide[data-swiper-slide-index="${slideIndex}"]`)).forEach(slideEl => { - slideEl.remove(); - }); - } - } - } - const loopFrom = isLoop ? -slides.length : 0; - const loopTo = isLoop ? slides.length * 2 : slides.length; - for (let i = loopFrom; i < loopTo; i += 1) { - if (i >= from && i <= to) { - const slideIndex = getSlideIndex(i); - if (typeof previousTo === 'undefined' || force) { - appendIndexes.push(slideIndex); - } else { - if (i > previousTo) appendIndexes.push(slideIndex); - if (i < previousFrom) prependIndexes.push(slideIndex); - } - } - } - appendIndexes.forEach(index => { - swiper.slidesEl.append(renderSlide(slides[index], index)); - }); - if (isLoop) { - for (let i = prependIndexes.length - 1; i >= 0; i -= 1) { - const index = prependIndexes[i]; - swiper.slidesEl.prepend(renderSlide(slides[index], index)); - } - } else { - prependIndexes.sort((a, b) => b - a); - prependIndexes.forEach(index => { - swiper.slidesEl.prepend(renderSlide(slides[index], index)); - }); - } - elementChildren(swiper.slidesEl, '.swiper-slide, swiper-slide').forEach(slideEl => { - slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`; - }); - onRendered(); - } - function appendSlide(slides) { - if (typeof slides === 'object' && 'length' in slides) { - for (let i = 0; i < slides.length; i += 1) { - if (slides[i]) swiper.virtual.slides.push(slides[i]); - } - } else { - swiper.virtual.slides.push(slides); - } - update(true); - } - function prependSlide(slides) { - const activeIndex = swiper.activeIndex; - let newActiveIndex = activeIndex + 1; - let numberOfNewSlides = 1; - if (Array.isArray(slides)) { - for (let i = 0; i < slides.length; i += 1) { - if (slides[i]) swiper.virtual.slides.unshift(slides[i]); - } - newActiveIndex = activeIndex + slides.length; - numberOfNewSlides = slides.length; - } else { - swiper.virtual.slides.unshift(slides); - } - if (swiper.params.virtual.cache) { - const cache = swiper.virtual.cache; - const newCache = {}; - Object.keys(cache).forEach(cachedIndex => { - const cachedEl = cache[cachedIndex]; - const cachedElIndex = cachedEl.getAttribute('data-swiper-slide-index'); - if (cachedElIndex) { - cachedEl.setAttribute('data-swiper-slide-index', parseInt(cachedElIndex, 10) + numberOfNewSlides); - } - newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = cachedEl; - }); - swiper.virtual.cache = newCache; - } - update(true); - swiper.slideTo(newActiveIndex, 0); - } - function removeSlide(slidesIndexes) { - if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return; - let activeIndex = swiper.activeIndex; - if (Array.isArray(slidesIndexes)) { - for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) { - if (swiper.params.virtual.cache) { - delete swiper.virtual.cache[slidesIndexes[i]]; - // shift cache indexes - Object.keys(swiper.virtual.cache).forEach(key => { - if (key > slidesIndexes) { - swiper.virtual.cache[key - 1] = swiper.virtual.cache[key]; - swiper.virtual.cache[key - 1].setAttribute('data-swiper-slide-index', key - 1); - delete swiper.virtual.cache[key]; - } - }); - } - swiper.virtual.slides.splice(slidesIndexes[i], 1); - if (slidesIndexes[i] < activeIndex) activeIndex -= 1; - activeIndex = Math.max(activeIndex, 0); - } - } else { - if (swiper.params.virtual.cache) { - delete swiper.virtual.cache[slidesIndexes]; - // shift cache indexes - Object.keys(swiper.virtual.cache).forEach(key => { - if (key > slidesIndexes) { - swiper.virtual.cache[key - 1] = swiper.virtual.cache[key]; - swiper.virtual.cache[key - 1].setAttribute('data-swiper-slide-index', key - 1); - delete swiper.virtual.cache[key]; - } - }); - } - swiper.virtual.slides.splice(slidesIndexes, 1); - if (slidesIndexes < activeIndex) activeIndex -= 1; - activeIndex = Math.max(activeIndex, 0); - } - update(true); - swiper.slideTo(activeIndex, 0); - } - function removeAllSlides() { - swiper.virtual.slides = []; - if (swiper.params.virtual.cache) { - swiper.virtual.cache = {}; - } - update(true); - swiper.slideTo(0, 0); - } - on('beforeInit', () => { - if (!swiper.params.virtual.enabled) return; - let domSlidesAssigned; - if (typeof swiper.passedParams.virtual.slides === 'undefined') { - const slides = [...swiper.slidesEl.children].filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`)); - if (slides && slides.length) { - swiper.virtual.slides = [...slides]; - domSlidesAssigned = true; - slides.forEach((slideEl, slideIndex) => { - slideEl.setAttribute('data-swiper-slide-index', slideIndex); - swiper.virtual.cache[slideIndex] = slideEl; - slideEl.remove(); - }); - } - } - if (!domSlidesAssigned) { - swiper.virtual.slides = swiper.params.virtual.slides; - } - swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`); - swiper.params.watchSlidesProgress = true; - swiper.originalParams.watchSlidesProgress = true; - update(); - }); - on('setTranslate', () => { - if (!swiper.params.virtual.enabled) return; - if (swiper.params.cssMode && !swiper._immediateVirtual) { - clearTimeout(cssModeTimeout); - cssModeTimeout = setTimeout(() => { - update(); - }, 100); - } else { - update(); - } - }); - on('init update resize', () => { - if (!swiper.params.virtual.enabled) return; - if (swiper.params.cssMode) { - setCSSProperty(swiper.wrapperEl, '--swiper-virtual-size', `${swiper.virtualSize}px`); - } - }); - Object.assign(swiper.virtual, { - appendSlide, - prependSlide, - removeSlide, - removeAllSlides, - update - }); - } - - /* eslint-disable consistent-return */ - function Keyboard(_ref) { - let { - swiper, - extendParams, - on, - emit - } = _ref; - const document = getDocument(); - const window = getWindow(); - swiper.keyboard = { - enabled: false - }; - extendParams({ - keyboard: { - enabled: false, - onlyInViewport: true, - pageUpDown: true - } - }); - function handle(event) { - if (!swiper.enabled) return; - const { - rtlTranslate: rtl - } = swiper; - let e = event; - if (e.originalEvent) e = e.originalEvent; // jquery fix - const kc = e.keyCode || e.charCode; - const pageUpDown = swiper.params.keyboard.pageUpDown; - const isPageUp = pageUpDown && kc === 33; - const isPageDown = pageUpDown && kc === 34; - const isArrowLeft = kc === 37; - const isArrowRight = kc === 39; - const isArrowUp = kc === 38; - const isArrowDown = kc === 40; - // Directions locks - if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) { - return false; - } - if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) { - return false; - } - if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) { - return undefined; - } - if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) { - return undefined; - } - if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) { - let inView = false; - // Check that swiper should be inside of visible area of window - if (elementParents(swiper.el, `.${swiper.params.slideClass}, swiper-slide`).length > 0 && elementParents(swiper.el, `.${swiper.params.slideActiveClass}`).length === 0) { - return undefined; - } - const el = swiper.el; - const swiperWidth = el.clientWidth; - const swiperHeight = el.clientHeight; - const windowWidth = window.innerWidth; - const windowHeight = window.innerHeight; - const swiperOffset = elementOffset(el); - if (rtl) swiperOffset.left -= el.scrollLeft; - const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]]; - for (let i = 0; i < swiperCoord.length; i += 1) { - const point = swiperCoord[i]; - if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) { - if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line - inView = true; - } - } - if (!inView) return undefined; - } - if (swiper.isHorizontal()) { - if (isPageUp || isPageDown || isArrowLeft || isArrowRight) { - if (e.preventDefault) e.preventDefault();else e.returnValue = false; - } - if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext(); - if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev(); - } else { - if (isPageUp || isPageDown || isArrowUp || isArrowDown) { - if (e.preventDefault) e.preventDefault();else e.returnValue = false; - } - if (isPageDown || isArrowDown) swiper.slideNext(); - if (isPageUp || isArrowUp) swiper.slidePrev(); - } - emit('keyPress', kc); - return undefined; - } - function enable() { - if (swiper.keyboard.enabled) return; - document.addEventListener('keydown', handle); - swiper.keyboard.enabled = true; - } - function disable() { - if (!swiper.keyboard.enabled) return; - document.removeEventListener('keydown', handle); - swiper.keyboard.enabled = false; - } - on('init', () => { - if (swiper.params.keyboard.enabled) { - enable(); - } - }); - on('destroy', () => { - if (swiper.keyboard.enabled) { - disable(); - } - }); - Object.assign(swiper.keyboard, { - enable, - disable - }); - } - - /* eslint-disable consistent-return */ - function Mousewheel(_ref) { - let { - swiper, - extendParams, - on, - emit - } = _ref; - const window = getWindow(); - extendParams({ - mousewheel: { - enabled: false, - releaseOnEdges: false, - invert: false, - forceToAxis: false, - sensitivity: 1, - eventsTarget: 'container', - thresholdDelta: null, - thresholdTime: null, - noMousewheelClass: 'swiper-no-mousewheel' - } - }); - swiper.mousewheel = { - enabled: false - }; - let timeout; - let lastScrollTime = now(); - let lastEventBeforeSnap; - const recentWheelEvents = []; - function normalize(e) { - // Reasonable defaults - const PIXEL_STEP = 10; - const LINE_HEIGHT = 40; - const PAGE_HEIGHT = 800; - let sX = 0; - let sY = 0; // spinX, spinY - let pX = 0; - let pY = 0; // pixelX, pixelY - - // Legacy - if ('detail' in e) { - sY = e.detail; - } - if ('wheelDelta' in e) { - sY = -e.wheelDelta / 120; - } - if ('wheelDeltaY' in e) { - sY = -e.wheelDeltaY / 120; - } - if ('wheelDeltaX' in e) { - sX = -e.wheelDeltaX / 120; - } - - // side scrolling on FF with DOMMouseScroll - if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) { - sX = sY; - sY = 0; - } - pX = sX * PIXEL_STEP; - pY = sY * PIXEL_STEP; - if ('deltaY' in e) { - pY = e.deltaY; - } - if ('deltaX' in e) { - pX = e.deltaX; - } - if (e.shiftKey && !pX) { - // if user scrolls with shift he wants horizontal scroll - pX = pY; - pY = 0; - } - if ((pX || pY) && e.deltaMode) { - if (e.deltaMode === 1) { - // delta in LINE units - pX *= LINE_HEIGHT; - pY *= LINE_HEIGHT; - } else { - // delta in PAGE units - pX *= PAGE_HEIGHT; - pY *= PAGE_HEIGHT; - } - } - - // Fall-back if spin cannot be determined - if (pX && !sX) { - sX = pX < 1 ? -1 : 1; - } - if (pY && !sY) { - sY = pY < 1 ? -1 : 1; - } - return { - spinX: sX, - spinY: sY, - pixelX: pX, - pixelY: pY - }; - } - function handleMouseEnter() { - if (!swiper.enabled) return; - swiper.mouseEntered = true; - } - function handleMouseLeave() { - if (!swiper.enabled) return; - swiper.mouseEntered = false; - } - function animateSlider(newEvent) { - if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) { - // Prevent if delta of wheel scroll delta is below configured threshold - return false; - } - if (swiper.params.mousewheel.thresholdTime && now() - lastScrollTime < swiper.params.mousewheel.thresholdTime) { - // Prevent if time between scrolls is below configured threshold - return false; - } - - // If the movement is NOT big enough and - // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider): - // Don't go any further (avoid insignificant scroll movement). - if (newEvent.delta >= 6 && now() - lastScrollTime < 60) { - // Return false as a default - return true; - } - // If user is scrolling towards the end: - // If the slider hasn't hit the latest slide or - // if the slider is a loop and - // if the slider isn't moving right now: - // Go to next slide and - // emit a scroll event. - // Else (the user is scrolling towards the beginning) and - // if the slider hasn't hit the first slide or - // if the slider is a loop and - // if the slider isn't moving right now: - // Go to prev slide and - // emit a scroll event. - if (newEvent.direction < 0) { - if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) { - swiper.slideNext(); - emit('scroll', newEvent.raw); - } - } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) { - swiper.slidePrev(); - emit('scroll', newEvent.raw); - } - // If you got here is because an animation has been triggered so store the current time - lastScrollTime = new window.Date().getTime(); - // Return false as a default - return false; - } - function releaseScroll(newEvent) { - const params = swiper.params.mousewheel; - if (newEvent.direction < 0) { - if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) { - // Return true to animate scroll on edges - return true; - } - } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) { - // Return true to animate scroll on edges - return true; - } - return false; - } - function handle(event) { - let e = event; - let disableParentSwiper = true; - if (!swiper.enabled) return; - - // Ignore event if the target or its parents have the swiper-no-mousewheel class - if (event.target.closest(`.${swiper.params.mousewheel.noMousewheelClass}`)) return; - const params = swiper.params.mousewheel; - if (swiper.params.cssMode) { - e.preventDefault(); - } - let targetEl = swiper.el; - if (swiper.params.mousewheel.eventsTarget !== 'container') { - targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget); - } - const targetElContainsTarget = targetEl && targetEl.contains(e.target); - if (!swiper.mouseEntered && !targetElContainsTarget && !params.releaseOnEdges) return true; - if (e.originalEvent) e = e.originalEvent; // jquery fix - let delta = 0; - const rtlFactor = swiper.rtlTranslate ? -1 : 1; - const data = normalize(e); - if (params.forceToAxis) { - if (swiper.isHorizontal()) { - if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true; - } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true; - } else { - delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY; - } - if (delta === 0) return true; - if (params.invert) delta = -delta; - - // Get the scroll positions - let positions = swiper.getTranslate() + delta * params.sensitivity; - if (positions >= swiper.minTranslate()) positions = swiper.minTranslate(); - if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate(); - - // When loop is true: - // the disableParentSwiper will be true. - // When loop is false: - // if the scroll positions is not on edge, - // then the disableParentSwiper will be true. - // if the scroll on edge positions, - // then the disableParentSwiper will be false. - disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate()); - if (disableParentSwiper && swiper.params.nested) e.stopPropagation(); - if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) { - // Register the new event in a variable which stores the relevant data - const newEvent = { - time: now(), - delta: Math.abs(delta), - direction: Math.sign(delta), - raw: event - }; - - // Keep the most recent events - if (recentWheelEvents.length >= 2) { - recentWheelEvents.shift(); // only store the last N events - } - - const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined; - recentWheelEvents.push(newEvent); - - // If there is at least one previous recorded event: - // If direction has changed or - // if the scroll is quicker than the previous one: - // Animate the slider. - // Else (this is the first time the wheel is moved): - // Animate the slider. - if (prevEvent) { - if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) { - animateSlider(newEvent); - } - } else { - animateSlider(newEvent); - } - - // If it's time to release the scroll: - // Return now so you don't hit the preventDefault. - if (releaseScroll(newEvent)) { - return true; - } - } else { - // Freemode or scrollContainer: - - // If we recently snapped after a momentum scroll, then ignore wheel events - // to give time for the deceleration to finish. Stop ignoring after 500 msecs - // or if it's a new scroll (larger delta or inverse sign as last event before - // an end-of-momentum snap). - const newEvent = { - time: now(), - delta: Math.abs(delta), - direction: Math.sign(delta) - }; - const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction; - if (!ignoreWheelEvents) { - lastEventBeforeSnap = undefined; - let position = swiper.getTranslate() + delta * params.sensitivity; - const wasBeginning = swiper.isBeginning; - const wasEnd = swiper.isEnd; - if (position >= swiper.minTranslate()) position = swiper.minTranslate(); - if (position <= swiper.maxTranslate()) position = swiper.maxTranslate(); - swiper.setTransition(0); - swiper.setTranslate(position); - swiper.updateProgress(); - swiper.updateActiveIndex(); - swiper.updateSlidesClasses(); - if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) { - swiper.updateSlidesClasses(); - } - if (swiper.params.loop) { - swiper.loopFix({ - direction: newEvent.direction < 0 ? 'next' : 'prev', - byMousewheel: true - }); - } - if (swiper.params.freeMode.sticky) { - // When wheel scrolling starts with sticky (aka snap) enabled, then detect - // the end of a momentum scroll by storing recent (N=15?) wheel events. - // 1. do all N events have decreasing or same (absolute value) delta? - // 2. did all N events arrive in the last M (M=500?) msecs? - // 3. does the earliest event have an (absolute value) delta that's - // at least P (P=1?) larger than the most recent event's delta? - // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels? - // If 1-4 are "yes" then we're near the end of a momentum scroll deceleration. - // Snap immediately and ignore remaining wheel events in this scroll. - // See comment above for "remaining wheel events in this scroll" determination. - // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event. - clearTimeout(timeout); - timeout = undefined; - if (recentWheelEvents.length >= 15) { - recentWheelEvents.shift(); // only store the last N events - } - - const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined; - const firstEvent = recentWheelEvents[0]; - recentWheelEvents.push(newEvent); - if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) { - // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log. - recentWheelEvents.splice(0); - } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) { - // We're at the end of the deceleration of a momentum scroll, so there's no need - // to wait for more events. Snap ASAP on the next tick. - // Also, because there's some remaining momentum we'll bias the snap in the - // direction of the ongoing scroll because it's better UX for the scroll to snap - // in the same direction as the scroll instead of reversing to snap. Therefore, - // if it's already scrolled more than 20% in the current direction, keep going. - const snapToThreshold = delta > 0 ? 0.8 : 0.2; - lastEventBeforeSnap = newEvent; - recentWheelEvents.splice(0); - timeout = nextTick(() => { - swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold); - }, 0); // no delay; move on next tick - } - - if (!timeout) { - // if we get here, then we haven't detected the end of a momentum scroll, so - // we'll consider a scroll "complete" when there haven't been any wheel events - // for 500ms. - timeout = nextTick(() => { - const snapToThreshold = 0.5; - lastEventBeforeSnap = newEvent; - recentWheelEvents.splice(0); - swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold); - }, 500); - } - } - - // Emit event - if (!ignoreWheelEvents) emit('scroll', e); - - // Stop autoplay - if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop(); - // Return page scroll on edge positions - if (params.releaseOnEdges && (position === swiper.minTranslate() || position === swiper.maxTranslate())) { - return true; - } - } - } - if (e.preventDefault) e.preventDefault();else e.returnValue = false; - return false; - } - function events(method) { - let targetEl = swiper.el; - if (swiper.params.mousewheel.eventsTarget !== 'container') { - targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget); - } - targetEl[method]('mouseenter', handleMouseEnter); - targetEl[method]('mouseleave', handleMouseLeave); - targetEl[method]('wheel', handle); - } - function enable() { - if (swiper.params.cssMode) { - swiper.wrapperEl.removeEventListener('wheel', handle); - return true; - } - if (swiper.mousewheel.enabled) return false; - events('addEventListener'); - swiper.mousewheel.enabled = true; - return true; - } - function disable() { - if (swiper.params.cssMode) { - swiper.wrapperEl.addEventListener(event, handle); - return true; - } - if (!swiper.mousewheel.enabled) return false; - events('removeEventListener'); - swiper.mousewheel.enabled = false; - return true; - } - on('init', () => { - if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) { - disable(); - } - if (swiper.params.mousewheel.enabled) enable(); - }); - on('destroy', () => { - if (swiper.params.cssMode) { - enable(); - } - if (swiper.mousewheel.enabled) disable(); - }); - Object.assign(swiper.mousewheel, { - enable, - disable - }); - } - - function createElementIfNotDefined(swiper, originalParams, params, checkProps) { - if (swiper.params.createElements) { - Object.keys(checkProps).forEach(key => { - if (!params[key] && params.auto === true) { - let element = elementChildren(swiper.el, `.${checkProps[key]}`)[0]; - if (!element) { - element = createElement('div', checkProps[key]); - element.className = checkProps[key]; - swiper.el.append(element); - } - params[key] = element; - originalParams[key] = element; - } - }); - } - return params; - } - - function Navigation(_ref) { - let { - swiper, - extendParams, - on, - emit - } = _ref; - extendParams({ - navigation: { - nextEl: null, - prevEl: null, - hideOnClick: false, - disabledClass: 'swiper-button-disabled', - hiddenClass: 'swiper-button-hidden', - lockClass: 'swiper-button-lock', - navigationDisabledClass: 'swiper-navigation-disabled' - } - }); - swiper.navigation = { - nextEl: null, - prevEl: null - }; - const makeElementsArray = el => (Array.isArray(el) ? el : [el]).filter(e => !!e); - function getEl(el) { - let res; - if (el && typeof el === 'string' && swiper.isElement) { - res = swiper.el.querySelector(el); - if (res) return res; - } - if (el) { - if (typeof el === 'string') res = [...document.querySelectorAll(el)]; - if (swiper.params.uniqueNavElements && typeof el === 'string' && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) { - res = swiper.el.querySelector(el); - } - } - if (el && !res) return el; - // if (Array.isArray(res) && res.length === 1) res = res[0]; - return res; - } - function toggleEl(el, disabled) { - const params = swiper.params.navigation; - el = makeElementsArray(el); - el.forEach(subEl => { - if (subEl) { - subEl.classList[disabled ? 'add' : 'remove'](...params.disabledClass.split(' ')); - if (subEl.tagName === 'BUTTON') subEl.disabled = disabled; - if (swiper.params.watchOverflow && swiper.enabled) { - subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass); - } - } - }); - } - function update() { - // Update Navigation Buttons - const { - nextEl, - prevEl - } = swiper.navigation; - if (swiper.params.loop) { - toggleEl(prevEl, false); - toggleEl(nextEl, false); - return; - } - toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind); - toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind); - } - function onPrevClick(e) { - e.preventDefault(); - if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return; - swiper.slidePrev(); - emit('navigationPrev'); - } - function onNextClick(e) { - e.preventDefault(); - if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return; - swiper.slideNext(); - emit('navigationNext'); - } - function init() { - const params = swiper.params.navigation; - swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, { - nextEl: 'swiper-button-next', - prevEl: 'swiper-button-prev' - }); - if (!(params.nextEl || params.prevEl)) return; - let nextEl = getEl(params.nextEl); - let prevEl = getEl(params.prevEl); - Object.assign(swiper.navigation, { - nextEl, - prevEl - }); - nextEl = makeElementsArray(nextEl); - prevEl = makeElementsArray(prevEl); - const initButton = (el, dir) => { - if (el) { - el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick); - } - if (!swiper.enabled && el) { - el.classList.add(...params.lockClass.split(' ')); - } - }; - nextEl.forEach(el => initButton(el, 'next')); - prevEl.forEach(el => initButton(el, 'prev')); - } - function destroy() { - let { - nextEl, - prevEl - } = swiper.navigation; - nextEl = makeElementsArray(nextEl); - prevEl = makeElementsArray(prevEl); - const destroyButton = (el, dir) => { - el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick); - el.classList.remove(...swiper.params.navigation.disabledClass.split(' ')); - }; - nextEl.forEach(el => destroyButton(el, 'next')); - prevEl.forEach(el => destroyButton(el, 'prev')); - } - on('init', () => { - if (swiper.params.navigation.enabled === false) { - // eslint-disable-next-line - disable(); - } else { - init(); - update(); - } - }); - on('toEdge fromEdge lock unlock', () => { - update(); - }); - on('destroy', () => { - destroy(); - }); - on('enable disable', () => { - let { - nextEl, - prevEl - } = swiper.navigation; - nextEl = makeElementsArray(nextEl); - prevEl = makeElementsArray(prevEl); - if (swiper.enabled) { - update(); - return; - } - [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.add(swiper.params.navigation.lockClass)); - }); - on('click', (_s, e) => { - let { - nextEl, - prevEl - } = swiper.navigation; - nextEl = makeElementsArray(nextEl); - prevEl = makeElementsArray(prevEl); - const targetEl = e.target; - if (swiper.params.navigation.hideOnClick && !prevEl.includes(targetEl) && !nextEl.includes(targetEl)) { - if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return; - let isHidden; - if (nextEl.length) { - isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass); - } else if (prevEl.length) { - isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass); - } - if (isHidden === true) { - emit('navigationShow'); - } else { - emit('navigationHide'); - } - [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.toggle(swiper.params.navigation.hiddenClass)); - } - }); - const enable = () => { - swiper.el.classList.remove(...swiper.params.navigation.navigationDisabledClass.split(' ')); - init(); - update(); - }; - const disable = () => { - swiper.el.classList.add(...swiper.params.navigation.navigationDisabledClass.split(' ')); - destroy(); - }; - Object.assign(swiper.navigation, { - enable, - disable, - update, - init, - destroy - }); - } - - function classesToSelector(classes) { - if (classes === void 0) { - classes = ''; - } - return `.${classes.trim().replace(/([\.:!+\/])/g, '\\$1') // eslint-disable-line - .replace(/ /g, '.')}`; - } - - function Pagination(_ref) { - let { - swiper, - extendParams, - on, - emit - } = _ref; - const pfx = 'swiper-pagination'; - extendParams({ - pagination: { - el: null, - bulletElement: 'span', - clickable: false, - hideOnClick: false, - renderBullet: null, - renderProgressbar: null, - renderFraction: null, - renderCustom: null, - progressbarOpposite: false, - type: 'bullets', - // 'bullets' or 'progressbar' or 'fraction' or 'custom' - dynamicBullets: false, - dynamicMainBullets: 1, - formatFractionCurrent: number => number, - formatFractionTotal: number => number, - bulletClass: `${pfx}-bullet`, - bulletActiveClass: `${pfx}-bullet-active`, - modifierClass: `${pfx}-`, - currentClass: `${pfx}-current`, - totalClass: `${pfx}-total`, - hiddenClass: `${pfx}-hidden`, - progressbarFillClass: `${pfx}-progressbar-fill`, - progressbarOppositeClass: `${pfx}-progressbar-opposite`, - clickableClass: `${pfx}-clickable`, - lockClass: `${pfx}-lock`, - horizontalClass: `${pfx}-horizontal`, - verticalClass: `${pfx}-vertical`, - paginationDisabledClass: `${pfx}-disabled` - } - }); - swiper.pagination = { - el: null, - bullets: [] - }; - let bulletSize; - let dynamicBulletIndex = 0; - const makeElementsArray = el => (Array.isArray(el) ? el : [el]).filter(e => !!e); - function isPaginationDisabled() { - return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0; - } - function setSideBullets(bulletEl, position) { - const { - bulletActiveClass - } = swiper.params.pagination; - if (!bulletEl) return; - bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`]; - if (bulletEl) { - bulletEl.classList.add(`${bulletActiveClass}-${position}`); - bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`]; - if (bulletEl) { - bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`); - } - } - } - function onBulletClick(e) { - const bulletEl = e.target.closest(classesToSelector(swiper.params.pagination.bulletClass)); - if (!bulletEl) { - return; - } - e.preventDefault(); - const index = elementIndex(bulletEl) * swiper.params.slidesPerGroup; - if (swiper.params.loop) { - if (swiper.realIndex === index) return; - swiper.slideToLoop(index); - } else { - swiper.slideTo(index); - } - } - function update() { - // Render || Update Pagination bullets/items - const rtl = swiper.rtl; - const params = swiper.params.pagination; - if (isPaginationDisabled()) return; - let el = swiper.pagination.el; - el = makeElementsArray(el); - // Current/Total - let current; - let previousIndex; - const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length; - const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length; - if (swiper.params.loop) { - previousIndex = swiper.previousRealIndex || 0; - current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex; - } else if (typeof swiper.snapIndex !== 'undefined') { - current = swiper.snapIndex; - previousIndex = swiper.previousSnapIndex; - } else { - previousIndex = swiper.previousIndex || 0; - current = swiper.activeIndex || 0; - } - // Types - if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) { - const bullets = swiper.pagination.bullets; - let firstIndex; - let lastIndex; - let midIndex; - if (params.dynamicBullets) { - bulletSize = elementOuterSize(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true); - el.forEach(subEl => { - subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`; - }); - if (params.dynamicMainBullets > 1 && previousIndex !== undefined) { - dynamicBulletIndex += current - (previousIndex || 0); - if (dynamicBulletIndex > params.dynamicMainBullets - 1) { - dynamicBulletIndex = params.dynamicMainBullets - 1; - } else if (dynamicBulletIndex < 0) { - dynamicBulletIndex = 0; - } - } - firstIndex = Math.max(current - dynamicBulletIndex, 0); - lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1); - midIndex = (lastIndex + firstIndex) / 2; - } - bullets.forEach(bulletEl => { - const classesToRemove = [...['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`)].map(s => typeof s === 'string' && s.includes(' ') ? s.split(' ') : s).flat(); - bulletEl.classList.remove(...classesToRemove); - }); - if (el.length > 1) { - bullets.forEach(bullet => { - const bulletIndex = elementIndex(bullet); - if (bulletIndex === current) { - bullet.classList.add(...params.bulletActiveClass.split(' ')); - } else if (swiper.isElement) { - bullet.setAttribute('part', 'bullet'); - } - if (params.dynamicBullets) { - if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) { - bullet.classList.add(...`${params.bulletActiveClass}-main`.split(' ')); - } - if (bulletIndex === firstIndex) { - setSideBullets(bullet, 'prev'); - } - if (bulletIndex === lastIndex) { - setSideBullets(bullet, 'next'); - } - } - }); - } else { - const bullet = bullets[current]; - if (bullet) { - bullet.classList.add(...params.bulletActiveClass.split(' ')); - } - if (swiper.isElement) { - bullets.forEach((bulletEl, bulletIndex) => { - bulletEl.setAttribute('part', bulletIndex === current ? 'bullet-active' : 'bullet'); - }); - } - if (params.dynamicBullets) { - const firstDisplayedBullet = bullets[firstIndex]; - const lastDisplayedBullet = bullets[lastIndex]; - for (let i = firstIndex; i <= lastIndex; i += 1) { - if (bullets[i]) { - bullets[i].classList.add(...`${params.bulletActiveClass}-main`.split(' ')); - } - } - setSideBullets(firstDisplayedBullet, 'prev'); - setSideBullets(lastDisplayedBullet, 'next'); - } - } - if (params.dynamicBullets) { - const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4); - const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize; - const offsetProp = rtl ? 'right' : 'left'; - bullets.forEach(bullet => { - bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`; - }); - } - } - el.forEach((subEl, subElIndex) => { - if (params.type === 'fraction') { - subEl.querySelectorAll(classesToSelector(params.currentClass)).forEach(fractionEl => { - fractionEl.textContent = params.formatFractionCurrent(current + 1); - }); - subEl.querySelectorAll(classesToSelector(params.totalClass)).forEach(totalEl => { - totalEl.textContent = params.formatFractionTotal(total); - }); - } - if (params.type === 'progressbar') { - let progressbarDirection; - if (params.progressbarOpposite) { - progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal'; - } else { - progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical'; - } - const scale = (current + 1) / total; - let scaleX = 1; - let scaleY = 1; - if (progressbarDirection === 'horizontal') { - scaleX = scale; - } else { - scaleY = scale; - } - subEl.querySelectorAll(classesToSelector(params.progressbarFillClass)).forEach(progressEl => { - progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`; - progressEl.style.transitionDuration = `${swiper.params.speed}ms`; - }); - } - if (params.type === 'custom' && params.renderCustom) { - subEl.innerHTML = params.renderCustom(swiper, current + 1, total); - if (subElIndex === 0) emit('paginationRender', subEl); - } else { - if (subElIndex === 0) emit('paginationRender', subEl); - emit('paginationUpdate', subEl); - } - if (swiper.params.watchOverflow && swiper.enabled) { - subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass); - } - }); - } - function render() { - // Render Container - const params = swiper.params.pagination; - if (isPaginationDisabled()) return; - const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.grid && swiper.params.grid.rows > 1 ? swiper.slides.length / Math.ceil(swiper.params.grid.rows) : swiper.slides.length; - let el = swiper.pagination.el; - el = makeElementsArray(el); - let paginationHTML = ''; - if (params.type === 'bullets') { - let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length; - if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) { - numberOfBullets = slidesLength; - } - for (let i = 0; i < numberOfBullets; i += 1) { - if (params.renderBullet) { - paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass); - } else { - // prettier-ignore - paginationHTML += `<${params.bulletElement} ${swiper.isElement ? 'part="bullet"' : ''} class="${params.bulletClass}">`; - } - } - } - if (params.type === 'fraction') { - if (params.renderFraction) { - paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass); - } else { - paginationHTML = `` + ' / ' + ``; - } - } - if (params.type === 'progressbar') { - if (params.renderProgressbar) { - paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass); - } else { - paginationHTML = ``; - } - } - swiper.pagination.bullets = []; - el.forEach(subEl => { - if (params.type !== 'custom') { - subEl.innerHTML = paginationHTML || ''; - } - if (params.type === 'bullets') { - swiper.pagination.bullets.push(...subEl.querySelectorAll(classesToSelector(params.bulletClass))); - } - }); - if (params.type !== 'custom') { - emit('paginationRender', el[0]); - } - } - function init() { - swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, { - el: 'swiper-pagination' - }); - const params = swiper.params.pagination; - if (!params.el) return; - let el; - if (typeof params.el === 'string' && swiper.isElement) { - el = swiper.el.querySelector(params.el); - } - if (!el && typeof params.el === 'string') { - el = [...document.querySelectorAll(params.el)]; - } - if (!el) { - el = params.el; - } - if (!el || el.length === 0) return; - if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) { - el = [...swiper.el.querySelectorAll(params.el)]; - // check if it belongs to another nested Swiper - if (el.length > 1) { - el = el.filter(subEl => { - if (elementParents(subEl, '.swiper')[0] !== swiper.el) return false; - return true; - })[0]; - } - } - if (Array.isArray(el) && el.length === 1) el = el[0]; - Object.assign(swiper.pagination, { - el - }); - el = makeElementsArray(el); - el.forEach(subEl => { - if (params.type === 'bullets' && params.clickable) { - subEl.classList.add(...(params.clickableClass || '').split(' ')); - } - subEl.classList.add(params.modifierClass + params.type); - subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass); - if (params.type === 'bullets' && params.dynamicBullets) { - subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`); - dynamicBulletIndex = 0; - if (params.dynamicMainBullets < 1) { - params.dynamicMainBullets = 1; - } - } - if (params.type === 'progressbar' && params.progressbarOpposite) { - subEl.classList.add(params.progressbarOppositeClass); - } - if (params.clickable) { - subEl.addEventListener('click', onBulletClick); - } - if (!swiper.enabled) { - subEl.classList.add(params.lockClass); - } - }); - } - function destroy() { - const params = swiper.params.pagination; - if (isPaginationDisabled()) return; - let el = swiper.pagination.el; - if (el) { - el = makeElementsArray(el); - el.forEach(subEl => { - subEl.classList.remove(params.hiddenClass); - subEl.classList.remove(params.modifierClass + params.type); - subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass); - if (params.clickable) { - subEl.classList.remove(...(params.clickableClass || '').split(' ')); - subEl.removeEventListener('click', onBulletClick); - } - }); - } - if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(...params.bulletActiveClass.split(' '))); - } - on('changeDirection', () => { - if (!swiper.pagination || !swiper.pagination.el) return; - const params = swiper.params.pagination; - let { - el - } = swiper.pagination; - el = makeElementsArray(el); - el.forEach(subEl => { - subEl.classList.remove(params.horizontalClass, params.verticalClass); - subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass); - }); - }); - on('init', () => { - if (swiper.params.pagination.enabled === false) { - // eslint-disable-next-line - disable(); - } else { - init(); - render(); - update(); - } - }); - on('activeIndexChange', () => { - if (typeof swiper.snapIndex === 'undefined') { - update(); - } - }); - on('snapIndexChange', () => { - update(); - }); - on('snapGridLengthChange', () => { - render(); - update(); - }); - on('destroy', () => { - destroy(); - }); - on('enable disable', () => { - let { - el - } = swiper.pagination; - if (el) { - el = makeElementsArray(el); - el.forEach(subEl => subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass)); - } - }); - on('lock unlock', () => { - update(); - }); - on('click', (_s, e) => { - const targetEl = e.target; - const el = makeElementsArray(swiper.pagination.el); - if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(swiper.params.pagination.bulletClass)) { - if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return; - const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass); - if (isHidden === true) { - emit('paginationShow'); - } else { - emit('paginationHide'); - } - el.forEach(subEl => subEl.classList.toggle(swiper.params.pagination.hiddenClass)); - } - }); - const enable = () => { - swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass); - let { - el - } = swiper.pagination; - if (el) { - el = makeElementsArray(el); - el.forEach(subEl => subEl.classList.remove(swiper.params.pagination.paginationDisabledClass)); - } - init(); - render(); - update(); - }; - const disable = () => { - swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass); - let { - el - } = swiper.pagination; - if (el) { - el = makeElementsArray(el); - el.forEach(subEl => subEl.classList.add(swiper.params.pagination.paginationDisabledClass)); - } - destroy(); - }; - Object.assign(swiper.pagination, { - enable, - disable, - render, - update, - init, - destroy - }); - } - - function Scrollbar(_ref) { - let { - swiper, - extendParams, - on, - emit - } = _ref; - const document = getDocument(); - let isTouched = false; - let timeout = null; - let dragTimeout = null; - let dragStartPos; - let dragSize; - let trackSize; - let divider; - extendParams({ - scrollbar: { - el: null, - dragSize: 'auto', - hide: false, - draggable: false, - snapOnRelease: true, - lockClass: 'swiper-scrollbar-lock', - dragClass: 'swiper-scrollbar-drag', - scrollbarDisabledClass: 'swiper-scrollbar-disabled', - horizontalClass: `swiper-scrollbar-horizontal`, - verticalClass: `swiper-scrollbar-vertical` - } - }); - swiper.scrollbar = { - el: null, - dragEl: null - }; - function setTranslate() { - if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; - const { - scrollbar, - rtlTranslate: rtl - } = swiper; - const { - dragEl, - el - } = scrollbar; - const params = swiper.params.scrollbar; - const progress = swiper.params.loop ? swiper.progressLoop : swiper.progress; - let newSize = dragSize; - let newPos = (trackSize - dragSize) * progress; - if (rtl) { - newPos = -newPos; - if (newPos > 0) { - newSize = dragSize - newPos; - newPos = 0; - } else if (-newPos + dragSize > trackSize) { - newSize = trackSize + newPos; - } - } else if (newPos < 0) { - newSize = dragSize + newPos; - newPos = 0; - } else if (newPos + dragSize > trackSize) { - newSize = trackSize - newPos; - } - if (swiper.isHorizontal()) { - dragEl.style.transform = `translate3d(${newPos}px, 0, 0)`; - dragEl.style.width = `${newSize}px`; - } else { - dragEl.style.transform = `translate3d(0px, ${newPos}px, 0)`; - dragEl.style.height = `${newSize}px`; - } - if (params.hide) { - clearTimeout(timeout); - el.style.opacity = 1; - timeout = setTimeout(() => { - el.style.opacity = 0; - el.style.transitionDuration = '400ms'; - }, 1000); - } - } - function setTransition(duration) { - if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; - swiper.scrollbar.dragEl.style.transitionDuration = `${duration}ms`; - } - function updateSize() { - if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; - const { - scrollbar - } = swiper; - const { - dragEl, - el - } = scrollbar; - dragEl.style.width = ''; - dragEl.style.height = ''; - trackSize = swiper.isHorizontal() ? el.offsetWidth : el.offsetHeight; - divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0)); - if (swiper.params.scrollbar.dragSize === 'auto') { - dragSize = trackSize * divider; - } else { - dragSize = parseInt(swiper.params.scrollbar.dragSize, 10); - } - if (swiper.isHorizontal()) { - dragEl.style.width = `${dragSize}px`; - } else { - dragEl.style.height = `${dragSize}px`; - } - if (divider >= 1) { - el.style.display = 'none'; - } else { - el.style.display = ''; - } - if (swiper.params.scrollbar.hide) { - el.style.opacity = 0; - } - if (swiper.params.watchOverflow && swiper.enabled) { - scrollbar.el.classList[swiper.isLocked ? 'add' : 'remove'](swiper.params.scrollbar.lockClass); - } - } - function getPointerPosition(e) { - return swiper.isHorizontal() ? e.clientX : e.clientY; - } - function setDragPosition(e) { - const { - scrollbar, - rtlTranslate: rtl - } = swiper; - const { - el - } = scrollbar; - let positionRatio; - positionRatio = (getPointerPosition(e) - elementOffset(el)[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize); - positionRatio = Math.max(Math.min(positionRatio, 1), 0); - if (rtl) { - positionRatio = 1 - positionRatio; - } - const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio; - swiper.updateProgress(position); - swiper.setTranslate(position); - swiper.updateActiveIndex(); - swiper.updateSlidesClasses(); - } - function onDragStart(e) { - const params = swiper.params.scrollbar; - const { - scrollbar, - wrapperEl - } = swiper; - const { - el, - dragEl - } = scrollbar; - isTouched = true; - dragStartPos = e.target === dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null; - e.preventDefault(); - e.stopPropagation(); - wrapperEl.style.transitionDuration = '100ms'; - dragEl.style.transitionDuration = '100ms'; - setDragPosition(e); - clearTimeout(dragTimeout); - el.style.transitionDuration = '0ms'; - if (params.hide) { - el.style.opacity = 1; - } - if (swiper.params.cssMode) { - swiper.wrapperEl.style['scroll-snap-type'] = 'none'; - } - emit('scrollbarDragStart', e); - } - function onDragMove(e) { - const { - scrollbar, - wrapperEl - } = swiper; - const { - el, - dragEl - } = scrollbar; - if (!isTouched) return; - if (e.preventDefault) e.preventDefault();else e.returnValue = false; - setDragPosition(e); - wrapperEl.style.transitionDuration = '0ms'; - el.style.transitionDuration = '0ms'; - dragEl.style.transitionDuration = '0ms'; - emit('scrollbarDragMove', e); - } - function onDragEnd(e) { - const params = swiper.params.scrollbar; - const { - scrollbar, - wrapperEl - } = swiper; - const { - el - } = scrollbar; - if (!isTouched) return; - isTouched = false; - if (swiper.params.cssMode) { - swiper.wrapperEl.style['scroll-snap-type'] = ''; - wrapperEl.style.transitionDuration = ''; - } - if (params.hide) { - clearTimeout(dragTimeout); - dragTimeout = nextTick(() => { - el.style.opacity = 0; - el.style.transitionDuration = '400ms'; - }, 1000); - } - emit('scrollbarDragEnd', e); - if (params.snapOnRelease) { - swiper.slideToClosest(); - } - } - function events(method) { - const { - scrollbar, - params - } = swiper; - const el = scrollbar.el; - if (!el) return; - const target = el; - const activeListener = params.passiveListeners ? { - passive: false, - capture: false - } : false; - const passiveListener = params.passiveListeners ? { - passive: true, - capture: false - } : false; - if (!target) return; - const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener'; - target[eventMethod]('pointerdown', onDragStart, activeListener); - document[eventMethod]('pointermove', onDragMove, activeListener); - document[eventMethod]('pointerup', onDragEnd, passiveListener); - } - function enableDraggable() { - if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; - events('on'); - } - function disableDraggable() { - if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; - events('off'); - } - function init() { - const { - scrollbar, - el: swiperEl - } = swiper; - swiper.params.scrollbar = createElementIfNotDefined(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, { - el: 'swiper-scrollbar' - }); - const params = swiper.params.scrollbar; - if (!params.el) return; - let el; - if (typeof params.el === 'string' && swiper.isElement) { - el = swiper.el.querySelector(params.el); - } - if (!el && typeof params.el === 'string') { - el = document.querySelectorAll(params.el); - if (!el.length) return; - } else if (!el) { - el = params.el; - } - if (swiper.params.uniqueNavElements && typeof params.el === 'string' && el.length > 1 && swiperEl.querySelectorAll(params.el).length === 1) { - el = swiperEl.querySelector(params.el); - } - if (el.length > 0) el = el[0]; - el.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass); - let dragEl; - if (el) { - dragEl = el.querySelector(classesToSelector(swiper.params.scrollbar.dragClass)); - if (!dragEl) { - dragEl = createElement('div', swiper.params.scrollbar.dragClass); - el.append(dragEl); - } - } - Object.assign(scrollbar, { - el, - dragEl - }); - if (params.draggable) { - enableDraggable(); - } - if (el) { - el.classList[swiper.enabled ? 'remove' : 'add'](...classesToTokens(swiper.params.scrollbar.lockClass)); - } - } - function destroy() { - const params = swiper.params.scrollbar; - const el = swiper.scrollbar.el; - if (el) { - el.classList.remove(...classesToTokens(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass)); - } - disableDraggable(); - } - on('init', () => { - if (swiper.params.scrollbar.enabled === false) { - // eslint-disable-next-line - disable(); - } else { - init(); - updateSize(); - setTranslate(); - } - }); - on('update resize observerUpdate lock unlock', () => { - updateSize(); - }); - on('setTranslate', () => { - setTranslate(); - }); - on('setTransition', (_s, duration) => { - setTransition(duration); - }); - on('enable disable', () => { - const { - el - } = swiper.scrollbar; - if (el) { - el.classList[swiper.enabled ? 'remove' : 'add'](...classesToTokens(swiper.params.scrollbar.lockClass)); - } - }); - on('destroy', () => { - destroy(); - }); - const enable = () => { - swiper.el.classList.remove(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass)); - if (swiper.scrollbar.el) { - swiper.scrollbar.el.classList.remove(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass)); - } - init(); - updateSize(); - setTranslate(); - }; - const disable = () => { - swiper.el.classList.add(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass)); - if (swiper.scrollbar.el) { - swiper.scrollbar.el.classList.add(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass)); - } - destroy(); - }; - Object.assign(swiper.scrollbar, { - enable, - disable, - updateSize, - setTranslate, - init, - destroy - }); - } - - function Parallax(_ref) { - let { - swiper, - extendParams, - on - } = _ref; - extendParams({ - parallax: { - enabled: false - } - }); - const elementsSelector = '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]'; - const setTransform = (el, progress) => { - const { - rtl - } = swiper; - const rtlFactor = rtl ? -1 : 1; - const p = el.getAttribute('data-swiper-parallax') || '0'; - let x = el.getAttribute('data-swiper-parallax-x'); - let y = el.getAttribute('data-swiper-parallax-y'); - const scale = el.getAttribute('data-swiper-parallax-scale'); - const opacity = el.getAttribute('data-swiper-parallax-opacity'); - const rotate = el.getAttribute('data-swiper-parallax-rotate'); - if (x || y) { - x = x || '0'; - y = y || '0'; - } else if (swiper.isHorizontal()) { - x = p; - y = '0'; - } else { - y = p; - x = '0'; - } - if (x.indexOf('%') >= 0) { - x = `${parseInt(x, 10) * progress * rtlFactor}%`; - } else { - x = `${x * progress * rtlFactor}px`; - } - if (y.indexOf('%') >= 0) { - y = `${parseInt(y, 10) * progress}%`; - } else { - y = `${y * progress}px`; - } - if (typeof opacity !== 'undefined' && opacity !== null) { - const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress)); - el.style.opacity = currentOpacity; - } - let transform = `translate3d(${x}, ${y}, 0px)`; - if (typeof scale !== 'undefined' && scale !== null) { - const currentScale = scale - (scale - 1) * (1 - Math.abs(progress)); - transform += ` scale(${currentScale})`; - } - if (rotate && typeof rotate !== 'undefined' && rotate !== null) { - const currentRotate = rotate * progress * -1; - transform += ` rotate(${currentRotate}deg)`; - } - el.style.transform = transform; - }; - const setTranslate = () => { - const { - el, - slides, - progress, - snapGrid, - isElement - } = swiper; - const elements = elementChildren(el, elementsSelector); - if (swiper.isElement) { - elements.push(...elementChildren(swiper.hostEl, elementsSelector)); - } - elements.forEach(subEl => { - setTransform(subEl, progress); - }); - slides.forEach((slideEl, slideIndex) => { - let slideProgress = slideEl.progress; - if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') { - slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1); - } - slideProgress = Math.min(Math.max(slideProgress, -1), 1); - slideEl.querySelectorAll(`${elementsSelector}, [data-swiper-parallax-rotate]`).forEach(subEl => { - setTransform(subEl, slideProgress); - }); - }); - }; - const setTransition = function (duration) { - if (duration === void 0) { - duration = swiper.params.speed; - } - const { - el, - hostEl - } = swiper; - const elements = [...el.querySelectorAll(elementsSelector)]; - if (swiper.isElement) { - elements.push(...hostEl.querySelectorAll(elementsSelector)); - } - elements.forEach(parallaxEl => { - let parallaxDuration = parseInt(parallaxEl.getAttribute('data-swiper-parallax-duration'), 10) || duration; - if (duration === 0) parallaxDuration = 0; - parallaxEl.style.transitionDuration = `${parallaxDuration}ms`; - }); - }; - on('beforeInit', () => { - if (!swiper.params.parallax.enabled) return; - swiper.params.watchSlidesProgress = true; - swiper.originalParams.watchSlidesProgress = true; - }); - on('init', () => { - if (!swiper.params.parallax.enabled) return; - setTranslate(); - }); - on('setTranslate', () => { - if (!swiper.params.parallax.enabled) return; - setTranslate(); - }); - on('setTransition', (_swiper, duration) => { - if (!swiper.params.parallax.enabled) return; - setTransition(duration); - }); - } - - function Zoom(_ref) { - let { - swiper, - extendParams, - on, - emit - } = _ref; - const window = getWindow(); - extendParams({ - zoom: { - enabled: false, - maxRatio: 3, - minRatio: 1, - toggle: true, - containerClass: 'swiper-zoom-container', - zoomedSlideClass: 'swiper-slide-zoomed' - } - }); - swiper.zoom = { - enabled: false - }; - let currentScale = 1; - let isScaling = false; - let fakeGestureTouched; - let fakeGestureMoved; - const evCache = []; - const gesture = { - originX: 0, - originY: 0, - slideEl: undefined, - slideWidth: undefined, - slideHeight: undefined, - imageEl: undefined, - imageWrapEl: undefined, - maxRatio: 3 - }; - const image = { - isTouched: undefined, - isMoved: undefined, - currentX: undefined, - currentY: undefined, - minX: undefined, - minY: undefined, - maxX: undefined, - maxY: undefined, - width: undefined, - height: undefined, - startX: undefined, - startY: undefined, - touchesStart: {}, - touchesCurrent: {} - }; - const velocity = { - x: undefined, - y: undefined, - prevPositionX: undefined, - prevPositionY: undefined, - prevTime: undefined - }; - let scale = 1; - Object.defineProperty(swiper.zoom, 'scale', { - get() { - return scale; - }, - set(value) { - if (scale !== value) { - const imageEl = gesture.imageEl; - const slideEl = gesture.slideEl; - emit('zoomChange', value, imageEl, slideEl); - } - scale = value; - } - }); - function getDistanceBetweenTouches() { - if (evCache.length < 2) return 1; - const x1 = evCache[0].pageX; - const y1 = evCache[0].pageY; - const x2 = evCache[1].pageX; - const y2 = evCache[1].pageY; - const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2); - return distance; - } - function getScaleOrigin() { - if (evCache.length < 2) return { - x: null, - y: null - }; - const box = gesture.imageEl.getBoundingClientRect(); - return [(evCache[0].pageX + (evCache[1].pageX - evCache[0].pageX) / 2 - box.x - window.scrollX) / currentScale, (evCache[0].pageY + (evCache[1].pageY - evCache[0].pageY) / 2 - box.y - window.scrollY) / currentScale]; - } - function getSlideSelector() { - return swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`; - } - function eventWithinSlide(e) { - const slideSelector = getSlideSelector(); - if (e.target.matches(slideSelector)) return true; - if (swiper.slides.filter(slideEl => slideEl.contains(e.target)).length > 0) return true; - return false; - } - function eventWithinZoomContainer(e) { - const selector = `.${swiper.params.zoom.containerClass}`; - if (e.target.matches(selector)) return true; - if ([...swiper.hostEl.querySelectorAll(selector)].filter(containerEl => containerEl.contains(e.target)).length > 0) return true; - return false; - } - - // Events - function onGestureStart(e) { - if (e.pointerType === 'mouse') { - evCache.splice(0, evCache.length); - } - if (!eventWithinSlide(e)) return; - const params = swiper.params.zoom; - fakeGestureTouched = false; - fakeGestureMoved = false; - evCache.push(e); - if (evCache.length < 2) { - return; - } - fakeGestureTouched = true; - gesture.scaleStart = getDistanceBetweenTouches(); - if (!gesture.slideEl) { - gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`); - if (!gesture.slideEl) gesture.slideEl = swiper.slides[swiper.activeIndex]; - let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`); - if (imageEl) { - imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0]; - } - gesture.imageEl = imageEl; - if (imageEl) { - gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0]; - } else { - gesture.imageWrapEl = undefined; - } - if (!gesture.imageWrapEl) { - gesture.imageEl = undefined; - return; - } - gesture.maxRatio = gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio; - } - if (gesture.imageEl) { - const [originX, originY] = getScaleOrigin(); - gesture.originX = originX; - gesture.originY = originY; - gesture.imageEl.style.transitionDuration = '0ms'; - } - isScaling = true; - } - function onGestureChange(e) { - if (!eventWithinSlide(e)) return; - const params = swiper.params.zoom; - const zoom = swiper.zoom; - const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId); - if (pointerIndex >= 0) evCache[pointerIndex] = e; - if (evCache.length < 2) { - return; - } - fakeGestureMoved = true; - gesture.scaleMove = getDistanceBetweenTouches(); - if (!gesture.imageEl) { - return; - } - zoom.scale = gesture.scaleMove / gesture.scaleStart * currentScale; - if (zoom.scale > gesture.maxRatio) { - zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5; - } - if (zoom.scale < params.minRatio) { - zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5; - } - gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`; - } - function onGestureEnd(e) { - if (!eventWithinSlide(e)) return; - if (e.pointerType === 'mouse' && e.type === 'pointerout') return; - const params = swiper.params.zoom; - const zoom = swiper.zoom; - const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId); - if (pointerIndex >= 0) evCache.splice(pointerIndex, 1); - if (!fakeGestureTouched || !fakeGestureMoved) { - return; - } - fakeGestureTouched = false; - fakeGestureMoved = false; - if (!gesture.imageEl) return; - zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio); - gesture.imageEl.style.transitionDuration = `${swiper.params.speed}ms`; - gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`; - currentScale = zoom.scale; - isScaling = false; - if (zoom.scale > 1 && gesture.slideEl) { - gesture.slideEl.classList.add(`${params.zoomedSlideClass}`); - } else if (zoom.scale <= 1 && gesture.slideEl) { - gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`); - } - if (zoom.scale === 1) { - gesture.originX = 0; - gesture.originY = 0; - gesture.slideEl = undefined; - } - } - function onTouchStart(e) { - const device = swiper.device; - if (!gesture.imageEl) return; - if (image.isTouched) return; - if (device.android && e.cancelable) e.preventDefault(); - image.isTouched = true; - const event = evCache.length > 0 ? evCache[0] : e; - image.touchesStart.x = event.pageX; - image.touchesStart.y = event.pageY; - } - function onTouchMove(e) { - if (!eventWithinSlide(e) || !eventWithinZoomContainer(e)) return; - const zoom = swiper.zoom; - if (!gesture.imageEl) return; - if (!image.isTouched || !gesture.slideEl) return; - if (!image.isMoved) { - image.width = gesture.imageEl.offsetWidth; - image.height = gesture.imageEl.offsetHeight; - image.startX = getTranslate(gesture.imageWrapEl, 'x') || 0; - image.startY = getTranslate(gesture.imageWrapEl, 'y') || 0; - gesture.slideWidth = gesture.slideEl.offsetWidth; - gesture.slideHeight = gesture.slideEl.offsetHeight; - gesture.imageWrapEl.style.transitionDuration = '0ms'; - } - // Define if we need image drag - const scaledWidth = image.width * zoom.scale; - const scaledHeight = image.height * zoom.scale; - if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return; - image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0); - image.maxX = -image.minX; - image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0); - image.maxY = -image.minY; - image.touchesCurrent.x = evCache.length > 0 ? evCache[0].pageX : e.pageX; - image.touchesCurrent.y = evCache.length > 0 ? evCache[0].pageY : e.pageY; - const touchesDiff = Math.max(Math.abs(image.touchesCurrent.x - image.touchesStart.x), Math.abs(image.touchesCurrent.y - image.touchesStart.y)); - if (touchesDiff > 5) { - swiper.allowClick = false; - } - if (!image.isMoved && !isScaling) { - if (swiper.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) { - image.isTouched = false; - return; - } - if (!swiper.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) { - image.isTouched = false; - return; - } - } - if (e.cancelable) { - e.preventDefault(); - } - e.stopPropagation(); - image.isMoved = true; - const scaleRatio = (zoom.scale - currentScale) / (gesture.maxRatio - swiper.params.zoom.minRatio); - const { - originX, - originY - } = gesture; - image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX + scaleRatio * (image.width - originX * 2); - image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY + scaleRatio * (image.height - originY * 2); - if (image.currentX < image.minX) { - image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8; - } - if (image.currentX > image.maxX) { - image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8; - } - if (image.currentY < image.minY) { - image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8; - } - if (image.currentY > image.maxY) { - image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8; - } - - // Velocity - if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x; - if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y; - if (!velocity.prevTime) velocity.prevTime = Date.now(); - velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2; - velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2; - if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0; - if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0; - velocity.prevPositionX = image.touchesCurrent.x; - velocity.prevPositionY = image.touchesCurrent.y; - velocity.prevTime = Date.now(); - gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`; - } - function onTouchEnd() { - const zoom = swiper.zoom; - if (!gesture.imageEl) return; - if (!image.isTouched || !image.isMoved) { - image.isTouched = false; - image.isMoved = false; - return; - } - image.isTouched = false; - image.isMoved = false; - let momentumDurationX = 300; - let momentumDurationY = 300; - const momentumDistanceX = velocity.x * momentumDurationX; - const newPositionX = image.currentX + momentumDistanceX; - const momentumDistanceY = velocity.y * momentumDurationY; - const newPositionY = image.currentY + momentumDistanceY; - - // Fix duration - if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x); - if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y); - const momentumDuration = Math.max(momentumDurationX, momentumDurationY); - image.currentX = newPositionX; - image.currentY = newPositionY; - // Define if we need image drag - const scaledWidth = image.width * zoom.scale; - const scaledHeight = image.height * zoom.scale; - image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0); - image.maxX = -image.minX; - image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0); - image.maxY = -image.minY; - image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX); - image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY); - gesture.imageWrapEl.style.transitionDuration = `${momentumDuration}ms`; - gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`; - } - function onTransitionEnd() { - const zoom = swiper.zoom; - if (gesture.slideEl && swiper.activeIndex !== swiper.slides.indexOf(gesture.slideEl)) { - if (gesture.imageEl) { - gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)'; - } - if (gesture.imageWrapEl) { - gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)'; - } - gesture.slideEl.classList.remove(`${swiper.params.zoom.zoomedSlideClass}`); - zoom.scale = 1; - currentScale = 1; - gesture.slideEl = undefined; - gesture.imageEl = undefined; - gesture.imageWrapEl = undefined; - gesture.originX = 0; - gesture.originY = 0; - } - } - function zoomIn(e) { - const zoom = swiper.zoom; - const params = swiper.params.zoom; - if (!gesture.slideEl) { - if (e && e.target) { - gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`); - } - if (!gesture.slideEl) { - if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) { - gesture.slideEl = elementChildren(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0]; - } else { - gesture.slideEl = swiper.slides[swiper.activeIndex]; - } - } - let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`); - if (imageEl) { - imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0]; - } - gesture.imageEl = imageEl; - if (imageEl) { - gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0]; - } else { - gesture.imageWrapEl = undefined; - } - } - if (!gesture.imageEl || !gesture.imageWrapEl) return; - if (swiper.params.cssMode) { - swiper.wrapperEl.style.overflow = 'hidden'; - swiper.wrapperEl.style.touchAction = 'none'; - } - gesture.slideEl.classList.add(`${params.zoomedSlideClass}`); - let touchX; - let touchY; - let offsetX; - let offsetY; - let diffX; - let diffY; - let translateX; - let translateY; - let imageWidth; - let imageHeight; - let scaledWidth; - let scaledHeight; - let translateMinX; - let translateMinY; - let translateMaxX; - let translateMaxY; - let slideWidth; - let slideHeight; - if (typeof image.touchesStart.x === 'undefined' && e) { - touchX = e.pageX; - touchY = e.pageY; - } else { - touchX = image.touchesStart.x; - touchY = image.touchesStart.y; - } - const forceZoomRatio = typeof e === 'number' ? e : null; - if (currentScale === 1 && forceZoomRatio) { - touchX = undefined; - touchY = undefined; - } - zoom.scale = forceZoomRatio || gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio; - currentScale = forceZoomRatio || gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio; - if (e && !(currentScale === 1 && forceZoomRatio)) { - slideWidth = gesture.slideEl.offsetWidth; - slideHeight = gesture.slideEl.offsetHeight; - offsetX = elementOffset(gesture.slideEl).left + window.scrollX; - offsetY = elementOffset(gesture.slideEl).top + window.scrollY; - diffX = offsetX + slideWidth / 2 - touchX; - diffY = offsetY + slideHeight / 2 - touchY; - imageWidth = gesture.imageEl.offsetWidth; - imageHeight = gesture.imageEl.offsetHeight; - scaledWidth = imageWidth * zoom.scale; - scaledHeight = imageHeight * zoom.scale; - translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0); - translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0); - translateMaxX = -translateMinX; - translateMaxY = -translateMinY; - translateX = diffX * zoom.scale; - translateY = diffY * zoom.scale; - if (translateX < translateMinX) { - translateX = translateMinX; - } - if (translateX > translateMaxX) { - translateX = translateMaxX; - } - if (translateY < translateMinY) { - translateY = translateMinY; - } - if (translateY > translateMaxY) { - translateY = translateMaxY; - } - } else { - translateX = 0; - translateY = 0; - } - if (forceZoomRatio && zoom.scale === 1) { - gesture.originX = 0; - gesture.originY = 0; - } - gesture.imageWrapEl.style.transitionDuration = '300ms'; - gesture.imageWrapEl.style.transform = `translate3d(${translateX}px, ${translateY}px,0)`; - gesture.imageEl.style.transitionDuration = '300ms'; - gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`; - } - function zoomOut() { - const zoom = swiper.zoom; - const params = swiper.params.zoom; - if (!gesture.slideEl) { - if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) { - gesture.slideEl = elementChildren(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0]; - } else { - gesture.slideEl = swiper.slides[swiper.activeIndex]; - } - let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`); - if (imageEl) { - imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0]; - } - gesture.imageEl = imageEl; - if (imageEl) { - gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0]; - } else { - gesture.imageWrapEl = undefined; - } - } - if (!gesture.imageEl || !gesture.imageWrapEl) return; - if (swiper.params.cssMode) { - swiper.wrapperEl.style.overflow = ''; - swiper.wrapperEl.style.touchAction = ''; - } - zoom.scale = 1; - currentScale = 1; - gesture.imageWrapEl.style.transitionDuration = '300ms'; - gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)'; - gesture.imageEl.style.transitionDuration = '300ms'; - gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)'; - gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`); - gesture.slideEl = undefined; - gesture.originX = 0; - gesture.originY = 0; - } - - // Toggle Zoom - function zoomToggle(e) { - const zoom = swiper.zoom; - if (zoom.scale && zoom.scale !== 1) { - // Zoom Out - zoomOut(); - } else { - // Zoom In - zoomIn(e); - } - } - function getListeners() { - const passiveListener = swiper.params.passiveListeners ? { - passive: true, - capture: false - } : false; - const activeListenerWithCapture = swiper.params.passiveListeners ? { - passive: false, - capture: true - } : true; - return { - passiveListener, - activeListenerWithCapture - }; - } - - // Attach/Detach Events - function enable() { - const zoom = swiper.zoom; - if (zoom.enabled) return; - zoom.enabled = true; - const { - passiveListener, - activeListenerWithCapture - } = getListeners(); - - // Scale image - swiper.wrapperEl.addEventListener('pointerdown', onGestureStart, passiveListener); - swiper.wrapperEl.addEventListener('pointermove', onGestureChange, activeListenerWithCapture); - ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => { - swiper.wrapperEl.addEventListener(eventName, onGestureEnd, passiveListener); - }); - - // Move image - swiper.wrapperEl.addEventListener('pointermove', onTouchMove, activeListenerWithCapture); - } - function disable() { - const zoom = swiper.zoom; - if (!zoom.enabled) return; - zoom.enabled = false; - const { - passiveListener, - activeListenerWithCapture - } = getListeners(); - - // Scale image - swiper.wrapperEl.removeEventListener('pointerdown', onGestureStart, passiveListener); - swiper.wrapperEl.removeEventListener('pointermove', onGestureChange, activeListenerWithCapture); - ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => { - swiper.wrapperEl.removeEventListener(eventName, onGestureEnd, passiveListener); - }); - - // Move image - swiper.wrapperEl.removeEventListener('pointermove', onTouchMove, activeListenerWithCapture); - } - on('init', () => { - if (swiper.params.zoom.enabled) { - enable(); - } - }); - on('destroy', () => { - disable(); - }); - on('touchStart', (_s, e) => { - if (!swiper.zoom.enabled) return; - onTouchStart(e); - }); - on('touchEnd', (_s, e) => { - if (!swiper.zoom.enabled) return; - onTouchEnd(); - }); - on('doubleTap', (_s, e) => { - if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) { - zoomToggle(e); - } - }); - on('transitionEnd', () => { - if (swiper.zoom.enabled && swiper.params.zoom.enabled) { - onTransitionEnd(); - } - }); - on('slideChange', () => { - if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) { - onTransitionEnd(); - } - }); - Object.assign(swiper.zoom, { - enable, - disable, - in: zoomIn, - out: zoomOut, - toggle: zoomToggle - }); - } - - /* eslint no-bitwise: ["error", { "allow": [">>"] }] */ - function Controller(_ref) { - let { - swiper, - extendParams, - on - } = _ref; - extendParams({ - controller: { - control: undefined, - inverse: false, - by: 'slide' // or 'container' - } - }); - - swiper.controller = { - control: undefined - }; - function LinearSpline(x, y) { - const binarySearch = function search() { - let maxIndex; - let minIndex; - let guess; - return (array, val) => { - minIndex = -1; - maxIndex = array.length; - while (maxIndex - minIndex > 1) { - guess = maxIndex + minIndex >> 1; - if (array[guess] <= val) { - minIndex = guess; - } else { - maxIndex = guess; - } - } - return maxIndex; - }; - }(); - this.x = x; - this.y = y; - this.lastIndex = x.length - 1; - // Given an x value (x2), return the expected y2 value: - // (x1,y1) is the known point before given value, - // (x3,y3) is the known point after given value. - let i1; - let i3; - this.interpolate = function interpolate(x2) { - if (!x2) return 0; - - // Get the indexes of x1 and x3 (the array indexes before and after given x2): - i3 = binarySearch(this.x, x2); - i1 = i3 - 1; - - // We have our indexes i1 & i3, so we can calculate already: - // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1 - return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1]; - }; - return this; - } - function getInterpolateFunction(c) { - swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid); - } - function setTranslate(_t, byController) { - const controlled = swiper.controller.control; - let multiplier; - let controlledTranslate; - const Swiper = swiper.constructor; - function setControlledTranslate(c) { - if (c.destroyed) return; - - // this will create an Interpolate function based on the snapGrids - // x is the Grid of the scrolled scroller and y will be the controlled scroller - // it makes sense to create this only once and recall it for the interpolation - // the function does a lot of value caching for performance - const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate; - if (swiper.params.controller.by === 'slide') { - getInterpolateFunction(c); - // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid - // but it did not work out - controlledTranslate = -swiper.controller.spline.interpolate(-translate); - } - if (!controlledTranslate || swiper.params.controller.by === 'container') { - multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate()); - if (Number.isNaN(multiplier) || !Number.isFinite(multiplier)) { - multiplier = 1; - } - controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate(); - } - if (swiper.params.controller.inverse) { - controlledTranslate = c.maxTranslate() - controlledTranslate; - } - c.updateProgress(controlledTranslate); - c.setTranslate(controlledTranslate, swiper); - c.updateActiveIndex(); - c.updateSlidesClasses(); - } - if (Array.isArray(controlled)) { - for (let i = 0; i < controlled.length; i += 1) { - if (controlled[i] !== byController && controlled[i] instanceof Swiper) { - setControlledTranslate(controlled[i]); - } - } - } else if (controlled instanceof Swiper && byController !== controlled) { - setControlledTranslate(controlled); - } - } - function setTransition(duration, byController) { - const Swiper = swiper.constructor; - const controlled = swiper.controller.control; - let i; - function setControlledTransition(c) { - if (c.destroyed) return; - c.setTransition(duration, swiper); - if (duration !== 0) { - c.transitionStart(); - if (c.params.autoHeight) { - nextTick(() => { - c.updateAutoHeight(); - }); - } - elementTransitionEnd(c.wrapperEl, () => { - if (!controlled) return; - c.transitionEnd(); - }); - } - } - if (Array.isArray(controlled)) { - for (i = 0; i < controlled.length; i += 1) { - if (controlled[i] !== byController && controlled[i] instanceof Swiper) { - setControlledTransition(controlled[i]); - } - } - } else if (controlled instanceof Swiper && byController !== controlled) { - setControlledTransition(controlled); - } - } - function removeSpline() { - if (!swiper.controller.control) return; - if (swiper.controller.spline) { - swiper.controller.spline = undefined; - delete swiper.controller.spline; - } - } - on('beforeInit', () => { - if (typeof window !== 'undefined' && ( - // eslint-disable-line - typeof swiper.params.controller.control === 'string' || swiper.params.controller.control instanceof HTMLElement)) { - const controlElement = document.querySelector(swiper.params.controller.control); - if (controlElement && controlElement.swiper) { - swiper.controller.control = controlElement.swiper; - } else if (controlElement) { - const onControllerSwiper = e => { - swiper.controller.control = e.detail[0]; - swiper.update(); - controlElement.removeEventListener('init', onControllerSwiper); - }; - controlElement.addEventListener('init', onControllerSwiper); - } - return; - } - swiper.controller.control = swiper.params.controller.control; - }); - on('update', () => { - removeSpline(); - }); - on('resize', () => { - removeSpline(); - }); - on('observerUpdate', () => { - removeSpline(); - }); - on('setTranslate', (_s, translate, byController) => { - if (!swiper.controller.control || swiper.controller.control.destroyed) return; - swiper.controller.setTranslate(translate, byController); - }); - on('setTransition', (_s, duration, byController) => { - if (!swiper.controller.control || swiper.controller.control.destroyed) return; - swiper.controller.setTransition(duration, byController); - }); - Object.assign(swiper.controller, { - setTranslate, - setTransition - }); - } - - function A11y(_ref) { - let { - swiper, - extendParams, - on - } = _ref; - extendParams({ - a11y: { - enabled: true, - notificationClass: 'swiper-notification', - prevSlideMessage: 'Previous slide', - nextSlideMessage: 'Next slide', - firstSlideMessage: 'This is the first slide', - lastSlideMessage: 'This is the last slide', - paginationBulletMessage: 'Go to slide {{index}}', - slideLabelMessage: '{{index}} / {{slidesLength}}', - containerMessage: null, - containerRoleDescriptionMessage: null, - itemRoleDescriptionMessage: null, - slideRole: 'group', - id: null - } - }); - swiper.a11y = { - clicked: false - }; - let liveRegion = null; - function notify(message) { - const notification = liveRegion; - if (notification.length === 0) return; - notification.innerHTML = ''; - notification.innerHTML = message; - } - const makeElementsArray = el => (Array.isArray(el) ? el : [el]).filter(e => !!e); - function getRandomNumber(size) { - if (size === void 0) { - size = 16; - } - const randomChar = () => Math.round(16 * Math.random()).toString(16); - return 'x'.repeat(size).replace(/x/g, randomChar); - } - function makeElFocusable(el) { - el = makeElementsArray(el); - el.forEach(subEl => { - subEl.setAttribute('tabIndex', '0'); - }); - } - function makeElNotFocusable(el) { - el = makeElementsArray(el); - el.forEach(subEl => { - subEl.setAttribute('tabIndex', '-1'); - }); - } - function addElRole(el, role) { - el = makeElementsArray(el); - el.forEach(subEl => { - subEl.setAttribute('role', role); - }); - } - function addElRoleDescription(el, description) { - el = makeElementsArray(el); - el.forEach(subEl => { - subEl.setAttribute('aria-roledescription', description); - }); - } - function addElControls(el, controls) { - el = makeElementsArray(el); - el.forEach(subEl => { - subEl.setAttribute('aria-controls', controls); - }); - } - function addElLabel(el, label) { - el = makeElementsArray(el); - el.forEach(subEl => { - subEl.setAttribute('aria-label', label); - }); - } - function addElId(el, id) { - el = makeElementsArray(el); - el.forEach(subEl => { - subEl.setAttribute('id', id); - }); - } - function addElLive(el, live) { - el = makeElementsArray(el); - el.forEach(subEl => { - subEl.setAttribute('aria-live', live); - }); - } - function disableEl(el) { - el = makeElementsArray(el); - el.forEach(subEl => { - subEl.setAttribute('aria-disabled', true); - }); - } - function enableEl(el) { - el = makeElementsArray(el); - el.forEach(subEl => { - subEl.setAttribute('aria-disabled', false); - }); - } - function onEnterOrSpaceKey(e) { - if (e.keyCode !== 13 && e.keyCode !== 32) return; - const params = swiper.params.a11y; - const targetEl = e.target; - if (swiper.pagination && swiper.pagination.el && (targetEl === swiper.pagination.el || swiper.pagination.el.contains(e.target))) { - if (!e.target.matches(classesToSelector(swiper.params.pagination.bulletClass))) return; - } - if (swiper.navigation && swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl) { - if (!(swiper.isEnd && !swiper.params.loop)) { - swiper.slideNext(); - } - if (swiper.isEnd) { - notify(params.lastSlideMessage); - } else { - notify(params.nextSlideMessage); - } - } - if (swiper.navigation && swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl) { - if (!(swiper.isBeginning && !swiper.params.loop)) { - swiper.slidePrev(); - } - if (swiper.isBeginning) { - notify(params.firstSlideMessage); - } else { - notify(params.prevSlideMessage); - } - } - if (swiper.pagination && targetEl.matches(classesToSelector(swiper.params.pagination.bulletClass))) { - targetEl.click(); - } - } - function updateNavigation() { - if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return; - const { - nextEl, - prevEl - } = swiper.navigation; - if (prevEl) { - if (swiper.isBeginning) { - disableEl(prevEl); - makeElNotFocusable(prevEl); - } else { - enableEl(prevEl); - makeElFocusable(prevEl); - } - } - if (nextEl) { - if (swiper.isEnd) { - disableEl(nextEl); - makeElNotFocusable(nextEl); - } else { - enableEl(nextEl); - makeElFocusable(nextEl); - } - } - } - function hasPagination() { - return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length; - } - function hasClickablePagination() { - return hasPagination() && swiper.params.pagination.clickable; - } - function updatePagination() { - const params = swiper.params.a11y; - if (!hasPagination()) return; - swiper.pagination.bullets.forEach(bulletEl => { - if (swiper.params.pagination.clickable) { - makeElFocusable(bulletEl); - if (!swiper.params.pagination.renderBullet) { - addElRole(bulletEl, 'button'); - addElLabel(bulletEl, params.paginationBulletMessage.replace(/\{\{index\}\}/, elementIndex(bulletEl) + 1)); - } - } - if (bulletEl.matches(classesToSelector(swiper.params.pagination.bulletActiveClass))) { - bulletEl.setAttribute('aria-current', 'true'); - } else { - bulletEl.removeAttribute('aria-current'); - } - }); - } - const initNavEl = (el, wrapperId, message) => { - makeElFocusable(el); - if (el.tagName !== 'BUTTON') { - addElRole(el, 'button'); - el.addEventListener('keydown', onEnterOrSpaceKey); - } - addElLabel(el, message); - addElControls(el, wrapperId); - }; - const handlePointerDown = () => { - swiper.a11y.clicked = true; - }; - const handlePointerUp = () => { - requestAnimationFrame(() => { - requestAnimationFrame(() => { - if (!swiper.destroyed) { - swiper.a11y.clicked = false; - } - }); - }); - }; - const handleFocus = e => { - if (swiper.a11y.clicked) return; - const slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`); - if (!slideEl || !swiper.slides.includes(slideEl)) return; - const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex; - const isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl); - if (isActive || isVisible) return; - if (e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents) return; - if (swiper.isHorizontal()) { - swiper.el.scrollLeft = 0; - } else { - swiper.el.scrollTop = 0; - } - swiper.slideTo(swiper.slides.indexOf(slideEl), 0); - }; - const initSlides = () => { - const params = swiper.params.a11y; - if (params.itemRoleDescriptionMessage) { - addElRoleDescription(swiper.slides, params.itemRoleDescriptionMessage); - } - if (params.slideRole) { - addElRole(swiper.slides, params.slideRole); - } - const slidesLength = swiper.slides.length; - if (params.slideLabelMessage) { - swiper.slides.forEach((slideEl, index) => { - const slideIndex = swiper.params.loop ? parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10) : index; - const ariaLabelMessage = params.slideLabelMessage.replace(/\{\{index\}\}/, slideIndex + 1).replace(/\{\{slidesLength\}\}/, slidesLength); - addElLabel(slideEl, ariaLabelMessage); - }); - } - }; - const init = () => { - const params = swiper.params.a11y; - swiper.el.append(liveRegion); - - // Container - const containerEl = swiper.el; - if (params.containerRoleDescriptionMessage) { - addElRoleDescription(containerEl, params.containerRoleDescriptionMessage); - } - if (params.containerMessage) { - addElLabel(containerEl, params.containerMessage); - } - - // Wrapper - const wrapperEl = swiper.wrapperEl; - const wrapperId = params.id || wrapperEl.getAttribute('id') || `swiper-wrapper-${getRandomNumber(16)}`; - const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite'; - addElId(wrapperEl, wrapperId); - addElLive(wrapperEl, live); - - // Slide - initSlides(); - - // Navigation - let { - nextEl, - prevEl - } = swiper.navigation ? swiper.navigation : {}; - nextEl = makeElementsArray(nextEl); - prevEl = makeElementsArray(prevEl); - if (nextEl) { - nextEl.forEach(el => initNavEl(el, wrapperId, params.nextSlideMessage)); - } - if (prevEl) { - prevEl.forEach(el => initNavEl(el, wrapperId, params.prevSlideMessage)); - } - - // Pagination - if (hasClickablePagination()) { - const paginationEl = makeElementsArray(swiper.pagination.el); - paginationEl.forEach(el => { - el.addEventListener('keydown', onEnterOrSpaceKey); - }); - } - - // Tab focus - swiper.el.addEventListener('focus', handleFocus, true); - swiper.el.addEventListener('pointerdown', handlePointerDown, true); - swiper.el.addEventListener('pointerup', handlePointerUp, true); - }; - function destroy() { - if (liveRegion) liveRegion.remove(); - let { - nextEl, - prevEl - } = swiper.navigation ? swiper.navigation : {}; - nextEl = makeElementsArray(nextEl); - prevEl = makeElementsArray(prevEl); - if (nextEl) { - nextEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey)); - } - if (prevEl) { - prevEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey)); - } - - // Pagination - if (hasClickablePagination()) { - const paginationEl = makeElementsArray(swiper.pagination.el); - paginationEl.forEach(el => { - el.removeEventListener('keydown', onEnterOrSpaceKey); - }); - } - - // Tab focus - swiper.el.removeEventListener('focus', handleFocus, true); - swiper.el.removeEventListener('pointerdown', handlePointerDown, true); - swiper.el.removeEventListener('pointerup', handlePointerUp, true); - } - on('beforeInit', () => { - liveRegion = createElement('span', swiper.params.a11y.notificationClass); - liveRegion.setAttribute('aria-live', 'assertive'); - liveRegion.setAttribute('aria-atomic', 'true'); - }); - on('afterInit', () => { - if (!swiper.params.a11y.enabled) return; - init(); - }); - on('slidesLengthChange snapGridLengthChange slidesGridLengthChange', () => { - if (!swiper.params.a11y.enabled) return; - initSlides(); - }); - on('fromEdge toEdge afterInit lock unlock', () => { - if (!swiper.params.a11y.enabled) return; - updateNavigation(); - }); - on('paginationUpdate', () => { - if (!swiper.params.a11y.enabled) return; - updatePagination(); - }); - on('destroy', () => { - if (!swiper.params.a11y.enabled) return; - destroy(); - }); - } - - function History(_ref) { - let { - swiper, - extendParams, - on - } = _ref; - extendParams({ - history: { - enabled: false, - root: '', - replaceState: false, - key: 'slides', - keepQuery: false - } - }); - let initialized = false; - let paths = {}; - const slugify = text => { - return text.toString().replace(/\s+/g, '-').replace(/[^\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, ''); - }; - const getPathValues = urlOverride => { - const window = getWindow(); - let location; - if (urlOverride) { - location = new URL(urlOverride); - } else { - location = window.location; - } - const pathArray = location.pathname.slice(1).split('/').filter(part => part !== ''); - const total = pathArray.length; - const key = pathArray[total - 2]; - const value = pathArray[total - 1]; - return { - key, - value - }; - }; - const setHistory = (key, index) => { - const window = getWindow(); - if (!initialized || !swiper.params.history.enabled) return; - let location; - if (swiper.params.url) { - location = new URL(swiper.params.url); - } else { - location = window.location; - } - const slide = swiper.slides[index]; - let value = slugify(slide.getAttribute('data-history')); - if (swiper.params.history.root.length > 0) { - let root = swiper.params.history.root; - if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1); - value = `${root}/${key ? `${key}/` : ''}${value}`; - } else if (!location.pathname.includes(key)) { - value = `${key ? `${key}/` : ''}${value}`; - } - if (swiper.params.history.keepQuery) { - value += location.search; - } - const currentState = window.history.state; - if (currentState && currentState.value === value) { - return; - } - if (swiper.params.history.replaceState) { - window.history.replaceState({ - value - }, null, value); - } else { - window.history.pushState({ - value - }, null, value); - } - }; - const scrollToSlide = (speed, value, runCallbacks) => { - if (value) { - for (let i = 0, length = swiper.slides.length; i < length; i += 1) { - const slide = swiper.slides[i]; - const slideHistory = slugify(slide.getAttribute('data-history')); - if (slideHistory === value) { - const index = swiper.getSlideIndex(slide); - swiper.slideTo(index, speed, runCallbacks); - } - } - } else { - swiper.slideTo(0, speed, runCallbacks); - } - }; - const setHistoryPopState = () => { - paths = getPathValues(swiper.params.url); - scrollToSlide(swiper.params.speed, paths.value, false); - }; - const init = () => { - const window = getWindow(); - if (!swiper.params.history) return; - if (!window.history || !window.history.pushState) { - swiper.params.history.enabled = false; - swiper.params.hashNavigation.enabled = true; - return; - } - initialized = true; - paths = getPathValues(swiper.params.url); - if (!paths.key && !paths.value) { - if (!swiper.params.history.replaceState) { - window.addEventListener('popstate', setHistoryPopState); - } - return; - } - scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit); - if (!swiper.params.history.replaceState) { - window.addEventListener('popstate', setHistoryPopState); - } - }; - const destroy = () => { - const window = getWindow(); - if (!swiper.params.history.replaceState) { - window.removeEventListener('popstate', setHistoryPopState); - } - }; - on('init', () => { - if (swiper.params.history.enabled) { - init(); - } - }); - on('destroy', () => { - if (swiper.params.history.enabled) { - destroy(); - } - }); - on('transitionEnd _freeModeNoMomentumRelease', () => { - if (initialized) { - setHistory(swiper.params.history.key, swiper.activeIndex); - } - }); - on('slideChange', () => { - if (initialized && swiper.params.cssMode) { - setHistory(swiper.params.history.key, swiper.activeIndex); - } - }); - } - - function HashNavigation(_ref) { - let { - swiper, - extendParams, - emit, - on - } = _ref; - let initialized = false; - const document = getDocument(); - const window = getWindow(); - extendParams({ - hashNavigation: { - enabled: false, - replaceState: false, - watchState: false, - getSlideIndex(_s, hash) { - if (swiper.virtual && swiper.params.virtual.enabled) { - const slideWithHash = swiper.slides.filter(slideEl => slideEl.getAttribute('data-hash') === hash)[0]; - if (!slideWithHash) return 0; - const index = parseInt(slideWithHash.getAttribute('data-swiper-slide-index'), 10); - return index; - } - return swiper.getSlideIndex(elementChildren(swiper.slidesEl, `.${swiper.params.slideClass}[data-hash="${hash}"], swiper-slide[data-hash="${hash}"]`)[0]); - } - } - }); - const onHashChange = () => { - emit('hashChange'); - const newHash = document.location.hash.replace('#', ''); - const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index="${swiper.activeIndex}"]`) : swiper.slides[swiper.activeIndex]; - const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') : ''; - if (newHash !== activeSlideHash) { - const newIndex = swiper.params.hashNavigation.getSlideIndex(swiper, newHash); - if (typeof newIndex === 'undefined' || Number.isNaN(newIndex)) return; - swiper.slideTo(newIndex); - } - }; - const setHash = () => { - if (!initialized || !swiper.params.hashNavigation.enabled) return; - const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index="${swiper.activeIndex}"]`) : swiper.slides[swiper.activeIndex]; - const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') || activeSlideEl.getAttribute('data-history') : ''; - if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) { - window.history.replaceState(null, null, `#${activeSlideHash}` || ''); - emit('hashSet'); - } else { - document.location.hash = activeSlideHash || ''; - emit('hashSet'); - } - }; - const init = () => { - if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return; - initialized = true; - const hash = document.location.hash.replace('#', ''); - if (hash) { - const speed = 0; - const index = swiper.params.hashNavigation.getSlideIndex(swiper, hash); - swiper.slideTo(index || 0, speed, swiper.params.runCallbacksOnInit, true); - } - if (swiper.params.hashNavigation.watchState) { - window.addEventListener('hashchange', onHashChange); - } - }; - const destroy = () => { - if (swiper.params.hashNavigation.watchState) { - window.removeEventListener('hashchange', onHashChange); - } - }; - on('init', () => { - if (swiper.params.hashNavigation.enabled) { - init(); - } - }); - on('destroy', () => { - if (swiper.params.hashNavigation.enabled) { - destroy(); - } - }); - on('transitionEnd _freeModeNoMomentumRelease', () => { - if (initialized) { - setHash(); - } - }); - on('slideChange', () => { - if (initialized && swiper.params.cssMode) { - setHash(); - } - }); - } - - /* eslint no-underscore-dangle: "off" */ - /* eslint no-use-before-define: "off" */ - function Autoplay(_ref) { - let { - swiper, - extendParams, - on, - emit, - params - } = _ref; - swiper.autoplay = { - running: false, - paused: false, - timeLeft: 0 - }; - extendParams({ - autoplay: { - enabled: false, - delay: 3000, - waitForTransition: true, - disableOnInteraction: false, - stopOnLastSlide: false, - reverseDirection: false, - pauseOnMouseEnter: false - } - }); - let timeout; - let raf; - let autoplayDelayTotal = params && params.autoplay ? params.autoplay.delay : 3000; - let autoplayDelayCurrent = params && params.autoplay ? params.autoplay.delay : 3000; - let autoplayTimeLeft; - let autoplayStartTime = new Date().getTime(); - let wasPaused; - let isTouched; - let pausedByTouch; - let touchStartTimeout; - let slideChanged; - let pausedByInteraction; - let pausedByPointerEnter; - function onTransitionEnd(e) { - if (!swiper || swiper.destroyed || !swiper.wrapperEl) return; - if (e.target !== swiper.wrapperEl) return; - swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd); - if (pausedByPointerEnter) { - return; - } - resume(); - } - const calcTimeLeft = () => { - if (swiper.destroyed || !swiper.autoplay.running) return; - if (swiper.autoplay.paused) { - wasPaused = true; - } else if (wasPaused) { - autoplayDelayCurrent = autoplayTimeLeft; - wasPaused = false; - } - const timeLeft = swiper.autoplay.paused ? autoplayTimeLeft : autoplayStartTime + autoplayDelayCurrent - new Date().getTime(); - swiper.autoplay.timeLeft = timeLeft; - emit('autoplayTimeLeft', timeLeft, timeLeft / autoplayDelayTotal); - raf = requestAnimationFrame(() => { - calcTimeLeft(); - }); - }; - const getSlideDelay = () => { - let activeSlideEl; - if (swiper.virtual && swiper.params.virtual.enabled) { - activeSlideEl = swiper.slides.filter(slideEl => slideEl.classList.contains('swiper-slide-active'))[0]; - } else { - activeSlideEl = swiper.slides[swiper.activeIndex]; - } - if (!activeSlideEl) return undefined; - const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10); - return currentSlideDelay; - }; - const run = delayForce => { - if (swiper.destroyed || !swiper.autoplay.running) return; - cancelAnimationFrame(raf); - calcTimeLeft(); - let delay = typeof delayForce === 'undefined' ? swiper.params.autoplay.delay : delayForce; - autoplayDelayTotal = swiper.params.autoplay.delay; - autoplayDelayCurrent = swiper.params.autoplay.delay; - const currentSlideDelay = getSlideDelay(); - if (!Number.isNaN(currentSlideDelay) && currentSlideDelay > 0 && typeof delayForce === 'undefined') { - delay = currentSlideDelay; - autoplayDelayTotal = currentSlideDelay; - autoplayDelayCurrent = currentSlideDelay; - } - autoplayTimeLeft = delay; - const speed = swiper.params.speed; - const proceed = () => { - if (!swiper || swiper.destroyed) return; - if (swiper.params.autoplay.reverseDirection) { - if (!swiper.isBeginning || swiper.params.loop || swiper.params.rewind) { - swiper.slidePrev(speed, true, true); - emit('autoplay'); - } else if (!swiper.params.autoplay.stopOnLastSlide) { - swiper.slideTo(swiper.slides.length - 1, speed, true, true); - emit('autoplay'); - } - } else { - if (!swiper.isEnd || swiper.params.loop || swiper.params.rewind) { - swiper.slideNext(speed, true, true); - emit('autoplay'); - } else if (!swiper.params.autoplay.stopOnLastSlide) { - swiper.slideTo(0, speed, true, true); - emit('autoplay'); - } - } - if (swiper.params.cssMode) { - autoplayStartTime = new Date().getTime(); - requestAnimationFrame(() => { - run(); - }); - } - }; - if (delay > 0) { - clearTimeout(timeout); - timeout = setTimeout(() => { - proceed(); - }, delay); - } else { - requestAnimationFrame(() => { - proceed(); - }); - } - - // eslint-disable-next-line - return delay; - }; - const start = () => { - autoplayStartTime = new Date().getTime(); - swiper.autoplay.running = true; - run(); - emit('autoplayStart'); - }; - const stop = () => { - swiper.autoplay.running = false; - clearTimeout(timeout); - cancelAnimationFrame(raf); - emit('autoplayStop'); - }; - const pause = (internal, reset) => { - if (swiper.destroyed || !swiper.autoplay.running) return; - clearTimeout(timeout); - if (!internal) { - pausedByInteraction = true; - } - const proceed = () => { - emit('autoplayPause'); - if (swiper.params.autoplay.waitForTransition) { - swiper.wrapperEl.addEventListener('transitionend', onTransitionEnd); - } else { - resume(); - } - }; - swiper.autoplay.paused = true; - if (reset) { - if (slideChanged) { - autoplayTimeLeft = swiper.params.autoplay.delay; - } - slideChanged = false; - proceed(); - return; - } - const delay = autoplayTimeLeft || swiper.params.autoplay.delay; - autoplayTimeLeft = delay - (new Date().getTime() - autoplayStartTime); - if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) return; - if (autoplayTimeLeft < 0) autoplayTimeLeft = 0; - proceed(); - }; - const resume = () => { - if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop || swiper.destroyed || !swiper.autoplay.running) return; - autoplayStartTime = new Date().getTime(); - if (pausedByInteraction) { - pausedByInteraction = false; - run(autoplayTimeLeft); - } else { - run(); - } - swiper.autoplay.paused = false; - emit('autoplayResume'); - }; - const onVisibilityChange = () => { - if (swiper.destroyed || !swiper.autoplay.running) return; - const document = getDocument(); - if (document.visibilityState === 'hidden') { - pausedByInteraction = true; - pause(true); - } - if (document.visibilityState === 'visible') { - resume(); - } - }; - const onPointerEnter = e => { - if (e.pointerType !== 'mouse') return; - pausedByInteraction = true; - pausedByPointerEnter = true; - if (swiper.animating || swiper.autoplay.paused) return; - pause(true); - }; - const onPointerLeave = e => { - if (e.pointerType !== 'mouse') return; - pausedByPointerEnter = false; - if (swiper.autoplay.paused) { - resume(); - } - }; - const attachMouseEvents = () => { - if (swiper.params.autoplay.pauseOnMouseEnter) { - swiper.el.addEventListener('pointerenter', onPointerEnter); - swiper.el.addEventListener('pointerleave', onPointerLeave); - } - }; - const detachMouseEvents = () => { - swiper.el.removeEventListener('pointerenter', onPointerEnter); - swiper.el.removeEventListener('pointerleave', onPointerLeave); - }; - const attachDocumentEvents = () => { - const document = getDocument(); - document.addEventListener('visibilitychange', onVisibilityChange); - }; - const detachDocumentEvents = () => { - const document = getDocument(); - document.removeEventListener('visibilitychange', onVisibilityChange); - }; - on('init', () => { - if (swiper.params.autoplay.enabled) { - attachMouseEvents(); - attachDocumentEvents(); - start(); - } - }); - on('destroy', () => { - detachMouseEvents(); - detachDocumentEvents(); - if (swiper.autoplay.running) { - stop(); - } - }); - on('_freeModeStaticRelease', () => { - if (pausedByTouch || pausedByInteraction) { - resume(); - } - }); - on('_freeModeNoMomentumRelease', () => { - if (!swiper.params.autoplay.disableOnInteraction) { - pause(true, true); - } else { - stop(); - } - }); - on('beforeTransitionStart', (_s, speed, internal) => { - if (swiper.destroyed || !swiper.autoplay.running) return; - if (internal || !swiper.params.autoplay.disableOnInteraction) { - pause(true, true); - } else { - stop(); - } - }); - on('sliderFirstMove', () => { - if (swiper.destroyed || !swiper.autoplay.running) return; - if (swiper.params.autoplay.disableOnInteraction) { - stop(); - return; - } - isTouched = true; - pausedByTouch = false; - pausedByInteraction = false; - touchStartTimeout = setTimeout(() => { - pausedByInteraction = true; - pausedByTouch = true; - pause(true); - }, 200); - }); - on('touchEnd', () => { - if (swiper.destroyed || !swiper.autoplay.running || !isTouched) return; - clearTimeout(touchStartTimeout); - clearTimeout(timeout); - if (swiper.params.autoplay.disableOnInteraction) { - pausedByTouch = false; - isTouched = false; - return; - } - if (pausedByTouch && swiper.params.cssMode) resume(); - pausedByTouch = false; - isTouched = false; - }); - on('slideChange', () => { - if (swiper.destroyed || !swiper.autoplay.running) return; - slideChanged = true; - }); - Object.assign(swiper.autoplay, { - start, - stop, - pause, - resume - }); - } - - function Thumb(_ref) { - let { - swiper, - extendParams, - on - } = _ref; - extendParams({ - thumbs: { - swiper: null, - multipleActiveThumbs: true, - autoScrollOffset: 0, - slideThumbActiveClass: 'swiper-slide-thumb-active', - thumbsContainerClass: 'swiper-thumbs' - } - }); - let initialized = false; - let swiperCreated = false; - swiper.thumbs = { - swiper: null - }; - function onThumbClick() { - const thumbsSwiper = swiper.thumbs.swiper; - if (!thumbsSwiper || thumbsSwiper.destroyed) return; - const clickedIndex = thumbsSwiper.clickedIndex; - const clickedSlide = thumbsSwiper.clickedSlide; - if (clickedSlide && clickedSlide.classList.contains(swiper.params.thumbs.slideThumbActiveClass)) return; - if (typeof clickedIndex === 'undefined' || clickedIndex === null) return; - let slideToIndex; - if (thumbsSwiper.params.loop) { - slideToIndex = parseInt(thumbsSwiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10); - } else { - slideToIndex = clickedIndex; - } - if (swiper.params.loop) { - swiper.slideToLoop(slideToIndex); - } else { - swiper.slideTo(slideToIndex); - } - } - function init() { - const { - thumbs: thumbsParams - } = swiper.params; - if (initialized) return false; - initialized = true; - const SwiperClass = swiper.constructor; - if (thumbsParams.swiper instanceof SwiperClass) { - swiper.thumbs.swiper = thumbsParams.swiper; - Object.assign(swiper.thumbs.swiper.originalParams, { - watchSlidesProgress: true, - slideToClickedSlide: false - }); - Object.assign(swiper.thumbs.swiper.params, { - watchSlidesProgress: true, - slideToClickedSlide: false - }); - swiper.thumbs.swiper.update(); - } else if (isObject(thumbsParams.swiper)) { - const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper); - Object.assign(thumbsSwiperParams, { - watchSlidesProgress: true, - slideToClickedSlide: false - }); - swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams); - swiperCreated = true; - } - swiper.thumbs.swiper.el.classList.add(swiper.params.thumbs.thumbsContainerClass); - swiper.thumbs.swiper.on('tap', onThumbClick); - return true; - } - function update(initial) { - const thumbsSwiper = swiper.thumbs.swiper; - if (!thumbsSwiper || thumbsSwiper.destroyed) return; - const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView; - - // Activate thumbs - let thumbsToActivate = 1; - const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass; - if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) { - thumbsToActivate = swiper.params.slidesPerView; - } - if (!swiper.params.thumbs.multipleActiveThumbs) { - thumbsToActivate = 1; - } - thumbsToActivate = Math.floor(thumbsToActivate); - thumbsSwiper.slides.forEach(slideEl => slideEl.classList.remove(thumbActiveClass)); - if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) { - for (let i = 0; i < thumbsToActivate; i += 1) { - elementChildren(thumbsSwiper.slidesEl, `[data-swiper-slide-index="${swiper.realIndex + i}"]`).forEach(slideEl => { - slideEl.classList.add(thumbActiveClass); - }); - } - } else { - for (let i = 0; i < thumbsToActivate; i += 1) { - if (thumbsSwiper.slides[swiper.realIndex + i]) { - thumbsSwiper.slides[swiper.realIndex + i].classList.add(thumbActiveClass); - } - } - } - const autoScrollOffset = swiper.params.thumbs.autoScrollOffset; - const useOffset = autoScrollOffset && !thumbsSwiper.params.loop; - if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) { - const currentThumbsIndex = thumbsSwiper.activeIndex; - let newThumbsIndex; - let direction; - if (thumbsSwiper.params.loop) { - const newThumbsSlide = thumbsSwiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') === `${swiper.realIndex}`)[0]; - newThumbsIndex = thumbsSwiper.slides.indexOf(newThumbsSlide); - direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev'; - } else { - newThumbsIndex = swiper.realIndex; - direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev'; - } - if (useOffset) { - newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset; - } - if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) { - if (thumbsSwiper.params.centeredSlides) { - if (newThumbsIndex > currentThumbsIndex) { - newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1; - } else { - newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1; - } - } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) ; - thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined); - } - } - } - on('beforeInit', () => { - const { - thumbs - } = swiper.params; - if (!thumbs || !thumbs.swiper) return; - if (typeof thumbs.swiper === 'string' || thumbs.swiper instanceof HTMLElement) { - const document = getDocument(); - const getThumbsElementAndInit = () => { - const thumbsElement = typeof thumbs.swiper === 'string' ? document.querySelector(thumbs.swiper) : thumbs.swiper; - if (thumbsElement && thumbsElement.swiper) { - thumbs.swiper = thumbsElement.swiper; - init(); - update(true); - } else if (thumbsElement) { - const onThumbsSwiper = e => { - thumbs.swiper = e.detail[0]; - thumbsElement.removeEventListener('init', onThumbsSwiper); - init(); - update(true); - thumbs.swiper.update(); - swiper.update(); - }; - thumbsElement.addEventListener('init', onThumbsSwiper); - } - return thumbsElement; - }; - const watchForThumbsToAppear = () => { - if (swiper.destroyed) return; - const thumbsElement = getThumbsElementAndInit(); - if (!thumbsElement) { - requestAnimationFrame(watchForThumbsToAppear); - } - }; - requestAnimationFrame(watchForThumbsToAppear); - } else { - init(); - update(true); - } - }); - on('slideChange update resize observerUpdate', () => { - update(); - }); - on('setTransition', (_s, duration) => { - const thumbsSwiper = swiper.thumbs.swiper; - if (!thumbsSwiper || thumbsSwiper.destroyed) return; - thumbsSwiper.setTransition(duration); - }); - on('beforeDestroy', () => { - const thumbsSwiper = swiper.thumbs.swiper; - if (!thumbsSwiper || thumbsSwiper.destroyed) return; - if (swiperCreated) { - thumbsSwiper.destroy(); - } - }); - Object.assign(swiper.thumbs, { - init, - update - }); - } - - function freeMode(_ref) { - let { - swiper, - extendParams, - emit, - once - } = _ref; - extendParams({ - freeMode: { - enabled: false, - momentum: true, - momentumRatio: 1, - momentumBounce: true, - momentumBounceRatio: 1, - momentumVelocityRatio: 1, - sticky: false, - minimumVelocity: 0.02 - } - }); - function onTouchStart() { - if (swiper.params.cssMode) return; - const translate = swiper.getTranslate(); - swiper.setTranslate(translate); - swiper.setTransition(0); - swiper.touchEventsData.velocities.length = 0; - swiper.freeMode.onTouchEnd({ - currentPos: swiper.rtl ? swiper.translate : -swiper.translate - }); - } - function onTouchMove() { - if (swiper.params.cssMode) return; - const { - touchEventsData: data, - touches - } = swiper; - // Velocity - if (data.velocities.length === 0) { - data.velocities.push({ - position: touches[swiper.isHorizontal() ? 'startX' : 'startY'], - time: data.touchStartTime - }); - } - data.velocities.push({ - position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'], - time: now() - }); - } - function onTouchEnd(_ref2) { - let { - currentPos - } = _ref2; - if (swiper.params.cssMode) return; - const { - params, - wrapperEl, - rtlTranslate: rtl, - snapGrid, - touchEventsData: data - } = swiper; - // Time diff - const touchEndTime = now(); - const timeDiff = touchEndTime - data.touchStartTime; - if (currentPos < -swiper.minTranslate()) { - swiper.slideTo(swiper.activeIndex); - return; - } - if (currentPos > -swiper.maxTranslate()) { - if (swiper.slides.length < snapGrid.length) { - swiper.slideTo(snapGrid.length - 1); - } else { - swiper.slideTo(swiper.slides.length - 1); - } - return; - } - if (params.freeMode.momentum) { - if (data.velocities.length > 1) { - const lastMoveEvent = data.velocities.pop(); - const velocityEvent = data.velocities.pop(); - const distance = lastMoveEvent.position - velocityEvent.position; - const time = lastMoveEvent.time - velocityEvent.time; - swiper.velocity = distance / time; - swiper.velocity /= 2; - if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) { - swiper.velocity = 0; - } - // this implies that the user stopped moving a finger then released. - // There would be no events with distance zero, so the last event is stale. - if (time > 150 || now() - lastMoveEvent.time > 300) { - swiper.velocity = 0; - } - } else { - swiper.velocity = 0; - } - swiper.velocity *= params.freeMode.momentumVelocityRatio; - data.velocities.length = 0; - let momentumDuration = 1000 * params.freeMode.momentumRatio; - const momentumDistance = swiper.velocity * momentumDuration; - let newPosition = swiper.translate + momentumDistance; - if (rtl) newPosition = -newPosition; - let doBounce = false; - let afterBouncePosition; - const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio; - let needsLoopFix; - if (newPosition < swiper.maxTranslate()) { - if (params.freeMode.momentumBounce) { - if (newPosition + swiper.maxTranslate() < -bounceAmount) { - newPosition = swiper.maxTranslate() - bounceAmount; - } - afterBouncePosition = swiper.maxTranslate(); - doBounce = true; - data.allowMomentumBounce = true; - } else { - newPosition = swiper.maxTranslate(); - } - if (params.loop && params.centeredSlides) needsLoopFix = true; - } else if (newPosition > swiper.minTranslate()) { - if (params.freeMode.momentumBounce) { - if (newPosition - swiper.minTranslate() > bounceAmount) { - newPosition = swiper.minTranslate() + bounceAmount; - } - afterBouncePosition = swiper.minTranslate(); - doBounce = true; - data.allowMomentumBounce = true; - } else { - newPosition = swiper.minTranslate(); - } - if (params.loop && params.centeredSlides) needsLoopFix = true; - } else if (params.freeMode.sticky) { - let nextSlide; - for (let j = 0; j < snapGrid.length; j += 1) { - if (snapGrid[j] > -newPosition) { - nextSlide = j; - break; - } - } - if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') { - newPosition = snapGrid[nextSlide]; - } else { - newPosition = snapGrid[nextSlide - 1]; - } - newPosition = -newPosition; - } - if (needsLoopFix) { - once('transitionEnd', () => { - swiper.loopFix(); - }); - } - // Fix duration - if (swiper.velocity !== 0) { - if (rtl) { - momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity); - } else { - momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity); - } - if (params.freeMode.sticky) { - // If freeMode.sticky is active and the user ends a swipe with a slow-velocity - // event, then durations can be 20+ seconds to slide one (or zero!) slides. - // It's easy to see this when simulating touch with mouse events. To fix this, - // limit single-slide swipes to the default slide duration. This also has the - // nice side effect of matching slide speed if the user stopped moving before - // lifting finger or mouse vs. moving slowly before lifting the finger/mouse. - // For faster swipes, also apply limits (albeit higher ones). - const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate); - const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex]; - if (moveDistance < currentSlideSize) { - momentumDuration = params.speed; - } else if (moveDistance < 2 * currentSlideSize) { - momentumDuration = params.speed * 1.5; - } else { - momentumDuration = params.speed * 2.5; - } - } - } else if (params.freeMode.sticky) { - swiper.slideToClosest(); - return; - } - if (params.freeMode.momentumBounce && doBounce) { - swiper.updateProgress(afterBouncePosition); - swiper.setTransition(momentumDuration); - swiper.setTranslate(newPosition); - swiper.transitionStart(true, swiper.swipeDirection); - swiper.animating = true; - elementTransitionEnd(wrapperEl, () => { - if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return; - emit('momentumBounce'); - swiper.setTransition(params.speed); - setTimeout(() => { - swiper.setTranslate(afterBouncePosition); - elementTransitionEnd(wrapperEl, () => { - if (!swiper || swiper.destroyed) return; - swiper.transitionEnd(); - }); - }, 0); - }); - } else if (swiper.velocity) { - emit('_freeModeNoMomentumRelease'); - swiper.updateProgress(newPosition); - swiper.setTransition(momentumDuration); - swiper.setTranslate(newPosition); - swiper.transitionStart(true, swiper.swipeDirection); - if (!swiper.animating) { - swiper.animating = true; - elementTransitionEnd(wrapperEl, () => { - if (!swiper || swiper.destroyed) return; - swiper.transitionEnd(); - }); - } - } else { - swiper.updateProgress(newPosition); - } - swiper.updateActiveIndex(); - swiper.updateSlidesClasses(); - } else if (params.freeMode.sticky) { - swiper.slideToClosest(); - return; - } else if (params.freeMode) { - emit('_freeModeNoMomentumRelease'); - } - if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) { - emit('_freeModeStaticRelease'); - swiper.updateProgress(); - swiper.updateActiveIndex(); - swiper.updateSlidesClasses(); - } - } - Object.assign(swiper, { - freeMode: { - onTouchStart, - onTouchMove, - onTouchEnd - } - }); - } - - function Grid(_ref) { - let { - swiper, - extendParams, - on - } = _ref; - extendParams({ - grid: { - rows: 1, - fill: 'column' - } - }); - let slidesNumberEvenToRows; - let slidesPerRow; - let numFullColumns; - let wasMultiRow; - const getSpaceBetween = () => { - let spaceBetween = swiper.params.spaceBetween; - if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) { - spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size; - } else if (typeof spaceBetween === 'string') { - spaceBetween = parseFloat(spaceBetween); - } - return spaceBetween; - }; - const initSlides = slides => { - const { - slidesPerView - } = swiper.params; - const { - rows, - fill - } = swiper.params.grid; - const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : slides.length; - numFullColumns = Math.floor(slidesLength / rows); - if (Math.floor(slidesLength / rows) === slidesLength / rows) { - slidesNumberEvenToRows = slidesLength; - } else { - slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows; - } - if (slidesPerView !== 'auto' && fill === 'row') { - slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows); - } - slidesPerRow = slidesNumberEvenToRows / rows; - }; - const unsetSlides = () => { - if (swiper.slides) { - swiper.slides.forEach(slide => { - if (slide.swiperSlideGridSet) { - slide.style.height = ''; - slide.style[swiper.getDirectionLabel('margin-top')] = ''; - } - }); - } - }; - const updateSlide = (i, slide, slides) => { - const { - slidesPerGroup - } = swiper.params; - const spaceBetween = getSpaceBetween(); - const { - rows, - fill - } = swiper.params.grid; - const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : slides.length; - // Set slides order - let newSlideOrderIndex; - let column; - let row; - if (fill === 'row' && slidesPerGroup > 1) { - const groupIndex = Math.floor(i / (slidesPerGroup * rows)); - const slideIndexInGroup = i - rows * slidesPerGroup * groupIndex; - const columnsInGroup = groupIndex === 0 ? slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows), slidesPerGroup); - row = Math.floor(slideIndexInGroup / columnsInGroup); - column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup; - newSlideOrderIndex = column + row * slidesNumberEvenToRows / rows; - slide.style.order = newSlideOrderIndex; - } else if (fill === 'column') { - column = Math.floor(i / rows); - row = i - column * rows; - if (column > numFullColumns || column === numFullColumns && row === rows - 1) { - row += 1; - if (row >= rows) { - row = 0; - column += 1; - } - } - } else { - row = Math.floor(i / slidesPerRow); - column = i - row * slidesPerRow; - } - slide.row = row; - slide.column = column; - slide.style.height = `calc((100% - ${(rows - 1) * spaceBetween}px) / ${rows})`; - slide.style[swiper.getDirectionLabel('margin-top')] = row !== 0 ? spaceBetween && `${spaceBetween}px` : ''; - slide.swiperSlideGridSet = true; - }; - const updateWrapperSize = (slideSize, snapGrid) => { - const { - centeredSlides, - roundLengths - } = swiper.params; - const spaceBetween = getSpaceBetween(); - const { - rows - } = swiper.params.grid; - swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows; - swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween; - if (!swiper.params.cssMode) { - swiper.wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`; - } - if (centeredSlides) { - const newSlidesGrid = []; - for (let i = 0; i < snapGrid.length; i += 1) { - let slidesGridItem = snapGrid[i]; - if (roundLengths) slidesGridItem = Math.floor(slidesGridItem); - if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem); - } - snapGrid.splice(0, snapGrid.length); - snapGrid.push(...newSlidesGrid); - } - }; - const onInit = () => { - wasMultiRow = swiper.params.grid && swiper.params.grid.rows > 1; - }; - const onUpdate = () => { - const { - params, - el - } = swiper; - const isMultiRow = params.grid && params.grid.rows > 1; - if (wasMultiRow && !isMultiRow) { - el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`); - numFullColumns = 1; - swiper.emitContainerClasses(); - } else if (!wasMultiRow && isMultiRow) { - el.classList.add(`${params.containerModifierClass}grid`); - if (params.grid.fill === 'column') { - el.classList.add(`${params.containerModifierClass}grid-column`); - } - swiper.emitContainerClasses(); - } - wasMultiRow = isMultiRow; - }; - on('init', onInit); - on('update', onUpdate); - swiper.grid = { - initSlides, - unsetSlides, - updateSlide, - updateWrapperSize - }; - } - - function appendSlide(slides) { - const swiper = this; - const { - params, - slidesEl - } = swiper; - if (params.loop) { - swiper.loopDestroy(); - } - const appendElement = slideEl => { - if (typeof slideEl === 'string') { - const tempDOM = document.createElement('div'); - tempDOM.innerHTML = slideEl; - slidesEl.append(tempDOM.children[0]); - tempDOM.innerHTML = ''; - } else { - slidesEl.append(slideEl); - } - }; - if (typeof slides === 'object' && 'length' in slides) { - for (let i = 0; i < slides.length; i += 1) { - if (slides[i]) appendElement(slides[i]); - } - } else { - appendElement(slides); - } - swiper.recalcSlides(); - if (params.loop) { - swiper.loopCreate(); - } - if (!params.observer || swiper.isElement) { - swiper.update(); - } - } - - function prependSlide(slides) { - const swiper = this; - const { - params, - activeIndex, - slidesEl - } = swiper; - if (params.loop) { - swiper.loopDestroy(); - } - let newActiveIndex = activeIndex + 1; - const prependElement = slideEl => { - if (typeof slideEl === 'string') { - const tempDOM = document.createElement('div'); - tempDOM.innerHTML = slideEl; - slidesEl.prepend(tempDOM.children[0]); - tempDOM.innerHTML = ''; - } else { - slidesEl.prepend(slideEl); - } - }; - if (typeof slides === 'object' && 'length' in slides) { - for (let i = 0; i < slides.length; i += 1) { - if (slides[i]) prependElement(slides[i]); - } - newActiveIndex = activeIndex + slides.length; - } else { - prependElement(slides); - } - swiper.recalcSlides(); - if (params.loop) { - swiper.loopCreate(); - } - if (!params.observer || swiper.isElement) { - swiper.update(); - } - swiper.slideTo(newActiveIndex, 0, false); - } - - function addSlide(index, slides) { - const swiper = this; - const { - params, - activeIndex, - slidesEl - } = swiper; - let activeIndexBuffer = activeIndex; - if (params.loop) { - activeIndexBuffer -= swiper.loopedSlides; - swiper.loopDestroy(); - swiper.recalcSlides(); - } - const baseLength = swiper.slides.length; - if (index <= 0) { - swiper.prependSlide(slides); - return; - } - if (index >= baseLength) { - swiper.appendSlide(slides); - return; - } - let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer; - const slidesBuffer = []; - for (let i = baseLength - 1; i >= index; i -= 1) { - const currentSlide = swiper.slides[i]; - currentSlide.remove(); - slidesBuffer.unshift(currentSlide); - } - if (typeof slides === 'object' && 'length' in slides) { - for (let i = 0; i < slides.length; i += 1) { - if (slides[i]) slidesEl.append(slides[i]); - } - newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer; - } else { - slidesEl.append(slides); - } - for (let i = 0; i < slidesBuffer.length; i += 1) { - slidesEl.append(slidesBuffer[i]); - } - swiper.recalcSlides(); - if (params.loop) { - swiper.loopCreate(); - } - if (!params.observer || swiper.isElement) { - swiper.update(); - } - if (params.loop) { - swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false); - } else { - swiper.slideTo(newActiveIndex, 0, false); - } - } - - function removeSlide(slidesIndexes) { - const swiper = this; - const { - params, - activeIndex - } = swiper; - let activeIndexBuffer = activeIndex; - if (params.loop) { - activeIndexBuffer -= swiper.loopedSlides; - swiper.loopDestroy(); - } - let newActiveIndex = activeIndexBuffer; - let indexToRemove; - if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) { - for (let i = 0; i < slidesIndexes.length; i += 1) { - indexToRemove = slidesIndexes[i]; - if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove(); - if (indexToRemove < newActiveIndex) newActiveIndex -= 1; - } - newActiveIndex = Math.max(newActiveIndex, 0); - } else { - indexToRemove = slidesIndexes; - if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove(); - if (indexToRemove < newActiveIndex) newActiveIndex -= 1; - newActiveIndex = Math.max(newActiveIndex, 0); - } - swiper.recalcSlides(); - if (params.loop) { - swiper.loopCreate(); - } - if (!params.observer || swiper.isElement) { - swiper.update(); - } - if (params.loop) { - swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false); - } else { - swiper.slideTo(newActiveIndex, 0, false); - } - } - - function removeAllSlides() { - const swiper = this; - const slidesIndexes = []; - for (let i = 0; i < swiper.slides.length; i += 1) { - slidesIndexes.push(i); - } - swiper.removeSlide(slidesIndexes); - } - - function Manipulation(_ref) { - let { - swiper - } = _ref; - Object.assign(swiper, { - appendSlide: appendSlide.bind(swiper), - prependSlide: prependSlide.bind(swiper), - addSlide: addSlide.bind(swiper), - removeSlide: removeSlide.bind(swiper), - removeAllSlides: removeAllSlides.bind(swiper) - }); - } - - function effectInit(params) { - const { - effect, - swiper, - on, - setTranslate, - setTransition, - overwriteParams, - perspective, - recreateShadows, - getEffectParams - } = params; - on('beforeInit', () => { - if (swiper.params.effect !== effect) return; - swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`); - if (perspective && perspective()) { - swiper.classNames.push(`${swiper.params.containerModifierClass}3d`); - } - const overwriteParamsResult = overwriteParams ? overwriteParams() : {}; - Object.assign(swiper.params, overwriteParamsResult); - Object.assign(swiper.originalParams, overwriteParamsResult); - }); - on('setTranslate', () => { - if (swiper.params.effect !== effect) return; - setTranslate(); - }); - on('setTransition', (_s, duration) => { - if (swiper.params.effect !== effect) return; - setTransition(duration); - }); - on('transitionEnd', () => { - if (swiper.params.effect !== effect) return; - if (recreateShadows) { - if (!getEffectParams || !getEffectParams().slideShadows) return; - // remove shadows - swiper.slides.forEach(slideEl => { - slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => shadowEl.remove()); - }); - // create new one - recreateShadows(); - } - }); - let requireUpdateOnVirtual; - on('virtualUpdate', () => { - if (swiper.params.effect !== effect) return; - if (!swiper.slides.length) { - requireUpdateOnVirtual = true; - } - requestAnimationFrame(() => { - if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) { - setTranslate(); - requireUpdateOnVirtual = false; - } - }); - }); - } - - function effectTarget(effectParams, slideEl) { - const transformEl = getSlideTransformEl(slideEl); - if (transformEl !== slideEl) { - transformEl.style.backfaceVisibility = 'hidden'; - transformEl.style['-webkit-backface-visibility'] = 'hidden'; - } - return transformEl; - } - - function effectVirtualTransitionEnd(_ref) { - let { - swiper, - duration, - transformElements, - allSlides - } = _ref; - const { - activeIndex - } = swiper; - const getSlide = el => { - if (!el.parentElement) { - // assume shadow root - const slide = swiper.slides.filter(slideEl => slideEl.shadowRoot && slideEl.shadowRoot === el.parentNode)[0]; - return slide; - } - return el.parentElement; - }; - if (swiper.params.virtualTranslate && duration !== 0) { - let eventTriggered = false; - let transitionEndTarget; - if (allSlides) { - transitionEndTarget = transformElements; - } else { - transitionEndTarget = transformElements.filter(transformEl => { - const el = transformEl.classList.contains('swiper-slide-transform') ? getSlide(transformEl) : transformEl; - return swiper.getSlideIndex(el) === activeIndex; - }); - } - transitionEndTarget.forEach(el => { - elementTransitionEnd(el, () => { - if (eventTriggered) return; - if (!swiper || swiper.destroyed) return; - eventTriggered = true; - swiper.animating = false; - const evt = new window.CustomEvent('transitionend', { - bubbles: true, - cancelable: true - }); - swiper.wrapperEl.dispatchEvent(evt); - }); - }); - } - } - - function EffectFade(_ref) { - let { - swiper, - extendParams, - on - } = _ref; - extendParams({ - fadeEffect: { - crossFade: false - } - }); - const setTranslate = () => { - const { - slides - } = swiper; - const params = swiper.params.fadeEffect; - for (let i = 0; i < slides.length; i += 1) { - const slideEl = swiper.slides[i]; - const offset = slideEl.swiperSlideOffset; - let tx = -offset; - if (!swiper.params.virtualTranslate) tx -= swiper.translate; - let ty = 0; - if (!swiper.isHorizontal()) { - ty = tx; - tx = 0; - } - const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(slideEl.progress), 0) : 1 + Math.min(Math.max(slideEl.progress, -1), 0); - const targetEl = effectTarget(params, slideEl); - targetEl.style.opacity = slideOpacity; - targetEl.style.transform = `translate3d(${tx}px, ${ty}px, 0px)`; - } - }; - const setTransition = duration => { - const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl)); - transformElements.forEach(el => { - el.style.transitionDuration = `${duration}ms`; - }); - effectVirtualTransitionEnd({ - swiper, - duration, - transformElements, - allSlides: true - }); - }; - effectInit({ - effect: 'fade', - swiper, - on, - setTranslate, - setTransition, - overwriteParams: () => ({ - slidesPerView: 1, - slidesPerGroup: 1, - watchSlidesProgress: true, - spaceBetween: 0, - virtualTranslate: !swiper.params.cssMode - }) - }); - } - - function EffectCube(_ref) { - let { - swiper, - extendParams, - on - } = _ref; - extendParams({ - cubeEffect: { - slideShadows: true, - shadow: true, - shadowOffset: 20, - shadowScale: 0.94 - } - }); - const createSlideShadows = (slideEl, progress, isHorizontal) => { - let shadowBefore = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top'); - let shadowAfter = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom'); - if (!shadowBefore) { - shadowBefore = createElement('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'left' : 'top'}`.split(' ')); - slideEl.append(shadowBefore); - } - if (!shadowAfter) { - shadowAfter = createElement('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'right' : 'bottom'}`.split(' ')); - slideEl.append(shadowAfter); - } - if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0); - if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0); - }; - const recreateShadows = () => { - // create new ones - const isHorizontal = swiper.isHorizontal(); - swiper.slides.forEach(slideEl => { - const progress = Math.max(Math.min(slideEl.progress, 1), -1); - createSlideShadows(slideEl, progress, isHorizontal); - }); - }; - const setTranslate = () => { - const { - el, - wrapperEl, - slides, - width: swiperWidth, - height: swiperHeight, - rtlTranslate: rtl, - size: swiperSize, - browser - } = swiper; - const params = swiper.params.cubeEffect; - const isHorizontal = swiper.isHorizontal(); - const isVirtual = swiper.virtual && swiper.params.virtual.enabled; - let wrapperRotate = 0; - let cubeShadowEl; - if (params.shadow) { - if (isHorizontal) { - cubeShadowEl = swiper.wrapperEl.querySelector('.swiper-cube-shadow'); - if (!cubeShadowEl) { - cubeShadowEl = createElement('div', 'swiper-cube-shadow'); - swiper.wrapperEl.append(cubeShadowEl); - } - cubeShadowEl.style.height = `${swiperWidth}px`; - } else { - cubeShadowEl = el.querySelector('.swiper-cube-shadow'); - if (!cubeShadowEl) { - cubeShadowEl = createElement('div', 'swiper-cube-shadow'); - el.append(cubeShadowEl); - } - } - } - for (let i = 0; i < slides.length; i += 1) { - const slideEl = slides[i]; - let slideIndex = i; - if (isVirtual) { - slideIndex = parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10); - } - let slideAngle = slideIndex * 90; - let round = Math.floor(slideAngle / 360); - if (rtl) { - slideAngle = -slideAngle; - round = Math.floor(-slideAngle / 360); - } - const progress = Math.max(Math.min(slideEl.progress, 1), -1); - let tx = 0; - let ty = 0; - let tz = 0; - if (slideIndex % 4 === 0) { - tx = -round * 4 * swiperSize; - tz = 0; - } else if ((slideIndex - 1) % 4 === 0) { - tx = 0; - tz = -round * 4 * swiperSize; - } else if ((slideIndex - 2) % 4 === 0) { - tx = swiperSize + round * 4 * swiperSize; - tz = swiperSize; - } else if ((slideIndex - 3) % 4 === 0) { - tx = -swiperSize; - tz = 3 * swiperSize + swiperSize * 4 * round; - } - if (rtl) { - tx = -tx; - } - if (!isHorizontal) { - ty = tx; - tx = 0; - } - const transform = `rotateX(${isHorizontal ? 0 : -slideAngle}deg) rotateY(${isHorizontal ? slideAngle : 0}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`; - if (progress <= 1 && progress > -1) { - wrapperRotate = slideIndex * 90 + progress * 90; - if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90; - if (swiper.browser && swiper.browser.isSafari && Math.abs(wrapperRotate) / 90 % 2 === 1) { - wrapperRotate += 0.001; - } - } - slideEl.style.transform = transform; - if (params.slideShadows) { - createSlideShadows(slideEl, progress, isHorizontal); - } - } - wrapperEl.style.transformOrigin = `50% 50% -${swiperSize / 2}px`; - wrapperEl.style['-webkit-transform-origin'] = `50% 50% -${swiperSize / 2}px`; - if (params.shadow) { - if (isHorizontal) { - cubeShadowEl.style.transform = `translate3d(0px, ${swiperWidth / 2 + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(89.99deg) rotateZ(0deg) scale(${params.shadowScale})`; - } else { - const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90; - const multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2); - const scale1 = params.shadowScale; - const scale2 = params.shadowScale / multiplier; - const offset = params.shadowOffset; - cubeShadowEl.style.transform = `scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${swiperHeight / 2 + offset}px, ${-swiperHeight / 2 / scale2}px) rotateX(-89.99deg)`; - } - } - const zFactor = (browser.isSafari || browser.isWebView) && browser.needPerspectiveFix ? -swiperSize / 2 : 0; - wrapperEl.style.transform = `translate3d(0px,0,${zFactor}px) rotateX(${swiper.isHorizontal() ? 0 : wrapperRotate}deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate : 0}deg)`; - wrapperEl.style.setProperty('--swiper-cube-translate-z', `${zFactor}px`); - }; - const setTransition = duration => { - const { - el, - slides - } = swiper; - slides.forEach(slideEl => { - slideEl.style.transitionDuration = `${duration}ms`; - slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(subEl => { - subEl.style.transitionDuration = `${duration}ms`; - }); - }); - if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) { - const shadowEl = el.querySelector('.swiper-cube-shadow'); - if (shadowEl) shadowEl.style.transitionDuration = `${duration}ms`; - } - }; - effectInit({ - effect: 'cube', - swiper, - on, - setTranslate, - setTransition, - recreateShadows, - getEffectParams: () => swiper.params.cubeEffect, - perspective: () => true, - overwriteParams: () => ({ - slidesPerView: 1, - slidesPerGroup: 1, - watchSlidesProgress: true, - resistanceRatio: 0, - spaceBetween: 0, - centeredSlides: false, - virtualTranslate: true - }) - }); - } - - function createShadow(suffix, slideEl, side) { - const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}${suffix ? ` swiper-slide-shadow-${suffix}` : ''}`; - const shadowContainer = getSlideTransformEl(slideEl); - let shadowEl = shadowContainer.querySelector(`.${shadowClass.split(' ').join('.')}`); - if (!shadowEl) { - shadowEl = createElement('div', shadowClass.split(' ')); - shadowContainer.append(shadowEl); - } - return shadowEl; - } - - function EffectFlip(_ref) { - let { - swiper, - extendParams, - on - } = _ref; - extendParams({ - flipEffect: { - slideShadows: true, - limitRotation: true - } - }); - const createSlideShadows = (slideEl, progress) => { - let shadowBefore = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top'); - let shadowAfter = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom'); - if (!shadowBefore) { - shadowBefore = createShadow('flip', slideEl, swiper.isHorizontal() ? 'left' : 'top'); - } - if (!shadowAfter) { - shadowAfter = createShadow('flip', slideEl, swiper.isHorizontal() ? 'right' : 'bottom'); - } - if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0); - if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0); - }; - const recreateShadows = () => { - // Set shadows - swiper.params.flipEffect; - swiper.slides.forEach(slideEl => { - let progress = slideEl.progress; - if (swiper.params.flipEffect.limitRotation) { - progress = Math.max(Math.min(slideEl.progress, 1), -1); - } - createSlideShadows(slideEl, progress); - }); - }; - const setTranslate = () => { - const { - slides, - rtlTranslate: rtl - } = swiper; - const params = swiper.params.flipEffect; - for (let i = 0; i < slides.length; i += 1) { - const slideEl = slides[i]; - let progress = slideEl.progress; - if (swiper.params.flipEffect.limitRotation) { - progress = Math.max(Math.min(slideEl.progress, 1), -1); - } - const offset = slideEl.swiperSlideOffset; - const rotate = -180 * progress; - let rotateY = rotate; - let rotateX = 0; - let tx = swiper.params.cssMode ? -offset - swiper.translate : -offset; - let ty = 0; - if (!swiper.isHorizontal()) { - ty = tx; - tx = 0; - rotateX = -rotateY; - rotateY = 0; - } else if (rtl) { - rotateY = -rotateY; - } - if (swiper.browser && swiper.browser.isSafari) { - if (Math.abs(rotateY) / 90 % 2 === 1) { - rotateY += 0.001; - } - if (Math.abs(rotateX) / 90 % 2 === 1) { - rotateX += 0.001; - } - } - slideEl.style.zIndex = -Math.abs(Math.round(progress)) + slides.length; - if (params.slideShadows) { - createSlideShadows(slideEl, progress); - } - const transform = `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`; - const targetEl = effectTarget(params, slideEl); - targetEl.style.transform = transform; - } - }; - const setTransition = duration => { - const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl)); - transformElements.forEach(el => { - el.style.transitionDuration = `${duration}ms`; - el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => { - shadowEl.style.transitionDuration = `${duration}ms`; - }); - }); - effectVirtualTransitionEnd({ - swiper, - duration, - transformElements - }); - }; - effectInit({ - effect: 'flip', - swiper, - on, - setTranslate, - setTransition, - recreateShadows, - getEffectParams: () => swiper.params.flipEffect, - perspective: () => true, - overwriteParams: () => ({ - slidesPerView: 1, - slidesPerGroup: 1, - watchSlidesProgress: true, - spaceBetween: 0, - virtualTranslate: !swiper.params.cssMode - }) - }); - } - - function EffectCoverflow(_ref) { - let { - swiper, - extendParams, - on - } = _ref; - extendParams({ - coverflowEffect: { - rotate: 50, - stretch: 0, - depth: 100, - scale: 1, - modifier: 1, - slideShadows: true - } - }); - const setTranslate = () => { - const { - width: swiperWidth, - height: swiperHeight, - slides, - slidesSizesGrid - } = swiper; - const params = swiper.params.coverflowEffect; - const isHorizontal = swiper.isHorizontal(); - const transform = swiper.translate; - const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2; - const rotate = isHorizontal ? params.rotate : -params.rotate; - const translate = params.depth; - // Each slide offset from center - for (let i = 0, length = slides.length; i < length; i += 1) { - const slideEl = slides[i]; - const slideSize = slidesSizesGrid[i]; - const slideOffset = slideEl.swiperSlideOffset; - const centerOffset = (center - slideOffset - slideSize / 2) / slideSize; - const offsetMultiplier = typeof params.modifier === 'function' ? params.modifier(centerOffset) : centerOffset * params.modifier; - let rotateY = isHorizontal ? rotate * offsetMultiplier : 0; - let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier; - // var rotateZ = 0 - let translateZ = -translate * Math.abs(offsetMultiplier); - let stretch = params.stretch; - // Allow percentage to make a relative stretch for responsive sliders - if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) { - stretch = parseFloat(params.stretch) / 100 * slideSize; - } - let translateY = isHorizontal ? 0 : stretch * offsetMultiplier; - let translateX = isHorizontal ? stretch * offsetMultiplier : 0; - let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier); - - // Fix for ultra small values - if (Math.abs(translateX) < 0.001) translateX = 0; - if (Math.abs(translateY) < 0.001) translateY = 0; - if (Math.abs(translateZ) < 0.001) translateZ = 0; - if (Math.abs(rotateY) < 0.001) rotateY = 0; - if (Math.abs(rotateX) < 0.001) rotateX = 0; - if (Math.abs(scale) < 0.001) scale = 0; - if (swiper.browser && swiper.browser.isSafari) { - if (Math.abs(rotateY) / 90 % 2 === 1) { - rotateY += 0.001; - } - if (Math.abs(rotateX) / 90 % 2 === 1) { - rotateX += 0.001; - } - } - const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${rotateX}deg) rotateY(${rotateY}deg) scale(${scale})`; - const targetEl = effectTarget(params, slideEl); - targetEl.style.transform = slideTransform; - slideEl.style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1; - if (params.slideShadows) { - // Set shadows - let shadowBeforeEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top'); - let shadowAfterEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom'); - if (!shadowBeforeEl) { - shadowBeforeEl = createShadow('coverflow', slideEl, isHorizontal ? 'left' : 'top'); - } - if (!shadowAfterEl) { - shadowAfterEl = createShadow('coverflow', slideEl, isHorizontal ? 'right' : 'bottom'); - } - if (shadowBeforeEl) shadowBeforeEl.style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0; - if (shadowAfterEl) shadowAfterEl.style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0; - } - } - }; - const setTransition = duration => { - const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl)); - transformElements.forEach(el => { - el.style.transitionDuration = `${duration}ms`; - el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => { - shadowEl.style.transitionDuration = `${duration}ms`; - }); - }); - }; - effectInit({ - effect: 'coverflow', - swiper, - on, - setTranslate, - setTransition, - perspective: () => true, - overwriteParams: () => ({ - watchSlidesProgress: true - }) - }); - } - - function EffectCreative(_ref) { - let { - swiper, - extendParams, - on - } = _ref; - extendParams({ - creativeEffect: { - limitProgress: 1, - shadowPerProgress: false, - progressMultiplier: 1, - perspective: true, - 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 getTranslateValue = value => { - if (typeof value === 'string') return value; - return `${value}px`; - }; - const setTranslate = () => { - const { - slides, - wrapperEl, - slidesSizesGrid - } = swiper; - const params = swiper.params.creativeEffect; - const { - progressMultiplier: multiplier - } = params; - const isCenteredSlides = swiper.params.centeredSlides; - if (isCenteredSlides) { - const margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0; - wrapperEl.style.transform = `translateX(calc(50% - ${margin}px))`; - } - for (let i = 0; i < slides.length; i += 1) { - const slideEl = slides[i]; - const slideProgress = slideEl.progress; - const progress = Math.min(Math.max(slideEl.progress, -params.limitProgress), params.limitProgress); - let originalProgress = progress; - if (!isCenteredSlides) { - originalProgress = Math.min(Math.max(slideEl.originalProgress, -params.limitProgress), params.limitProgress); - } - const offset = slideEl.swiperSlideOffset; - const t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0]; - const r = [0, 0, 0]; - let custom = false; - if (!swiper.isHorizontal()) { - t[1] = t[0]; - t[0] = 0; - } - let data = { - translate: [0, 0, 0], - rotate: [0, 0, 0], - scale: 1, - opacity: 1 - }; - if (progress < 0) { - data = params.next; - custom = true; - } else if (progress > 0) { - data = params.prev; - custom = true; - } - // set translate - t.forEach((value, index) => { - t[index] = `calc(${value}px + (${getTranslateValue(data.translate[index])} * ${Math.abs(progress * multiplier)}))`; - }); - // set rotates - r.forEach((value, index) => { - let val = data.rotate[index] * Math.abs(progress * multiplier); - if (swiper.browser && swiper.browser.isSafari && Math.abs(val) / 90 % 2 === 1) { - val += 0.001; - } - r[index] = val; - }); - slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length; - const translateString = t.join(', '); - const rotateString = `rotateX(${r[0]}deg) rotateY(${r[1]}deg) rotateZ(${r[2]}deg)`; - const scaleString = originalProgress < 0 ? `scale(${1 + (1 - data.scale) * originalProgress * multiplier})` : `scale(${1 - (1 - data.scale) * originalProgress * multiplier})`; - const opacityString = originalProgress < 0 ? 1 + (1 - data.opacity) * originalProgress * multiplier : 1 - (1 - data.opacity) * originalProgress * multiplier; - const transform = `translate3d(${translateString}) ${rotateString} ${scaleString}`; - - // Set shadows - if (custom && data.shadow || !custom) { - let shadowEl = slideEl.querySelector('.swiper-slide-shadow'); - if (!shadowEl && data.shadow) { - shadowEl = createShadow('creative', slideEl); - } - if (shadowEl) { - const shadowOpacity = params.shadowPerProgress ? progress * (1 / params.limitProgress) : progress; - shadowEl.style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1); - } - } - const targetEl = effectTarget(params, slideEl); - targetEl.style.transform = transform; - targetEl.style.opacity = opacityString; - if (data.origin) { - targetEl.style.transformOrigin = data.origin; - } - } - }; - const setTransition = duration => { - const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl)); - transformElements.forEach(el => { - el.style.transitionDuration = `${duration}ms`; - el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => { - shadowEl.style.transitionDuration = `${duration}ms`; - }); - }); - effectVirtualTransitionEnd({ - swiper, - duration, - transformElements, - allSlides: true - }); - }; - effectInit({ - effect: 'creative', - swiper, - on, - setTranslate, - setTransition, - perspective: () => swiper.params.creativeEffect.perspective, - overwriteParams: () => ({ - watchSlidesProgress: true, - virtualTranslate: !swiper.params.cssMode - }) - }); - } - - function EffectCards(_ref) { - let { - swiper, - extendParams, - on - } = _ref; - extendParams({ - cardsEffect: { - slideShadows: true, - rotate: true, - perSlideRotate: 2, - perSlideOffset: 8 - } - }); - const setTranslate = () => { - const { - slides, - activeIndex, - rtlTranslate: rtl - } = swiper; - const params = swiper.params.cardsEffect; - const { - startTranslate, - isTouched - } = swiper.touchEventsData; - const currentTranslate = rtl ? -swiper.translate : swiper.translate; - for (let i = 0; i < slides.length; i += 1) { - const slideEl = slides[i]; - const slideProgress = slideEl.progress; - const progress = Math.min(Math.max(slideProgress, -4), 4); - let offset = slideEl.swiperSlideOffset; - if (swiper.params.centeredSlides && !swiper.params.cssMode) { - swiper.wrapperEl.style.transform = `translateX(${swiper.minTranslate()}px)`; - } - if (swiper.params.centeredSlides && swiper.params.cssMode) { - offset -= slides[0].swiperSlideOffset; - } - let tX = swiper.params.cssMode ? -offset - swiper.translate : -offset; - let tY = 0; - const tZ = -100 * Math.abs(progress); - let scale = 1; - let rotate = -params.perSlideRotate * progress; - let tXAdd = params.perSlideOffset - Math.abs(progress) * 0.75; - const slideIndex = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.from + i : i; - const isSwipeToNext = (slideIndex === activeIndex || slideIndex === activeIndex - 1) && progress > 0 && progress < 1 && (isTouched || swiper.params.cssMode) && currentTranslate < startTranslate; - const isSwipeToPrev = (slideIndex === activeIndex || slideIndex === activeIndex + 1) && progress < 0 && progress > -1 && (isTouched || swiper.params.cssMode) && currentTranslate > startTranslate; - if (isSwipeToNext || isSwipeToPrev) { - const subProgress = (1 - Math.abs((Math.abs(progress) - 0.5) / 0.5)) ** 0.5; - rotate += -28 * progress * subProgress; - scale += -0.5 * subProgress; - tXAdd += 96 * subProgress; - tY = `${-25 * subProgress * Math.abs(progress)}%`; - } - if (progress < 0) { - // next - tX = `calc(${tX}px ${rtl ? '-' : '+'} (${tXAdd * Math.abs(progress)}%))`; - } else if (progress > 0) { - // prev - tX = `calc(${tX}px ${rtl ? '-' : '+'} (-${tXAdd * Math.abs(progress)}%))`; - } else { - tX = `${tX}px`; - } - if (!swiper.isHorizontal()) { - const prevY = tY; - tY = tX; - tX = prevY; - } - const scaleString = progress < 0 ? `${1 + (1 - scale) * progress}` : `${1 - (1 - scale) * progress}`; - - /* eslint-disable */ - const transform = ` - translate3d(${tX}, ${tY}, ${tZ}px) - rotateZ(${params.rotate ? rtl ? -rotate : rotate : 0}deg) - scale(${scaleString}) - `; - /* eslint-enable */ - - if (params.slideShadows) { - // Set shadows - let shadowEl = slideEl.querySelector('.swiper-slide-shadow'); - if (!shadowEl) { - shadowEl = createShadow('cards', slideEl); - } - if (shadowEl) shadowEl.style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1); - } - slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length; - const targetEl = effectTarget(params, slideEl); - targetEl.style.transform = transform; - } - }; - const setTransition = duration => { - const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl)); - transformElements.forEach(el => { - el.style.transitionDuration = `${duration}ms`; - el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => { - shadowEl.style.transitionDuration = `${duration}ms`; - }); - }); - effectVirtualTransitionEnd({ - swiper, - duration, - transformElements - }); - }; - effectInit({ - effect: 'cards', - swiper, - on, - setTranslate, - setTransition, - perspective: () => true, - overwriteParams: () => ({ - watchSlidesProgress: true, - virtualTranslate: !swiper.params.cssMode - }) - }); - } - - /** - * Swiper 11.0.5 - * 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: November 22, 2023 - */ - - - // Swiper Class - const modules = [Virtual, Keyboard, Mousewheel, Navigation, Pagination, Scrollbar, Parallax, Zoom, Controller, A11y, History, HashNavigation, Autoplay, Thumb, freeMode, Grid, Manipulation, EffectFade, EffectCube, EffectFlip, EffectCoverflow, EffectCreative, EffectCards]; - Swiper.use(modules); - - return Swiper; - -})(); diff --git a/build/assets/js/vendor/swiper/swiper-bundle.min.css b/build/assets/js/vendor/swiper/swiper-bundle.min.css deleted file mode 100644 index 519ed77..0000000 --- a/build/assets/js/vendor/swiper/swiper-bundle.min.css +++ /dev/null @@ -1,13 +0,0 @@ -/** - * Swiper 11.0.5 - * 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: November 22, 2023 - */ - -@font-face{font-family:swiper-icons;src:url('data:application/font-woff;charset=utf-8;base64, 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');font-weight:400;font-style:normal}:root{--swiper-theme-color:#007aff}:host{position:relative;display:block;margin-left:auto;margin-right:auto;z-index:1}.swiper{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);box-sizing:content-box}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d .swiper-slide{transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:rgba(0,0,0,.15)}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader,.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.swiper-virtual .swiper-slide{-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper::after{content:'';position:absolute;left:0;top:0;pointer-events:none}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after{width:1px;height:var(--swiper-virtual-size)}:root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:var(--swiper-navigation-top-offset,50%);width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size)/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next.swiper-button-hidden,.swiper-button-prev.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled .swiper-button-next,.swiper-navigation-disabled .swiper-button-prev{display:none!important}.swiper-button-next svg,.swiper-button-prev svg{width:100%;height:100%;object-fit:contain;transform-origin:center}.swiper-rtl .swiper-button-next svg,.swiper-rtl .swiper-button-prev svg{transform:rotate(180deg)}.swiper-button-prev,.swiper-rtl .swiper-button-next{left:var(--swiper-navigation-sides-offset,10px);right:auto}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:var(--swiper-navigation-sides-offset,10px);left:auto}.swiper-button-lock{display:none}.swiper-button-next:after,.swiper-button-prev:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);text-transform:none!important;letter-spacing:0;font-variant:initial;line-height:1}.swiper-button-prev:after,.swiper-rtl .swiper-button-next:after{content:'prev'}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:var(--swiper-navigation-sides-offset,10px);left:auto}.swiper-button-next:after,.swiper-rtl .swiper-button-prev:after{content:'next'}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:var(--swiper-pagination-bottom,8px);top:var(--swiper-pagination-top,auto);left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));display:inline-block;border-radius:var(--swiper-pagination-bullet-border-radius,50%);background:var(--swiper-pagination-bullet-inactive-color,#000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{right:var(--swiper-pagination-right,8px);left:var(--swiper-pagination-left,auto);top:50%;transform:translate3d(0px,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0;display:block}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color,inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color,rgba(0,0,0,.25));position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:var(--swiper-pagination-progressbar-size,4px);left:0;top:0}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{width:var(--swiper-pagination-progressbar-size,4px);height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:var(--swiper-scrollbar-border-radius,10px);position:relative;touch-action:none;background:var(--swiper-scrollbar-bg-color,rgba(0,0,0,.1))}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:var(--swiper-scrollbar-sides-offset,1%);bottom:var(--swiper-scrollbar-bottom,4px);top:var(--swiper-scrollbar-top,auto);z-index:50;height:var(--swiper-scrollbar-size,4px);width:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{position:absolute;left:var(--swiper-scrollbar-left,auto);right:var(--swiper-scrollbar-right,4px);top:var(--swiper-scrollbar-sides-offset,1%);z-index:50;width:var(--swiper-scrollbar-size,4px);height:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:var(--swiper-scrollbar-drag-bg-color,rgba(0,0,0,.5));border-radius:var(--swiper-scrollbar-border-radius,10px);left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;object-fit:contain}.swiper-slide-zoomed{cursor:move;touch-action:none}.swiper .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-fade.swiper-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-fade .swiper-slide-active{pointer-events:auto}.swiper-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube{overflow:visible}.swiper-cube .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-cube.swiper-rtl .swiper-slide{transform-origin:100% 0}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-next,.swiper-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:'';background:#000;position:absolute;left:0;top:0;bottom:0;right:0;filter:blur(50px)}.swiper-cube .swiper-slide-next+.swiper-slide{pointer-events:auto;visibility:visible}.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-bottom,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-left,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-right,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-flip{overflow:visible}.swiper-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-flip .swiper-slide-active,.swiper-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-bottom,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-left,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-right,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-creative .swiper-slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper-cards{overflow:visible}.swiper-cards .swiper-slide{transform-origin:center bottom;-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/swiper-bundle.min.js b/build/assets/js/vendor/swiper/swiper-bundle.min.js deleted file mode 100644 index 436b921..0000000 --- a/build/assets/js/vendor/swiper/swiper-bundle.min.js +++ /dev/null @@ -1,14 +0,0 @@ -/** - * Swiper 11.0.5 - * 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: November 22, 2023 - */ - -var Swiper=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){return void 0===e&&(e=""),e.trim().split(" ").filter((e=>!!e.trim()))}function l(e,t){return void 0===t&&(t=0),setTimeout(e,t)}function o(){return Date.now()}function d(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 c(e){return"object"==typeof e&&null!==e&&e.constructor&&"Object"===Object.prototype.toString.call(e).slice(8,-1)}function p(){const e=Object(arguments.length<=0?void 0:arguments[0]),t=["__proto__","constructor","prototype"];for(let a=1;at.indexOf(e)<0));for(let t=0,a=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.shadowRoot&&e.shadowRoot.querySelector(".swiper-slide-transform")||e}function f(e,t){return void 0===t&&(t=""),[...e.children].filter((e=>e.matches(t)))}function g(e){try{return void console.warn(e)}catch(e){}}function v(e,t){void 0===t&&(t=[]);const s=document.createElement(e);return s.classList.add(...Array.isArray(t)?t:n(t)),s}function w(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 b(e,t){return r().getComputedStyle(e,null).getPropertyValue(t)}function y(e){let t,s=e;if(s){for(t=0;null!==(s=s.previousSibling);)1===s.nodeType&&(t+=1);return t}}function E(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 x(e,t){t&&e.addEventListener("transitionend",(function s(a){a.target===e&&(t.call(e,a),e.removeEventListener("transitionend",s))}))}function S(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 T,M,C;function P(){return T||(T=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)}}()),T}function L(e){return void 0===e&&(e={}),M||(M=function(e){let{userAgent:t}=void 0===e?{}:e;const s=P(),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)),M}function A(){return C||(C=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)}}()),C}var I={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 z=(e,t)=>{if(!e||e.destroyed||!e.params)return;const s=t.closest(e.isElement?"swiper-slide":`.${e.params.slideClass}`);if(s){let t=s.querySelector(`.${e.params.lazyPreloaderClass}`);!t&&e.isElement&&(s.shadowRoot?t=s.shadowRoot.querySelector(`.${e.params.lazyPreloaderClass}`):requestAnimationFrame((()=>{s.shadowRoot&&(t=s.shadowRoot.querySelector(`.${e.params.lazyPreloaderClass}`),t&&t.remove())}))),t&&t.remove()}},$=(e,t)=>{if(!e.slides[t])return;const s=e.slides[t].querySelector('[loading="lazy"]');s&&s.removeAttribute("loading")},k=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?x=parseFloat(x.replace("%",""))/100*r:"string"==typeof x&&(x=parseFloat(x)),e.virtualSize=-x,c.forEach((e=>{n?e.style.marginLeft="":e.style.marginRight="",e.style.marginBottom="",e.style.marginTop=""})),s.centeredSlides&&s.cssMode&&(u(a,"--swiper-centered-offset-before",""),u(a,"--swiper-centered-offset-after",""));const P=s.grid&&s.grid.rows>1&&e.grid;let L;P?e.grid.initSlides(c):e.grid&&e.grid.unsetSlides();const A="auto"===s.slidesPerView&&s.breakpoints&&Object.keys(s.breakpoints).filter((e=>void 0!==s.breakpoints[e].slidesPerView)).length>0;for(let a=0;a1&&m.push(e.virtualSize-r)}if(o&&s.loop){const t=g[0]+x;if(s.slidesPerGroup>1){const a=Math.ceil((e.virtual.slidesBefore+e.virtual.slidesAfter)/s.slidesPerGroup),i=t*s.slidesPerGroup;for(let e=0;e!(s.cssMode&&!s.loop)||t!==c.length-1)).forEach((e=>{e.style[t]=`${x}px`}))}if(s.centeredSlides&&s.centeredSlidesBounds){let e=0;g.forEach((t=>{e+=t+(x||0)})),e-=x;const t=e-r;m=m.map((e=>e<=0?-v:e>t?t+w:e))}if(s.centerInsufficientSlides){let e=0;if(g.forEach((t=>{e+=t+(x||0)})),e-=x,e{m[s]=e-t})),h.forEach(((e,s)=>{h[s]=e+t}))}}if(Object.assign(e,{slides:c,snapGrid:m,slidesGrid:h,slidesSizesGrid:g}),s.centeredSlides&&s.cssMode&&!s.centeredSlidesBounds){u(a,"--swiper-centered-offset-before",-m[0]+"px"),u(a,"--swiper-centered-offset-after",e.size/2-g[g.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(p!==d&&e.emit("slidesLengthChange"),m.length!==y&&(e.params.watchOverflow&&e.checkOverflow(),e.emit("snapGridLengthChange")),h.length!==E&&e.emit("slidesGridLengthChange"),s.watchSlidesProgress&&e.updateSlidesOffset(),e.emit("slidesUpdated"),!(o||s.cssMode||"slide"!==s.effect&&"fade"!==s.effect)){const t=`${s.containerModifierClass}backface-hidden`,a=e.el.classList.contains(t);p<=s.maxBackfaceHiddenSlides?a||e.el.classList.add(t):a&&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,s.slideFullyVisibleClass)})),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&&u<=t.size-t.slidesSizesGrid[e];(u>=0&&u1&&m<=t.size||u<=0&&m>=t.size)&&(t.visibleSlides.push(o),t.visibleSlidesIndexes.push(e),a[e].classList.add(s.slideVisibleClass)),h&&a[e].classList.add(s.slideFullyVisibleClass),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.grid&&s.grid&&s.grid.rows>1,l=e=>f(a,`.${s.slideClass}${e}, swiper-slide${e}`)[0];let o,d,c;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),o=l(`[data-swiper-slide-index="${t}"]`)}else o=l(`[data-swiper-slide-index="${i}"]`);else n?(o=t.filter((e=>e.column===i))[0],c=t.filter((e=>e.column===i+1))[0],d=t.filter((e=>e.column===i-1))[0]):o=t[i];o&&(o.classList.add(s.slideActiveClass),n?(c&&c.classList.add(s.slideNextClass),d&&d.classList.add(s.slidePrevClass)):(c=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}(o,`.${s.slideClass}, swiper-slide`)[0],s.loop&&!c&&(c=t[0]),c&&c.classList.add(s.slideNextClass),d=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}(o,`.${s.slideClass}, swiper-slide`)[0],s.loop&&0===!d&&(d=t[t.length-1]),d&&d.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&&!t.params.loop)return void(o!==l&&(t.snapIndex=o,t.emit("snapIndexChange")));if(d===r&&t.params.loop&&t.virtual&&t.params.virtual.enabled)return void(t.realIndex=c(d));const p=t.grid&&i.grid&&i.grid.rows>1;let u;if(t.virtual&&i.virtual.enabled&&i.loop)u=c(d);else if(p){const e=t.slides.filter((e=>e.column===d))[0];let s=parseInt(e.getAttribute("data-swiper-slide-index"),10);Number.isNaN(s)&&(s=Math.max(t.slides.indexOf(e),0)),u=Math.floor(s/i.grid.rows)}else if(t.slides[d]){const e=t.slides[d].getAttribute("data-swiper-slide-index");u=e?parseInt(e,10):d}else u=d;Object.assign(t,{previousSnapIndex:l,snapIndex:o,previousRealIndex:n,realIndex:u,previousIndex:r,activeIndex:d}),t.initialized&&k(t),t.emit("activeIndexChange"),t.emit("snapIndexChange"),(t.initialized||t.params.runCallbacksOnInit)&&(n!==u&&t.emit("realIndexChange"),t.emit("slideChange"))},updateClickedSlide:function(e,t){const s=this,a=s.params;let i=e.closest(`.${a.slideClass}, swiper-slide`);!i&&s.isElement&&t&&t.length>1&&t.includes(e)&&[...t.slice(t.indexOf(e)+1,t.length)].forEach((e=>{!i&&e.matches&&e.matches(`.${a.slideClass}, swiper-slide`)&&(i=e)}));let r,n=!1;if(i)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,r=i.grid&&i.params.grid&&i.params.grid.rows>1;let n=e;if(i.params.loop)if(i.virtual&&i.params.virtual.enabled)n+=i.virtual.slidesBefore;else{let e;if(r){const t=n*i.params.grid.rows;e=i.slides.filter((e=>1*e.getAttribute("data-swiper-slide-index")===t))[0].column}else e=i.getSlideIndexByData(n);const t=r?Math.ceil(i.slides.length/i.params.grid.rows):i.slides.length,{centeredSlides:s}=i.params;let a=i.params.slidesPerView;"auto"===a?a=i.slidesPerViewDynamic():(a=Math.ceil(parseFloat(i.params.slidesPerView,10)),s&&a%2==0&&(a+=1));let l=t-e1*t.getAttribute("data-swiper-slide-index")===e))[0].column}else n=i.getSlideIndexByData(n)}return requestAnimationFrame((()=>{i.slideTo(n,t,s,a)})),i},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.activeIndex{a.slideTo(a.activeIndex+o,e,t,s)})),!0}return r.rewind&&a.isEnd?a.slideTo(0,e,t,s):a.slideTo(a.activeIndex+o,e,t,s)},slidePrev:function(e,t,s){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);const a=this,{params:i,snapGrid:r,slidesGrid:n,rtlTranslate:l,enabled:o,animating:d}=a;if(!o)return a;const c=a.virtual&&i.virtual.enabled;if(i.loop){if(d&&!c&&i.loopPreventsSliding)return!1;a.loopFix({direction:"prev"}),a._clientLeft=a.wrapperEl.clientLeft}function p(e){return e<0?-Math.floor(Math.abs(e)):Math.floor(e)}const u=p(l?a.translate:-a.translate),m=r.map((e=>p(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 i.loop&&0===a.activeIndex&&i.cssMode?(requestAnimationFrame((()=>{a.slideTo(f,e,t,s)})),!0):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 n=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,`${n}[data-swiper-slide-index="${i}"]`)[0]),l((()=>{e.slideTo(r)}))):e.slideTo(r):r>e.slides.length-a?(e.loopFix(),r=e.getSlideIndex(f(s,`${n}[data-swiper-slide-index="${i}"]`)[0]),l((()=>{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;const i=()=>{f(a,`.${s.slideClass}, swiper-slide`).forEach(((e,t)=>{e.setAttribute("data-swiper-slide-index",t)}))},r=t.grid&&s.grid&&s.grid.rows>1,n=s.slidesPerGroup*(r?s.grid.rows:1),l=t.slides.length%n!=0,o=r&&t.slides.length%s.grid.rows!=0,d=e=>{for(let a=0;a1;d.lengthe.classList.contains(m.slideActiveClass)))[0]):x=r;const S="next"===a||!a,T="prev"===a||!a;let M=0,C=0;const P=b?Math.ceil(d.length/m.grid.rows):d.length,L=(b?d[r].column:r)+(h&&void 0===i?-f/2+.5:0);if(L=0;t-=1)d[t].column===e&&y.push(t)}else y.push(P-t-1)}}else if(L+f>P-w){C=Math.max(L-(P-2*w),v);for(let e=0;e{e.column===t&&E.push(s)})):E.push(t)}}if(o.__preventObserver__=!0,requestAnimationFrame((()=>{o.__preventObserver__=!1})),T&&y.forEach((e=>{d[e].swiperLoopMoveDOM=!0,u.prepend(d[e]),d[e].swiperLoopMoveDOM=!1})),S&&E.forEach((e=>{d[e].swiperLoopMoveDOM=!0,u.append(d[e]),d[e].swiperLoopMoveDOM=!1})),o.recalcSlides(),"auto"===m.slidesPerView?o.updateSlides():b&&(y.length>0&&T||E.length>0&&S)&&o.slides.forEach(((e,t)=>{o.grid.updateSlide(t,e,o.slides)})),m.watchSlidesProgress&&o.updateSlidesOffset(),s)if(y.length>0&&T){if(void 0===t){const e=o.slidesGrid[x],t=o.slidesGrid[x+M]-e;l?o.setTranslate(o.translate-t):(o.slideTo(x+M,0,!1,!0),i&&(o.touchEventsData.startTranslate=o.touchEventsData.startTranslate-t,o.touchEventsData.currentTranslate=o.touchEventsData.currentTranslate-t))}else if(i){const e=b?y.length/m.grid.rows:y.length;o.slideTo(o.activeIndex+e,0,!1,!0),o.touchEventsData.currentTranslate=o.translate}}else if(E.length>0&&S)if(void 0===t){const e=o.slidesGrid[x],t=o.slidesGrid[x-C]-e;l?o.setTranslate(o.translate-t):(o.slideTo(x-C,0,!1,!0),i&&(o.touchEventsData.startTranslate=o.touchEventsData.startTranslate-t,o.touchEventsData.currentTranslate=o.touchEventsData.currentTranslate-t))}else{const e=b?E.length/m.grid.rows:E.length;o.slideTo(o.activeIndex-e,0,!1,!0)}if(o.allowSlidePrev=c,o.allowSlideNext=p,o.controller&&o.controller.control&&!n){const e={slideRealIndex:t,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,slideTo:t.params.slidesPerView===m.slidesPerView&&s})})):o.controller.control instanceof o.constructor&&o.controller.control.params.loop&&o.controller.control.loopFix({...e,slideTo:o.controller.control.params.slidesPerView===m.slidesPerView&&s})}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 N(e,t,s){const a=r(),{params:i}=e,n=i.edgeSwipeDetection,l=i.edgeSwipeThreshold;return!n||!(s<=l||s>=a.innerWidth-l)||"prevent"===n&&(t.preventDefault(),!0)}function Y(e){const t=this,s=a();let i=e;i.originalEvent&&(i=i.originalEvent);const n=t.touchEventsData;if("pointerdown"===i.type){if(null!==n.pointerId&&n.pointerId!==i.pointerId)return;n.pointerId=i.pointerId}else"touchstart"===i.type&&1===i.targetTouches.length&&(n.touchId=i.targetTouches[0].identifier);if("touchstart"===i.type)return void N(t,i,i.targetTouches[0].pageX);const{params:l,touches:d,enabled:c}=t;if(!c)return;if(!l.simulateTouch&&"mouse"===i.pointerType)return;if(t.animating&&l.preventInteractionOnTransition)return;!t.animating&&l.cssMode&&l.loop&&t.loopFix();let p=i.target;if("wrapper"===l.touchEventsTarget&&!t.wrapperEl.contains(p))return;if("which"in i&&3===i.which)return;if("button"in i&&i.button>0)return;if(n.isTouched&&n.isMoved)return;const u=!!l.noSwipingClass&&""!==l.noSwipingClass,m=i.composedPath?i.composedPath():i.path;u&&i.target&&i.target.shadowRoot&&m&&(p=m[0]);const h=l.noSwipingSelector?l.noSwipingSelector:`.${l.noSwipingClass}`,f=!(!i.target||!i.target.shadowRoot);if(l.noSwiping&&(f?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)}(h,p):p.closest(h)))return void(t.allowClick=!0);if(l.swipeHandler&&!p.closest(l.swipeHandler))return;d.currentX=i.pageX,d.currentY=i.pageY;const g=d.currentX,v=d.currentY;if(!N(t,i,g))return;Object.assign(n,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),d.startX=g,d.startY=v,n.touchStartTime=o(),t.allowClick=!0,t.updateSize(),t.swipeDirection=void 0,l.threshold>0&&(n.allowThresholdMove=!1);let w=!0;p.matches(n.focusableElements)&&(w=!1,"SELECT"===p.nodeName&&(n.isTouched=!1)),s.activeElement&&s.activeElement.matches(n.focusableElements)&&s.activeElement!==p&&s.activeElement.blur();const b=w&&t.allowTouchMove&&l.touchStartPreventDefault;!l.touchStartForcePreventDefault&&!b||p.isContentEditable||i.preventDefault(),l.freeMode&&l.freeMode.enabled&&t.freeMode&&t.animating&&!l.cssMode&&t.freeMode.onTouchStart(),t.emit("touchStart",i)}function B(e){const t=a(),s=this,i=s.touchEventsData,{params:r,touches:n,rtlTranslate:l,enabled:d}=s;if(!d)return;if(!r.simulateTouch&&"mouse"===e.pointerType)return;let c,p=e;if(p.originalEvent&&(p=p.originalEvent),"pointermove"===p.type){if(null!==i.touchId)return;if(p.pointerId!==i.pointerId)return}if("touchmove"===p.type){if(c=[...p.changedTouches].filter((e=>e.identifier===i.touchId))[0],!c||c.identifier!==i.touchId)return}else c=p;if(!i.isTouched)return void(i.startMoving&&i.isScrolling&&s.emit("touchMoveOpposite",p));const u=c.pageX,m=c.pageY;if(p.preventedByNestedSwiper)return n.startX=u,void(n.startY=m);if(!s.allowTouchMove)return p.target.matches(i.focusableElements)||(s.allowClick=!1),void(i.isTouched&&(Object.assign(n,{startX:u,startY:m,currentX:u,currentY:m}),i.touchStartTime=o()));if(r.touchReleaseOnEdges&&!r.loop)if(s.isVertical()){if(mn.startY&&s.translate>=s.minTranslate())return i.isTouched=!1,void(i.isMoved=!1)}else if(un.startX&&s.translate>=s.minTranslate())return;if(t.activeElement&&p.target===t.activeElement&&p.target.matches(i.focusableElements))return i.isMoved=!0,void(s.allowClick=!1);i.allowTouchCallbacks&&s.emit("touchMove",p),n.previousX=n.currentX,n.previousY=n.currentY,n.currentX=u,n.currentY=m;const h=n.currentX-n.startX,f=n.currentY-n.startY;if(s.params.threshold&&Math.sqrt(h**2+f**2)=25&&(e=180*Math.atan2(Math.abs(f),Math.abs(h))/Math.PI,i.isScrolling=s.isHorizontal()?e>r.touchAngle:90-e>r.touchAngle)}if(i.isScrolling&&s.emit("touchMoveOpposite",p),void 0===i.startMoving&&(n.currentX===n.startX&&n.currentY===n.startY||(i.startMoving=!0)),i.isScrolling)return void(i.isTouched=!1);if(!i.startMoving)return;s.allowClick=!1,!r.cssMode&&p.cancelable&&p.preventDefault(),r.touchMoveStopPropagation&&!r.nested&&p.stopPropagation();let g=s.isHorizontal()?h:f,v=s.isHorizontal()?n.currentX-n.previousX:n.currentY-n.previousY;r.oneWayMovement&&(g=Math.abs(g)*(l?1:-1),v=Math.abs(v)*(l?1:-1)),n.diff=g,g*=r.touchRatio,l&&(g=-g,v=-v);const w=s.touchesDirection;s.swipeDirection=g>0?"prev":"next",s.touchesDirection=v>0?"prev":"next";const b=s.params.loop&&!r.cssMode,y="next"===s.touchesDirection&&s.allowSlideNext||"prev"===s.touchesDirection&&s.allowSlidePrev;if(!i.isMoved){if(b&&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",p)}if((new Date).getTime(),i.isMoved&&i.allowThresholdMove&&w!==s.touchesDirection&&b&&y&&Math.abs(g)>=1)return Object.assign(n,{startX:u,startY:m,currentX:u,currentY:m,startTranslate:i.currentTranslate}),i.loopSwapReset=!0,void(i.startTranslate=i.currentTranslate);s.emit("sliderMove",p),i.isMoved=!0,i.currentTranslate=g+i.startTranslate;let E=!0,x=r.resistanceRatio;if(r.touchReleaseOnEdges&&(x=0),g>0?(b&&y&&i.allowThresholdMove&&i.currentTranslate>(r.centeredSlides?s.minTranslate()-s.slidesSizesGrid[s.activeIndex+1]:s.minTranslate())&&s.loopFix({direction:"prev",setTranslate:!0,activeSlideIndex:0}),i.currentTranslate>s.minTranslate()&&(E=!1,r.resistance&&(i.currentTranslate=s.minTranslate()-1+(-s.minTranslate()+i.startTranslate+g)**x))):g<0&&(b&&y&&i.allowThresholdMove&&i.currentTranslate<(r.centeredSlides?s.maxTranslate()+s.slidesSizesGrid[s.slidesSizesGrid.length-1]: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(g)>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 R(e){const t=this,s=t.touchEventsData;let a,i=e;i.originalEvent&&(i=i.originalEvent);if("touchend"===i.type||"touchcancel"===i.type){if(a=[...i.changedTouches].filter((e=>e.identifier===s.touchId))[0],!a||a.identifier!==s.touchId)return}else{if(null!==s.touchId)return;if(i.pointerId!==s.pointerId)return;a=i}if(["pointercancel","pointerout","pointerleave","contextmenu"].includes(i.type)){if(!(["pointercancel","contextmenu"].includes(i.type)&&(t.browser.isSafari||t.browser.isWebView)))return}s.pointerId=null,s.touchId=null;const{params:r,touches:n,rtlTranslate:d,slidesGrid:c,enabled:p}=t;if(!p)return;if(!r.simulateTouch&&"mouse"===i.pointerType)return;if(s.allowTouchCallbacks&&t.emit("touchEnd",i),s.allowTouchCallbacks=!1,!s.isTouched)return s.isMoved&&r.grabCursor&&t.setGrabCursor(!1),s.isMoved=!1,void(s.startMoving=!1);r.grabCursor&&s.isMoved&&s.isTouched&&(!0===t.allowSlideNext||!0===t.allowSlidePrev)&&t.setGrabCursor(!1);const u=o(),m=u-s.touchStartTime;if(t.allowClick){const e=i.path||i.composedPath&&i.composedPath();t.updateClickedSlide(e&&e[0]||i.target,e),t.emit("tap click",i),m<300&&u-s.lastClickTime<300&&t.emit("doubleTap doubleClick",i)}if(s.lastClickTime=o(),l((()=>{t.destroyed||(t.allowClick=!0)})),!s.isTouched||!s.isMoved||!t.swipeDirection||0===n.diff&&!s.loopSwapReset||s.currentTranslate===s.startTranslate&&!s.loopSwapReset)return s.isTouched=!1,s.isMoved=!1,void(s.startMoving=!1);let h;if(s.isTouched=!1,s.isMoved=!1,s.startMoving=!1,h=r.followFinger?d?t.translate:-t.translate:-s.currentTranslate,r.cssMode)return;if(r.freeMode&&r.freeMode.enabled)return void t.freeMode.onTouchEnd({currentPos:h});const f=h>=-t.maxTranslate()&&!t.params.loop;let g=0,v=t.slidesSizesGrid[0];for(let e=0;e=c[e]&&h=c[e])&&(g=e,v=c[c.length-1]-c[c.length-2])}let w=null,b=null;r.rewind&&(t.isBeginning?b=r.virtual&&r.virtual.enabled&&t.virtual?t.virtual.slides.length-1:t.slides.length-1:t.isEnd&&(w=0));const y=(h-c[g])/v,E=gr.longSwipesMs){if(!r.longSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&(y>=r.longSwipesRatio?t.slideTo(r.rewind&&t.isEnd?w:g+E):t.slideTo(g)),"prev"===t.swipeDirection&&(y>1-r.longSwipesRatio?t.slideTo(g+E):null!==b&&y<0&&Math.abs(y)>r.longSwipesRatio?t.slideTo(b):t.slideTo(g))}else{if(!r.shortSwipes)return void t.slideTo(t.activeIndex);t.navigation&&(i.target===t.navigation.nextEl||i.target===t.navigation.prevEl)?i.target===t.navigation.nextEl?t.slideTo(g+E):t.slideTo(g):("next"===t.swipeDirection&&t.slideTo(null!==w?w:g+E),"prev"===t.swipeDirection&&t.slideTo(null!==b?b:g))}}function q(){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 V(e){const t=this;t.enabled&&(t.allowClick||(t.params.preventClicks&&e.preventDefault(),t.params.preventClicksPropagation&&t.animating&&(e.stopPropagation(),e.stopImmediatePropagation())))}function _(){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;z(t,e.target),t.params.cssMode||"auto"!==t.params.slidesPerView&&!t.params.autoHeight||t.update()}function j(){const e=this;e.documentTouchHandlerProceeded||(e.documentTouchHandlerProceeded=!0,e.params.touchReleaseOnEdges&&(e.el.style.touchAction="auto"))}const W=(e,t)=>{const s=a(),{params:i,el:r,wrapperEl:n,device:l}=e,o=!!i.nested,d="on"===t?"addEventListener":"removeEventListener",c=t;s[d]("touchstart",e.onDocumentTouchStart,{passive:!1,capture:o}),r[d]("touchstart",e.onTouchStart,{passive:!1}),r[d]("pointerdown",e.onTouchStart,{passive:!1}),s[d]("touchmove",e.onTouchMove,{passive:!1,capture:o}),s[d]("pointermove",e.onTouchMove,{passive:!1,capture:o}),s[d]("touchend",e.onTouchEnd,{passive:!0}),s[d]("pointerup",e.onTouchEnd,{passive:!0}),s[d]("pointercancel",e.onTouchEnd,{passive:!0}),s[d]("touchcancel",e.onTouchEnd,{passive:!0}),s[d]("pointerout",e.onTouchEnd,{passive:!0}),s[d]("pointerleave",e.onTouchEnd,{passive:!0}),s[d]("contextmenu",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",q,!0):e[c]("observerUpdate",q,!0),r[d]("load",e.onLoad,{capture:!0})};const U=(e,t)=>e.grid&&t.grid&&t.grid.rows>1;var K={init:!0,direction:"horizontal",oneWayMovement:!1,touchEventsTarget:"wrapper",initialSlide:0,speed:300,cssMode:!1,updateOnWindowResize:!0,resizeObserver:!0,nested:!1,createElements:!1,eventsPrefix:"swiper",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,loopAddBlankSlides:!0,loopAdditionalSlides:0,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",slideBlankClass:"swiper-slide-blank",slideActiveClass:"swiper-slide-active",slideVisibleClass:"swiper-slide-visible",slideFullyVisibleClass:"swiper-slide-fully-visible",slideNextClass:"swiper-slide-next",slidePrevClass:"swiper-slide-prev",wrapperClass:"swiper-wrapper",lazyPreloaderClass:"swiper-lazy-preloader",lazyPreloadPrevNext:0,runCallbacksOnInit:!0,_emitClasses:!1};function Z(e,t){return function(s){void 0===s&&(s={});const a=Object.keys(s)[0],i=s[a];"object"==typeof i&&null!==i?(!0===e[a]&&(e[a]={enabled:!0}),"navigation"===a&&e[a]&&e[a].enabled&&!e[a].prevEl&&!e[a].nextEl&&(e[a].auto=!0),["pagination","scrollbar"].indexOf(a)>=0&&e[a]&&e[a].enabled&&!e[a].el&&(e[a].auto=!0),a in e&&"enabled"in i?("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 Q={eventsEmitter:I,update:O,translate:D,transition:{setTransition:function(e,t){const s=this;s.params.cssMode||(s.wrapperEl.style.transitionDuration=`${e}ms`,s.wrapperEl.style.transitionDelay=0===e?"0ms":""),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(),G({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),G({swiper:s,runCallbacks:e,direction:t,step:"End"}))}},slide:X,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,{params:t}=e;e.onTouchStart=Y.bind(e),e.onTouchMove=B.bind(e),e.onTouchEnd=R.bind(e),e.onDocumentTouchStart=j.bind(e),t.cssMode&&(e.onScroll=_.bind(e)),e.onClick=V.bind(e),e.onLoad=F.bind(e),W(e,"on")},detachEvents:function(){W(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=U(e,a),d=U(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),h=a.loop;u&&s&&e.changeDirection(),p(e.params,l);const f=e.params.enabled,g=e.params.loop;Object.assign(e,{allowTouchMove:e.params.allowTouchMove,allowSlideNext:e.params.allowSlideNext,allowSlidePrev:e.params.allowSlidePrev}),c&&!f?e.disable():!c&&f&&e.enable(),e.currentBreakpoint=n,e.emit("_beforeBreakpoint",l),s&&(m?(e.loopDestroy(),e.loopCreate(t),e.updateSlides()):!h&&g?(e.loopCreate(t),e.updateSlides()):h&&!g&&e.loopDestroy()),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()}}},J={};class ee{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 ee(a))})),e}const l=this;l.__swiper__=!0,l.support=P(),l.device=L({userAgent:t.userAgent}),l.browser=A(),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:Z(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({},K,o);return l.params=p({},d,J,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,pointerId:null,touchId:null},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}getDirectionLabel(e){return this.isHorizontal()?e:{width:"height","margin-top":"margin-left","margin-bottom ":"margin-right","margin-left":"margin-top","margin-right":"margin-bottom","padding-left":"padding-top","padding-right":"padding-bottom",marginRight:"marginBottom"}[e]}getSlideIndex(e){const{slidesEl:t,params:s}=this,a=y(f(t,`.${s.slideClass}, swiper-slide`)[0]);return y(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("number"==typeof s.slidesPerView)return s.slidesPerView;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&&z(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.parentNode&&s.parentNode.host&&"SWIPER-CONTAINER"===s.parentNode.host.nodeName&&(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=v("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.parentNode.host.slideSlots?s.parentNode.host:i,hostEl:t.isElement?s.parentNode.host:s,mounted:!0,rtl:"rtl"===s.dir.toLowerCase()||"rtl"===b(s,"direction"),rtlTranslate:"horizontal"===t.params.direction&&("rtl"===s.dir.toLowerCase()||"rtl"===b(s,"direction")),wrongRTL:"-webkit-box"===b(i,"display")}),!0}init(e){const t=this;if(t.initialized)return t;if(!1===t.mount(e))return t;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();const s=[...t.el.querySelectorAll('[loading="lazy"]')];return t.isElement&&s.push(...t.hostEl.querySelectorAll('[loading="lazy"]')),s.forEach((e=>{e.complete?z(t,e):e.addEventListener("load",(e=>{z(t,e.target)}))})),k(t),t.initialized=!0,k(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.slideFullyVisibleClass,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(J,e)}static get extendedDefaults(){return J}static get defaults(){return K}static installModule(e){ee.prototype.__modules__||(ee.prototype.__modules__=[]);const t=ee.prototype.__modules__;"function"==typeof e&&t.indexOf(e)<0&&t.push(e)}static use(e){return Array.isArray(e)?(e.forEach((e=>ee.installModule(e))),ee):(ee.installModule(e),ee)}}function te(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=v("div",a[i]),r.className=a[i],e.el.append(r)),s[i]=r,t[i]=r}})),s}function se(e){return void 0===e&&(e=""),`.${e.trim().replace(/([\.:!+\/])/g,"\\$1").replace(/ /g,".")}`}function ae(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 de(e,t){const s=h(t);return s!==t&&(s.style.backfaceVisibility="hidden",s.style["-webkit-backface-visibility"]="hidden"),s}function ce(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.shadowRoot&&t.shadowRoot===e.parentNode))[0];return e.parentElement})(e):e;return t.getSlideIndex(s)===r})),e.forEach((e=>{x(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 pe(e,t,s){const a=`swiper-slide-shadow${s?`-${s}`:""}${e?` swiper-slide-shadow-${e}`:""}`,i=h(t);let r=i.querySelector(`.${a.split(" ").join(".")}`);return r||(r=v("div",a.split(" ")),i.append(r)),r}Object.keys(Q).forEach((e=>{Object.keys(Q[e]).forEach((t=>{ee.prototype[t]=Q[e][t]}))})),ee.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=E(t.hostEl);for(let t=0;t{n.forEach((e=>{e.disconnect()})),n.splice(0,n.length)}))}]);const ue=[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?v("swiper-slide"):v("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.slides.filter((e=>e.matches(`.${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.slides.filter((e=>e.matches(`.${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,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.params.virtual.cache&&(delete s.virtual.cache[e[a]],Object.keys(s.virtual.cache).forEach((t=>{t>e&&(s.virtual.cache[t-1]=s.virtual.cache[t],s.virtual.cache[t-1].setAttribute("data-swiper-slide-index",t-1),delete s.virtual.cache[t])}))),s.virtual.slides.splice(e[a],1),e[a]{t>e&&(s.virtual.cache[t-1]=s.virtual.cache[t],s.virtual.cache[t-1].setAttribute("data-swiper-slide-index",t-1),delete s.virtual.cache[t])}))),s.virtual.slides.splice(e,1),e0&&0===E(t.el,`.${t.params.slideActiveClass}`).length)return;const a=t.el,i=a.clientWidth,r=a.clientHeight,n=o.innerWidth,l=o.innerHeight,d=w(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 n=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=o();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&&o()-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 n.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 n=t.el;"container"!==t.params.mousewheel.eventsTarget&&(n=document.querySelector(t.params.mousewheel.eventsTarget));const p=n&&n.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:o(),delta:Math.abs(m),direction:Math.sign(m)},a=c&&e.time=t.minTranslate()&&(n=t.minTranslate()),n<=t.maxTranslate()&&(n=t.maxTranslate()),t.setTransition(0),t.setTranslate(n),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=l((()=>{t.slideToClosest(t.params.speed,!0,void 0,s)}),0)}d||(d=l((()=>{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(),r.releaseOnEdges&&(n===t.minTranslate()||n===t.maxTranslate()))return!0}}else{const s={time:o(),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));function n(e){let s;return e&&"string"==typeof e&&t.isElement&&(s=t.el.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=te(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),t.enabled?o():[...e,...s].filter((e=>!!e)).forEach((e=>e.classList.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));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(se(t.params.pagination.bulletClass));if(!s)return;e.preventDefault();const a=y(s)*t.params.slidesPerGroup;if(t.params.loop){if(t.realIndex===a)return;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=S(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=y(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(se(s.currentClass)).forEach((e=>{e.textContent=s.formatFractionCurrent(a+1)})),e.querySelectorAll(se(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(se(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.grid&&t.params.grid.rows>1?t.slides.length/Math.ceil(t.params.grid.rows):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(se(e.bulletClass)))})),"custom"!==e.type&&i("paginationRender",a[0])}function h(){t.params.pagination=te(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.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=>E(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||"").split(" ")),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.classList.remove(...(e.clickableClass||"").split(" ")),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,r=o(t.pagination.el);if(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 o=a();let d,c,p,u,m=!1,h=null,f=null;function g(){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=c,o=(p-c)*n;s?(o=-o,o>0?(l=c-o,o=0):-o+c>p&&(l=p+o)):o<0?(l=c+o,o=0):o+c>p&&(l=p-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(h),i.style.opacity=1,h=setTimeout((()=>{i.style.opacity=0,i.style.transitionDuration="400ms"}),1e3))}function b(){if(!t.params.scrollbar.el||!t.scrollbar.el)return;const{scrollbar:e}=t,{dragEl:s,el:a}=e;s.style.width="",s.style.height="",p=t.isHorizontal()?a.offsetWidth:a.offsetHeight,u=t.size/(t.virtualSize+t.params.slidesOffsetBefore-(t.params.centeredSlides?t.snapGrid[0]:0)),c="auto"===t.params.scrollbar.dragSize?p*u:parseInt(t.params.scrollbar.dragSize,10),t.isHorizontal()?s.style.width=`${c}px`:s.style.height=`${c}px`,a.style.display=u>=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 y(e){return t.isHorizontal()?e.clientX:e.clientY}function E(e){const{scrollbar:s,rtlTranslate:a}=t,{el:i}=s;let r;r=(y(e)-w(i)[t.isHorizontal()?"left":"top"]-(null!==d?d:c/2))/(p-c),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 x(e){const s=t.params.scrollbar,{scrollbar:a,wrapperEl:i}=t,{el:n,dragEl:l}=a;m=!0,d=e.target===l?y(e)-e.target.getBoundingClientRect()[t.isHorizontal()?"left":"top"]:null,e.preventDefault(),e.stopPropagation(),i.style.transitionDuration="100ms",l.style.transitionDuration="100ms",E(e),clearTimeout(f),n.style.transitionDuration="0ms",s.hide&&(n.style.opacity=1),t.params.cssMode&&(t.wrapperEl.style["scroll-snap-type"]="none"),r("scrollbarDragStart",e)}function S(e){const{scrollbar:s,wrapperEl:a}=t,{el:i,dragEl:n}=s;m&&(e.preventDefault?e.preventDefault():e.returnValue=!1,E(e),a.style.transitionDuration="0ms",i.style.transitionDuration="0ms",n.style.transitionDuration="0ms",r("scrollbarDragMove",e))}function T(e){const s=t.params.scrollbar,{scrollbar:a,wrapperEl:i}=t,{el:n}=a;m&&(m=!1,t.params.cssMode&&(t.wrapperEl.style["scroll-snap-type"]="",i.style.transitionDuration=""),s.hide&&(clearTimeout(f),f=l((()=>{n.style.opacity=0,n.style.transitionDuration="400ms"}),1e3)),r("scrollbarDragEnd",e),s.snapOnRelease&&t.slideToClosest())}function M(e){const{scrollbar:s,params:a}=t,i=s.el;if(!i)return;const r=i,n=!!a.passiveListeners&&{passive:!1,capture:!1},l=!!a.passiveListeners&&{passive:!0,capture:!1};if(!r)return;const d="on"===e?"addEventListener":"removeEventListener";r[d]("pointerdown",x,n),o[d]("pointermove",S,n),o[d]("pointerup",T,l)}function C(){const{scrollbar:e,el:s}=t;t.params.scrollbar=te(t,t.originalParams.scrollbar,t.params.scrollbar,{el:"swiper-scrollbar"});const a=t.params.scrollbar;if(!a.el)return;let i,r;if("string"==typeof a.el&&t.isElement&&(i=t.el.querySelector(a.el)),i||"string"!=typeof a.el)i||(i=a.el);else if(i=o.querySelectorAll(a.el),!i.length)return;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(se(t.params.scrollbar.dragClass)),r||(r=v("div",t.params.scrollbar.dragClass),i.append(r))),Object.assign(e,{el:i,dragEl:r}),a.draggable&&t.params.scrollbar.el&&t.scrollbar.el&&M("on"),i&&i.classList[t.enabled?"remove":"add"](...n(t.params.scrollbar.lockClass))}function P(){const e=t.params.scrollbar,s=t.scrollbar.el;s&&s.classList.remove(...n(t.isHorizontal()?e.horizontalClass:e.verticalClass)),t.params.scrollbar.el&&t.scrollbar.el&&M("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?L():(C(),b(),g())})),i("update resize observerUpdate lock unlock",(()=>{b()})),i("setTranslate",(()=>{g()})),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"](...n(t.params.scrollbar.lockClass))})),i("destroy",(()=>{P()}));const L=()=>{t.el.classList.add(...n(t.params.scrollbar.scrollbarDisabledClass)),t.scrollbar.el&&t.scrollbar.el.classList.add(...n(t.params.scrollbar.scrollbarDisabledClass)),P()};Object.assign(t.scrollbar,{enable:()=>{t.el.classList.remove(...n(t.params.scrollbar.scrollbarDisabledClass)),t.scrollbar.el&&t.scrollbar.el.classList.remove(...n(t.params.scrollbar.scrollbarDisabledClass)),C(),b(),g()},disable:L,updateSize:b,setTranslate:g,init:C,destroy:P})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({parallax:{enabled:!1}});const i="[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]",r=(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},n=()=>{const{el:e,slides:s,progress:a,snapGrid:n,isElement:l}=t,o=f(e,i);t.isElement&&o.push(...f(t.hostEl,i)),o.forEach((e=>{r(e,a)})),s.forEach(((e,s)=>{let l=e.progress;t.params.slidesPerGroup>1&&"auto"!==t.params.slidesPerView&&(l+=Math.ceil(s/2)-a*(n.length-1)),l=Math.min(Math.max(l,-1),1),e.querySelectorAll(`${i}, [data-swiper-parallax-rotate]`).forEach((e=>{r(e,l)}))}))};a("beforeInit",(()=>{t.params.parallax.enabled&&(t.params.watchSlidesProgress=!0,t.originalParams.watchSlidesProgress=!0)})),a("init",(()=>{t.params.parallax.enabled&&n()})),a("setTranslate",(()=>{t.params.parallax.enabled&&n()})),a("setTransition",((e,s)=>{t.params.parallax.enabled&&function(e){void 0===e&&(e=t.params.speed);const{el:s,hostEl:a}=t,r=[...s.querySelectorAll(i)];t.isElement&&r.push(...a.querySelectorAll(i)),r.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,o,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 v=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 y(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),!y(e))return;const s=t.params.zoom;if(l=!1,o=!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?E(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-n.scrollX)/c,(u[0].pageY+(u[1].pageY-u[0].pageY)/2-e.y-n.scrollY)/c]}();m.originX=e,m.originY=t,m.imageEl.style.transitionDuration="0ms"}p=!0}}function S(e){if(!y(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||(o=!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&&o&&(l=!1,o=!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(!y(e)||!function(e){const s=`.${t.params.zoom.containerClass}`;return!!e.target.matches(s)||[...t.hostEl.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=d(m.imageWrapEl,"x")||0,h.startY=d(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?E(m.imageEl,`.${a.containerClass}`)[0]:void 0}if(!m.imageEl||!m.imageWrapEl)return;let i,r,l,o,d,p,u,g,v,b,y,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 A="number"==typeof e?e:null;1===c&&A&&(i=void 0,r=void 0),s.scale=A||m.imageWrapEl.getAttribute("data-swiper-zoom")||a.maxRatio,c=A||m.imageWrapEl.getAttribute("data-swiper-zoom")||a.maxRatio,!e||1===c&&A?(u=0,g=0):(P=m.slideEl.offsetWidth,L=m.slideEl.offsetHeight,l=w(m.slideEl).left+n.scrollX,o=w(m.slideEl).top+n.scrollY,d=l+P/2-i,p=o+L/2-r,v=m.imageEl.offsetWidth,b=m.imageEl.offsetHeight,y=v*s.scale,x=b*s.scale,S=Math.min(P/2-y/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)),A&&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?E(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 A(e){const s=t.zoom;s.scale&&1!==s.scale?L():P(e)}function I(){return{passiveListener:!!t.params.passiveListeners&&{passive:!0,capture:!1},activeListenerWithCapture:!t.params.passiveListeners||{passive:!1,capture:!0}}}function z(){const e=t.zoom;if(e.enabled)return;e.enabled=!0;const{passiveListener:s,activeListenerWithCapture:a}=I();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 $(){const e=t.zoom;if(!e.enabled)return;e.enabled=!1;const{passiveListener:s,activeListenerWithCapture:a}=I();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:()=>v,set(e){if(v!==e){const t=m.imageEl,s=m.slideEl;i("zoomChange",e,t,s)}v=e}}),a("init",(()=>{t.params.zoom.enabled&&z()})),a("destroy",(()=>{$()})),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&&A(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:z,disable:$,in:P,out:L,toggle:A})},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()})),x(s.wrapperEl,(()=>{i&&s.transitionEnd()}))))}if(Array.isArray(i))for(r=0;r(Array.isArray(e)?e:[e]).filter((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(se(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(se(t.params.pagination.bulletClass))&&a.click())}function f(){return t.pagination&&t.pagination.bullets&&t.pagination.bullets.length}function g(){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)},b=()=>{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.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))),g()){n(t.pagination.el).forEach((e=>{e.addEventListener("keydown",h)}))}t.el.addEventListener("focus",x,!0),t.el.addEventListener("pointerdown",b,!0),t.el.addEventListener("pointerup",E,!0)};a("beforeInit",(()=>{i=v("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\}\}/,y(s)+1)))),s.matches(se(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))),g()&&n(t.pagination.el).forEach((e=>{e.removeEventListener("keydown",h)}));t.el.removeEventListener("focus",x,!0),t.el.removeEventListener("pointerdown",b,!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:!1,stopOnLastSlide:!1,reverseDirection:!1,pauseOnMouseEnter:!1}});let d,c,p,u,m,h,f,g,v=o&&o.autoplay?o.autoplay.delay:3e3,w=o&&o.autoplay?o.autoplay.delay:3e3,b=(new Date).getTime();function y(e){i&&!i.destroyed&&i.wrapperEl&&e.target===i.wrapperEl&&(i.wrapperEl.removeEventListener("transitionend",y),g||C())}const E=()=>{if(i.destroyed||!i.autoplay.running)return;i.autoplay.paused?c=!0:c&&(w=d,c=!1);const e=i.autoplay.paused?d:b+w-(new Date).getTime();i.autoplay.timeLeft=e,l("autoplayTimeLeft",e,e/v),s=requestAnimationFrame((()=>{E()}))},x=e=>{if(i.destroyed||!i.autoplay.running)return;cancelAnimationFrame(s),E();let a=void 0===e?i.params.autoplay.delay:e;v=i.params.autoplay.delay,w=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,v=r,w=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&&(b=(new Date).getTime(),requestAnimationFrame((()=>{x()}))))};return a>0?(clearTimeout(t),t=setTimeout((()=>{o()}),a)):requestAnimationFrame((()=>{o()})),a},S=()=>{b=(new Date).getTime(),i.autoplay.running=!0,x(),l("autoplayStart")},T=()=>{i.autoplay.running=!1,clearTimeout(t),cancelAnimationFrame(s),l("autoplayStop")},M=(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",y):C()};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()-b),i.isEnd&&d<0&&!i.params.loop||(d<0&&(d=0),a())},C=()=>{i.isEnd&&d<0&&!i.params.loop||i.destroyed||!i.autoplay.running||(b=(new Date).getTime(),f?(f=!1,x(d)):x(),i.autoplay.paused=!1,l("autoplayResume"))},P=()=>{if(i.destroyed||!i.autoplay.running)return;const e=a();"hidden"===e.visibilityState&&(f=!0,M(!0)),"visible"===e.visibilityState&&C()},L=e=>{"mouse"===e.pointerType&&(f=!0,g=!0,i.animating||i.autoplay.paused||M(!0))},A=e=>{"mouse"===e.pointerType&&(g=!1,i.autoplay.paused&&C())};n("init",(()=>{i.params.autoplay.enabled&&(i.params.autoplay.pauseOnMouseEnter&&(i.el.addEventListener("pointerenter",L),i.el.addEventListener("pointerleave",A)),a().addEventListener("visibilitychange",P),S())})),n("destroy",(()=>{i.el.removeEventListener("pointerenter",L),i.el.removeEventListener("pointerleave",A),a().removeEventListener("visibilitychange",P),i.autoplay.running&&T()})),n("_freeModeStaticRelease",(()=>{(u||f)&&C()})),n("_freeModeNoMomentumRelease",(()=>{i.params.autoplay.disableOnInteraction?T():M(!0,!0)})),n("beforeTransitionStart",((e,t,s)=>{!i.destroyed&&i.autoplay.running&&(s||!i.params.autoplay.disableOnInteraction?M(!0,!0):T())})),n("sliderFirstMove",(()=>{!i.destroyed&&i.autoplay.running&&(i.params.autoplay.disableOnInteraction?T():(p=!0,u=!1,f=!1,m=setTimeout((()=>{f=!0,u=!0,M(!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&&C(),u=!1,p=!1}})),n("slideChange",(()=>{!i.destroyed&&i.autoplay.running&&(h=!0)})),Object.assign(i.autoplay,{start:S,stop:T,pause:M,resume:C})},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(c(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 d(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(),d(!0);else if(a){const s=i=>{e.swiper=i.detail[0],a.removeEventListener("init",s),o(),d(!0),e.swiper.update(),t.update()};a.addEventListener("init",s)}return a},r=()=>{if(t.destroyed)return;i()||requestAnimationFrame(r)};requestAnimationFrame(r)}else o(),d(!0)})),i("slideChange update resize observerUpdate",(()=>{d()})),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:d})},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:o()})},onTouchEnd:function(e){let{currentPos:s}=e;if(t.params.cssMode)return;const{params:r,wrapperEl:n,rtlTranslate:l,snapGrid:d,touchEventsData:c}=t,p=o()-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||o()-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;l&&(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=l?Math.abs((-p-t.translate)/t.velocity):Math.abs((p-t.translate)/t.velocity),r.freeMode.sticky){const s=Math.abs((l?-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),x(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,x(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)&&(a("_freeModeStaticRelease"),t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses())}}}})},function(e){let t,s,a,i,{swiper:r,extendParams:n,on:l}=e;n({grid:{rows:1,fill:"column"}});const o=()=>{let e=r.params.spaceBetween;return"string"==typeof e&&e.indexOf("%")>=0?e=parseFloat(e.replace("%",""))/100*r.size:"string"==typeof e&&(e=parseFloat(e)),e};l("init",(()=>{i=r.params.grid&&r.params.grid.rows>1})),l("update",(()=>{const{params:e,el:t}=r,s=e.grid&&e.grid.rows>1;i&&!s?(t.classList.remove(`${e.containerModifierClass}grid`,`${e.containerModifierClass}grid-column`),a=1,r.emitContainerClasses()):!i&&s&&(t.classList.add(`${e.containerModifierClass}grid`),"column"===e.grid.fill&&t.classList.add(`${e.containerModifierClass}grid-column`),r.emitContainerClasses()),i=s})),r.grid={initSlides:e=>{const{slidesPerView:i}=r.params,{rows:n,fill:l}=r.params.grid,o=r.virtual&&r.params.virtual.enabled?r.virtual.slides.length:e.length;a=Math.floor(o/n),t=Math.floor(o/n)===o/n?o:Math.ceil(o/n)*n,"auto"!==i&&"row"===l&&(t=Math.max(t,i*n)),s=t/n},unsetSlides:()=>{r.slides&&r.slides.forEach((e=>{e.swiperSlideGridSet&&(e.style.height="",e.style[r.getDirectionLabel("margin-top")]="")}))},updateSlide:(e,i,n)=>{const{slidesPerGroup:l}=r.params,d=o(),{rows:c,fill:p}=r.params.grid,u=r.virtual&&r.params.virtual.enabled?r.virtual.slides.length:n.length;let m,h,f;if("row"===p&&l>1){const s=Math.floor(e/(l*c)),a=e-c*l*s,r=0===s?l:Math.min(Math.ceil((u-s*c*l)/c),l);f=Math.floor(a/r),h=a-f*r+s*l,m=h+f*t/c,i.style.order=m}else"column"===p?(h=Math.floor(e/c),f=e-h*c,(h>a||h===a&&f===c-1)&&(f+=1,f>=c&&(f=0,h+=1))):(f=Math.floor(e/s),h=e-f*s);i.row=f,i.column=h,i.style.height=`calc((100% - ${(c-1)*d}px) / ${c})`,i.style[r.getDirectionLabel("margin-top")]=0!==f?d&&`${d}px`:"",i.swiperSlideGridSet=!0},updateWrapperSize:(e,s)=>{const{centeredSlides:a,roundLengths:i}=r.params,n=o(),{rows:l}=r.params.grid;if(r.virtualSize=(e+n)*t,r.virtualSize=Math.ceil(r.virtualSize/l)-n,r.params.cssMode||(r.wrapperEl.style[r.getDirectionLabel("width")]=`${r.virtualSize+n}px`),a){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`})),ce({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=v("div",("swiper-slide-shadow-cube swiper-slide-shadow-"+(s?"left":"top")).split(" ")),e.append(a)),i||(i=v("div",("swiper-slide-shadow-cube swiper-slide-shadow-"+(s?"right":"bottom")).split(" ")),e.append(i)),a&&(a.style.opacity=Math.max(-t,0)),i&&(i.style.opacity=Math.max(t,0))};oe({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.wrapperEl.querySelector(".swiper-cube-shadow"),m||(m=v("div","swiper-cube-shadow"),t.wrapperEl.append(m)),m.style.height=`${r}px`):(m=e.querySelector(".swiper-cube-shadow"),m||(m=v("div","swiper-cube-shadow"),e.append(m))));for(let e=0;e-1&&(h=90*r+90*m,l&&(h=90*-r-90*m),t.browser&&t.browser.isSafari&&Math.abs(h)/90%2==1&&(h+=.001)),s.style.transform=w,c.slideShadows&&i(s,m,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(89.99deg) 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(-89.99deg)`}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)=>{let a=t.isHorizontal()?e.querySelector(".swiper-slide-shadow-left"):e.querySelector(".swiper-slide-shadow-top"),i=t.isHorizontal()?e.querySelector(".swiper-slide-shadow-right"):e.querySelector(".swiper-slide-shadow-bottom");a||(a=pe("flip",e,t.isHorizontal()?"left":"top")),i||(i=pe("flip",e,t.isHorizontal()?"right":"bottom")),a&&(a.style.opacity=Math.max(-s,0)),i&&(i.style.opacity=Math.max(s,0))};oe({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`}))})),ce({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}}),oe({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,s=a.length;e0?u:0),t&&(t.style.opacity=-u>0?-u: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`;oe({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,s)=>{let a=f.rotate[s]*Math.abs(d*n);t.browser&&t.browser.isSafari&&Math.abs(a)/90%2==1&&(a+=.001),m[s]=a})),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=pe("creative",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=de(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`}))})),ce({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}}),oe({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=pe("cards",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;de(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`}))})),ce({swiper:t,duration:e,transformElements:s})},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!t.params.cssMode})})}];return ee.use(ue),ee}(); -//# sourceMappingURL=swiper-bundle.min.js.map \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/swiper-bundle.min.js.map b/build/assets/js/vendor/swiper/swiper-bundle.min.js.map deleted file mode 100644 index cb26b7f..0000000 --- a/build/assets/js/vendor/swiper/swiper-bundle.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"swiper-bundle.js.js","names":["Swiper","isObject$1","obj","constructor","Object","extend$1","target","src","keys","forEach","key","length","ssrDocument","body","addEventListener","removeEventListener","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","createElement","children","childNodes","style","setAttribute","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","getDocument","doc","document","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","this","getComputedStyle","getPropertyValue","Image","Date","screen","setTimeout","clearTimeout","matchMedia","requestAnimationFrame","callback","cancelAnimationFrame","id","getWindow","win","window","classesToTokens","classes","trim","split","filter","c","nextTick","delay","now","getTranslate","el","axis","matrix","curTransform","transformMatrix","curStyle","currentStyle","getComputedStyle$1","WebKitCSSMatrix","transform","webkitTransform","map","a","replace","join","MozTransform","OTransform","MsTransform","msTransform","toString","m41","parseFloat","m42","isObject","o","prototype","call","slice","extend","to","arguments","undefined","noExtend","i","nextSource","node","HTMLElement","nodeType","keysArray","indexOf","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","enumerable","__swiper__","setCSSProperty","varName","varValue","setProperty","animateCSSModeScroll","_ref","swiper","targetPosition","side","startPosition","translate","time","startTime","duration","params","speed","wrapperEl","scrollSnapType","cssModeFrameID","dir","isOutOfBound","current","animate","getTime","progress","Math","max","min","easeProgress","cos","PI","currentPosition","scrollTo","overflow","getSlideTransformEl","slideEl","shadowRoot","elementChildren","element","selector","matches","showWarning","text","console","warn","err","tag","classList","add","Array","isArray","elementOffset","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","elementStyle","prop","elementIndex","child","previousSibling","elementParents","parents","parent","parentElement","push","elementTransitionEnd","fireCallBack","e","elementOuterSize","size","includeMargins","offsetWidth","support","deviceCached","browser","getSupport","smoothScroll","documentElement","touch","DocumentTouch","calcSupport","getDevice","overrides","_temp","platform","ua","device","ios","android","screenWidth","width","screenHeight","height","match","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","needPerspectiveFix","isSafari","toLowerCase","String","includes","major","minor","num","Number","isWebView","test","calcBrowser","eventsEmitter","on","events","handler","priority","self","eventsListeners","destroyed","method","event","once","onceHandler","off","__emitterProxy","_len","args","_key","apply","onAny","eventsAnyListeners","offAny","index","splice","eventHandler","emit","data","context","_len2","_key2","unshift","processLazyPreloader","imageEl","closest","isElement","slideClass","lazyEl","lazyPreloaderClass","remove","unlazy","slides","removeAttribute","preload","amount","lazyPreloadPrevNext","slidesPerView","slidesPerViewDynamic","ceil","activeIndex","grid","rows","activeColumn","preloadColumns","from","_","column","slideIndexLastInView","rewind","loop","realIndex","update","updateSize","clientWidth","clientHeight","isHorizontal","isVertical","parseInt","isNaN","assign","updateSlides","getDirectionPropertyValue","label","getDirectionLabel","slidesEl","swiperSize","rtlTranslate","rtl","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginRight","marginBottom","marginTop","centeredSlides","cssMode","gridEnabled","slideSize","initSlides","unsetSlides","shouldResetSlideSize","breakpoints","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","floor","swiperSlideSize","abs","slidesPerGroup","slidesPerGroupSkip","effect","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","groups","slidesBefore","slidesAfter","groupSize","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","v","watchOverflow","checkOverflow","watchSlidesProgress","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","contains","maxBackfaceHiddenSlides","updateAutoHeight","activeSlides","newHeight","setTransition","getSlideByIndex","getSlideIndexByData","visibleSlides","offsetHeight","minusOffset","offsetLeft","offsetTop","swiperSlideOffset","cssOverflowAdjustment","updateSlidesProgress","offsetCenter","slideVisibleClass","slideFullyVisibleClass","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","isFullyVisible","originalProgress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","progressLoop","wasBeginning","wasEnd","isBeginningRounded","isEndRounded","firstSlideIndex","lastSlideIndex","firstSlideTranslate","lastSlideTranslate","translateMax","translateAbs","autoHeight","updateSlidesClasses","getFilteredSlide","activeSlide","prevSlide","nextSlide","slideActiveClass","slideNextClass","slidePrevClass","nextEls","nextElementSibling","next","elementNextAll","prevEls","previousElementSibling","prev","elementPrevAll","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","getVirtualRealIndex","aIndex","normalizeSlideIndex","getActiveIndexByTranslate","skip","firstSlideInColumn","activeSlideIndex","getAttribute","initialized","runCallbacksOnInit","updateClickedSlide","path","pathEl","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","virtualTranslate","currentTranslate","setTranslate","byController","newProgress","x","y","previousTranslate","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","isH","behavior","onTranslateToWrapperTransitionEnd","transitionEmit","direction","step","slideTo","initial","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","transitionStart","transitionEnd","t","_immediateVirtual","_cssModeVirtualInitialSet","initialSlide","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","targetSlideIndex","cols","needLoopFix","loopFix","slideRealIndex","slideNext","perGroup","slidesPerGroupAuto","increment","loopPreventsSliding","_clientLeft","slidePrev","normalize","val","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","lastIndex","slideReset","slideToClosest","threshold","currentSnap","slideToIndex","slideSelector","loopedSlides","getSlideIndex","loopCreate","shouldFillGroup","shouldFillGrid","addBlankSlides","amountOfSlides","slideBlankClass","append","loopAddBlankSlides","recalcSlides","byMousewheel","loopAdditionalSlides","fill","prependSlidesIndexes","appendSlidesIndexes","isNext","isPrev","slidesPrepended","slidesAppended","activeColIndexWithShift","colIndexToPrepend","__preventObserver__","swiperLoopMoveDOM","prepend","currentSlideTranslate","diff","touchEventsData","startTranslate","shift","controller","control","loopParams","loopDestroy","newSlidesOrder","swiperSlideIndex","preventEdgeSwipe","startX","edgeSwipeDetection","edgeSwipeThreshold","innerWidth","preventDefault","onTouchStart","originalEvent","type","pointerId","targetTouches","touchId","identifier","pageX","touches","simulateTouch","pointerType","targetEl","touchEventsTarget","which","button","isTouched","isMoved","swipingClassHasValue","noSwipingClass","eventPath","composedPath","noSwipingSelector","isTargetShadow","noSwiping","base","__closestFrom","assignedSlot","found","getRootNode","closestElement","allowClick","swipeHandler","currentX","currentY","pageY","startY","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","freeMode","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","previousX","previousY","diffX","diffY","sqrt","touchAngle","atan2","cancelable","touchMoveStopPropagation","nested","stopPropagation","touchesDiff","oneWayMovement","touchRatio","prevTouchesDirection","touchesDirection","isLoop","allowLoopFix","evt","bubbles","dispatchEvent","allowMomentumBounce","grabCursor","setGrabCursor","loopSwapReset","disableParentSwiper","resistanceRatio","resistance","followFinger","onTouchEnd","touchEndTime","timeDiff","pathTree","lastClickTime","currentPos","swipeToLast","stopIndex","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","setBreakpoint","isVirtualLoop","autoplay","running","paused","resizeTimeout","resume","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","onLoad","onDocumentTouchStart","documentTouchHandlerProceeded","touchAction","capture","domMethod","swiperMethod","passive","updateOnWindowResize","isGridEnabled","defaults","init","resizeObserver","createElements","eventsPrefix","url","breakpointsBase","uniqueNavElements","passiveListeners","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","transition","transitionDuration","transitionDelay","moving","isLocked","cursor","unsetGrabCursor","attachEvents","bind","detachEvents","breakpoint","getBreakpoint","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","wasModuleEnabled","isModuleEnabled","disable","enable","directionChanged","needsReLoop","wasLoop","changeDirection","isEnabled","hasLoop","containerEl","currentHeight","innerHeight","points","point","minRatio","substr","value","sort","b","wasLocked","lastSlideRightEdge","addClasses","classNames","suffixes","entries","prefix","resultClasses","item","prepareClasses","autoheight","centered","removeClasses","extendedDefaults","swipers","newParams","modules","__modules__","mod","extendParams","swiperParams","passedParams","eventName","velocity","trunc","clickTimeout","velocities","imagesToLoad","imagesLoaded","property","setProgress","cls","className","getSlideClasses","updates","view","exact","spv","breakLoop","translateValue","translated","complete","newDirection","needUpdate","currentDirection","changeLanguageDirection","mount","mounted","parentNode","getWrapperSelector","getWrapper","slideSlots","hostEl","lazyElements","destroy","deleteInstance","cleanStyles","object","deleteProps","extendDefaults","newDefaults","installModule","use","module","m","createElementIfNotDefined","checkProps","classesToSelector","appendSlide","appendElement","tempDOM","innerHTML","observer","prependSlide","prependElement","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","effectInit","overwriteParams","perspective","recreateShadows","getEffectParams","requireUpdateOnVirtual","overwriteParamsResult","_s","slideShadows","shadowEl","effectTarget","effectParams","transformEl","backfaceVisibility","effectVirtualTransitionEnd","transformElements","allSlides","transitionEndTarget","eventTriggered","getSlide","createShadow","suffix","shadowClass","shadowContainer","prototypeGroup","protoMethod","animationFrame","resizeHandler","orientationChangeHandler","ResizeObserver","newWidth","_ref2","contentBoxSize","contentRect","inlineSize","blockSize","observe","unobserve","observers","attach","options","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","observeParents","observeSlideChildren","containerParents","disconnect","cssModeTimeout","cache","renderSlide","renderExternal","renderExternalUpdate","addSlidesBefore","addSlidesAfter","offset","force","previousFrom","previousTo","previousSlidesGrid","previousOffset","offsetProp","onRendered","slidesToRender","prependIndexes","appendIndexes","loopFrom","loopTo","domSlidesAssigned","numberOfNewSlides","newCache","cachedIndex","cachedEl","cachedElIndex","handle","kc","keyCode","charCode","pageUpDown","keyboard","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","shiftKey","altKey","ctrlKey","metaKey","onlyInViewport","inView","swiperWidth","swiperHeight","windowWidth","windowHeight","swiperOffset","swiperCoord","returnValue","timeout","mousewheel","releaseOnEdges","invert","forceToAxis","sensitivity","eventsTarget","thresholdDelta","thresholdTime","noMousewheelClass","lastEventBeforeSnap","lastScrollTime","recentWheelEvents","handleMouseEnter","mouseEntered","handleMouseLeave","animateSlider","newEvent","delta","raw","targetElContainsTarget","rtlFactor","sX","sY","pX","pY","detail","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","positions","sign","ignoreWheelEvents","position","sticky","prevEvent","firstEvent","snapToThreshold","autoplayDisableOnInteraction","stop","releaseScroll","hideOnClick","disabledClass","hiddenClass","lockClass","navigationDisabledClass","makeElementsArray","getEl","res","toggleEl","disabled","subEl","tagName","onPrevClick","onNextClick","initButton","destroyButton","pagination","clickable","isHidden","toggle","pfx","bulletSize","bulletElement","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","number","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","progressbarFillClass","progressbarOppositeClass","clickableClass","horizontalClass","verticalClass","paginationDisabledClass","bullets","dynamicBulletIndex","isPaginationDisabled","setSideBullets","bulletEl","onBulletClick","total","firstIndex","midIndex","classesToRemove","s","flat","bullet","bulletIndex","firstDisplayedBullet","lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","subElIndex","fractionEl","textContent","totalEl","progressbarDirection","scale","scaleX","scaleY","progressEl","render","paginationHTML","numberOfBullets","dragStartPos","dragSize","trackSize","divider","dragTimeout","scrollbar","dragEl","newSize","newPos","hide","opacity","display","getPointerPosition","clientX","clientY","setDragPosition","positionRatio","onDragStart","onDragMove","onDragEnd","snapOnRelease","activeListener","passiveListener","eventMethod","swiperEl","dragClass","draggable","scrollbarDisabledClass","parallax","elementsSelector","setTransform","p","rotate","currentOpacity","elements","_swiper","parallaxEl","parallaxDuration","zoom","maxRatio","containerClass","zoomedSlideClass","fakeGestureTouched","fakeGestureMoved","currentScale","isScaling","evCache","gesture","originX","originY","slideWidth","slideHeight","imageWrapEl","image","minX","minY","maxX","maxY","touchesStart","touchesCurrent","prevPositionX","prevPositionY","prevTime","getDistanceBetweenTouches","x1","y1","x2","y2","eventWithinSlide","onGestureStart","scaleStart","getScaleOrigin","onGestureChange","pointerIndex","findIndex","cachedEv","scaleMove","onGestureEnd","eventWithinZoomContainer","scaledWidth","scaledHeight","scaleRatio","onTransitionEnd","zoomIn","touchX","touchY","offsetX","offsetY","translateX","translateY","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","forceZoomRatio","zoomOut","zoomToggle","getListeners","activeListenerWithCapture","defineProperty","get","set","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","momentumDuration","in","out","LinearSpline","binarySearch","maxIndex","minIndex","guess","array","i1","i3","interpolate","removeSpline","spline","inverse","by","controlElement","onControllerSwiper","_t","controlled","controlledTranslate","setControlledTranslate","getInterpolateFunction","isFinite","setControlledTransition","a11y","notificationClass","prevSlideMessage","nextSlideMessage","firstSlideMessage","lastSlideMessage","paginationBulletMessage","slideLabelMessage","containerMessage","containerRoleDescriptionMessage","itemRoleDescriptionMessage","slideRole","clicked","liveRegion","notify","message","notification","makeElFocusable","makeElNotFocusable","addElRole","role","addElRoleDescription","description","addElLabel","disableEl","enableEl","onEnterOrSpaceKey","click","hasPagination","hasClickablePagination","initNavEl","wrapperId","controls","addElControls","handlePointerDown","handlePointerUp","handleFocus","isActive","isVisible","sourceCapabilities","firesTouchEvents","repeat","round","random","live","addElLive","updateNavigation","updatePagination","root","keepQuery","paths","slugify","getPathValues","urlOverride","URL","pathArray","part","setHistory","currentState","state","scrollToSlide","setHistoryPopState","hashNavigation","watchState","slideWithHash","onHashChange","newHash","activeSlideEl","setHash","activeSlideHash","raf","timeLeft","waitForTransition","disableOnInteraction","stopOnLastSlide","reverseDirection","pauseOnMouseEnter","autoplayTimeLeft","wasPaused","pausedByTouch","touchStartTimeout","slideChanged","pausedByInteraction","pausedByPointerEnter","autoplayDelayTotal","autoplayDelayCurrent","autoplayStartTime","calcTimeLeft","run","delayForce","currentSlideDelay","getSlideDelay","proceed","start","pause","reset","onVisibilityChange","visibilityState","onPointerEnter","onPointerLeave","thumbs","multipleActiveThumbs","autoScrollOffset","slideThumbActiveClass","thumbsContainerClass","swiperCreated","onThumbClick","thumbsSwiper","thumbsParams","SwiperClass","thumbsSwiperParams","thumbsToActivate","thumbActiveClass","useOffset","currentThumbsIndex","newThumbsIndex","newThumbsSlide","getThumbsElementAndInit","thumbsElement","onThumbsSwiper","watchForThumbsToAppear","momentum","momentumRatio","momentumBounce","momentumBounceRatio","momentumVelocityRatio","minimumVelocity","lastMoveEvent","pop","velocityEvent","distance","momentumDistance","newPosition","afterBouncePosition","doBounce","bounceAmount","needsLoopFix","j","moveDistance","currentSlideSize","slidesNumberEvenToRows","slidesPerRow","numFullColumns","getSpaceBetween","swiperSlideGridSet","newSlideOrderIndex","row","groupIndex","slideIndexInGroup","columnsInGroup","order","fadeEffect","crossFade","tx","ty","slideOpacity","cubeEffect","shadow","shadowOffset","shadowScale","createSlideShadows","shadowBefore","shadowAfter","cubeShadowEl","wrapperRotate","slideAngle","tz","transformOrigin","shadowAngle","sin","scale1","scale2","zFactor","flipEffect","limitRotation","rotateY","rotateX","zIndex","coverflowEffect","stretch","depth","modifier","center","centerOffset","offsetMultiplier","translateZ","slideTransform","shadowBeforeEl","shadowAfterEl","creativeEffect","limitProgress","shadowPerProgress","progressMultiplier","getTranslateValue","isCenteredSlides","margin","r","custom","translateString","rotateString","scaleString","opacityString","shadowOpacity","cardsEffect","perSlideRotate","perSlideOffset","tX","tY","tZ","tXAdd","isSwipeToNext","isSwipeToPrev","subProgress","prevY"],"sources":["0"],"mappings":"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"} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/swiper-bundle.min.mjs b/build/assets/js/vendor/swiper/swiper-bundle.min.mjs deleted file mode 100644 index a05a58f..0000000 --- a/build/assets/js/vendor/swiper/swiper-bundle.min.mjs +++ /dev/null @@ -1,14 +0,0 @@ -/** - * Swiper 11.0.5 - * 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: November 22, 2023 - */ - -import{S as Swiper}from"./shared/swiper-core.min.mjs";import Virtual from"./modules/virtual.min.mjs";import Keyboard from"./modules/keyboard.min.mjs";import Mousewheel from"./modules/mousewheel.min.mjs";import Navigation from"./modules/navigation.min.mjs";import Pagination from"./modules/pagination.min.mjs";import Scrollbar from"./modules/scrollbar.min.mjs";import Parallax from"./modules/parallax.min.mjs";import Zoom from"./modules/zoom.min.mjs";import Controller from"./modules/controller.min.mjs";import A11y from"./modules/a11y.min.mjs";import History from"./modules/history.min.mjs";import HashNavigation from"./modules/hash-navigation.min.mjs";import Autoplay from"./modules/autoplay.min.mjs";import Thumb from"./modules/thumbs.min.mjs";import freeMode from"./modules/free-mode.min.mjs";import Grid from"./modules/grid.min.mjs";import Manipulation from"./modules/manipulation.min.mjs";import EffectFade from"./modules/effect-fade.min.mjs";import EffectCube from"./modules/effect-cube.min.mjs";import EffectFlip from"./modules/effect-flip.min.mjs";import EffectCoverflow from"./modules/effect-coverflow.min.mjs";import EffectCreative from"./modules/effect-creative.min.mjs";import EffectCards from"./modules/effect-cards.min.mjs";const modules=[Virtual,Keyboard,Mousewheel,Navigation,Pagination,Scrollbar,Parallax,Zoom,Controller,A11y,History,HashNavigation,Autoplay,Thumb,freeMode,Grid,Manipulation,EffectFade,EffectCube,EffectFlip,EffectCoverflow,EffectCreative,EffectCards];Swiper.use(modules);export{Swiper,Swiper as default}; -//# sourceMappingURL=swiper-bundle.min.mjs.map \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/swiper-bundle.min.mjs.map b/build/assets/js/vendor/swiper/swiper-bundle.min.mjs.map deleted file mode 100644 index 00ccec7..0000000 --- a/build/assets/js/vendor/swiper/swiper-bundle.min.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"swiper-bundle.mjs.mjs","names":["Swiper","Virtual","Keyboard","Mousewheel","Navigation","Pagination","Scrollbar","Parallax","Zoom","Controller","A11y","History","HashNavigation","Autoplay","Thumb","freeMode","Grid","Manipulation","EffectFade","EffectCube","EffectFlip","EffectCoverflow","EffectCreative","EffectCards","modules","use"],"sources":["0"],"mappings":";;;;;;;;;;;;YAYcA,WAAc,sCACrBC,YAAa,mCACbC,aAAc,oCACdC,eAAgB,sCAChBC,eAAgB,sCAChBC,eAAgB,sCAChBC,cAAe,qCACfC,aAAc,oCACdC,SAAU,gCACVC,eAAgB,sCAChBC,SAAU,gCACVC,YAAa,mCACbC,mBAAoB,2CACpBC,aAAc,oCACdC,UAAW,kCACXC,aAAc,qCACdC,SAAU,gCACVC,iBAAkB,wCAClBC,eAAgB,uCAChBC,eAAgB,uCAChBC,eAAgB,uCAChBC,oBAAqB,4CACrBC,mBAAoB,2CACpBC,gBAAiB,iCAGxB,MAAMC,QAAU,CAACvB,QAASC,SAAUC,WAAYC,WAAYC,WAAYC,UAAWC,SAAUC,KAAMC,WAAYC,KAAMC,QAASC,eAAgBC,SAAUC,MAAOC,SAAUC,KAAMC,aAAcC,WAAYC,WAAYC,WAAYC,gBAAiBC,eAAgBC,aAClQvB,OAAOyB,IAAID,gBAEFxB,OAAQA"} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/swiper-bundle.mjs b/build/assets/js/vendor/swiper/swiper-bundle.mjs deleted file mode 100644 index c3338fc..0000000 --- a/build/assets/js/vendor/swiper/swiper-bundle.mjs +++ /dev/null @@ -1,42 +0,0 @@ -/** - * Swiper 11.0.5 - * 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: November 22, 2023 - */ - -import { S as Swiper } from './shared/swiper-core.mjs'; -import Virtual from './modules/virtual.mjs'; -import Keyboard from './modules/keyboard.mjs'; -import Mousewheel from './modules/mousewheel.mjs'; -import Navigation from './modules/navigation.mjs'; -import Pagination from './modules/pagination.mjs'; -import Scrollbar from './modules/scrollbar.mjs'; -import Parallax from './modules/parallax.mjs'; -import Zoom from './modules/zoom.mjs'; -import Controller from './modules/controller.mjs'; -import A11y from './modules/a11y.mjs'; -import History from './modules/history.mjs'; -import HashNavigation from './modules/hash-navigation.mjs'; -import Autoplay from './modules/autoplay.mjs'; -import Thumb from './modules/thumbs.mjs'; -import freeMode from './modules/free-mode.mjs'; -import Grid from './modules/grid.mjs'; -import Manipulation from './modules/manipulation.mjs'; -import EffectFade from './modules/effect-fade.mjs'; -import EffectCube from './modules/effect-cube.mjs'; -import EffectFlip from './modules/effect-flip.mjs'; -import EffectCoverflow from './modules/effect-coverflow.mjs'; -import EffectCreative from './modules/effect-creative.mjs'; -import EffectCards from './modules/effect-cards.mjs'; - -// Swiper Class -const modules = [Virtual, Keyboard, Mousewheel, Navigation, Pagination, Scrollbar, Parallax, Zoom, Controller, A11y, History, HashNavigation, Autoplay, Thumb, freeMode, Grid, Manipulation, EffectFade, EffectCube, EffectFlip, EffectCoverflow, EffectCreative, EffectCards]; -Swiper.use(modules); - -export { Swiper, Swiper as default }; diff --git a/build/assets/js/vendor/swiper/swiper-element-bundle.js b/build/assets/js/vendor/swiper/swiper-element-bundle.js deleted file mode 100644 index 248de36..0000000 --- a/build/assets/js/vendor/swiper/swiper-element-bundle.js +++ /dev/null @@ -1,10138 +0,0 @@ -/** - * Swiper Custom Element 11.0.5 - * 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: November 22, 2023 - */ - -(function () { - 'use strict'; - - /** - * SSR Window 4.0.2 - * Better handling for window object in SSR environment - * https://github.com/nolimits4web/ssr-window - * - * Copyright 2021, Vladimir Kharlampidi - * - * Licensed under MIT - * - * Released on: December 13, 2021 - */ - /* eslint-disable no-param-reassign */ - function isObject$2(obj) { - return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object; - } - function extend$2(target, src) { - if (target === void 0) { - target = {}; - } - if (src === void 0) { - src = {}; - } - Object.keys(src).forEach(key => { - if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject$2(src[key]) && isObject$2(target[key]) && Object.keys(src[key]).length > 0) { - extend$2(target[key], src[key]); - } - }); - } - const ssrDocument = { - body: {}, - addEventListener() {}, - removeEventListener() {}, - activeElement: { - blur() {}, - nodeName: '' - }, - querySelector() { - return null; - }, - querySelectorAll() { - return []; - }, - getElementById() { - return null; - }, - createEvent() { - return { - initEvent() {} - }; - }, - createElement() { - return { - children: [], - childNodes: [], - style: {}, - setAttribute() {}, - getElementsByTagName() { - return []; - } - }; - }, - createElementNS() { - return {}; - }, - importNode() { - return null; - }, - location: { - hash: '', - host: '', - hostname: '', - href: '', - origin: '', - pathname: '', - protocol: '', - search: '' - } - }; - function getDocument() { - const doc = typeof document !== 'undefined' ? document : {}; - extend$2(doc, ssrDocument); - return doc; - } - const ssrWindow = { - document: ssrDocument, - navigator: { - userAgent: '' - }, - location: { - hash: '', - host: '', - hostname: '', - href: '', - origin: '', - pathname: '', - protocol: '', - search: '' - }, - history: { - replaceState() {}, - pushState() {}, - go() {}, - back() {} - }, - CustomEvent: function CustomEvent() { - return this; - }, - addEventListener() {}, - removeEventListener() {}, - getComputedStyle() { - return { - getPropertyValue() { - return ''; - } - }; - }, - Image() {}, - Date() {}, - screen: {}, - setTimeout() {}, - clearTimeout() {}, - matchMedia() { - return {}; - }, - requestAnimationFrame(callback) { - if (typeof setTimeout === 'undefined') { - callback(); - return null; - } - return setTimeout(callback, 0); - }, - cancelAnimationFrame(id) { - if (typeof setTimeout === 'undefined') { - return; - } - clearTimeout(id); - } - }; - function getWindow() { - const win = typeof window !== 'undefined' ? window : {}; - extend$2(win, ssrWindow); - return win; - } - - function classesToTokens(classes) { - if (classes === void 0) { - classes = ''; - } - return classes.trim().split(' ').filter(c => !!c.trim()); - } - - function deleteProps(obj) { - const object = obj; - Object.keys(object).forEach(key => { - try { - object[key] = null; - } catch (e) { - // no getter for object - } - try { - delete object[key]; - } catch (e) { - // something got wrong - } - }); - } - function nextTick(callback, delay) { - if (delay === void 0) { - delay = 0; - } - return setTimeout(callback, delay); - } - function now() { - return Date.now(); - } - function getComputedStyle$1(el) { - const window = getWindow(); - let style; - if (window.getComputedStyle) { - style = window.getComputedStyle(el, null); - } - if (!style && el.currentStyle) { - style = el.currentStyle; - } - if (!style) { - style = el.style; - } - return style; - } - function getTranslate(el, axis) { - if (axis === void 0) { - axis = 'x'; - } - const window = getWindow(); - let matrix; - let curTransform; - let transformMatrix; - const curStyle = getComputedStyle$1(el); - if (window.WebKitCSSMatrix) { - curTransform = curStyle.transform || curStyle.webkitTransform; - if (curTransform.split(',').length > 6) { - curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', '); - } - // Some old versions of Webkit choke when 'none' is passed; pass - // empty string instead in this case - transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform); - } else { - transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,'); - matrix = transformMatrix.toString().split(','); - } - if (axis === 'x') { - // Latest Chrome and webkits Fix - if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; - // Crazy IE10 Matrix - else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); - // Normal Browsers - else curTransform = parseFloat(matrix[4]); - } - if (axis === 'y') { - // Latest Chrome and webkits Fix - if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; - // Crazy IE10 Matrix - else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); - // Normal Browsers - else curTransform = parseFloat(matrix[5]); - } - return curTransform || 0; - } - function isObject$1(o) { - return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object'; - } - function isNode(node) { - // eslint-disable-next-line - if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') { - return node instanceof HTMLElement; - } - return node && (node.nodeType === 1 || node.nodeType === 11); - } - function extend$1() { - const to = Object(arguments.length <= 0 ? undefined : arguments[0]); - const noExtend = ['__proto__', 'constructor', 'prototype']; - for (let i = 1; i < arguments.length; i += 1) { - const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i]; - if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) { - const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0); - for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) { - const nextKey = keysArray[nextIndex]; - const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey); - if (desc !== undefined && desc.enumerable) { - if (isObject$1(to[nextKey]) && isObject$1(nextSource[nextKey])) { - if (nextSource[nextKey].__swiper__) { - to[nextKey] = nextSource[nextKey]; - } else { - extend$1(to[nextKey], nextSource[nextKey]); - } - } else if (!isObject$1(to[nextKey]) && isObject$1(nextSource[nextKey])) { - to[nextKey] = {}; - if (nextSource[nextKey].__swiper__) { - to[nextKey] = nextSource[nextKey]; - } else { - extend$1(to[nextKey], nextSource[nextKey]); - } - } else { - to[nextKey] = nextSource[nextKey]; - } - } - } - } - } - return to; - } - function setCSSProperty(el, varName, varValue) { - el.style.setProperty(varName, varValue); - } - function animateCSSModeScroll(_ref) { - let { - swiper, - targetPosition, - side - } = _ref; - const window = getWindow(); - const startPosition = -swiper.translate; - let startTime = null; - let time; - const duration = swiper.params.speed; - swiper.wrapperEl.style.scrollSnapType = 'none'; - window.cancelAnimationFrame(swiper.cssModeFrameID); - const dir = targetPosition > startPosition ? 'next' : 'prev'; - const isOutOfBound = (current, target) => { - return dir === 'next' && current >= target || dir === 'prev' && current <= target; - }; - const animate = () => { - time = new Date().getTime(); - if (startTime === null) { - startTime = time; - } - const progress = Math.max(Math.min((time - startTime) / duration, 1), 0); - const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2; - let currentPosition = startPosition + easeProgress * (targetPosition - startPosition); - if (isOutOfBound(currentPosition, targetPosition)) { - currentPosition = targetPosition; - } - swiper.wrapperEl.scrollTo({ - [side]: currentPosition - }); - if (isOutOfBound(currentPosition, targetPosition)) { - swiper.wrapperEl.style.overflow = 'hidden'; - swiper.wrapperEl.style.scrollSnapType = ''; - setTimeout(() => { - swiper.wrapperEl.style.overflow = ''; - swiper.wrapperEl.scrollTo({ - [side]: currentPosition - }); - }); - window.cancelAnimationFrame(swiper.cssModeFrameID); - return; - } - swiper.cssModeFrameID = window.requestAnimationFrame(animate); - }; - animate(); - } - function getSlideTransformEl(slideEl) { - return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowRoot && slideEl.shadowRoot.querySelector('.swiper-slide-transform') || slideEl; - } - function elementChildren(element, selector) { - if (selector === void 0) { - selector = ''; - } - return [...element.children].filter(el => el.matches(selector)); - } - function showWarning(text) { - try { - console.warn(text); - return; - } catch (err) { - // err - } - } - function createElement(tag, classes) { - if (classes === void 0) { - classes = []; - } - const el = document.createElement(tag); - el.classList.add(...(Array.isArray(classes) ? classes : classesToTokens(classes))); - return el; - } - function elementOffset(el) { - const window = getWindow(); - const document = getDocument(); - const box = el.getBoundingClientRect(); - const body = document.body; - const clientTop = el.clientTop || body.clientTop || 0; - const clientLeft = el.clientLeft || body.clientLeft || 0; - const scrollTop = el === window ? window.scrollY : el.scrollTop; - const scrollLeft = el === window ? window.scrollX : el.scrollLeft; - return { - top: box.top + scrollTop - clientTop, - left: box.left + scrollLeft - clientLeft - }; - } - function elementPrevAll(el, selector) { - const prevEls = []; - while (el.previousElementSibling) { - const prev = el.previousElementSibling; // eslint-disable-line - if (selector) { - if (prev.matches(selector)) prevEls.push(prev); - } else prevEls.push(prev); - el = prev; - } - return prevEls; - } - function elementNextAll(el, selector) { - const nextEls = []; - while (el.nextElementSibling) { - const next = el.nextElementSibling; // eslint-disable-line - if (selector) { - if (next.matches(selector)) nextEls.push(next); - } else nextEls.push(next); - el = next; - } - return nextEls; - } - function elementStyle(el, prop) { - const window = getWindow(); - return window.getComputedStyle(el, null).getPropertyValue(prop); - } - function elementIndex(el) { - let child = el; - let i; - if (child) { - i = 0; - // eslint-disable-next-line - while ((child = child.previousSibling) !== null) { - if (child.nodeType === 1) i += 1; - } - return i; - } - return undefined; - } - function elementParents(el, selector) { - const parents = []; // eslint-disable-line - let parent = el.parentElement; // eslint-disable-line - while (parent) { - if (selector) { - if (parent.matches(selector)) parents.push(parent); - } else { - parents.push(parent); - } - parent = parent.parentElement; - } - return parents; - } - function elementTransitionEnd(el, callback) { - function fireCallBack(e) { - if (e.target !== el) return; - callback.call(el, e); - el.removeEventListener('transitionend', fireCallBack); - } - if (callback) { - el.addEventListener('transitionend', fireCallBack); - } - } - function elementOuterSize(el, size, includeMargins) { - const window = getWindow(); - if (includeMargins) { - return el[size === 'width' ? 'offsetWidth' : 'offsetHeight'] + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-right' : 'margin-top')) + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-left' : 'margin-bottom')); - } - return el.offsetWidth; - } - - let support; - function calcSupport() { - const window = getWindow(); - const document = getDocument(); - return { - smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style, - touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch) - }; - } - function getSupport() { - if (!support) { - support = calcSupport(); - } - return support; - } - - let deviceCached; - function calcDevice(_temp) { - let { - userAgent - } = _temp === void 0 ? {} : _temp; - const support = getSupport(); - const window = getWindow(); - const platform = window.navigator.platform; - const ua = userAgent || window.navigator.userAgent; - const device = { - ios: false, - android: false - }; - const screenWidth = window.screen.width; - const screenHeight = window.screen.height; - const android = ua.match(/(Android);?[\s\/]+([\d.]+)?/); // eslint-disable-line - let ipad = ua.match(/(iPad).*OS\s([\d_]+)/); - const ipod = ua.match(/(iPod)(.*OS\s([\d_]+))?/); - const iphone = !ipad && ua.match(/(iPhone\sOS|iOS)\s([\d_]+)/); - const windows = platform === 'Win32'; - let macos = platform === 'MacIntel'; - - // iPadOs 13 fix - const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810']; - if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) { - ipad = ua.match(/(Version)\/([\d.]+)/); - if (!ipad) ipad = [0, 1, '13_0_0']; - macos = false; - } - - // Android - if (android && !windows) { - device.os = 'android'; - device.android = true; - } - if (ipad || iphone || ipod) { - device.os = 'ios'; - device.ios = true; - } - - // Export object - return device; - } - function getDevice(overrides) { - if (overrides === void 0) { - overrides = {}; - } - if (!deviceCached) { - deviceCached = calcDevice(overrides); - } - return deviceCached; - } - - let browser; - function calcBrowser() { - const window = getWindow(); - let needPerspectiveFix = false; - function isSafari() { - const ua = window.navigator.userAgent.toLowerCase(); - return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0; - } - if (isSafari()) { - const ua = String(window.navigator.userAgent); - if (ua.includes('Version/')) { - const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num)); - needPerspectiveFix = major < 16 || major === 16 && minor < 2; - } - } - return { - isSafari: needPerspectiveFix || isSafari(), - needPerspectiveFix, - isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent) - }; - } - function getBrowser() { - if (!browser) { - browser = calcBrowser(); - } - return browser; - } - - function Resize(_ref) { - let { - swiper, - on, - emit - } = _ref; - const window = getWindow(); - let observer = null; - let animationFrame = null; - const resizeHandler = () => { - if (!swiper || swiper.destroyed || !swiper.initialized) return; - emit('beforeResize'); - emit('resize'); - }; - const createObserver = () => { - if (!swiper || swiper.destroyed || !swiper.initialized) return; - observer = new ResizeObserver(entries => { - animationFrame = window.requestAnimationFrame(() => { - const { - width, - height - } = swiper; - let newWidth = width; - let newHeight = height; - entries.forEach(_ref2 => { - let { - contentBoxSize, - contentRect, - target - } = _ref2; - if (target && target !== swiper.el) return; - newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize; - newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize; - }); - if (newWidth !== width || newHeight !== height) { - resizeHandler(); - } - }); - }); - observer.observe(swiper.el); - }; - const removeObserver = () => { - if (animationFrame) { - window.cancelAnimationFrame(animationFrame); - } - if (observer && observer.unobserve && swiper.el) { - observer.unobserve(swiper.el); - observer = null; - } - }; - const orientationChangeHandler = () => { - if (!swiper || swiper.destroyed || !swiper.initialized) return; - emit('orientationchange'); - }; - on('init', () => { - if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') { - createObserver(); - return; - } - window.addEventListener('resize', resizeHandler); - window.addEventListener('orientationchange', orientationChangeHandler); - }); - on('destroy', () => { - removeObserver(); - window.removeEventListener('resize', resizeHandler); - window.removeEventListener('orientationchange', orientationChangeHandler); - }); - } - - function Observer(_ref) { - let { - swiper, - extendParams, - on, - emit - } = _ref; - const observers = []; - const window = getWindow(); - const attach = function (target, options) { - if (options === void 0) { - options = {}; - } - const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver; - const observer = new ObserverFunc(mutations => { - // The observerUpdate event should only be triggered - // once despite the number of mutations. Additional - // triggers are redundant and are very costly - if (swiper.__preventObserver__) return; - if (mutations.length === 1) { - emit('observerUpdate', mutations[0]); - return; - } - const observerUpdate = function observerUpdate() { - emit('observerUpdate', mutations[0]); - }; - if (window.requestAnimationFrame) { - window.requestAnimationFrame(observerUpdate); - } else { - window.setTimeout(observerUpdate, 0); - } - }); - observer.observe(target, { - attributes: typeof options.attributes === 'undefined' ? true : options.attributes, - childList: typeof options.childList === 'undefined' ? true : options.childList, - characterData: typeof options.characterData === 'undefined' ? true : options.characterData - }); - observers.push(observer); - }; - const init = () => { - if (!swiper.params.observer) return; - if (swiper.params.observeParents) { - const containerParents = elementParents(swiper.hostEl); - for (let i = 0; i < containerParents.length; i += 1) { - attach(containerParents[i]); - } - } - // Observe container - attach(swiper.hostEl, { - childList: swiper.params.observeSlideChildren - }); - - // Observe wrapper - attach(swiper.wrapperEl, { - attributes: false - }); - }; - const destroy = () => { - observers.forEach(observer => { - observer.disconnect(); - }); - observers.splice(0, observers.length); - }; - extendParams({ - observer: false, - observeParents: false, - observeSlideChildren: false - }); - on('init', init); - on('destroy', destroy); - } - - /* eslint-disable no-underscore-dangle */ - - var eventsEmitter = { - on(events, handler, priority) { - const self = this; - if (!self.eventsListeners || self.destroyed) return self; - if (typeof handler !== 'function') return self; - const method = priority ? 'unshift' : 'push'; - events.split(' ').forEach(event => { - if (!self.eventsListeners[event]) self.eventsListeners[event] = []; - self.eventsListeners[event][method](handler); - }); - return self; - }, - once(events, handler, priority) { - const self = this; - if (!self.eventsListeners || self.destroyed) return self; - if (typeof handler !== 'function') return self; - function onceHandler() { - self.off(events, onceHandler); - if (onceHandler.__emitterProxy) { - delete onceHandler.__emitterProxy; - } - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - handler.apply(self, args); - } - onceHandler.__emitterProxy = handler; - return self.on(events, onceHandler, priority); - }, - onAny(handler, priority) { - const self = this; - if (!self.eventsListeners || self.destroyed) return self; - if (typeof handler !== 'function') return self; - const method = priority ? 'unshift' : 'push'; - if (self.eventsAnyListeners.indexOf(handler) < 0) { - self.eventsAnyListeners[method](handler); - } - return self; - }, - offAny(handler) { - const self = this; - if (!self.eventsListeners || self.destroyed) return self; - if (!self.eventsAnyListeners) return self; - const index = self.eventsAnyListeners.indexOf(handler); - if (index >= 0) { - self.eventsAnyListeners.splice(index, 1); - } - return self; - }, - off(events, handler) { - const self = this; - if (!self.eventsListeners || self.destroyed) return self; - if (!self.eventsListeners) return self; - events.split(' ').forEach(event => { - if (typeof handler === 'undefined') { - self.eventsListeners[event] = []; - } else if (self.eventsListeners[event]) { - self.eventsListeners[event].forEach((eventHandler, index) => { - if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) { - self.eventsListeners[event].splice(index, 1); - } - }); - } - }); - return self; - }, - emit() { - const self = this; - if (!self.eventsListeners || self.destroyed) return self; - if (!self.eventsListeners) return self; - let events; - let data; - let context; - for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - args[_key2] = arguments[_key2]; - } - if (typeof args[0] === 'string' || Array.isArray(args[0])) { - events = args[0]; - data = args.slice(1, args.length); - context = self; - } else { - events = args[0].events; - data = args[0].data; - context = args[0].context || self; - } - data.unshift(context); - const eventsArray = Array.isArray(events) ? events : events.split(' '); - eventsArray.forEach(event => { - if (self.eventsAnyListeners && self.eventsAnyListeners.length) { - self.eventsAnyListeners.forEach(eventHandler => { - eventHandler.apply(context, [event, ...data]); - }); - } - if (self.eventsListeners && self.eventsListeners[event]) { - self.eventsListeners[event].forEach(eventHandler => { - eventHandler.apply(context, data); - }); - } - }); - return self; - } - }; - - function updateSize() { - const swiper = this; - let width; - let height; - const el = swiper.el; - if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) { - width = swiper.params.width; - } else { - width = el.clientWidth; - } - if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) { - height = swiper.params.height; - } else { - height = el.clientHeight; - } - if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) { - return; - } - - // Subtract paddings - width = width - parseInt(elementStyle(el, 'padding-left') || 0, 10) - parseInt(elementStyle(el, 'padding-right') || 0, 10); - height = height - parseInt(elementStyle(el, 'padding-top') || 0, 10) - parseInt(elementStyle(el, 'padding-bottom') || 0, 10); - if (Number.isNaN(width)) width = 0; - if (Number.isNaN(height)) height = 0; - Object.assign(swiper, { - width, - height, - size: swiper.isHorizontal() ? width : height - }); - } - - function updateSlides() { - const swiper = this; - function getDirectionPropertyValue(node, label) { - return parseFloat(node.getPropertyValue(swiper.getDirectionLabel(label)) || 0); - } - const params = swiper.params; - const { - wrapperEl, - slidesEl, - size: swiperSize, - rtlTranslate: rtl, - wrongRTL - } = swiper; - const isVirtual = swiper.virtual && params.virtual.enabled; - const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length; - const slides = elementChildren(slidesEl, `.${swiper.params.slideClass}, swiper-slide`); - const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length; - let snapGrid = []; - const slidesGrid = []; - const slidesSizesGrid = []; - let offsetBefore = params.slidesOffsetBefore; - if (typeof offsetBefore === 'function') { - offsetBefore = params.slidesOffsetBefore.call(swiper); - } - let offsetAfter = params.slidesOffsetAfter; - if (typeof offsetAfter === 'function') { - offsetAfter = params.slidesOffsetAfter.call(swiper); - } - const previousSnapGridLength = swiper.snapGrid.length; - const previousSlidesGridLength = swiper.slidesGrid.length; - let spaceBetween = params.spaceBetween; - let slidePosition = -offsetBefore; - let prevSlideSize = 0; - let index = 0; - if (typeof swiperSize === 'undefined') { - return; - } - if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) { - spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize; - } else if (typeof spaceBetween === 'string') { - spaceBetween = parseFloat(spaceBetween); - } - swiper.virtualSize = -spaceBetween; - - // reset margins - slides.forEach(slideEl => { - if (rtl) { - slideEl.style.marginLeft = ''; - } else { - slideEl.style.marginRight = ''; - } - slideEl.style.marginBottom = ''; - slideEl.style.marginTop = ''; - }); - - // reset cssMode offsets - if (params.centeredSlides && params.cssMode) { - setCSSProperty(wrapperEl, '--swiper-centered-offset-before', ''); - setCSSProperty(wrapperEl, '--swiper-centered-offset-after', ''); - } - const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid; - if (gridEnabled) { - swiper.grid.initSlides(slides); - } else if (swiper.grid) { - swiper.grid.unsetSlides(); - } - - // Calc slides - let slideSize; - const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => { - return typeof params.breakpoints[key].slidesPerView !== 'undefined'; - }).length > 0; - for (let i = 0; i < slidesLength; i += 1) { - slideSize = 0; - let slide; - if (slides[i]) slide = slides[i]; - if (gridEnabled) { - swiper.grid.updateSlide(i, slide, slides); - } - if (slides[i] && elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line - - if (params.slidesPerView === 'auto') { - if (shouldResetSlideSize) { - slides[i].style[swiper.getDirectionLabel('width')] = ``; - } - const slideStyles = getComputedStyle(slide); - const currentTransform = slide.style.transform; - const currentWebKitTransform = slide.style.webkitTransform; - if (currentTransform) { - slide.style.transform = 'none'; - } - if (currentWebKitTransform) { - slide.style.webkitTransform = 'none'; - } - if (params.roundLengths) { - slideSize = swiper.isHorizontal() ? elementOuterSize(slide, 'width', true) : elementOuterSize(slide, 'height', true); - } else { - // eslint-disable-next-line - const width = getDirectionPropertyValue(slideStyles, 'width'); - const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left'); - const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right'); - const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left'); - const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right'); - const boxSizing = slideStyles.getPropertyValue('box-sizing'); - if (boxSizing && boxSizing === 'border-box') { - slideSize = width + marginLeft + marginRight; - } else { - const { - clientWidth, - offsetWidth - } = slide; - slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth); - } - } - if (currentTransform) { - slide.style.transform = currentTransform; - } - if (currentWebKitTransform) { - slide.style.webkitTransform = currentWebKitTransform; - } - if (params.roundLengths) slideSize = Math.floor(slideSize); - } else { - slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView; - if (params.roundLengths) slideSize = Math.floor(slideSize); - if (slides[i]) { - slides[i].style[swiper.getDirectionLabel('width')] = `${slideSize}px`; - } - } - if (slides[i]) { - slides[i].swiperSlideSize = slideSize; - } - slidesSizesGrid.push(slideSize); - if (params.centeredSlides) { - slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween; - if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween; - if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween; - if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0; - if (params.roundLengths) slidePosition = Math.floor(slidePosition); - if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition); - slidesGrid.push(slidePosition); - } else { - if (params.roundLengths) slidePosition = Math.floor(slidePosition); - if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition); - slidesGrid.push(slidePosition); - slidePosition = slidePosition + slideSize + spaceBetween; - } - swiper.virtualSize += slideSize + spaceBetween; - prevSlideSize = slideSize; - index += 1; - } - swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter; - if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) { - wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`; - } - if (params.setWrapperSize) { - wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`; - } - if (gridEnabled) { - swiper.grid.updateWrapperSize(slideSize, snapGrid); - } - - // Remove last grid elements depending on width - if (!params.centeredSlides) { - const newSlidesGrid = []; - for (let i = 0; i < snapGrid.length; i += 1) { - let slidesGridItem = snapGrid[i]; - if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem); - if (snapGrid[i] <= swiper.virtualSize - swiperSize) { - newSlidesGrid.push(slidesGridItem); - } - } - snapGrid = newSlidesGrid; - if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) { - snapGrid.push(swiper.virtualSize - swiperSize); - } - } - if (isVirtual && params.loop) { - const size = slidesSizesGrid[0] + spaceBetween; - if (params.slidesPerGroup > 1) { - const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup); - const groupSize = size * params.slidesPerGroup; - for (let i = 0; i < groups; i += 1) { - snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize); - } - } - for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) { - if (params.slidesPerGroup === 1) { - snapGrid.push(snapGrid[snapGrid.length - 1] + size); - } - slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size); - swiper.virtualSize += size; - } - } - if (snapGrid.length === 0) snapGrid = [0]; - if (spaceBetween !== 0) { - const key = swiper.isHorizontal() && rtl ? 'marginLeft' : swiper.getDirectionLabel('marginRight'); - slides.filter((_, slideIndex) => { - if (!params.cssMode || params.loop) return true; - if (slideIndex === slides.length - 1) { - return false; - } - return true; - }).forEach(slideEl => { - slideEl.style[key] = `${spaceBetween}px`; - }); - } - if (params.centeredSlides && params.centeredSlidesBounds) { - let allSlidesSize = 0; - slidesSizesGrid.forEach(slideSizeValue => { - allSlidesSize += slideSizeValue + (spaceBetween || 0); - }); - allSlidesSize -= spaceBetween; - const maxSnap = allSlidesSize - swiperSize; - snapGrid = snapGrid.map(snap => { - if (snap <= 0) return -offsetBefore; - if (snap > maxSnap) return maxSnap + offsetAfter; - return snap; - }); - } - if (params.centerInsufficientSlides) { - let allSlidesSize = 0; - slidesSizesGrid.forEach(slideSizeValue => { - allSlidesSize += slideSizeValue + (spaceBetween || 0); - }); - allSlidesSize -= spaceBetween; - if (allSlidesSize < swiperSize) { - const allSlidesOffset = (swiperSize - allSlidesSize) / 2; - snapGrid.forEach((snap, snapIndex) => { - snapGrid[snapIndex] = snap - allSlidesOffset; - }); - slidesGrid.forEach((snap, snapIndex) => { - slidesGrid[snapIndex] = snap + allSlidesOffset; - }); - } - } - Object.assign(swiper, { - slides, - snapGrid, - slidesGrid, - slidesSizesGrid - }); - if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) { - setCSSProperty(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`); - setCSSProperty(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`); - const addToSnapGrid = -swiper.snapGrid[0]; - const addToSlidesGrid = -swiper.slidesGrid[0]; - swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid); - swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid); - } - if (slidesLength !== previousSlidesLength) { - swiper.emit('slidesLengthChange'); - } - if (snapGrid.length !== previousSnapGridLength) { - if (swiper.params.watchOverflow) swiper.checkOverflow(); - swiper.emit('snapGridLengthChange'); - } - if (slidesGrid.length !== previousSlidesGridLength) { - swiper.emit('slidesGridLengthChange'); - } - if (params.watchSlidesProgress) { - swiper.updateSlidesOffset(); - } - swiper.emit('slidesUpdated'); - if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) { - const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`; - const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass); - if (slidesLength <= params.maxBackfaceHiddenSlides) { - if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass); - } else if (hasClassBackfaceClassAdded) { - swiper.el.classList.remove(backFaceHiddenClass); - } - } - } - - function updateAutoHeight(speed) { - const swiper = this; - const activeSlides = []; - const isVirtual = swiper.virtual && swiper.params.virtual.enabled; - let newHeight = 0; - let i; - if (typeof speed === 'number') { - swiper.setTransition(speed); - } else if (speed === true) { - swiper.setTransition(swiper.params.speed); - } - const getSlideByIndex = index => { - if (isVirtual) { - return swiper.slides[swiper.getSlideIndexByData(index)]; - } - return swiper.slides[index]; - }; - // Find slides currently in view - if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) { - if (swiper.params.centeredSlides) { - (swiper.visibleSlides || []).forEach(slide => { - activeSlides.push(slide); - }); - } else { - for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) { - const index = swiper.activeIndex + i; - if (index > swiper.slides.length && !isVirtual) break; - activeSlides.push(getSlideByIndex(index)); - } - } - } else { - activeSlides.push(getSlideByIndex(swiper.activeIndex)); - } - - // Find new height from highest slide in view - for (i = 0; i < activeSlides.length; i += 1) { - if (typeof activeSlides[i] !== 'undefined') { - const height = activeSlides[i].offsetHeight; - newHeight = height > newHeight ? height : newHeight; - } - } - - // Update Height - if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`; - } - - function updateSlidesOffset() { - const swiper = this; - const slides = swiper.slides; - // eslint-disable-next-line - const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0; - for (let i = 0; i < slides.length; i += 1) { - slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment(); - } - } - - function updateSlidesProgress(translate) { - if (translate === void 0) { - translate = this && this.translate || 0; - } - const swiper = this; - const params = swiper.params; - const { - slides, - rtlTranslate: rtl, - snapGrid - } = swiper; - if (slides.length === 0) return; - if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset(); - let offsetCenter = -translate; - if (rtl) offsetCenter = translate; - - // Visible Slides - slides.forEach(slideEl => { - slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass); - }); - swiper.visibleSlidesIndexes = []; - swiper.visibleSlides = []; - let spaceBetween = params.spaceBetween; - if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) { - spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size; - } else if (typeof spaceBetween === 'string') { - spaceBetween = parseFloat(spaceBetween); - } - for (let i = 0; i < slides.length; i += 1) { - const slide = slides[i]; - let slideOffset = slide.swiperSlideOffset; - if (params.cssMode && params.centeredSlides) { - slideOffset -= slides[0].swiperSlideOffset; - } - const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween); - const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween); - const slideBefore = -(offsetCenter - slideOffset); - const slideAfter = slideBefore + swiper.slidesSizesGrid[i]; - const isFullyVisible = slideBefore >= 0 && slideBefore <= swiper.size - swiper.slidesSizesGrid[i]; - const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size; - if (isVisible) { - swiper.visibleSlides.push(slide); - swiper.visibleSlidesIndexes.push(i); - slides[i].classList.add(params.slideVisibleClass); - } - if (isFullyVisible) { - slides[i].classList.add(params.slideFullyVisibleClass); - } - slide.progress = rtl ? -slideProgress : slideProgress; - slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress; - } - } - - function updateProgress(translate) { - const swiper = this; - if (typeof translate === 'undefined') { - const multiplier = swiper.rtlTranslate ? -1 : 1; - // eslint-disable-next-line - translate = swiper && swiper.translate && swiper.translate * multiplier || 0; - } - const params = swiper.params; - const translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); - let { - progress, - isBeginning, - isEnd, - progressLoop - } = swiper; - const wasBeginning = isBeginning; - const wasEnd = isEnd; - if (translatesDiff === 0) { - progress = 0; - isBeginning = true; - isEnd = true; - } else { - progress = (translate - swiper.minTranslate()) / translatesDiff; - const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1; - const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1; - isBeginning = isBeginningRounded || progress <= 0; - isEnd = isEndRounded || progress >= 1; - if (isBeginningRounded) progress = 0; - if (isEndRounded) progress = 1; - } - if (params.loop) { - const firstSlideIndex = swiper.getSlideIndexByData(0); - const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1); - const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex]; - const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex]; - const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1]; - const translateAbs = Math.abs(translate); - if (translateAbs >= firstSlideTranslate) { - progressLoop = (translateAbs - firstSlideTranslate) / translateMax; - } else { - progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax; - } - if (progressLoop > 1) progressLoop -= 1; - } - Object.assign(swiper, { - progress, - progressLoop, - isBeginning, - isEnd - }); - if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate); - if (isBeginning && !wasBeginning) { - swiper.emit('reachBeginning toEdge'); - } - if (isEnd && !wasEnd) { - swiper.emit('reachEnd toEdge'); - } - if (wasBeginning && !isBeginning || wasEnd && !isEnd) { - swiper.emit('fromEdge'); - } - swiper.emit('progress', progress); - } - - function updateSlidesClasses() { - const swiper = this; - const { - slides, - params, - slidesEl, - activeIndex - } = swiper; - const isVirtual = swiper.virtual && params.virtual.enabled; - const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1; - const getFilteredSlide = selector => { - return elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0]; - }; - slides.forEach(slideEl => { - slideEl.classList.remove(params.slideActiveClass, params.slideNextClass, params.slidePrevClass); - }); - let activeSlide; - let prevSlide; - let nextSlide; - if (isVirtual) { - if (params.loop) { - let slideIndex = activeIndex - swiper.virtual.slidesBefore; - if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex; - if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length; - activeSlide = getFilteredSlide(`[data-swiper-slide-index="${slideIndex}"]`); - } else { - activeSlide = getFilteredSlide(`[data-swiper-slide-index="${activeIndex}"]`); - } - } else { - if (gridEnabled) { - activeSlide = slides.filter(slideEl => slideEl.column === activeIndex)[0]; - nextSlide = slides.filter(slideEl => slideEl.column === activeIndex + 1)[0]; - prevSlide = slides.filter(slideEl => slideEl.column === activeIndex - 1)[0]; - } else { - activeSlide = slides[activeIndex]; - } - } - if (activeSlide) { - // Active classes - activeSlide.classList.add(params.slideActiveClass); - if (gridEnabled) { - if (nextSlide) { - nextSlide.classList.add(params.slideNextClass); - } - if (prevSlide) { - prevSlide.classList.add(params.slidePrevClass); - } - } else { - // Next Slide - nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0]; - if (params.loop && !nextSlide) { - nextSlide = slides[0]; - } - if (nextSlide) { - nextSlide.classList.add(params.slideNextClass); - } - - // Prev Slide - prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0]; - if (params.loop && !prevSlide === 0) { - prevSlide = slides[slides.length - 1]; - } - if (prevSlide) { - prevSlide.classList.add(params.slidePrevClass); - } - } - } - swiper.emitSlidesClasses(); - } - - const processLazyPreloader = (swiper, imageEl) => { - if (!swiper || swiper.destroyed || !swiper.params) return; - const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`; - const slideEl = imageEl.closest(slideSelector()); - if (slideEl) { - let lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`); - if (!lazyEl && swiper.isElement) { - if (slideEl.shadowRoot) { - lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`); - } else { - // init later - requestAnimationFrame(() => { - if (slideEl.shadowRoot) { - lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`); - if (lazyEl) lazyEl.remove(); - } - }); - } - } - if (lazyEl) lazyEl.remove(); - } - }; - const unlazy = (swiper, index) => { - if (!swiper.slides[index]) return; - const imageEl = swiper.slides[index].querySelector('[loading="lazy"]'); - if (imageEl) imageEl.removeAttribute('loading'); - }; - const preload = swiper => { - if (!swiper || swiper.destroyed || !swiper.params) return; - let amount = swiper.params.lazyPreloadPrevNext; - const len = swiper.slides.length; - if (!len || !amount || amount < 0) return; - amount = Math.min(amount, len); - const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView); - const activeIndex = swiper.activeIndex; - if (swiper.params.grid && swiper.params.grid.rows > 1) { - const activeColumn = activeIndex; - const preloadColumns = [activeColumn - amount]; - preloadColumns.push(...Array.from({ - length: amount - }).map((_, i) => { - return activeColumn + slidesPerView + i; - })); - swiper.slides.forEach((slideEl, i) => { - if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i); - }); - return; - } - const slideIndexLastInView = activeIndex + slidesPerView - 1; - if (swiper.params.rewind || swiper.params.loop) { - for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) { - const realIndex = (i % len + len) % len; - if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex); - } - } else { - for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) { - if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) { - unlazy(swiper, i); - } - } - } - }; - - function getActiveIndexByTranslate(swiper) { - const { - slidesGrid, - params - } = swiper; - const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate; - let activeIndex; - for (let i = 0; i < slidesGrid.length; i += 1) { - if (typeof slidesGrid[i + 1] !== 'undefined') { - if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) { - activeIndex = i; - } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) { - activeIndex = i + 1; - } - } else if (translate >= slidesGrid[i]) { - activeIndex = i; - } - } - // Normalize slideIndex - if (params.normalizeSlideIndex) { - if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0; - } - return activeIndex; - } - function updateActiveIndex(newActiveIndex) { - const swiper = this; - const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate; - const { - snapGrid, - params, - activeIndex: previousIndex, - realIndex: previousRealIndex, - snapIndex: previousSnapIndex - } = swiper; - let activeIndex = newActiveIndex; - let snapIndex; - const getVirtualRealIndex = aIndex => { - let realIndex = aIndex - swiper.virtual.slidesBefore; - if (realIndex < 0) { - realIndex = swiper.virtual.slides.length + realIndex; - } - if (realIndex >= swiper.virtual.slides.length) { - realIndex -= swiper.virtual.slides.length; - } - return realIndex; - }; - if (typeof activeIndex === 'undefined') { - activeIndex = getActiveIndexByTranslate(swiper); - } - if (snapGrid.indexOf(translate) >= 0) { - snapIndex = snapGrid.indexOf(translate); - } else { - const skip = Math.min(params.slidesPerGroupSkip, activeIndex); - snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup); - } - if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1; - if (activeIndex === previousIndex && !swiper.params.loop) { - if (snapIndex !== previousSnapIndex) { - swiper.snapIndex = snapIndex; - swiper.emit('snapIndexChange'); - } - return; - } - if (activeIndex === previousIndex && swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) { - swiper.realIndex = getVirtualRealIndex(activeIndex); - return; - } - const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1; - - // Get real index - let realIndex; - if (swiper.virtual && params.virtual.enabled && params.loop) { - realIndex = getVirtualRealIndex(activeIndex); - } else if (gridEnabled) { - const firstSlideInColumn = swiper.slides.filter(slideEl => slideEl.column === activeIndex)[0]; - let activeSlideIndex = parseInt(firstSlideInColumn.getAttribute('data-swiper-slide-index'), 10); - if (Number.isNaN(activeSlideIndex)) { - activeSlideIndex = Math.max(swiper.slides.indexOf(firstSlideInColumn), 0); - } - realIndex = Math.floor(activeSlideIndex / params.grid.rows); - } else if (swiper.slides[activeIndex]) { - const slideIndex = swiper.slides[activeIndex].getAttribute('data-swiper-slide-index'); - if (slideIndex) { - realIndex = parseInt(slideIndex, 10); - } else { - realIndex = activeIndex; - } - } else { - realIndex = activeIndex; - } - Object.assign(swiper, { - previousSnapIndex, - snapIndex, - previousRealIndex, - realIndex, - previousIndex, - activeIndex - }); - if (swiper.initialized) { - preload(swiper); - } - swiper.emit('activeIndexChange'); - swiper.emit('snapIndexChange'); - if (swiper.initialized || swiper.params.runCallbacksOnInit) { - if (previousRealIndex !== realIndex) { - swiper.emit('realIndexChange'); - } - swiper.emit('slideChange'); - } - } - - function updateClickedSlide(el, path) { - const swiper = this; - const params = swiper.params; - let slide = el.closest(`.${params.slideClass}, swiper-slide`); - if (!slide && swiper.isElement && path && path.length > 1 && path.includes(el)) { - [...path.slice(path.indexOf(el) + 1, path.length)].forEach(pathEl => { - if (!slide && pathEl.matches && pathEl.matches(`.${params.slideClass}, swiper-slide`)) { - slide = pathEl; - } - }); - } - let slideFound = false; - let slideIndex; - if (slide) { - for (let i = 0; i < swiper.slides.length; i += 1) { - if (swiper.slides[i] === slide) { - slideFound = true; - slideIndex = i; - break; - } - } - } - if (slide && slideFound) { - swiper.clickedSlide = slide; - if (swiper.virtual && swiper.params.virtual.enabled) { - swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10); - } else { - swiper.clickedIndex = slideIndex; - } - } else { - swiper.clickedSlide = undefined; - swiper.clickedIndex = undefined; - return; - } - if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) { - swiper.slideToClickedSlide(); - } - } - - var update = { - updateSize, - updateSlides, - updateAutoHeight, - updateSlidesOffset, - updateSlidesProgress, - updateProgress, - updateSlidesClasses, - updateActiveIndex, - updateClickedSlide - }; - - function getSwiperTranslate(axis) { - if (axis === void 0) { - axis = this.isHorizontal() ? 'x' : 'y'; - } - const swiper = this; - const { - params, - rtlTranslate: rtl, - translate, - wrapperEl - } = swiper; - if (params.virtualTranslate) { - return rtl ? -translate : translate; - } - if (params.cssMode) { - return translate; - } - let currentTranslate = getTranslate(wrapperEl, axis); - currentTranslate += swiper.cssOverflowAdjustment(); - if (rtl) currentTranslate = -currentTranslate; - return currentTranslate || 0; - } - - function setTranslate(translate, byController) { - const swiper = this; - const { - rtlTranslate: rtl, - params, - wrapperEl, - progress - } = swiper; - let x = 0; - let y = 0; - const z = 0; - if (swiper.isHorizontal()) { - x = rtl ? -translate : translate; - } else { - y = translate; - } - if (params.roundLengths) { - x = Math.floor(x); - y = Math.floor(y); - } - swiper.previousTranslate = swiper.translate; - swiper.translate = swiper.isHorizontal() ? x : y; - if (params.cssMode) { - wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y; - } else if (!params.virtualTranslate) { - if (swiper.isHorizontal()) { - x -= swiper.cssOverflowAdjustment(); - } else { - y -= swiper.cssOverflowAdjustment(); - } - wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`; - } - - // Check if we need to update progress - let newProgress; - const translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); - if (translatesDiff === 0) { - newProgress = 0; - } else { - newProgress = (translate - swiper.minTranslate()) / translatesDiff; - } - if (newProgress !== progress) { - swiper.updateProgress(translate); - } - swiper.emit('setTranslate', swiper.translate, byController); - } - - function minTranslate() { - return -this.snapGrid[0]; - } - - function maxTranslate() { - return -this.snapGrid[this.snapGrid.length - 1]; - } - - function translateTo(translate, speed, runCallbacks, translateBounds, internal) { - if (translate === void 0) { - translate = 0; - } - if (speed === void 0) { - speed = this.params.speed; - } - if (runCallbacks === void 0) { - runCallbacks = true; - } - if (translateBounds === void 0) { - translateBounds = true; - } - const swiper = this; - const { - params, - wrapperEl - } = swiper; - if (swiper.animating && params.preventInteractionOnTransition) { - return false; - } - const minTranslate = swiper.minTranslate(); - const maxTranslate = swiper.maxTranslate(); - let newTranslate; - if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; - - // Update progress - swiper.updateProgress(newTranslate); - if (params.cssMode) { - const isH = swiper.isHorizontal(); - if (speed === 0) { - wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate; - } else { - if (!swiper.support.smoothScroll) { - animateCSSModeScroll({ - swiper, - targetPosition: -newTranslate, - side: isH ? 'left' : 'top' - }); - return true; - } - wrapperEl.scrollTo({ - [isH ? 'left' : 'top']: -newTranslate, - behavior: 'smooth' - }); - } - return true; - } - if (speed === 0) { - swiper.setTransition(0); - swiper.setTranslate(newTranslate); - if (runCallbacks) { - swiper.emit('beforeTransitionStart', speed, internal); - swiper.emit('transitionEnd'); - } - } else { - swiper.setTransition(speed); - swiper.setTranslate(newTranslate); - if (runCallbacks) { - swiper.emit('beforeTransitionStart', speed, internal); - swiper.emit('transitionStart'); - } - if (!swiper.animating) { - swiper.animating = true; - if (!swiper.onTranslateToWrapperTransitionEnd) { - swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) { - if (!swiper || swiper.destroyed) return; - if (e.target !== this) return; - swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd); - swiper.onTranslateToWrapperTransitionEnd = null; - delete swiper.onTranslateToWrapperTransitionEnd; - if (runCallbacks) { - swiper.emit('transitionEnd'); - } - }; - } - swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd); - } - } - return true; - } - - var translate = { - getTranslate: getSwiperTranslate, - setTranslate, - minTranslate, - maxTranslate, - translateTo - }; - - function setTransition(duration, byController) { - const swiper = this; - if (!swiper.params.cssMode) { - swiper.wrapperEl.style.transitionDuration = `${duration}ms`; - swiper.wrapperEl.style.transitionDelay = duration === 0 ? `0ms` : ''; - } - swiper.emit('setTransition', duration, byController); - } - - function transitionEmit(_ref) { - let { - swiper, - runCallbacks, - direction, - step - } = _ref; - const { - activeIndex, - previousIndex - } = swiper; - let dir = direction; - if (!dir) { - if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset'; - } - swiper.emit(`transition${step}`); - if (runCallbacks && activeIndex !== previousIndex) { - if (dir === 'reset') { - swiper.emit(`slideResetTransition${step}`); - return; - } - swiper.emit(`slideChangeTransition${step}`); - if (dir === 'next') { - swiper.emit(`slideNextTransition${step}`); - } else { - swiper.emit(`slidePrevTransition${step}`); - } - } - } - - function transitionStart(runCallbacks, direction) { - if (runCallbacks === void 0) { - runCallbacks = true; - } - const swiper = this; - const { - params - } = swiper; - if (params.cssMode) return; - if (params.autoHeight) { - swiper.updateAutoHeight(); - } - transitionEmit({ - swiper, - runCallbacks, - direction, - step: 'Start' - }); - } - - function transitionEnd(runCallbacks, direction) { - if (runCallbacks === void 0) { - runCallbacks = true; - } - const swiper = this; - const { - params - } = swiper; - swiper.animating = false; - if (params.cssMode) return; - swiper.setTransition(0); - transitionEmit({ - swiper, - runCallbacks, - direction, - step: 'End' - }); - } - - var transition = { - setTransition, - transitionStart, - transitionEnd - }; - - function slideTo(index, speed, runCallbacks, internal, initial) { - if (index === void 0) { - index = 0; - } - if (speed === void 0) { - speed = this.params.speed; - } - if (runCallbacks === void 0) { - runCallbacks = true; - } - if (typeof index === 'string') { - index = parseInt(index, 10); - } - const swiper = this; - let slideIndex = index; - if (slideIndex < 0) slideIndex = 0; - const { - params, - snapGrid, - slidesGrid, - previousIndex, - activeIndex, - rtlTranslate: rtl, - wrapperEl, - enabled - } = swiper; - if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) { - return false; - } - const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex); - let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup); - if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1; - const translate = -snapGrid[snapIndex]; - // Normalize slideIndex - if (params.normalizeSlideIndex) { - for (let i = 0; i < slidesGrid.length; i += 1) { - const normalizedTranslate = -Math.floor(translate * 100); - const normalizedGrid = Math.floor(slidesGrid[i] * 100); - const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100); - if (typeof slidesGrid[i + 1] !== 'undefined') { - if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) { - slideIndex = i; - } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) { - slideIndex = i + 1; - } - } else if (normalizedTranslate >= normalizedGrid) { - slideIndex = i; - } - } - } - // Directions locks - if (swiper.initialized && slideIndex !== activeIndex) { - if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) { - return false; - } - if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) { - if ((activeIndex || 0) !== slideIndex) { - return false; - } - } - } - if (slideIndex !== (previousIndex || 0) && runCallbacks) { - swiper.emit('beforeSlideChangeStart'); - } - - // Update progress - swiper.updateProgress(translate); - let direction; - if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; - - // Update Index - if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) { - swiper.updateActiveIndex(slideIndex); - // Update Height - if (params.autoHeight) { - swiper.updateAutoHeight(); - } - swiper.updateSlidesClasses(); - if (params.effect !== 'slide') { - swiper.setTranslate(translate); - } - if (direction !== 'reset') { - swiper.transitionStart(runCallbacks, direction); - swiper.transitionEnd(runCallbacks, direction); - } - return false; - } - if (params.cssMode) { - const isH = swiper.isHorizontal(); - const t = rtl ? translate : -translate; - if (speed === 0) { - const isVirtual = swiper.virtual && swiper.params.virtual.enabled; - if (isVirtual) { - swiper.wrapperEl.style.scrollSnapType = 'none'; - swiper._immediateVirtual = true; - } - if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) { - swiper._cssModeVirtualInitialSet = true; - requestAnimationFrame(() => { - wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t; - }); - } else { - wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t; - } - if (isVirtual) { - requestAnimationFrame(() => { - swiper.wrapperEl.style.scrollSnapType = ''; - swiper._immediateVirtual = false; - }); - } - } else { - if (!swiper.support.smoothScroll) { - animateCSSModeScroll({ - swiper, - targetPosition: t, - side: isH ? 'left' : 'top' - }); - return true; - } - wrapperEl.scrollTo({ - [isH ? 'left' : 'top']: t, - behavior: 'smooth' - }); - } - return true; - } - swiper.setTransition(speed); - swiper.setTranslate(translate); - swiper.updateActiveIndex(slideIndex); - swiper.updateSlidesClasses(); - swiper.emit('beforeTransitionStart', speed, internal); - swiper.transitionStart(runCallbacks, direction); - if (speed === 0) { - swiper.transitionEnd(runCallbacks, direction); - } else if (!swiper.animating) { - swiper.animating = true; - if (!swiper.onSlideToWrapperTransitionEnd) { - swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) { - if (!swiper || swiper.destroyed) return; - if (e.target !== this) return; - swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd); - swiper.onSlideToWrapperTransitionEnd = null; - delete swiper.onSlideToWrapperTransitionEnd; - swiper.transitionEnd(runCallbacks, direction); - }; - } - swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd); - } - return true; - } - - function slideToLoop(index, speed, runCallbacks, internal) { - if (index === void 0) { - index = 0; - } - if (speed === void 0) { - speed = this.params.speed; - } - if (runCallbacks === void 0) { - runCallbacks = true; - } - if (typeof index === 'string') { - const indexAsNumber = parseInt(index, 10); - index = indexAsNumber; - } - const swiper = this; - const gridEnabled = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1; - let newIndex = index; - if (swiper.params.loop) { - if (swiper.virtual && swiper.params.virtual.enabled) { - // eslint-disable-next-line - newIndex = newIndex + swiper.virtual.slidesBefore; - } else { - let targetSlideIndex; - if (gridEnabled) { - const slideIndex = newIndex * swiper.params.grid.rows; - targetSlideIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column; - } else { - targetSlideIndex = swiper.getSlideIndexByData(newIndex); - } - const cols = gridEnabled ? Math.ceil(swiper.slides.length / swiper.params.grid.rows) : swiper.slides.length; - const { - centeredSlides - } = swiper.params; - let slidesPerView = swiper.params.slidesPerView; - if (slidesPerView === 'auto') { - slidesPerView = swiper.slidesPerViewDynamic(); - } else { - slidesPerView = Math.ceil(parseFloat(swiper.params.slidesPerView, 10)); - if (centeredSlides && slidesPerView % 2 === 0) { - slidesPerView = slidesPerView + 1; - } - } - let needLoopFix = cols - targetSlideIndex < slidesPerView; - if (centeredSlides) { - needLoopFix = needLoopFix || targetSlideIndex < Math.ceil(slidesPerView / 2); - } - if (needLoopFix) { - const direction = centeredSlides ? targetSlideIndex < swiper.activeIndex ? 'prev' : 'next' : targetSlideIndex - swiper.activeIndex - 1 < swiper.params.slidesPerView ? 'next' : 'prev'; - swiper.loopFix({ - direction, - slideTo: true, - activeSlideIndex: direction === 'next' ? targetSlideIndex + 1 : targetSlideIndex - cols + 1, - slideRealIndex: direction === 'next' ? swiper.realIndex : undefined - }); - } - if (gridEnabled) { - const slideIndex = newIndex * swiper.params.grid.rows; - newIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column; - } else { - newIndex = swiper.getSlideIndexByData(newIndex); - } - } - } - requestAnimationFrame(() => { - swiper.slideTo(newIndex, speed, runCallbacks, internal); - }); - return swiper; - } - - /* eslint no-unused-vars: "off" */ - function slideNext(speed, runCallbacks, internal) { - if (speed === void 0) { - speed = this.params.speed; - } - if (runCallbacks === void 0) { - runCallbacks = true; - } - const swiper = this; - const { - enabled, - params, - animating - } = swiper; - if (!enabled) return swiper; - let perGroup = params.slidesPerGroup; - if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) { - perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1); - } - const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup; - const isVirtual = swiper.virtual && params.virtual.enabled; - if (params.loop) { - if (animating && !isVirtual && params.loopPreventsSliding) return false; - swiper.loopFix({ - direction: 'next' - }); - // eslint-disable-next-line - swiper._clientLeft = swiper.wrapperEl.clientLeft; - if (swiper.activeIndex === swiper.slides.length - 1 && params.cssMode) { - requestAnimationFrame(() => { - swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal); - }); - return true; - } - } - if (params.rewind && swiper.isEnd) { - return swiper.slideTo(0, speed, runCallbacks, internal); - } - return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal); - } - - /* eslint no-unused-vars: "off" */ - function slidePrev(speed, runCallbacks, internal) { - if (speed === void 0) { - speed = this.params.speed; - } - if (runCallbacks === void 0) { - runCallbacks = true; - } - const swiper = this; - const { - params, - snapGrid, - slidesGrid, - rtlTranslate, - enabled, - animating - } = swiper; - if (!enabled) return swiper; - const isVirtual = swiper.virtual && params.virtual.enabled; - if (params.loop) { - if (animating && !isVirtual && params.loopPreventsSliding) return false; - swiper.loopFix({ - direction: 'prev' - }); - // eslint-disable-next-line - swiper._clientLeft = swiper.wrapperEl.clientLeft; - } - const translate = rtlTranslate ? swiper.translate : -swiper.translate; - function normalize(val) { - if (val < 0) return -Math.floor(Math.abs(val)); - return Math.floor(val); - } - const normalizedTranslate = normalize(translate); - const normalizedSnapGrid = snapGrid.map(val => normalize(val)); - let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1]; - if (typeof prevSnap === 'undefined' && params.cssMode) { - let prevSnapIndex; - snapGrid.forEach((snap, snapIndex) => { - if (normalizedTranslate >= snap) { - // prevSnap = snap; - prevSnapIndex = snapIndex; - } - }); - if (typeof prevSnapIndex !== 'undefined') { - prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex]; - } - } - let prevIndex = 0; - if (typeof prevSnap !== 'undefined') { - prevIndex = slidesGrid.indexOf(prevSnap); - if (prevIndex < 0) prevIndex = swiper.activeIndex - 1; - if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) { - prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1; - prevIndex = Math.max(prevIndex, 0); - } - } - if (params.rewind && swiper.isBeginning) { - const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1; - return swiper.slideTo(lastIndex, speed, runCallbacks, internal); - } else if (params.loop && swiper.activeIndex === 0 && params.cssMode) { - requestAnimationFrame(() => { - swiper.slideTo(prevIndex, speed, runCallbacks, internal); - }); - return true; - } - return swiper.slideTo(prevIndex, speed, runCallbacks, internal); - } - - /* eslint no-unused-vars: "off" */ - function slideReset(speed, runCallbacks, internal) { - if (speed === void 0) { - speed = this.params.speed; - } - if (runCallbacks === void 0) { - runCallbacks = true; - } - const swiper = this; - return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal); - } - - /* eslint no-unused-vars: "off" */ - function slideToClosest(speed, runCallbacks, internal, threshold) { - if (speed === void 0) { - speed = this.params.speed; - } - if (runCallbacks === void 0) { - runCallbacks = true; - } - if (threshold === void 0) { - threshold = 0.5; - } - const swiper = this; - let index = swiper.activeIndex; - const skip = Math.min(swiper.params.slidesPerGroupSkip, index); - const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup); - const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate; - if (translate >= swiper.snapGrid[snapIndex]) { - // The current translate is on or after the current snap index, so the choice - // is between the current index and the one after it. - const currentSnap = swiper.snapGrid[snapIndex]; - const nextSnap = swiper.snapGrid[snapIndex + 1]; - if (translate - currentSnap > (nextSnap - currentSnap) * threshold) { - index += swiper.params.slidesPerGroup; - } - } else { - // The current translate is before the current snap index, so the choice - // is between the current index and the one before it. - const prevSnap = swiper.snapGrid[snapIndex - 1]; - const currentSnap = swiper.snapGrid[snapIndex]; - if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) { - index -= swiper.params.slidesPerGroup; - } - } - index = Math.max(index, 0); - index = Math.min(index, swiper.slidesGrid.length - 1); - return swiper.slideTo(index, speed, runCallbacks, internal); - } - - function slideToClickedSlide() { - const swiper = this; - const { - params, - slidesEl - } = swiper; - const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView; - let slideToIndex = swiper.clickedIndex; - let realIndex; - const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`; - if (params.loop) { - if (swiper.animating) return; - realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10); - if (params.centeredSlides) { - if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) { - swiper.loopFix(); - slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index="${realIndex}"]`)[0]); - nextTick(() => { - swiper.slideTo(slideToIndex); - }); - } else { - swiper.slideTo(slideToIndex); - } - } else if (slideToIndex > swiper.slides.length - slidesPerView) { - swiper.loopFix(); - slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index="${realIndex}"]`)[0]); - nextTick(() => { - swiper.slideTo(slideToIndex); - }); - } else { - swiper.slideTo(slideToIndex); - } - } else { - swiper.slideTo(slideToIndex); - } - } - - var slide = { - slideTo, - slideToLoop, - slideNext, - slidePrev, - slideReset, - slideToClosest, - slideToClickedSlide - }; - - function loopCreate(slideRealIndex) { - const swiper = this; - const { - params, - slidesEl - } = swiper; - if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return; - const initSlides = () => { - const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`); - slides.forEach((el, index) => { - el.setAttribute('data-swiper-slide-index', index); - }); - }; - const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1; - const slidesPerGroup = params.slidesPerGroup * (gridEnabled ? params.grid.rows : 1); - const shouldFillGroup = swiper.slides.length % slidesPerGroup !== 0; - const shouldFillGrid = gridEnabled && swiper.slides.length % params.grid.rows !== 0; - const addBlankSlides = amountOfSlides => { - for (let i = 0; i < amountOfSlides; i += 1) { - const slideEl = swiper.isElement ? createElement('swiper-slide', [params.slideBlankClass]) : createElement('div', [params.slideClass, params.slideBlankClass]); - swiper.slidesEl.append(slideEl); - } - }; - if (shouldFillGroup) { - if (params.loopAddBlankSlides) { - const slidesToAdd = slidesPerGroup - swiper.slides.length % slidesPerGroup; - addBlankSlides(slidesToAdd); - swiper.recalcSlides(); - swiper.updateSlides(); - } else { - showWarning('Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)'); - } - initSlides(); - } else if (shouldFillGrid) { - if (params.loopAddBlankSlides) { - const slidesToAdd = params.grid.rows - swiper.slides.length % params.grid.rows; - addBlankSlides(slidesToAdd); - swiper.recalcSlides(); - swiper.updateSlides(); - } else { - showWarning('Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)'); - } - initSlides(); - } else { - initSlides(); - } - swiper.loopFix({ - slideRealIndex, - direction: params.centeredSlides ? undefined : 'next' - }); - } - - function loopFix(_temp) { - let { - slideRealIndex, - slideTo = true, - direction, - setTranslate, - activeSlideIndex, - byController, - byMousewheel - } = _temp === void 0 ? {} : _temp; - const swiper = this; - if (!swiper.params.loop) return; - swiper.emit('beforeLoopFix'); - const { - slides, - allowSlidePrev, - allowSlideNext, - slidesEl, - params - } = swiper; - const { - centeredSlides - } = params; - swiper.allowSlidePrev = true; - swiper.allowSlideNext = true; - if (swiper.virtual && params.virtual.enabled) { - if (slideTo) { - if (!params.centeredSlides && swiper.snapIndex === 0) { - swiper.slideTo(swiper.virtual.slides.length, 0, false, true); - } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) { - swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true); - } else if (swiper.snapIndex === swiper.snapGrid.length - 1) { - swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true); - } - } - swiper.allowSlidePrev = allowSlidePrev; - swiper.allowSlideNext = allowSlideNext; - swiper.emit('loopFix'); - return; - } - let slidesPerView = params.slidesPerView; - if (slidesPerView === 'auto') { - slidesPerView = swiper.slidesPerViewDynamic(); - } else { - slidesPerView = Math.ceil(parseFloat(params.slidesPerView, 10)); - if (centeredSlides && slidesPerView % 2 === 0) { - slidesPerView = slidesPerView + 1; - } - } - const slidesPerGroup = params.slidesPerGroupAuto ? slidesPerView : params.slidesPerGroup; - let loopedSlides = slidesPerGroup; - if (loopedSlides % slidesPerGroup !== 0) { - loopedSlides += slidesPerGroup - loopedSlides % slidesPerGroup; - } - loopedSlides += params.loopAdditionalSlides; - swiper.loopedSlides = loopedSlides; - const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1; - if (slides.length < slidesPerView + loopedSlides) { - showWarning('Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled and not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters'); - } else if (gridEnabled && params.grid.fill === 'row') { - showWarning('Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`'); - } - const prependSlidesIndexes = []; - const appendSlidesIndexes = []; - let activeIndex = swiper.activeIndex; - if (typeof activeSlideIndex === 'undefined') { - activeSlideIndex = swiper.getSlideIndex(slides.filter(el => el.classList.contains(params.slideActiveClass))[0]); - } else { - activeIndex = activeSlideIndex; - } - const isNext = direction === 'next' || !direction; - const isPrev = direction === 'prev' || !direction; - let slidesPrepended = 0; - let slidesAppended = 0; - const cols = gridEnabled ? Math.ceil(slides.length / params.grid.rows) : slides.length; - const activeColIndex = gridEnabled ? slides[activeSlideIndex].column : activeSlideIndex; - const activeColIndexWithShift = activeColIndex + (centeredSlides && typeof setTranslate === 'undefined' ? -slidesPerView / 2 + 0.5 : 0); - // prepend last slides before start - if (activeColIndexWithShift < loopedSlides) { - slidesPrepended = Math.max(loopedSlides - activeColIndexWithShift, slidesPerGroup); - for (let i = 0; i < loopedSlides - activeColIndexWithShift; i += 1) { - const index = i - Math.floor(i / cols) * cols; - if (gridEnabled) { - const colIndexToPrepend = cols - index - 1; - for (let i = slides.length - 1; i >= 0; i -= 1) { - if (slides[i].column === colIndexToPrepend) prependSlidesIndexes.push(i); - } - // slides.forEach((slide, slideIndex) => { - // if (slide.column === colIndexToPrepend) prependSlidesIndexes.push(slideIndex); - // }); - } else { - prependSlidesIndexes.push(cols - index - 1); - } - } - } else if (activeColIndexWithShift + slidesPerView > cols - loopedSlides) { - slidesAppended = Math.max(activeColIndexWithShift - (cols - loopedSlides * 2), slidesPerGroup); - for (let i = 0; i < slidesAppended; i += 1) { - const index = i - Math.floor(i / cols) * cols; - if (gridEnabled) { - slides.forEach((slide, slideIndex) => { - if (slide.column === index) appendSlidesIndexes.push(slideIndex); - }); - } else { - appendSlidesIndexes.push(index); - } - } - } - swiper.__preventObserver__ = true; - requestAnimationFrame(() => { - swiper.__preventObserver__ = false; - }); - if (isPrev) { - prependSlidesIndexes.forEach(index => { - slides[index].swiperLoopMoveDOM = true; - slidesEl.prepend(slides[index]); - slides[index].swiperLoopMoveDOM = false; - }); - } - if (isNext) { - appendSlidesIndexes.forEach(index => { - slides[index].swiperLoopMoveDOM = true; - slidesEl.append(slides[index]); - slides[index].swiperLoopMoveDOM = false; - }); - } - swiper.recalcSlides(); - if (params.slidesPerView === 'auto') { - swiper.updateSlides(); - } else if (gridEnabled && (prependSlidesIndexes.length > 0 && isPrev || appendSlidesIndexes.length > 0 && isNext)) { - swiper.slides.forEach((slide, slideIndex) => { - swiper.grid.updateSlide(slideIndex, slide, swiper.slides); - }); - } - if (params.watchSlidesProgress) { - swiper.updateSlidesOffset(); - } - if (slideTo) { - if (prependSlidesIndexes.length > 0 && isPrev) { - if (typeof slideRealIndex === 'undefined') { - const currentSlideTranslate = swiper.slidesGrid[activeIndex]; - const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended]; - const diff = newSlideTranslate - currentSlideTranslate; - if (byMousewheel) { - swiper.setTranslate(swiper.translate - diff); - } else { - swiper.slideTo(activeIndex + slidesPrepended, 0, false, true); - if (setTranslate) { - swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff; - swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff; - } - } - } else { - if (setTranslate) { - const shift = gridEnabled ? prependSlidesIndexes.length / params.grid.rows : prependSlidesIndexes.length; - swiper.slideTo(swiper.activeIndex + shift, 0, false, true); - swiper.touchEventsData.currentTranslate = swiper.translate; - } - } - } else if (appendSlidesIndexes.length > 0 && isNext) { - if (typeof slideRealIndex === 'undefined') { - const currentSlideTranslate = swiper.slidesGrid[activeIndex]; - const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended]; - const diff = newSlideTranslate - currentSlideTranslate; - if (byMousewheel) { - swiper.setTranslate(swiper.translate - diff); - } else { - swiper.slideTo(activeIndex - slidesAppended, 0, false, true); - if (setTranslate) { - swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff; - swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff; - } - } - } else { - const shift = gridEnabled ? appendSlidesIndexes.length / params.grid.rows : appendSlidesIndexes.length; - swiper.slideTo(swiper.activeIndex - shift, 0, false, true); - } - } - } - swiper.allowSlidePrev = allowSlidePrev; - swiper.allowSlideNext = allowSlideNext; - if (swiper.controller && swiper.controller.control && !byController) { - const loopParams = { - slideRealIndex, - direction, - setTranslate, - activeSlideIndex, - byController: true - }; - if (Array.isArray(swiper.controller.control)) { - swiper.controller.control.forEach(c => { - if (!c.destroyed && c.params.loop) c.loopFix({ - ...loopParams, - slideTo: c.params.slidesPerView === params.slidesPerView ? slideTo : false - }); - }); - } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) { - swiper.controller.control.loopFix({ - ...loopParams, - slideTo: swiper.controller.control.params.slidesPerView === params.slidesPerView ? slideTo : false - }); - } - } - swiper.emit('loopFix'); - } - - function loopDestroy() { - const swiper = this; - const { - params, - slidesEl - } = swiper; - if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return; - swiper.recalcSlides(); - const newSlidesOrder = []; - swiper.slides.forEach(slideEl => { - const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex; - newSlidesOrder[index] = slideEl; - }); - swiper.slides.forEach(slideEl => { - slideEl.removeAttribute('data-swiper-slide-index'); - }); - newSlidesOrder.forEach(slideEl => { - slidesEl.append(slideEl); - }); - swiper.recalcSlides(); - swiper.slideTo(swiper.realIndex, 0); - } - - var loop = { - loopCreate, - loopFix, - loopDestroy - }; - - function setGrabCursor(moving) { - const swiper = this; - if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return; - const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl; - if (swiper.isElement) { - swiper.__preventObserver__ = true; - } - el.style.cursor = 'move'; - el.style.cursor = moving ? 'grabbing' : 'grab'; - if (swiper.isElement) { - requestAnimationFrame(() => { - swiper.__preventObserver__ = false; - }); - } - } - - function unsetGrabCursor() { - const swiper = this; - if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) { - return; - } - if (swiper.isElement) { - swiper.__preventObserver__ = true; - } - swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = ''; - if (swiper.isElement) { - requestAnimationFrame(() => { - swiper.__preventObserver__ = false; - }); - } - } - - var grabCursor = { - setGrabCursor, - unsetGrabCursor - }; - - // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd - function closestElement(selector, base) { - if (base === void 0) { - base = this; - } - function __closestFrom(el) { - if (!el || el === getDocument() || el === getWindow()) return null; - if (el.assignedSlot) el = el.assignedSlot; - const found = el.closest(selector); - if (!found && !el.getRootNode) { - return null; - } - return found || __closestFrom(el.getRootNode().host); - } - return __closestFrom(base); - } - function preventEdgeSwipe(swiper, event, startX) { - const window = getWindow(); - const { - params - } = swiper; - const edgeSwipeDetection = params.edgeSwipeDetection; - const edgeSwipeThreshold = params.edgeSwipeThreshold; - if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) { - if (edgeSwipeDetection === 'prevent') { - event.preventDefault(); - return true; - } - return false; - } - return true; - } - function onTouchStart(event) { - const swiper = this; - const document = getDocument(); - let e = event; - if (e.originalEvent) e = e.originalEvent; - const data = swiper.touchEventsData; - if (e.type === 'pointerdown') { - if (data.pointerId !== null && data.pointerId !== e.pointerId) { - return; - } - data.pointerId = e.pointerId; - } else if (e.type === 'touchstart' && e.targetTouches.length === 1) { - data.touchId = e.targetTouches[0].identifier; - } - if (e.type === 'touchstart') { - // don't proceed touch event - preventEdgeSwipe(swiper, e, e.targetTouches[0].pageX); - return; - } - const { - params, - touches, - enabled - } = swiper; - if (!enabled) return; - if (!params.simulateTouch && e.pointerType === 'mouse') return; - if (swiper.animating && params.preventInteractionOnTransition) { - return; - } - if (!swiper.animating && params.cssMode && params.loop) { - swiper.loopFix(); - } - let targetEl = e.target; - if (params.touchEventsTarget === 'wrapper') { - if (!swiper.wrapperEl.contains(targetEl)) return; - } - if ('which' in e && e.which === 3) return; - if ('button' in e && e.button > 0) return; - if (data.isTouched && data.isMoved) return; - - // change target el for shadow root component - const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== ''; - // eslint-disable-next-line - const eventPath = e.composedPath ? e.composedPath() : e.path; - if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) { - targetEl = eventPath[0]; - } - const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`; - const isTargetShadow = !!(e.target && e.target.shadowRoot); - - // use closestElement for shadow root element to get the actual closest for nested shadow root element - if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) { - swiper.allowClick = true; - return; - } - if (params.swipeHandler) { - if (!targetEl.closest(params.swipeHandler)) return; - } - touches.currentX = e.pageX; - touches.currentY = e.pageY; - const startX = touches.currentX; - const startY = touches.currentY; - - // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore - - if (!preventEdgeSwipe(swiper, e, startX)) { - return; - } - Object.assign(data, { - isTouched: true, - isMoved: false, - allowTouchCallbacks: true, - isScrolling: undefined, - startMoving: undefined - }); - touches.startX = startX; - touches.startY = startY; - data.touchStartTime = now(); - swiper.allowClick = true; - swiper.updateSize(); - swiper.swipeDirection = undefined; - if (params.threshold > 0) data.allowThresholdMove = false; - let preventDefault = true; - if (targetEl.matches(data.focusableElements)) { - preventDefault = false; - if (targetEl.nodeName === 'SELECT') { - data.isTouched = false; - } - } - if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl) { - document.activeElement.blur(); - } - const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault; - if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) { - e.preventDefault(); - } - if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) { - swiper.freeMode.onTouchStart(); - } - swiper.emit('touchStart', e); - } - - function onTouchMove(event) { - const document = getDocument(); - const swiper = this; - const data = swiper.touchEventsData; - const { - params, - touches, - rtlTranslate: rtl, - enabled - } = swiper; - if (!enabled) return; - if (!params.simulateTouch && event.pointerType === 'mouse') return; - let e = event; - if (e.originalEvent) e = e.originalEvent; - if (e.type === 'pointermove') { - if (data.touchId !== null) return; // return from pointer if we use touch - const id = e.pointerId; - if (id !== data.pointerId) return; - } - let targetTouch; - if (e.type === 'touchmove') { - targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0]; - if (!targetTouch || targetTouch.identifier !== data.touchId) return; - } else { - targetTouch = e; - } - if (!data.isTouched) { - if (data.startMoving && data.isScrolling) { - swiper.emit('touchMoveOpposite', e); - } - return; - } - const pageX = targetTouch.pageX; - const pageY = targetTouch.pageY; - if (e.preventedByNestedSwiper) { - touches.startX = pageX; - touches.startY = pageY; - return; - } - if (!swiper.allowTouchMove) { - if (!e.target.matches(data.focusableElements)) { - swiper.allowClick = false; - } - if (data.isTouched) { - Object.assign(touches, { - startX: pageX, - startY: pageY, - currentX: pageX, - currentY: pageY - }); - data.touchStartTime = now(); - } - return; - } - if (params.touchReleaseOnEdges && !params.loop) { - if (swiper.isVertical()) { - // Vertical - if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) { - data.isTouched = false; - data.isMoved = false; - return; - } - } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) { - return; - } - } - if (document.activeElement) { - if (e.target === document.activeElement && e.target.matches(data.focusableElements)) { - data.isMoved = true; - swiper.allowClick = false; - return; - } - } - if (data.allowTouchCallbacks) { - swiper.emit('touchMove', e); - } - touches.previousX = touches.currentX; - touches.previousY = touches.currentY; - touches.currentX = pageX; - touches.currentY = pageY; - const diffX = touches.currentX - touches.startX; - const diffY = touches.currentY - touches.startY; - if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return; - if (typeof data.isScrolling === 'undefined') { - let touchAngle; - if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) { - data.isScrolling = false; - } else { - // eslint-disable-next-line - if (diffX * diffX + diffY * diffY >= 25) { - touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI; - data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle; - } - } - } - if (data.isScrolling) { - swiper.emit('touchMoveOpposite', e); - } - if (typeof data.startMoving === 'undefined') { - if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) { - data.startMoving = true; - } - } - if (data.isScrolling) { - data.isTouched = false; - return; - } - if (!data.startMoving) { - return; - } - swiper.allowClick = false; - if (!params.cssMode && e.cancelable) { - e.preventDefault(); - } - if (params.touchMoveStopPropagation && !params.nested) { - e.stopPropagation(); - } - let diff = swiper.isHorizontal() ? diffX : diffY; - let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY; - if (params.oneWayMovement) { - diff = Math.abs(diff) * (rtl ? 1 : -1); - touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1); - } - touches.diff = diff; - diff *= params.touchRatio; - if (rtl) { - diff = -diff; - touchesDiff = -touchesDiff; - } - const prevTouchesDirection = swiper.touchesDirection; - swiper.swipeDirection = diff > 0 ? 'prev' : 'next'; - swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next'; - const isLoop = swiper.params.loop && !params.cssMode; - const allowLoopFix = swiper.touchesDirection === 'next' && swiper.allowSlideNext || swiper.touchesDirection === 'prev' && swiper.allowSlidePrev; - if (!data.isMoved) { - if (isLoop && allowLoopFix) { - swiper.loopFix({ - direction: swiper.swipeDirection - }); - } - data.startTranslate = swiper.getTranslate(); - swiper.setTransition(0); - if (swiper.animating) { - const evt = new window.CustomEvent('transitionend', { - bubbles: true, - cancelable: true - }); - swiper.wrapperEl.dispatchEvent(evt); - } - data.allowMomentumBounce = false; - // Grab Cursor - if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) { - swiper.setGrabCursor(true); - } - swiper.emit('sliderFirstMove', e); - } - let loopFixed; - new Date().getTime(); - if (data.isMoved && data.allowThresholdMove && prevTouchesDirection !== swiper.touchesDirection && isLoop && allowLoopFix && Math.abs(diff) >= 1) { - Object.assign(touches, { - startX: pageX, - startY: pageY, - currentX: pageX, - currentY: pageY, - startTranslate: data.currentTranslate - }); - data.loopSwapReset = true; - data.startTranslate = data.currentTranslate; - return; - } - swiper.emit('sliderMove', e); - data.isMoved = true; - data.currentTranslate = diff + data.startTranslate; - let disableParentSwiper = true; - let resistanceRatio = params.resistanceRatio; - if (params.touchReleaseOnEdges) { - resistanceRatio = 0; - } - if (diff > 0) { - if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.slidesSizesGrid[swiper.activeIndex + 1] : swiper.minTranslate())) { - swiper.loopFix({ - direction: 'prev', - setTranslate: true, - activeSlideIndex: 0 - }); - } - if (data.currentTranslate > swiper.minTranslate()) { - disableParentSwiper = false; - if (params.resistance) { - data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio; - } - } - } else if (diff < 0) { - if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] : swiper.maxTranslate())) { - swiper.loopFix({ - direction: 'next', - setTranslate: true, - activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10))) - }); - } - if (data.currentTranslate < swiper.maxTranslate()) { - disableParentSwiper = false; - if (params.resistance) { - data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio; - } - } - } - if (disableParentSwiper) { - e.preventedByNestedSwiper = true; - } - - // Directions locks - if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) { - data.currentTranslate = data.startTranslate; - } - if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) { - data.currentTranslate = data.startTranslate; - } - if (!swiper.allowSlidePrev && !swiper.allowSlideNext) { - data.currentTranslate = data.startTranslate; - } - - // Threshold - if (params.threshold > 0) { - if (Math.abs(diff) > params.threshold || data.allowThresholdMove) { - if (!data.allowThresholdMove) { - data.allowThresholdMove = true; - touches.startX = touches.currentX; - touches.startY = touches.currentY; - data.currentTranslate = data.startTranslate; - touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY; - return; - } - } else { - data.currentTranslate = data.startTranslate; - return; - } - } - if (!params.followFinger || params.cssMode) return; - - // Update active index in free mode - if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) { - swiper.updateActiveIndex(); - swiper.updateSlidesClasses(); - } - if (params.freeMode && params.freeMode.enabled && swiper.freeMode) { - swiper.freeMode.onTouchMove(); - } - // Update progress - swiper.updateProgress(data.currentTranslate); - // Update translate - swiper.setTranslate(data.currentTranslate); - } - - function onTouchEnd(event) { - const swiper = this; - const data = swiper.touchEventsData; - let e = event; - if (e.originalEvent) e = e.originalEvent; - let targetTouch; - const isTouchEvent = e.type === 'touchend' || e.type === 'touchcancel'; - if (!isTouchEvent) { - if (data.touchId !== null) return; // return from pointer if we use touch - if (e.pointerId !== data.pointerId) return; - targetTouch = e; - } else { - targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0]; - if (!targetTouch || targetTouch.identifier !== data.touchId) return; - } - if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(e.type)) { - const proceed = ['pointercancel', 'contextmenu'].includes(e.type) && (swiper.browser.isSafari || swiper.browser.isWebView); - if (!proceed) { - return; - } - } - data.pointerId = null; - data.touchId = null; - const { - params, - touches, - rtlTranslate: rtl, - slidesGrid, - enabled - } = swiper; - if (!enabled) return; - if (!params.simulateTouch && e.pointerType === 'mouse') return; - if (data.allowTouchCallbacks) { - swiper.emit('touchEnd', e); - } - data.allowTouchCallbacks = false; - if (!data.isTouched) { - if (data.isMoved && params.grabCursor) { - swiper.setGrabCursor(false); - } - data.isMoved = false; - data.startMoving = false; - return; - } - - // Return Grab Cursor - if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) { - swiper.setGrabCursor(false); - } - - // Time diff - const touchEndTime = now(); - const timeDiff = touchEndTime - data.touchStartTime; - - // Tap, doubleTap, Click - if (swiper.allowClick) { - const pathTree = e.path || e.composedPath && e.composedPath(); - swiper.updateClickedSlide(pathTree && pathTree[0] || e.target, pathTree); - swiper.emit('tap click', e); - if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) { - swiper.emit('doubleTap doubleClick', e); - } - } - data.lastClickTime = now(); - nextTick(() => { - if (!swiper.destroyed) swiper.allowClick = true; - }); - if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 && !data.loopSwapReset || data.currentTranslate === data.startTranslate && !data.loopSwapReset) { - data.isTouched = false; - data.isMoved = false; - data.startMoving = false; - return; - } - data.isTouched = false; - data.isMoved = false; - data.startMoving = false; - let currentPos; - if (params.followFinger) { - currentPos = rtl ? swiper.translate : -swiper.translate; - } else { - currentPos = -data.currentTranslate; - } - if (params.cssMode) { - return; - } - if (params.freeMode && params.freeMode.enabled) { - swiper.freeMode.onTouchEnd({ - currentPos - }); - return; - } - - // Find current slide - const swipeToLast = currentPos >= -swiper.maxTranslate() && !swiper.params.loop; - let stopIndex = 0; - let groupSize = swiper.slidesSizesGrid[0]; - for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) { - const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup; - if (typeof slidesGrid[i + increment] !== 'undefined') { - if (swipeToLast || currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) { - stopIndex = i; - groupSize = slidesGrid[i + increment] - slidesGrid[i]; - } - } else if (swipeToLast || currentPos >= slidesGrid[i]) { - stopIndex = i; - groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2]; - } - } - let rewindFirstIndex = null; - let rewindLastIndex = null; - if (params.rewind) { - if (swiper.isBeginning) { - rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1; - } else if (swiper.isEnd) { - rewindFirstIndex = 0; - } - } - // Find current slide size - const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize; - const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup; - if (timeDiff > params.longSwipesMs) { - // Long touches - if (!params.longSwipes) { - swiper.slideTo(swiper.activeIndex); - return; - } - if (swiper.swipeDirection === 'next') { - if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex); - } - if (swiper.swipeDirection === 'prev') { - if (ratio > 1 - params.longSwipesRatio) { - swiper.slideTo(stopIndex + increment); - } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) { - swiper.slideTo(rewindLastIndex); - } else { - swiper.slideTo(stopIndex); - } - } - } else { - // Short swipes - if (!params.shortSwipes) { - swiper.slideTo(swiper.activeIndex); - return; - } - const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl); - if (!isNavButtonTarget) { - if (swiper.swipeDirection === 'next') { - swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment); - } - if (swiper.swipeDirection === 'prev') { - swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex); - } - } else if (e.target === swiper.navigation.nextEl) { - swiper.slideTo(stopIndex + increment); - } else { - swiper.slideTo(stopIndex); - } - } - } - - function onResize() { - const swiper = this; - const { - params, - el - } = swiper; - if (el && el.offsetWidth === 0) return; - - // Breakpoints - if (params.breakpoints) { - swiper.setBreakpoint(); - } - - // Save locks - const { - allowSlideNext, - allowSlidePrev, - snapGrid - } = swiper; - const isVirtual = swiper.virtual && swiper.params.virtual.enabled; - - // Disable locks on resize - swiper.allowSlideNext = true; - swiper.allowSlidePrev = true; - swiper.updateSize(); - swiper.updateSlides(); - swiper.updateSlidesClasses(); - const isVirtualLoop = isVirtual && params.loop; - if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) { - swiper.slideTo(swiper.slides.length - 1, 0, false, true); - } else { - if (swiper.params.loop && !isVirtual) { - swiper.slideToLoop(swiper.realIndex, 0, false, true); - } else { - swiper.slideTo(swiper.activeIndex, 0, false, true); - } - } - if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) { - clearTimeout(swiper.autoplay.resizeTimeout); - swiper.autoplay.resizeTimeout = setTimeout(() => { - if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) { - swiper.autoplay.resume(); - } - }, 500); - } - // Return locks after resize - swiper.allowSlidePrev = allowSlidePrev; - swiper.allowSlideNext = allowSlideNext; - if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) { - swiper.checkOverflow(); - } - } - - function onClick(e) { - const swiper = this; - if (!swiper.enabled) return; - if (!swiper.allowClick) { - if (swiper.params.preventClicks) e.preventDefault(); - if (swiper.params.preventClicksPropagation && swiper.animating) { - e.stopPropagation(); - e.stopImmediatePropagation(); - } - } - } - - function onScroll() { - const swiper = this; - const { - wrapperEl, - rtlTranslate, - enabled - } = swiper; - if (!enabled) return; - swiper.previousTranslate = swiper.translate; - if (swiper.isHorizontal()) { - swiper.translate = -wrapperEl.scrollLeft; - } else { - swiper.translate = -wrapperEl.scrollTop; - } - // eslint-disable-next-line - if (swiper.translate === 0) swiper.translate = 0; - swiper.updateActiveIndex(); - swiper.updateSlidesClasses(); - let newProgress; - const translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); - if (translatesDiff === 0) { - newProgress = 0; - } else { - newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff; - } - if (newProgress !== swiper.progress) { - swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate); - } - swiper.emit('setTranslate', swiper.translate, false); - } - - function onLoad(e) { - const swiper = this; - processLazyPreloader(swiper, e.target); - if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) { - return; - } - swiper.update(); - } - - function onDocumentTouchStart() { - const swiper = this; - if (swiper.documentTouchHandlerProceeded) return; - swiper.documentTouchHandlerProceeded = true; - if (swiper.params.touchReleaseOnEdges) { - swiper.el.style.touchAction = 'auto'; - } - } - - const events = (swiper, method) => { - const document = getDocument(); - const { - params, - el, - wrapperEl, - device - } = swiper; - const capture = !!params.nested; - const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener'; - const swiperMethod = method; - - // Touch Events - document[domMethod]('touchstart', swiper.onDocumentTouchStart, { - passive: false, - capture - }); - el[domMethod]('touchstart', swiper.onTouchStart, { - passive: false - }); - el[domMethod]('pointerdown', swiper.onTouchStart, { - passive: false - }); - document[domMethod]('touchmove', swiper.onTouchMove, { - passive: false, - capture - }); - document[domMethod]('pointermove', swiper.onTouchMove, { - passive: false, - capture - }); - document[domMethod]('touchend', swiper.onTouchEnd, { - passive: true - }); - document[domMethod]('pointerup', swiper.onTouchEnd, { - passive: true - }); - document[domMethod]('pointercancel', swiper.onTouchEnd, { - passive: true - }); - document[domMethod]('touchcancel', swiper.onTouchEnd, { - passive: true - }); - document[domMethod]('pointerout', swiper.onTouchEnd, { - passive: true - }); - document[domMethod]('pointerleave', swiper.onTouchEnd, { - passive: true - }); - document[domMethod]('contextmenu', swiper.onTouchEnd, { - passive: true - }); - - // Prevent Links Clicks - if (params.preventClicks || params.preventClicksPropagation) { - el[domMethod]('click', swiper.onClick, true); - } - if (params.cssMode) { - wrapperEl[domMethod]('scroll', swiper.onScroll); - } - - // Resize handler - if (params.updateOnWindowResize) { - swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true); - } else { - swiper[swiperMethod]('observerUpdate', onResize, true); - } - - // Images loader - el[domMethod]('load', swiper.onLoad, { - capture: true - }); - }; - function attachEvents() { - const swiper = this; - const { - params - } = swiper; - swiper.onTouchStart = onTouchStart.bind(swiper); - swiper.onTouchMove = onTouchMove.bind(swiper); - swiper.onTouchEnd = onTouchEnd.bind(swiper); - swiper.onDocumentTouchStart = onDocumentTouchStart.bind(swiper); - if (params.cssMode) { - swiper.onScroll = onScroll.bind(swiper); - } - swiper.onClick = onClick.bind(swiper); - swiper.onLoad = onLoad.bind(swiper); - events(swiper, 'on'); - } - function detachEvents() { - const swiper = this; - events(swiper, 'off'); - } - var events$1 = { - attachEvents, - detachEvents - }; - - const isGridEnabled = (swiper, params) => { - return swiper.grid && params.grid && params.grid.rows > 1; - }; - function setBreakpoint() { - const swiper = this; - const { - realIndex, - initialized, - params, - el - } = swiper; - const breakpoints = params.breakpoints; - if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; - - // Get breakpoint for window width and update parameters - const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el); - if (!breakpoint || swiper.currentBreakpoint === breakpoint) return; - const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined; - const breakpointParams = breakpointOnlyParams || swiper.originalParams; - const wasMultiRow = isGridEnabled(swiper, params); - const isMultiRow = isGridEnabled(swiper, breakpointParams); - const wasEnabled = params.enabled; - if (wasMultiRow && !isMultiRow) { - el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`); - swiper.emitContainerClasses(); - } else if (!wasMultiRow && isMultiRow) { - el.classList.add(`${params.containerModifierClass}grid`); - if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') { - el.classList.add(`${params.containerModifierClass}grid-column`); - } - swiper.emitContainerClasses(); - } - - // Toggle navigation, pagination, scrollbar - ['navigation', 'pagination', 'scrollbar'].forEach(prop => { - if (typeof breakpointParams[prop] === 'undefined') return; - const wasModuleEnabled = params[prop] && params[prop].enabled; - const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled; - if (wasModuleEnabled && !isModuleEnabled) { - swiper[prop].disable(); - } - if (!wasModuleEnabled && isModuleEnabled) { - swiper[prop].enable(); - } - }); - const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction; - const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged); - const wasLoop = params.loop; - if (directionChanged && initialized) { - swiper.changeDirection(); - } - extend$1(swiper.params, breakpointParams); - const isEnabled = swiper.params.enabled; - const hasLoop = swiper.params.loop; - Object.assign(swiper, { - allowTouchMove: swiper.params.allowTouchMove, - allowSlideNext: swiper.params.allowSlideNext, - allowSlidePrev: swiper.params.allowSlidePrev - }); - if (wasEnabled && !isEnabled) { - swiper.disable(); - } else if (!wasEnabled && isEnabled) { - swiper.enable(); - } - swiper.currentBreakpoint = breakpoint; - swiper.emit('_beforeBreakpoint', breakpointParams); - if (initialized) { - if (needsReLoop) { - swiper.loopDestroy(); - swiper.loopCreate(realIndex); - swiper.updateSlides(); - } else if (!wasLoop && hasLoop) { - swiper.loopCreate(realIndex); - swiper.updateSlides(); - } else if (wasLoop && !hasLoop) { - swiper.loopDestroy(); - } - } - swiper.emit('breakpoint', breakpointParams); - } - - function getBreakpoint(breakpoints, base, containerEl) { - if (base === void 0) { - base = 'window'; - } - if (!breakpoints || base === 'container' && !containerEl) return undefined; - let breakpoint = false; - const window = getWindow(); - const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight; - const points = Object.keys(breakpoints).map(point => { - if (typeof point === 'string' && point.indexOf('@') === 0) { - const minRatio = parseFloat(point.substr(1)); - const value = currentHeight * minRatio; - return { - value, - point - }; - } - return { - value: point, - point - }; - }); - points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10)); - for (let i = 0; i < points.length; i += 1) { - const { - point, - value - } = points[i]; - if (base === 'window') { - if (window.matchMedia(`(min-width: ${value}px)`).matches) { - breakpoint = point; - } - } else if (value <= containerEl.clientWidth) { - breakpoint = point; - } - } - return breakpoint || 'max'; - } - - var breakpoints = { - setBreakpoint, - getBreakpoint - }; - - function prepareClasses(entries, prefix) { - const resultClasses = []; - entries.forEach(item => { - if (typeof item === 'object') { - Object.keys(item).forEach(classNames => { - if (item[classNames]) { - resultClasses.push(prefix + classNames); - } - }); - } else if (typeof item === 'string') { - resultClasses.push(prefix + item); - } - }); - return resultClasses; - } - function addClasses() { - const swiper = this; - const { - classNames, - params, - rtl, - el, - device - } = swiper; - // prettier-ignore - const suffixes = prepareClasses(['initialized', params.direction, { - 'free-mode': swiper.params.freeMode && params.freeMode.enabled - }, { - 'autoheight': params.autoHeight - }, { - 'rtl': rtl - }, { - 'grid': params.grid && params.grid.rows > 1 - }, { - 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column' - }, { - 'android': device.android - }, { - 'ios': device.ios - }, { - 'css-mode': params.cssMode - }, { - 'centered': params.cssMode && params.centeredSlides - }, { - 'watch-progress': params.watchSlidesProgress - }], params.containerModifierClass); - classNames.push(...suffixes); - el.classList.add(...classNames); - swiper.emitContainerClasses(); - } - - function removeClasses() { - const swiper = this; - const { - el, - classNames - } = swiper; - el.classList.remove(...classNames); - swiper.emitContainerClasses(); - } - - var classes = { - addClasses, - removeClasses - }; - - function checkOverflow() { - const swiper = this; - const { - isLocked: wasLocked, - params - } = swiper; - const { - slidesOffsetBefore - } = params; - if (slidesOffsetBefore) { - const lastSlideIndex = swiper.slides.length - 1; - const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2; - swiper.isLocked = swiper.size > lastSlideRightEdge; - } else { - swiper.isLocked = swiper.snapGrid.length === 1; - } - if (params.allowSlideNext === true) { - swiper.allowSlideNext = !swiper.isLocked; - } - if (params.allowSlidePrev === true) { - swiper.allowSlidePrev = !swiper.isLocked; - } - if (wasLocked && wasLocked !== swiper.isLocked) { - swiper.isEnd = false; - } - if (wasLocked !== swiper.isLocked) { - swiper.emit(swiper.isLocked ? 'lock' : 'unlock'); - } - } - var checkOverflow$1 = { - checkOverflow - }; - - var defaults = { - init: true, - direction: 'horizontal', - oneWayMovement: false, - touchEventsTarget: 'wrapper', - initialSlide: 0, - speed: 300, - cssMode: false, - updateOnWindowResize: true, - resizeObserver: true, - nested: false, - createElements: false, - eventsPrefix: 'swiper', - enabled: true, - focusableElements: 'input, select, option, textarea, button, video, label', - // Overrides - width: null, - height: null, - // - preventInteractionOnTransition: false, - // ssr - userAgent: null, - url: null, - // To support iOS's swipe-to-go-back gesture (when being used in-app). - edgeSwipeDetection: false, - edgeSwipeThreshold: 20, - // Autoheight - autoHeight: false, - // Set wrapper width - setWrapperSize: false, - // Virtual Translate - virtualTranslate: false, - // Effects - effect: 'slide', - // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip' - - // Breakpoints - breakpoints: undefined, - breakpointsBase: 'window', - // Slides grid - spaceBetween: 0, - slidesPerView: 1, - slidesPerGroup: 1, - slidesPerGroupSkip: 0, - slidesPerGroupAuto: false, - centeredSlides: false, - centeredSlidesBounds: false, - slidesOffsetBefore: 0, - // in px - slidesOffsetAfter: 0, - // in px - normalizeSlideIndex: true, - centerInsufficientSlides: false, - // Disable swiper and hide navigation when container not overflow - watchOverflow: true, - // Round length - roundLengths: false, - // Touches - touchRatio: 1, - touchAngle: 45, - simulateTouch: true, - shortSwipes: true, - longSwipes: true, - longSwipesRatio: 0.5, - longSwipesMs: 300, - followFinger: true, - allowTouchMove: true, - threshold: 5, - touchMoveStopPropagation: false, - touchStartPreventDefault: true, - touchStartForcePreventDefault: false, - touchReleaseOnEdges: false, - // Unique Navigation Elements - uniqueNavElements: true, - // Resistance - resistance: true, - resistanceRatio: 0.85, - // Progress - watchSlidesProgress: false, - // Cursor - grabCursor: false, - // Clicks - preventClicks: true, - preventClicksPropagation: true, - slideToClickedSlide: false, - // loop - loop: false, - loopAddBlankSlides: true, - loopAdditionalSlides: 0, - loopPreventsSliding: true, - // rewind - rewind: false, - // Swiping/no swiping - allowSlidePrev: true, - allowSlideNext: true, - swipeHandler: null, - // '.swipe-handler', - noSwiping: true, - noSwipingClass: 'swiper-no-swiping', - noSwipingSelector: null, - // Passive Listeners - passiveListeners: true, - maxBackfaceHiddenSlides: 10, - // NS - containerModifierClass: 'swiper-', - // NEW - slideClass: 'swiper-slide', - slideBlankClass: 'swiper-slide-blank', - slideActiveClass: 'swiper-slide-active', - slideVisibleClass: 'swiper-slide-visible', - slideFullyVisibleClass: 'swiper-slide-fully-visible', - slideNextClass: 'swiper-slide-next', - slidePrevClass: 'swiper-slide-prev', - wrapperClass: 'swiper-wrapper', - lazyPreloaderClass: 'swiper-lazy-preloader', - lazyPreloadPrevNext: 0, - // Callbacks - runCallbacksOnInit: true, - // Internals - _emitClasses: false - }; - - function moduleExtendParams(params, allModulesParams) { - return function extendParams(obj) { - if (obj === void 0) { - obj = {}; - } - const moduleParamName = Object.keys(obj)[0]; - const moduleParams = obj[moduleParamName]; - if (typeof moduleParams !== 'object' || moduleParams === null) { - extend$1(allModulesParams, obj); - return; - } - if (params[moduleParamName] === true) { - params[moduleParamName] = { - enabled: true - }; - } - if (moduleParamName === 'navigation' && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].prevEl && !params[moduleParamName].nextEl) { - params[moduleParamName].auto = true; - } - if (['pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].el) { - params[moduleParamName].auto = true; - } - if (!(moduleParamName in params && 'enabled' in moduleParams)) { - extend$1(allModulesParams, obj); - return; - } - if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) { - params[moduleParamName].enabled = true; - } - if (!params[moduleParamName]) params[moduleParamName] = { - enabled: false - }; - extend$1(allModulesParams, obj); - }; - } - - /* eslint no-param-reassign: "off" */ - const prototypes = { - eventsEmitter, - update, - translate, - transition, - slide, - loop, - grabCursor, - events: events$1, - breakpoints, - checkOverflow: checkOverflow$1, - classes - }; - const extendedDefaults = {}; - class Swiper { - constructor() { - let el; - let params; - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') { - params = args[0]; - } else { - [el, params] = args; - } - if (!params) params = {}; - params = extend$1({}, params); - if (el && !params.el) params.el = el; - const document = getDocument(); - if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) { - const swipers = []; - document.querySelectorAll(params.el).forEach(containerEl => { - const newParams = extend$1({}, params, { - el: containerEl - }); - swipers.push(new Swiper(newParams)); - }); - // eslint-disable-next-line no-constructor-return - return swipers; - } - - // Swiper Instance - const swiper = this; - swiper.__swiper__ = true; - swiper.support = getSupport(); - swiper.device = getDevice({ - userAgent: params.userAgent - }); - swiper.browser = getBrowser(); - swiper.eventsListeners = {}; - swiper.eventsAnyListeners = []; - swiper.modules = [...swiper.__modules__]; - if (params.modules && Array.isArray(params.modules)) { - swiper.modules.push(...params.modules); - } - const allModulesParams = {}; - swiper.modules.forEach(mod => { - mod({ - params, - swiper, - extendParams: moduleExtendParams(params, allModulesParams), - on: swiper.on.bind(swiper), - once: swiper.once.bind(swiper), - off: swiper.off.bind(swiper), - emit: swiper.emit.bind(swiper) - }); - }); - - // Extend defaults with modules params - const swiperParams = extend$1({}, defaults, allModulesParams); - - // Extend defaults with passed params - swiper.params = extend$1({}, swiperParams, extendedDefaults, params); - swiper.originalParams = extend$1({}, swiper.params); - swiper.passedParams = extend$1({}, params); - - // add event listeners - if (swiper.params && swiper.params.on) { - Object.keys(swiper.params.on).forEach(eventName => { - swiper.on(eventName, swiper.params.on[eventName]); - }); - } - if (swiper.params && swiper.params.onAny) { - swiper.onAny(swiper.params.onAny); - } - - // Extend Swiper - Object.assign(swiper, { - enabled: swiper.params.enabled, - el, - // Classes - classNames: [], - // Slides - slides: [], - slidesGrid: [], - snapGrid: [], - slidesSizesGrid: [], - // isDirection - isHorizontal() { - return swiper.params.direction === 'horizontal'; - }, - isVertical() { - return swiper.params.direction === 'vertical'; - }, - // Indexes - activeIndex: 0, - realIndex: 0, - // - isBeginning: true, - isEnd: false, - // Props - translate: 0, - previousTranslate: 0, - progress: 0, - velocity: 0, - animating: false, - cssOverflowAdjustment() { - // Returns 0 unless `translate` is > 2**23 - // Should be subtracted from css values to prevent overflow - return Math.trunc(this.translate / 2 ** 23) * 2 ** 23; - }, - // Locks - allowSlideNext: swiper.params.allowSlideNext, - allowSlidePrev: swiper.params.allowSlidePrev, - // Touch Events - touchEventsData: { - isTouched: undefined, - isMoved: undefined, - allowTouchCallbacks: undefined, - touchStartTime: undefined, - isScrolling: undefined, - currentTranslate: undefined, - startTranslate: undefined, - allowThresholdMove: undefined, - // Form elements to match - focusableElements: swiper.params.focusableElements, - // Last click time - lastClickTime: 0, - clickTimeout: undefined, - // Velocities - velocities: [], - allowMomentumBounce: undefined, - startMoving: undefined, - pointerId: null, - touchId: null - }, - // Clicks - allowClick: true, - // Touches - allowTouchMove: swiper.params.allowTouchMove, - touches: { - startX: 0, - startY: 0, - currentX: 0, - currentY: 0, - diff: 0 - }, - // Images - imagesToLoad: [], - imagesLoaded: 0 - }); - swiper.emit('_swiper'); - - // Init - if (swiper.params.init) { - swiper.init(); - } - - // Return app instance - // eslint-disable-next-line no-constructor-return - return swiper; - } - getDirectionLabel(property) { - if (this.isHorizontal()) { - return property; - } - // prettier-ignore - return { - 'width': 'height', - 'margin-top': 'margin-left', - 'margin-bottom ': 'margin-right', - 'margin-left': 'margin-top', - 'margin-right': 'margin-bottom', - 'padding-left': 'padding-top', - 'padding-right': 'padding-bottom', - 'marginRight': 'marginBottom' - }[property]; - } - getSlideIndex(slideEl) { - const { - slidesEl, - params - } = this; - const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`); - const firstSlideIndex = elementIndex(slides[0]); - return elementIndex(slideEl) - firstSlideIndex; - } - getSlideIndexByData(index) { - return this.getSlideIndex(this.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index)[0]); - } - recalcSlides() { - const swiper = this; - const { - slidesEl, - params - } = swiper; - swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`); - } - enable() { - const swiper = this; - if (swiper.enabled) return; - swiper.enabled = true; - if (swiper.params.grabCursor) { - swiper.setGrabCursor(); - } - swiper.emit('enable'); - } - disable() { - const swiper = this; - if (!swiper.enabled) return; - swiper.enabled = false; - if (swiper.params.grabCursor) { - swiper.unsetGrabCursor(); - } - swiper.emit('disable'); - } - setProgress(progress, speed) { - const swiper = this; - progress = Math.min(Math.max(progress, 0), 1); - const min = swiper.minTranslate(); - const max = swiper.maxTranslate(); - const current = (max - min) * progress + min; - swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed); - swiper.updateActiveIndex(); - swiper.updateSlidesClasses(); - } - emitContainerClasses() { - const swiper = this; - if (!swiper.params._emitClasses || !swiper.el) return; - const cls = swiper.el.className.split(' ').filter(className => { - return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0; - }); - swiper.emit('_containerClasses', cls.join(' ')); - } - getSlideClasses(slideEl) { - const swiper = this; - if (swiper.destroyed) return ''; - return slideEl.className.split(' ').filter(className => { - return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0; - }).join(' '); - } - emitSlidesClasses() { - const swiper = this; - if (!swiper.params._emitClasses || !swiper.el) return; - const updates = []; - swiper.slides.forEach(slideEl => { - const classNames = swiper.getSlideClasses(slideEl); - updates.push({ - slideEl, - classNames - }); - swiper.emit('_slideClass', slideEl, classNames); - }); - swiper.emit('_slideClasses', updates); - } - slidesPerViewDynamic(view, exact) { - if (view === void 0) { - view = 'current'; - } - if (exact === void 0) { - exact = false; - } - const swiper = this; - const { - params, - slides, - slidesGrid, - slidesSizesGrid, - size: swiperSize, - activeIndex - } = swiper; - let spv = 1; - if (typeof params.slidesPerView === 'number') return params.slidesPerView; - if (params.centeredSlides) { - let slideSize = slides[activeIndex] ? slides[activeIndex].swiperSlideSize : 0; - let breakLoop; - for (let i = activeIndex + 1; i < slides.length; i += 1) { - if (slides[i] && !breakLoop) { - slideSize += slides[i].swiperSlideSize; - spv += 1; - if (slideSize > swiperSize) breakLoop = true; - } - } - for (let i = activeIndex - 1; i >= 0; i -= 1) { - if (slides[i] && !breakLoop) { - slideSize += slides[i].swiperSlideSize; - spv += 1; - if (slideSize > swiperSize) breakLoop = true; - } - } - } else { - // eslint-disable-next-line - if (view === 'current') { - for (let i = activeIndex + 1; i < slides.length; i += 1) { - const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize; - if (slideInView) { - spv += 1; - } - } - } else { - // previous - for (let i = activeIndex - 1; i >= 0; i -= 1) { - const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize; - if (slideInView) { - spv += 1; - } - } - } - } - return spv; - } - update() { - const swiper = this; - if (!swiper || swiper.destroyed) return; - const { - snapGrid, - params - } = swiper; - // Breakpoints - if (params.breakpoints) { - swiper.setBreakpoint(); - } - [...swiper.el.querySelectorAll('[loading="lazy"]')].forEach(imageEl => { - if (imageEl.complete) { - processLazyPreloader(swiper, imageEl); - } - }); - swiper.updateSize(); - swiper.updateSlides(); - swiper.updateProgress(); - swiper.updateSlidesClasses(); - function setTranslate() { - const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate; - const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate()); - swiper.setTranslate(newTranslate); - swiper.updateActiveIndex(); - swiper.updateSlidesClasses(); - } - let translated; - if (params.freeMode && params.freeMode.enabled && !params.cssMode) { - setTranslate(); - if (params.autoHeight) { - swiper.updateAutoHeight(); - } - } else { - if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) { - const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides; - translated = swiper.slideTo(slides.length - 1, 0, false, true); - } else { - translated = swiper.slideTo(swiper.activeIndex, 0, false, true); - } - if (!translated) { - setTranslate(); - } - } - if (params.watchOverflow && snapGrid !== swiper.snapGrid) { - swiper.checkOverflow(); - } - swiper.emit('update'); - } - changeDirection(newDirection, needUpdate) { - if (needUpdate === void 0) { - needUpdate = true; - } - const swiper = this; - const currentDirection = swiper.params.direction; - if (!newDirection) { - // eslint-disable-next-line - newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal'; - } - if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') { - return swiper; - } - swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`); - swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`); - swiper.emitContainerClasses(); - swiper.params.direction = newDirection; - swiper.slides.forEach(slideEl => { - if (newDirection === 'vertical') { - slideEl.style.width = ''; - } else { - slideEl.style.height = ''; - } - }); - swiper.emit('changeDirection'); - if (needUpdate) swiper.update(); - return swiper; - } - changeLanguageDirection(direction) { - const swiper = this; - if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return; - swiper.rtl = direction === 'rtl'; - swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl; - if (swiper.rtl) { - swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`); - swiper.el.dir = 'rtl'; - } else { - swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`); - swiper.el.dir = 'ltr'; - } - swiper.update(); - } - mount(element) { - const swiper = this; - if (swiper.mounted) return true; - - // Find el - let el = element || swiper.params.el; - if (typeof el === 'string') { - el = document.querySelector(el); - } - if (!el) { - return false; - } - el.swiper = swiper; - if (el.parentNode && el.parentNode.host && el.parentNode.host.nodeName === 'SWIPER-CONTAINER') { - swiper.isElement = true; - } - const getWrapperSelector = () => { - return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`; - }; - const getWrapper = () => { - if (el && el.shadowRoot && el.shadowRoot.querySelector) { - const res = el.shadowRoot.querySelector(getWrapperSelector()); - // Children needs to return slot items - return res; - } - return elementChildren(el, getWrapperSelector())[0]; - }; - // Find Wrapper - let wrapperEl = getWrapper(); - if (!wrapperEl && swiper.params.createElements) { - wrapperEl = createElement('div', swiper.params.wrapperClass); - el.append(wrapperEl); - elementChildren(el, `.${swiper.params.slideClass}`).forEach(slideEl => { - wrapperEl.append(slideEl); - }); - } - Object.assign(swiper, { - el, - wrapperEl, - slidesEl: swiper.isElement && !el.parentNode.host.slideSlots ? el.parentNode.host : wrapperEl, - hostEl: swiper.isElement ? el.parentNode.host : el, - mounted: true, - // RTL - rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl', - rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'), - wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box' - }); - return true; - } - init(el) { - const swiper = this; - if (swiper.initialized) return swiper; - const mounted = swiper.mount(el); - if (mounted === false) return swiper; - swiper.emit('beforeInit'); - - // Set breakpoint - if (swiper.params.breakpoints) { - swiper.setBreakpoint(); - } - - // Add Classes - swiper.addClasses(); - - // Update size - swiper.updateSize(); - - // Update slides - swiper.updateSlides(); - if (swiper.params.watchOverflow) { - swiper.checkOverflow(); - } - - // Set Grab Cursor - if (swiper.params.grabCursor && swiper.enabled) { - swiper.setGrabCursor(); - } - - // Slide To Initial Slide - if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) { - swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true); - } else { - swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true); - } - - // Create loop - if (swiper.params.loop) { - swiper.loopCreate(); - } - - // Attach events - swiper.attachEvents(); - const lazyElements = [...swiper.el.querySelectorAll('[loading="lazy"]')]; - if (swiper.isElement) { - lazyElements.push(...swiper.hostEl.querySelectorAll('[loading="lazy"]')); - } - lazyElements.forEach(imageEl => { - if (imageEl.complete) { - processLazyPreloader(swiper, imageEl); - } else { - imageEl.addEventListener('load', e => { - processLazyPreloader(swiper, e.target); - }); - } - }); - preload(swiper); - - // Init Flag - swiper.initialized = true; - preload(swiper); - - // Emit - swiper.emit('init'); - swiper.emit('afterInit'); - return swiper; - } - destroy(deleteInstance, cleanStyles) { - if (deleteInstance === void 0) { - deleteInstance = true; - } - if (cleanStyles === void 0) { - cleanStyles = true; - } - const swiper = this; - const { - params, - el, - wrapperEl, - slides - } = swiper; - if (typeof swiper.params === 'undefined' || swiper.destroyed) { - return null; - } - swiper.emit('beforeDestroy'); - - // Init Flag - swiper.initialized = false; - - // Detach events - swiper.detachEvents(); - - // Destroy loop - if (params.loop) { - swiper.loopDestroy(); - } - - // Cleanup styles - if (cleanStyles) { - swiper.removeClasses(); - el.removeAttribute('style'); - wrapperEl.removeAttribute('style'); - if (slides && slides.length) { - slides.forEach(slideEl => { - slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass); - slideEl.removeAttribute('style'); - slideEl.removeAttribute('data-swiper-slide-index'); - }); - } - } - swiper.emit('destroy'); - - // Detach emitter events - Object.keys(swiper.eventsListeners).forEach(eventName => { - swiper.off(eventName); - }); - if (deleteInstance !== false) { - swiper.el.swiper = null; - deleteProps(swiper); - } - swiper.destroyed = true; - return null; - } - static extendDefaults(newDefaults) { - extend$1(extendedDefaults, newDefaults); - } - static get extendedDefaults() { - return extendedDefaults; - } - static get defaults() { - return defaults; - } - static installModule(mod) { - if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = []; - const modules = Swiper.prototype.__modules__; - if (typeof mod === 'function' && modules.indexOf(mod) < 0) { - modules.push(mod); - } - } - static use(module) { - if (Array.isArray(module)) { - module.forEach(m => Swiper.installModule(m)); - return Swiper; - } - Swiper.installModule(module); - return Swiper; - } - } - Object.keys(prototypes).forEach(prototypeGroup => { - Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => { - Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod]; - }); - }); - Swiper.use([Resize, Observer]); - - function Virtual(_ref) { - let { - swiper, - extendParams, - on, - emit - } = _ref; - extendParams({ - virtual: { - enabled: false, - slides: [], - cache: true, - renderSlide: null, - renderExternal: null, - renderExternalUpdate: true, - addSlidesBefore: 0, - addSlidesAfter: 0 - } - }); - let cssModeTimeout; - const document = getDocument(); - swiper.virtual = { - cache: {}, - from: undefined, - to: undefined, - slides: [], - offset: 0, - slidesGrid: [] - }; - const tempDOM = document.createElement('div'); - function renderSlide(slide, index) { - const params = swiper.params.virtual; - if (params.cache && swiper.virtual.cache[index]) { - return swiper.virtual.cache[index]; - } - // eslint-disable-next-line - let slideEl; - if (params.renderSlide) { - slideEl = params.renderSlide.call(swiper, slide, index); - if (typeof slideEl === 'string') { - tempDOM.innerHTML = slideEl; - slideEl = tempDOM.children[0]; - } - } else if (swiper.isElement) { - slideEl = createElement('swiper-slide'); - } else { - slideEl = createElement('div', swiper.params.slideClass); - } - slideEl.setAttribute('data-swiper-slide-index', index); - if (!params.renderSlide) { - slideEl.innerHTML = slide; - } - if (params.cache) { - swiper.virtual.cache[index] = slideEl; - } - return slideEl; - } - function update(force) { - const { - slidesPerView, - slidesPerGroup, - centeredSlides, - loop: isLoop - } = swiper.params; - const { - addSlidesBefore, - addSlidesAfter - } = swiper.params.virtual; - const { - from: previousFrom, - to: previousTo, - slides, - slidesGrid: previousSlidesGrid, - offset: previousOffset - } = swiper.virtual; - if (!swiper.params.cssMode) { - swiper.updateActiveIndex(); - } - const activeIndex = swiper.activeIndex || 0; - let offsetProp; - if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top'; - let slidesAfter; - let slidesBefore; - if (centeredSlides) { - slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter; - slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore; - } else { - slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter; - slidesBefore = (isLoop ? slidesPerView : slidesPerGroup) + addSlidesBefore; - } - let from = activeIndex - slidesBefore; - let to = activeIndex + slidesAfter; - if (!isLoop) { - from = Math.max(from, 0); - to = Math.min(to, slides.length - 1); - } - let offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0); - if (isLoop && activeIndex >= slidesBefore) { - from -= slidesBefore; - if (!centeredSlides) offset += swiper.slidesGrid[0]; - } else if (isLoop && activeIndex < slidesBefore) { - from = -slidesBefore; - if (centeredSlides) offset += swiper.slidesGrid[0]; - } - Object.assign(swiper.virtual, { - from, - to, - offset, - slidesGrid: swiper.slidesGrid, - slidesBefore, - slidesAfter - }); - function onRendered() { - swiper.updateSlides(); - swiper.updateProgress(); - swiper.updateSlidesClasses(); - emit('virtualUpdate'); - } - if (previousFrom === from && previousTo === to && !force) { - if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) { - swiper.slides.forEach(slideEl => { - slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`; - }); - } - swiper.updateProgress(); - emit('virtualUpdate'); - return; - } - if (swiper.params.virtual.renderExternal) { - swiper.params.virtual.renderExternal.call(swiper, { - offset, - from, - to, - slides: function getSlides() { - const slidesToRender = []; - for (let i = from; i <= to; i += 1) { - slidesToRender.push(slides[i]); - } - return slidesToRender; - }() - }); - if (swiper.params.virtual.renderExternalUpdate) { - onRendered(); - } else { - emit('virtualUpdate'); - } - return; - } - const prependIndexes = []; - const appendIndexes = []; - const getSlideIndex = index => { - let slideIndex = index; - if (index < 0) { - slideIndex = slides.length + index; - } else if (slideIndex >= slides.length) { - // eslint-disable-next-line - slideIndex = slideIndex - slides.length; - } - return slideIndex; - }; - if (force) { - swiper.slides.filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`)).forEach(slideEl => { - slideEl.remove(); - }); - } else { - for (let i = previousFrom; i <= previousTo; i += 1) { - if (i < from || i > to) { - const slideIndex = getSlideIndex(i); - swiper.slides.filter(el => el.matches(`.${swiper.params.slideClass}[data-swiper-slide-index="${slideIndex}"], swiper-slide[data-swiper-slide-index="${slideIndex}"]`)).forEach(slideEl => { - slideEl.remove(); - }); - } - } - } - const loopFrom = isLoop ? -slides.length : 0; - const loopTo = isLoop ? slides.length * 2 : slides.length; - for (let i = loopFrom; i < loopTo; i += 1) { - if (i >= from && i <= to) { - const slideIndex = getSlideIndex(i); - if (typeof previousTo === 'undefined' || force) { - appendIndexes.push(slideIndex); - } else { - if (i > previousTo) appendIndexes.push(slideIndex); - if (i < previousFrom) prependIndexes.push(slideIndex); - } - } - } - appendIndexes.forEach(index => { - swiper.slidesEl.append(renderSlide(slides[index], index)); - }); - if (isLoop) { - for (let i = prependIndexes.length - 1; i >= 0; i -= 1) { - const index = prependIndexes[i]; - swiper.slidesEl.prepend(renderSlide(slides[index], index)); - } - } else { - prependIndexes.sort((a, b) => b - a); - prependIndexes.forEach(index => { - swiper.slidesEl.prepend(renderSlide(slides[index], index)); - }); - } - elementChildren(swiper.slidesEl, '.swiper-slide, swiper-slide').forEach(slideEl => { - slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`; - }); - onRendered(); - } - function appendSlide(slides) { - if (typeof slides === 'object' && 'length' in slides) { - for (let i = 0; i < slides.length; i += 1) { - if (slides[i]) swiper.virtual.slides.push(slides[i]); - } - } else { - swiper.virtual.slides.push(slides); - } - update(true); - } - function prependSlide(slides) { - const activeIndex = swiper.activeIndex; - let newActiveIndex = activeIndex + 1; - let numberOfNewSlides = 1; - if (Array.isArray(slides)) { - for (let i = 0; i < slides.length; i += 1) { - if (slides[i]) swiper.virtual.slides.unshift(slides[i]); - } - newActiveIndex = activeIndex + slides.length; - numberOfNewSlides = slides.length; - } else { - swiper.virtual.slides.unshift(slides); - } - if (swiper.params.virtual.cache) { - const cache = swiper.virtual.cache; - const newCache = {}; - Object.keys(cache).forEach(cachedIndex => { - const cachedEl = cache[cachedIndex]; - const cachedElIndex = cachedEl.getAttribute('data-swiper-slide-index'); - if (cachedElIndex) { - cachedEl.setAttribute('data-swiper-slide-index', parseInt(cachedElIndex, 10) + numberOfNewSlides); - } - newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = cachedEl; - }); - swiper.virtual.cache = newCache; - } - update(true); - swiper.slideTo(newActiveIndex, 0); - } - function removeSlide(slidesIndexes) { - if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return; - let activeIndex = swiper.activeIndex; - if (Array.isArray(slidesIndexes)) { - for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) { - if (swiper.params.virtual.cache) { - delete swiper.virtual.cache[slidesIndexes[i]]; - // shift cache indexes - Object.keys(swiper.virtual.cache).forEach(key => { - if (key > slidesIndexes) { - swiper.virtual.cache[key - 1] = swiper.virtual.cache[key]; - swiper.virtual.cache[key - 1].setAttribute('data-swiper-slide-index', key - 1); - delete swiper.virtual.cache[key]; - } - }); - } - swiper.virtual.slides.splice(slidesIndexes[i], 1); - if (slidesIndexes[i] < activeIndex) activeIndex -= 1; - activeIndex = Math.max(activeIndex, 0); - } - } else { - if (swiper.params.virtual.cache) { - delete swiper.virtual.cache[slidesIndexes]; - // shift cache indexes - Object.keys(swiper.virtual.cache).forEach(key => { - if (key > slidesIndexes) { - swiper.virtual.cache[key - 1] = swiper.virtual.cache[key]; - swiper.virtual.cache[key - 1].setAttribute('data-swiper-slide-index', key - 1); - delete swiper.virtual.cache[key]; - } - }); - } - swiper.virtual.slides.splice(slidesIndexes, 1); - if (slidesIndexes < activeIndex) activeIndex -= 1; - activeIndex = Math.max(activeIndex, 0); - } - update(true); - swiper.slideTo(activeIndex, 0); - } - function removeAllSlides() { - swiper.virtual.slides = []; - if (swiper.params.virtual.cache) { - swiper.virtual.cache = {}; - } - update(true); - swiper.slideTo(0, 0); - } - on('beforeInit', () => { - if (!swiper.params.virtual.enabled) return; - let domSlidesAssigned; - if (typeof swiper.passedParams.virtual.slides === 'undefined') { - const slides = [...swiper.slidesEl.children].filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`)); - if (slides && slides.length) { - swiper.virtual.slides = [...slides]; - domSlidesAssigned = true; - slides.forEach((slideEl, slideIndex) => { - slideEl.setAttribute('data-swiper-slide-index', slideIndex); - swiper.virtual.cache[slideIndex] = slideEl; - slideEl.remove(); - }); - } - } - if (!domSlidesAssigned) { - swiper.virtual.slides = swiper.params.virtual.slides; - } - swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`); - swiper.params.watchSlidesProgress = true; - swiper.originalParams.watchSlidesProgress = true; - update(); - }); - on('setTranslate', () => { - if (!swiper.params.virtual.enabled) return; - if (swiper.params.cssMode && !swiper._immediateVirtual) { - clearTimeout(cssModeTimeout); - cssModeTimeout = setTimeout(() => { - update(); - }, 100); - } else { - update(); - } - }); - on('init update resize', () => { - if (!swiper.params.virtual.enabled) return; - if (swiper.params.cssMode) { - setCSSProperty(swiper.wrapperEl, '--swiper-virtual-size', `${swiper.virtualSize}px`); - } - }); - Object.assign(swiper.virtual, { - appendSlide, - prependSlide, - removeSlide, - removeAllSlides, - update - }); - } - - /* eslint-disable consistent-return */ - function Keyboard(_ref) { - let { - swiper, - extendParams, - on, - emit - } = _ref; - const document = getDocument(); - const window = getWindow(); - swiper.keyboard = { - enabled: false - }; - extendParams({ - keyboard: { - enabled: false, - onlyInViewport: true, - pageUpDown: true - } - }); - function handle(event) { - if (!swiper.enabled) return; - const { - rtlTranslate: rtl - } = swiper; - let e = event; - if (e.originalEvent) e = e.originalEvent; // jquery fix - const kc = e.keyCode || e.charCode; - const pageUpDown = swiper.params.keyboard.pageUpDown; - const isPageUp = pageUpDown && kc === 33; - const isPageDown = pageUpDown && kc === 34; - const isArrowLeft = kc === 37; - const isArrowRight = kc === 39; - const isArrowUp = kc === 38; - const isArrowDown = kc === 40; - // Directions locks - if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) { - return false; - } - if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) { - return false; - } - if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) { - return undefined; - } - if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) { - return undefined; - } - if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) { - let inView = false; - // Check that swiper should be inside of visible area of window - if (elementParents(swiper.el, `.${swiper.params.slideClass}, swiper-slide`).length > 0 && elementParents(swiper.el, `.${swiper.params.slideActiveClass}`).length === 0) { - return undefined; - } - const el = swiper.el; - const swiperWidth = el.clientWidth; - const swiperHeight = el.clientHeight; - const windowWidth = window.innerWidth; - const windowHeight = window.innerHeight; - const swiperOffset = elementOffset(el); - if (rtl) swiperOffset.left -= el.scrollLeft; - const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]]; - for (let i = 0; i < swiperCoord.length; i += 1) { - const point = swiperCoord[i]; - if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) { - if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line - inView = true; - } - } - if (!inView) return undefined; - } - if (swiper.isHorizontal()) { - if (isPageUp || isPageDown || isArrowLeft || isArrowRight) { - if (e.preventDefault) e.preventDefault();else e.returnValue = false; - } - if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext(); - if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev(); - } else { - if (isPageUp || isPageDown || isArrowUp || isArrowDown) { - if (e.preventDefault) e.preventDefault();else e.returnValue = false; - } - if (isPageDown || isArrowDown) swiper.slideNext(); - if (isPageUp || isArrowUp) swiper.slidePrev(); - } - emit('keyPress', kc); - return undefined; - } - function enable() { - if (swiper.keyboard.enabled) return; - document.addEventListener('keydown', handle); - swiper.keyboard.enabled = true; - } - function disable() { - if (!swiper.keyboard.enabled) return; - document.removeEventListener('keydown', handle); - swiper.keyboard.enabled = false; - } - on('init', () => { - if (swiper.params.keyboard.enabled) { - enable(); - } - }); - on('destroy', () => { - if (swiper.keyboard.enabled) { - disable(); - } - }); - Object.assign(swiper.keyboard, { - enable, - disable - }); - } - - /* eslint-disable consistent-return */ - function Mousewheel(_ref) { - let { - swiper, - extendParams, - on, - emit - } = _ref; - const window = getWindow(); - extendParams({ - mousewheel: { - enabled: false, - releaseOnEdges: false, - invert: false, - forceToAxis: false, - sensitivity: 1, - eventsTarget: 'container', - thresholdDelta: null, - thresholdTime: null, - noMousewheelClass: 'swiper-no-mousewheel' - } - }); - swiper.mousewheel = { - enabled: false - }; - let timeout; - let lastScrollTime = now(); - let lastEventBeforeSnap; - const recentWheelEvents = []; - function normalize(e) { - // Reasonable defaults - const PIXEL_STEP = 10; - const LINE_HEIGHT = 40; - const PAGE_HEIGHT = 800; - let sX = 0; - let sY = 0; // spinX, spinY - let pX = 0; - let pY = 0; // pixelX, pixelY - - // Legacy - if ('detail' in e) { - sY = e.detail; - } - if ('wheelDelta' in e) { - sY = -e.wheelDelta / 120; - } - if ('wheelDeltaY' in e) { - sY = -e.wheelDeltaY / 120; - } - if ('wheelDeltaX' in e) { - sX = -e.wheelDeltaX / 120; - } - - // side scrolling on FF with DOMMouseScroll - if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) { - sX = sY; - sY = 0; - } - pX = sX * PIXEL_STEP; - pY = sY * PIXEL_STEP; - if ('deltaY' in e) { - pY = e.deltaY; - } - if ('deltaX' in e) { - pX = e.deltaX; - } - if (e.shiftKey && !pX) { - // if user scrolls with shift he wants horizontal scroll - pX = pY; - pY = 0; - } - if ((pX || pY) && e.deltaMode) { - if (e.deltaMode === 1) { - // delta in LINE units - pX *= LINE_HEIGHT; - pY *= LINE_HEIGHT; - } else { - // delta in PAGE units - pX *= PAGE_HEIGHT; - pY *= PAGE_HEIGHT; - } - } - - // Fall-back if spin cannot be determined - if (pX && !sX) { - sX = pX < 1 ? -1 : 1; - } - if (pY && !sY) { - sY = pY < 1 ? -1 : 1; - } - return { - spinX: sX, - spinY: sY, - pixelX: pX, - pixelY: pY - }; - } - function handleMouseEnter() { - if (!swiper.enabled) return; - swiper.mouseEntered = true; - } - function handleMouseLeave() { - if (!swiper.enabled) return; - swiper.mouseEntered = false; - } - function animateSlider(newEvent) { - if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) { - // Prevent if delta of wheel scroll delta is below configured threshold - return false; - } - if (swiper.params.mousewheel.thresholdTime && now() - lastScrollTime < swiper.params.mousewheel.thresholdTime) { - // Prevent if time between scrolls is below configured threshold - return false; - } - - // If the movement is NOT big enough and - // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider): - // Don't go any further (avoid insignificant scroll movement). - if (newEvent.delta >= 6 && now() - lastScrollTime < 60) { - // Return false as a default - return true; - } - // If user is scrolling towards the end: - // If the slider hasn't hit the latest slide or - // if the slider is a loop and - // if the slider isn't moving right now: - // Go to next slide and - // emit a scroll event. - // Else (the user is scrolling towards the beginning) and - // if the slider hasn't hit the first slide or - // if the slider is a loop and - // if the slider isn't moving right now: - // Go to prev slide and - // emit a scroll event. - if (newEvent.direction < 0) { - if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) { - swiper.slideNext(); - emit('scroll', newEvent.raw); - } - } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) { - swiper.slidePrev(); - emit('scroll', newEvent.raw); - } - // If you got here is because an animation has been triggered so store the current time - lastScrollTime = new window.Date().getTime(); - // Return false as a default - return false; - } - function releaseScroll(newEvent) { - const params = swiper.params.mousewheel; - if (newEvent.direction < 0) { - if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) { - // Return true to animate scroll on edges - return true; - } - } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) { - // Return true to animate scroll on edges - return true; - } - return false; - } - function handle(event) { - let e = event; - let disableParentSwiper = true; - if (!swiper.enabled) return; - - // Ignore event if the target or its parents have the swiper-no-mousewheel class - if (event.target.closest(`.${swiper.params.mousewheel.noMousewheelClass}`)) return; - const params = swiper.params.mousewheel; - if (swiper.params.cssMode) { - e.preventDefault(); - } - let targetEl = swiper.el; - if (swiper.params.mousewheel.eventsTarget !== 'container') { - targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget); - } - const targetElContainsTarget = targetEl && targetEl.contains(e.target); - if (!swiper.mouseEntered && !targetElContainsTarget && !params.releaseOnEdges) return true; - if (e.originalEvent) e = e.originalEvent; // jquery fix - let delta = 0; - const rtlFactor = swiper.rtlTranslate ? -1 : 1; - const data = normalize(e); - if (params.forceToAxis) { - if (swiper.isHorizontal()) { - if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true; - } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true; - } else { - delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY; - } - if (delta === 0) return true; - if (params.invert) delta = -delta; - - // Get the scroll positions - let positions = swiper.getTranslate() + delta * params.sensitivity; - if (positions >= swiper.minTranslate()) positions = swiper.minTranslate(); - if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate(); - - // When loop is true: - // the disableParentSwiper will be true. - // When loop is false: - // if the scroll positions is not on edge, - // then the disableParentSwiper will be true. - // if the scroll on edge positions, - // then the disableParentSwiper will be false. - disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate()); - if (disableParentSwiper && swiper.params.nested) e.stopPropagation(); - if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) { - // Register the new event in a variable which stores the relevant data - const newEvent = { - time: now(), - delta: Math.abs(delta), - direction: Math.sign(delta), - raw: event - }; - - // Keep the most recent events - if (recentWheelEvents.length >= 2) { - recentWheelEvents.shift(); // only store the last N events - } - - const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined; - recentWheelEvents.push(newEvent); - - // If there is at least one previous recorded event: - // If direction has changed or - // if the scroll is quicker than the previous one: - // Animate the slider. - // Else (this is the first time the wheel is moved): - // Animate the slider. - if (prevEvent) { - if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) { - animateSlider(newEvent); - } - } else { - animateSlider(newEvent); - } - - // If it's time to release the scroll: - // Return now so you don't hit the preventDefault. - if (releaseScroll(newEvent)) { - return true; - } - } else { - // Freemode or scrollContainer: - - // If we recently snapped after a momentum scroll, then ignore wheel events - // to give time for the deceleration to finish. Stop ignoring after 500 msecs - // or if it's a new scroll (larger delta or inverse sign as last event before - // an end-of-momentum snap). - const newEvent = { - time: now(), - delta: Math.abs(delta), - direction: Math.sign(delta) - }; - const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction; - if (!ignoreWheelEvents) { - lastEventBeforeSnap = undefined; - let position = swiper.getTranslate() + delta * params.sensitivity; - const wasBeginning = swiper.isBeginning; - const wasEnd = swiper.isEnd; - if (position >= swiper.minTranslate()) position = swiper.minTranslate(); - if (position <= swiper.maxTranslate()) position = swiper.maxTranslate(); - swiper.setTransition(0); - swiper.setTranslate(position); - swiper.updateProgress(); - swiper.updateActiveIndex(); - swiper.updateSlidesClasses(); - if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) { - swiper.updateSlidesClasses(); - } - if (swiper.params.loop) { - swiper.loopFix({ - direction: newEvent.direction < 0 ? 'next' : 'prev', - byMousewheel: true - }); - } - if (swiper.params.freeMode.sticky) { - // When wheel scrolling starts with sticky (aka snap) enabled, then detect - // the end of a momentum scroll by storing recent (N=15?) wheel events. - // 1. do all N events have decreasing or same (absolute value) delta? - // 2. did all N events arrive in the last M (M=500?) msecs? - // 3. does the earliest event have an (absolute value) delta that's - // at least P (P=1?) larger than the most recent event's delta? - // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels? - // If 1-4 are "yes" then we're near the end of a momentum scroll deceleration. - // Snap immediately and ignore remaining wheel events in this scroll. - // See comment above for "remaining wheel events in this scroll" determination. - // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event. - clearTimeout(timeout); - timeout = undefined; - if (recentWheelEvents.length >= 15) { - recentWheelEvents.shift(); // only store the last N events - } - - const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined; - const firstEvent = recentWheelEvents[0]; - recentWheelEvents.push(newEvent); - if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) { - // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log. - recentWheelEvents.splice(0); - } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) { - // We're at the end of the deceleration of a momentum scroll, so there's no need - // to wait for more events. Snap ASAP on the next tick. - // Also, because there's some remaining momentum we'll bias the snap in the - // direction of the ongoing scroll because it's better UX for the scroll to snap - // in the same direction as the scroll instead of reversing to snap. Therefore, - // if it's already scrolled more than 20% in the current direction, keep going. - const snapToThreshold = delta > 0 ? 0.8 : 0.2; - lastEventBeforeSnap = newEvent; - recentWheelEvents.splice(0); - timeout = nextTick(() => { - swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold); - }, 0); // no delay; move on next tick - } - - if (!timeout) { - // if we get here, then we haven't detected the end of a momentum scroll, so - // we'll consider a scroll "complete" when there haven't been any wheel events - // for 500ms. - timeout = nextTick(() => { - const snapToThreshold = 0.5; - lastEventBeforeSnap = newEvent; - recentWheelEvents.splice(0); - swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold); - }, 500); - } - } - - // Emit event - if (!ignoreWheelEvents) emit('scroll', e); - - // Stop autoplay - if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop(); - // Return page scroll on edge positions - if (params.releaseOnEdges && (position === swiper.minTranslate() || position === swiper.maxTranslate())) { - return true; - } - } - } - if (e.preventDefault) e.preventDefault();else e.returnValue = false; - return false; - } - function events(method) { - let targetEl = swiper.el; - if (swiper.params.mousewheel.eventsTarget !== 'container') { - targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget); - } - targetEl[method]('mouseenter', handleMouseEnter); - targetEl[method]('mouseleave', handleMouseLeave); - targetEl[method]('wheel', handle); - } - function enable() { - if (swiper.params.cssMode) { - swiper.wrapperEl.removeEventListener('wheel', handle); - return true; - } - if (swiper.mousewheel.enabled) return false; - events('addEventListener'); - swiper.mousewheel.enabled = true; - return true; - } - function disable() { - if (swiper.params.cssMode) { - swiper.wrapperEl.addEventListener(event, handle); - return true; - } - if (!swiper.mousewheel.enabled) return false; - events('removeEventListener'); - swiper.mousewheel.enabled = false; - return true; - } - on('init', () => { - if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) { - disable(); - } - if (swiper.params.mousewheel.enabled) enable(); - }); - on('destroy', () => { - if (swiper.params.cssMode) { - enable(); - } - if (swiper.mousewheel.enabled) disable(); - }); - Object.assign(swiper.mousewheel, { - enable, - disable - }); - } - - function createElementIfNotDefined(swiper, originalParams, params, checkProps) { - if (swiper.params.createElements) { - Object.keys(checkProps).forEach(key => { - if (!params[key] && params.auto === true) { - let element = elementChildren(swiper.el, `.${checkProps[key]}`)[0]; - if (!element) { - element = createElement('div', checkProps[key]); - element.className = checkProps[key]; - swiper.el.append(element); - } - params[key] = element; - originalParams[key] = element; - } - }); - } - return params; - } - - function Navigation(_ref) { - let { - swiper, - extendParams, - on, - emit - } = _ref; - extendParams({ - navigation: { - nextEl: null, - prevEl: null, - hideOnClick: false, - disabledClass: 'swiper-button-disabled', - hiddenClass: 'swiper-button-hidden', - lockClass: 'swiper-button-lock', - navigationDisabledClass: 'swiper-navigation-disabled' - } - }); - swiper.navigation = { - nextEl: null, - prevEl: null - }; - const makeElementsArray = el => (Array.isArray(el) ? el : [el]).filter(e => !!e); - function getEl(el) { - let res; - if (el && typeof el === 'string' && swiper.isElement) { - res = swiper.el.querySelector(el); - if (res) return res; - } - if (el) { - if (typeof el === 'string') res = [...document.querySelectorAll(el)]; - if (swiper.params.uniqueNavElements && typeof el === 'string' && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) { - res = swiper.el.querySelector(el); - } - } - if (el && !res) return el; - // if (Array.isArray(res) && res.length === 1) res = res[0]; - return res; - } - function toggleEl(el, disabled) { - const params = swiper.params.navigation; - el = makeElementsArray(el); - el.forEach(subEl => { - if (subEl) { - subEl.classList[disabled ? 'add' : 'remove'](...params.disabledClass.split(' ')); - if (subEl.tagName === 'BUTTON') subEl.disabled = disabled; - if (swiper.params.watchOverflow && swiper.enabled) { - subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass); - } - } - }); - } - function update() { - // Update Navigation Buttons - const { - nextEl, - prevEl - } = swiper.navigation; - if (swiper.params.loop) { - toggleEl(prevEl, false); - toggleEl(nextEl, false); - return; - } - toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind); - toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind); - } - function onPrevClick(e) { - e.preventDefault(); - if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return; - swiper.slidePrev(); - emit('navigationPrev'); - } - function onNextClick(e) { - e.preventDefault(); - if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return; - swiper.slideNext(); - emit('navigationNext'); - } - function init() { - const params = swiper.params.navigation; - swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, { - nextEl: 'swiper-button-next', - prevEl: 'swiper-button-prev' - }); - if (!(params.nextEl || params.prevEl)) return; - let nextEl = getEl(params.nextEl); - let prevEl = getEl(params.prevEl); - Object.assign(swiper.navigation, { - nextEl, - prevEl - }); - nextEl = makeElementsArray(nextEl); - prevEl = makeElementsArray(prevEl); - const initButton = (el, dir) => { - if (el) { - el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick); - } - if (!swiper.enabled && el) { - el.classList.add(...params.lockClass.split(' ')); - } - }; - nextEl.forEach(el => initButton(el, 'next')); - prevEl.forEach(el => initButton(el, 'prev')); - } - function destroy() { - let { - nextEl, - prevEl - } = swiper.navigation; - nextEl = makeElementsArray(nextEl); - prevEl = makeElementsArray(prevEl); - const destroyButton = (el, dir) => { - el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick); - el.classList.remove(...swiper.params.navigation.disabledClass.split(' ')); - }; - nextEl.forEach(el => destroyButton(el, 'next')); - prevEl.forEach(el => destroyButton(el, 'prev')); - } - on('init', () => { - if (swiper.params.navigation.enabled === false) { - // eslint-disable-next-line - disable(); - } else { - init(); - update(); - } - }); - on('toEdge fromEdge lock unlock', () => { - update(); - }); - on('destroy', () => { - destroy(); - }); - on('enable disable', () => { - let { - nextEl, - prevEl - } = swiper.navigation; - nextEl = makeElementsArray(nextEl); - prevEl = makeElementsArray(prevEl); - if (swiper.enabled) { - update(); - return; - } - [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.add(swiper.params.navigation.lockClass)); - }); - on('click', (_s, e) => { - let { - nextEl, - prevEl - } = swiper.navigation; - nextEl = makeElementsArray(nextEl); - prevEl = makeElementsArray(prevEl); - const targetEl = e.target; - if (swiper.params.navigation.hideOnClick && !prevEl.includes(targetEl) && !nextEl.includes(targetEl)) { - if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return; - let isHidden; - if (nextEl.length) { - isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass); - } else if (prevEl.length) { - isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass); - } - if (isHidden === true) { - emit('navigationShow'); - } else { - emit('navigationHide'); - } - [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.toggle(swiper.params.navigation.hiddenClass)); - } - }); - const enable = () => { - swiper.el.classList.remove(...swiper.params.navigation.navigationDisabledClass.split(' ')); - init(); - update(); - }; - const disable = () => { - swiper.el.classList.add(...swiper.params.navigation.navigationDisabledClass.split(' ')); - destroy(); - }; - Object.assign(swiper.navigation, { - enable, - disable, - update, - init, - destroy - }); - } - - function classesToSelector(classes) { - if (classes === void 0) { - classes = ''; - } - return `.${classes.trim().replace(/([\.:!+\/])/g, '\\$1') // eslint-disable-line - .replace(/ /g, '.')}`; - } - - function Pagination(_ref) { - let { - swiper, - extendParams, - on, - emit - } = _ref; - const pfx = 'swiper-pagination'; - extendParams({ - pagination: { - el: null, - bulletElement: 'span', - clickable: false, - hideOnClick: false, - renderBullet: null, - renderProgressbar: null, - renderFraction: null, - renderCustom: null, - progressbarOpposite: false, - type: 'bullets', - // 'bullets' or 'progressbar' or 'fraction' or 'custom' - dynamicBullets: false, - dynamicMainBullets: 1, - formatFractionCurrent: number => number, - formatFractionTotal: number => number, - bulletClass: `${pfx}-bullet`, - bulletActiveClass: `${pfx}-bullet-active`, - modifierClass: `${pfx}-`, - currentClass: `${pfx}-current`, - totalClass: `${pfx}-total`, - hiddenClass: `${pfx}-hidden`, - progressbarFillClass: `${pfx}-progressbar-fill`, - progressbarOppositeClass: `${pfx}-progressbar-opposite`, - clickableClass: `${pfx}-clickable`, - lockClass: `${pfx}-lock`, - horizontalClass: `${pfx}-horizontal`, - verticalClass: `${pfx}-vertical`, - paginationDisabledClass: `${pfx}-disabled` - } - }); - swiper.pagination = { - el: null, - bullets: [] - }; - let bulletSize; - let dynamicBulletIndex = 0; - const makeElementsArray = el => (Array.isArray(el) ? el : [el]).filter(e => !!e); - function isPaginationDisabled() { - return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0; - } - function setSideBullets(bulletEl, position) { - const { - bulletActiveClass - } = swiper.params.pagination; - if (!bulletEl) return; - bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`]; - if (bulletEl) { - bulletEl.classList.add(`${bulletActiveClass}-${position}`); - bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`]; - if (bulletEl) { - bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`); - } - } - } - function onBulletClick(e) { - const bulletEl = e.target.closest(classesToSelector(swiper.params.pagination.bulletClass)); - if (!bulletEl) { - return; - } - e.preventDefault(); - const index = elementIndex(bulletEl) * swiper.params.slidesPerGroup; - if (swiper.params.loop) { - if (swiper.realIndex === index) return; - swiper.slideToLoop(index); - } else { - swiper.slideTo(index); - } - } - function update() { - // Render || Update Pagination bullets/items - const rtl = swiper.rtl; - const params = swiper.params.pagination; - if (isPaginationDisabled()) return; - let el = swiper.pagination.el; - el = makeElementsArray(el); - // Current/Total - let current; - let previousIndex; - const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length; - const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length; - if (swiper.params.loop) { - previousIndex = swiper.previousRealIndex || 0; - current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex; - } else if (typeof swiper.snapIndex !== 'undefined') { - current = swiper.snapIndex; - previousIndex = swiper.previousSnapIndex; - } else { - previousIndex = swiper.previousIndex || 0; - current = swiper.activeIndex || 0; - } - // Types - if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) { - const bullets = swiper.pagination.bullets; - let firstIndex; - let lastIndex; - let midIndex; - if (params.dynamicBullets) { - bulletSize = elementOuterSize(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true); - el.forEach(subEl => { - subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`; - }); - if (params.dynamicMainBullets > 1 && previousIndex !== undefined) { - dynamicBulletIndex += current - (previousIndex || 0); - if (dynamicBulletIndex > params.dynamicMainBullets - 1) { - dynamicBulletIndex = params.dynamicMainBullets - 1; - } else if (dynamicBulletIndex < 0) { - dynamicBulletIndex = 0; - } - } - firstIndex = Math.max(current - dynamicBulletIndex, 0); - lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1); - midIndex = (lastIndex + firstIndex) / 2; - } - bullets.forEach(bulletEl => { - const classesToRemove = [...['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`)].map(s => typeof s === 'string' && s.includes(' ') ? s.split(' ') : s).flat(); - bulletEl.classList.remove(...classesToRemove); - }); - if (el.length > 1) { - bullets.forEach(bullet => { - const bulletIndex = elementIndex(bullet); - if (bulletIndex === current) { - bullet.classList.add(...params.bulletActiveClass.split(' ')); - } else if (swiper.isElement) { - bullet.setAttribute('part', 'bullet'); - } - if (params.dynamicBullets) { - if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) { - bullet.classList.add(...`${params.bulletActiveClass}-main`.split(' ')); - } - if (bulletIndex === firstIndex) { - setSideBullets(bullet, 'prev'); - } - if (bulletIndex === lastIndex) { - setSideBullets(bullet, 'next'); - } - } - }); - } else { - const bullet = bullets[current]; - if (bullet) { - bullet.classList.add(...params.bulletActiveClass.split(' ')); - } - if (swiper.isElement) { - bullets.forEach((bulletEl, bulletIndex) => { - bulletEl.setAttribute('part', bulletIndex === current ? 'bullet-active' : 'bullet'); - }); - } - if (params.dynamicBullets) { - const firstDisplayedBullet = bullets[firstIndex]; - const lastDisplayedBullet = bullets[lastIndex]; - for (let i = firstIndex; i <= lastIndex; i += 1) { - if (bullets[i]) { - bullets[i].classList.add(...`${params.bulletActiveClass}-main`.split(' ')); - } - } - setSideBullets(firstDisplayedBullet, 'prev'); - setSideBullets(lastDisplayedBullet, 'next'); - } - } - if (params.dynamicBullets) { - const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4); - const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize; - const offsetProp = rtl ? 'right' : 'left'; - bullets.forEach(bullet => { - bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`; - }); - } - } - el.forEach((subEl, subElIndex) => { - if (params.type === 'fraction') { - subEl.querySelectorAll(classesToSelector(params.currentClass)).forEach(fractionEl => { - fractionEl.textContent = params.formatFractionCurrent(current + 1); - }); - subEl.querySelectorAll(classesToSelector(params.totalClass)).forEach(totalEl => { - totalEl.textContent = params.formatFractionTotal(total); - }); - } - if (params.type === 'progressbar') { - let progressbarDirection; - if (params.progressbarOpposite) { - progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal'; - } else { - progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical'; - } - const scale = (current + 1) / total; - let scaleX = 1; - let scaleY = 1; - if (progressbarDirection === 'horizontal') { - scaleX = scale; - } else { - scaleY = scale; - } - subEl.querySelectorAll(classesToSelector(params.progressbarFillClass)).forEach(progressEl => { - progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`; - progressEl.style.transitionDuration = `${swiper.params.speed}ms`; - }); - } - if (params.type === 'custom' && params.renderCustom) { - subEl.innerHTML = params.renderCustom(swiper, current + 1, total); - if (subElIndex === 0) emit('paginationRender', subEl); - } else { - if (subElIndex === 0) emit('paginationRender', subEl); - emit('paginationUpdate', subEl); - } - if (swiper.params.watchOverflow && swiper.enabled) { - subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass); - } - }); - } - function render() { - // Render Container - const params = swiper.params.pagination; - if (isPaginationDisabled()) return; - const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.grid && swiper.params.grid.rows > 1 ? swiper.slides.length / Math.ceil(swiper.params.grid.rows) : swiper.slides.length; - let el = swiper.pagination.el; - el = makeElementsArray(el); - let paginationHTML = ''; - if (params.type === 'bullets') { - let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length; - if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) { - numberOfBullets = slidesLength; - } - for (let i = 0; i < numberOfBullets; i += 1) { - if (params.renderBullet) { - paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass); - } else { - // prettier-ignore - paginationHTML += `<${params.bulletElement} ${swiper.isElement ? 'part="bullet"' : ''} class="${params.bulletClass}">`; - } - } - } - if (params.type === 'fraction') { - if (params.renderFraction) { - paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass); - } else { - paginationHTML = `` + ' / ' + ``; - } - } - if (params.type === 'progressbar') { - if (params.renderProgressbar) { - paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass); - } else { - paginationHTML = ``; - } - } - swiper.pagination.bullets = []; - el.forEach(subEl => { - if (params.type !== 'custom') { - subEl.innerHTML = paginationHTML || ''; - } - if (params.type === 'bullets') { - swiper.pagination.bullets.push(...subEl.querySelectorAll(classesToSelector(params.bulletClass))); - } - }); - if (params.type !== 'custom') { - emit('paginationRender', el[0]); - } - } - function init() { - swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, { - el: 'swiper-pagination' - }); - const params = swiper.params.pagination; - if (!params.el) return; - let el; - if (typeof params.el === 'string' && swiper.isElement) { - el = swiper.el.querySelector(params.el); - } - if (!el && typeof params.el === 'string') { - el = [...document.querySelectorAll(params.el)]; - } - if (!el) { - el = params.el; - } - if (!el || el.length === 0) return; - if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) { - el = [...swiper.el.querySelectorAll(params.el)]; - // check if it belongs to another nested Swiper - if (el.length > 1) { - el = el.filter(subEl => { - if (elementParents(subEl, '.swiper')[0] !== swiper.el) return false; - return true; - })[0]; - } - } - if (Array.isArray(el) && el.length === 1) el = el[0]; - Object.assign(swiper.pagination, { - el - }); - el = makeElementsArray(el); - el.forEach(subEl => { - if (params.type === 'bullets' && params.clickable) { - subEl.classList.add(...(params.clickableClass || '').split(' ')); - } - subEl.classList.add(params.modifierClass + params.type); - subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass); - if (params.type === 'bullets' && params.dynamicBullets) { - subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`); - dynamicBulletIndex = 0; - if (params.dynamicMainBullets < 1) { - params.dynamicMainBullets = 1; - } - } - if (params.type === 'progressbar' && params.progressbarOpposite) { - subEl.classList.add(params.progressbarOppositeClass); - } - if (params.clickable) { - subEl.addEventListener('click', onBulletClick); - } - if (!swiper.enabled) { - subEl.classList.add(params.lockClass); - } - }); - } - function destroy() { - const params = swiper.params.pagination; - if (isPaginationDisabled()) return; - let el = swiper.pagination.el; - if (el) { - el = makeElementsArray(el); - el.forEach(subEl => { - subEl.classList.remove(params.hiddenClass); - subEl.classList.remove(params.modifierClass + params.type); - subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass); - if (params.clickable) { - subEl.classList.remove(...(params.clickableClass || '').split(' ')); - subEl.removeEventListener('click', onBulletClick); - } - }); - } - if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(...params.bulletActiveClass.split(' '))); - } - on('changeDirection', () => { - if (!swiper.pagination || !swiper.pagination.el) return; - const params = swiper.params.pagination; - let { - el - } = swiper.pagination; - el = makeElementsArray(el); - el.forEach(subEl => { - subEl.classList.remove(params.horizontalClass, params.verticalClass); - subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass); - }); - }); - on('init', () => { - if (swiper.params.pagination.enabled === false) { - // eslint-disable-next-line - disable(); - } else { - init(); - render(); - update(); - } - }); - on('activeIndexChange', () => { - if (typeof swiper.snapIndex === 'undefined') { - update(); - } - }); - on('snapIndexChange', () => { - update(); - }); - on('snapGridLengthChange', () => { - render(); - update(); - }); - on('destroy', () => { - destroy(); - }); - on('enable disable', () => { - let { - el - } = swiper.pagination; - if (el) { - el = makeElementsArray(el); - el.forEach(subEl => subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass)); - } - }); - on('lock unlock', () => { - update(); - }); - on('click', (_s, e) => { - const targetEl = e.target; - const el = makeElementsArray(swiper.pagination.el); - if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(swiper.params.pagination.bulletClass)) { - if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return; - const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass); - if (isHidden === true) { - emit('paginationShow'); - } else { - emit('paginationHide'); - } - el.forEach(subEl => subEl.classList.toggle(swiper.params.pagination.hiddenClass)); - } - }); - const enable = () => { - swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass); - let { - el - } = swiper.pagination; - if (el) { - el = makeElementsArray(el); - el.forEach(subEl => subEl.classList.remove(swiper.params.pagination.paginationDisabledClass)); - } - init(); - render(); - update(); - }; - const disable = () => { - swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass); - let { - el - } = swiper.pagination; - if (el) { - el = makeElementsArray(el); - el.forEach(subEl => subEl.classList.add(swiper.params.pagination.paginationDisabledClass)); - } - destroy(); - }; - Object.assign(swiper.pagination, { - enable, - disable, - render, - update, - init, - destroy - }); - } - - function Scrollbar(_ref) { - let { - swiper, - extendParams, - on, - emit - } = _ref; - const document = getDocument(); - let isTouched = false; - let timeout = null; - let dragTimeout = null; - let dragStartPos; - let dragSize; - let trackSize; - let divider; - extendParams({ - scrollbar: { - el: null, - dragSize: 'auto', - hide: false, - draggable: false, - snapOnRelease: true, - lockClass: 'swiper-scrollbar-lock', - dragClass: 'swiper-scrollbar-drag', - scrollbarDisabledClass: 'swiper-scrollbar-disabled', - horizontalClass: `swiper-scrollbar-horizontal`, - verticalClass: `swiper-scrollbar-vertical` - } - }); - swiper.scrollbar = { - el: null, - dragEl: null - }; - function setTranslate() { - if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; - const { - scrollbar, - rtlTranslate: rtl - } = swiper; - const { - dragEl, - el - } = scrollbar; - const params = swiper.params.scrollbar; - const progress = swiper.params.loop ? swiper.progressLoop : swiper.progress; - let newSize = dragSize; - let newPos = (trackSize - dragSize) * progress; - if (rtl) { - newPos = -newPos; - if (newPos > 0) { - newSize = dragSize - newPos; - newPos = 0; - } else if (-newPos + dragSize > trackSize) { - newSize = trackSize + newPos; - } - } else if (newPos < 0) { - newSize = dragSize + newPos; - newPos = 0; - } else if (newPos + dragSize > trackSize) { - newSize = trackSize - newPos; - } - if (swiper.isHorizontal()) { - dragEl.style.transform = `translate3d(${newPos}px, 0, 0)`; - dragEl.style.width = `${newSize}px`; - } else { - dragEl.style.transform = `translate3d(0px, ${newPos}px, 0)`; - dragEl.style.height = `${newSize}px`; - } - if (params.hide) { - clearTimeout(timeout); - el.style.opacity = 1; - timeout = setTimeout(() => { - el.style.opacity = 0; - el.style.transitionDuration = '400ms'; - }, 1000); - } - } - function setTransition(duration) { - if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; - swiper.scrollbar.dragEl.style.transitionDuration = `${duration}ms`; - } - function updateSize() { - if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; - const { - scrollbar - } = swiper; - const { - dragEl, - el - } = scrollbar; - dragEl.style.width = ''; - dragEl.style.height = ''; - trackSize = swiper.isHorizontal() ? el.offsetWidth : el.offsetHeight; - divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0)); - if (swiper.params.scrollbar.dragSize === 'auto') { - dragSize = trackSize * divider; - } else { - dragSize = parseInt(swiper.params.scrollbar.dragSize, 10); - } - if (swiper.isHorizontal()) { - dragEl.style.width = `${dragSize}px`; - } else { - dragEl.style.height = `${dragSize}px`; - } - if (divider >= 1) { - el.style.display = 'none'; - } else { - el.style.display = ''; - } - if (swiper.params.scrollbar.hide) { - el.style.opacity = 0; - } - if (swiper.params.watchOverflow && swiper.enabled) { - scrollbar.el.classList[swiper.isLocked ? 'add' : 'remove'](swiper.params.scrollbar.lockClass); - } - } - function getPointerPosition(e) { - return swiper.isHorizontal() ? e.clientX : e.clientY; - } - function setDragPosition(e) { - const { - scrollbar, - rtlTranslate: rtl - } = swiper; - const { - el - } = scrollbar; - let positionRatio; - positionRatio = (getPointerPosition(e) - elementOffset(el)[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize); - positionRatio = Math.max(Math.min(positionRatio, 1), 0); - if (rtl) { - positionRatio = 1 - positionRatio; - } - const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio; - swiper.updateProgress(position); - swiper.setTranslate(position); - swiper.updateActiveIndex(); - swiper.updateSlidesClasses(); - } - function onDragStart(e) { - const params = swiper.params.scrollbar; - const { - scrollbar, - wrapperEl - } = swiper; - const { - el, - dragEl - } = scrollbar; - isTouched = true; - dragStartPos = e.target === dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null; - e.preventDefault(); - e.stopPropagation(); - wrapperEl.style.transitionDuration = '100ms'; - dragEl.style.transitionDuration = '100ms'; - setDragPosition(e); - clearTimeout(dragTimeout); - el.style.transitionDuration = '0ms'; - if (params.hide) { - el.style.opacity = 1; - } - if (swiper.params.cssMode) { - swiper.wrapperEl.style['scroll-snap-type'] = 'none'; - } - emit('scrollbarDragStart', e); - } - function onDragMove(e) { - const { - scrollbar, - wrapperEl - } = swiper; - const { - el, - dragEl - } = scrollbar; - if (!isTouched) return; - if (e.preventDefault) e.preventDefault();else e.returnValue = false; - setDragPosition(e); - wrapperEl.style.transitionDuration = '0ms'; - el.style.transitionDuration = '0ms'; - dragEl.style.transitionDuration = '0ms'; - emit('scrollbarDragMove', e); - } - function onDragEnd(e) { - const params = swiper.params.scrollbar; - const { - scrollbar, - wrapperEl - } = swiper; - const { - el - } = scrollbar; - if (!isTouched) return; - isTouched = false; - if (swiper.params.cssMode) { - swiper.wrapperEl.style['scroll-snap-type'] = ''; - wrapperEl.style.transitionDuration = ''; - } - if (params.hide) { - clearTimeout(dragTimeout); - dragTimeout = nextTick(() => { - el.style.opacity = 0; - el.style.transitionDuration = '400ms'; - }, 1000); - } - emit('scrollbarDragEnd', e); - if (params.snapOnRelease) { - swiper.slideToClosest(); - } - } - function events(method) { - const { - scrollbar, - params - } = swiper; - const el = scrollbar.el; - if (!el) return; - const target = el; - const activeListener = params.passiveListeners ? { - passive: false, - capture: false - } : false; - const passiveListener = params.passiveListeners ? { - passive: true, - capture: false - } : false; - if (!target) return; - const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener'; - target[eventMethod]('pointerdown', onDragStart, activeListener); - document[eventMethod]('pointermove', onDragMove, activeListener); - document[eventMethod]('pointerup', onDragEnd, passiveListener); - } - function enableDraggable() { - if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; - events('on'); - } - function disableDraggable() { - if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; - events('off'); - } - function init() { - const { - scrollbar, - el: swiperEl - } = swiper; - swiper.params.scrollbar = createElementIfNotDefined(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, { - el: 'swiper-scrollbar' - }); - const params = swiper.params.scrollbar; - if (!params.el) return; - let el; - if (typeof params.el === 'string' && swiper.isElement) { - el = swiper.el.querySelector(params.el); - } - if (!el && typeof params.el === 'string') { - el = document.querySelectorAll(params.el); - if (!el.length) return; - } else if (!el) { - el = params.el; - } - if (swiper.params.uniqueNavElements && typeof params.el === 'string' && el.length > 1 && swiperEl.querySelectorAll(params.el).length === 1) { - el = swiperEl.querySelector(params.el); - } - if (el.length > 0) el = el[0]; - el.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass); - let dragEl; - if (el) { - dragEl = el.querySelector(classesToSelector(swiper.params.scrollbar.dragClass)); - if (!dragEl) { - dragEl = createElement('div', swiper.params.scrollbar.dragClass); - el.append(dragEl); - } - } - Object.assign(scrollbar, { - el, - dragEl - }); - if (params.draggable) { - enableDraggable(); - } - if (el) { - el.classList[swiper.enabled ? 'remove' : 'add'](...classesToTokens(swiper.params.scrollbar.lockClass)); - } - } - function destroy() { - const params = swiper.params.scrollbar; - const el = swiper.scrollbar.el; - if (el) { - el.classList.remove(...classesToTokens(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass)); - } - disableDraggable(); - } - on('init', () => { - if (swiper.params.scrollbar.enabled === false) { - // eslint-disable-next-line - disable(); - } else { - init(); - updateSize(); - setTranslate(); - } - }); - on('update resize observerUpdate lock unlock', () => { - updateSize(); - }); - on('setTranslate', () => { - setTranslate(); - }); - on('setTransition', (_s, duration) => { - setTransition(duration); - }); - on('enable disable', () => { - const { - el - } = swiper.scrollbar; - if (el) { - el.classList[swiper.enabled ? 'remove' : 'add'](...classesToTokens(swiper.params.scrollbar.lockClass)); - } - }); - on('destroy', () => { - destroy(); - }); - const enable = () => { - swiper.el.classList.remove(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass)); - if (swiper.scrollbar.el) { - swiper.scrollbar.el.classList.remove(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass)); - } - init(); - updateSize(); - setTranslate(); - }; - const disable = () => { - swiper.el.classList.add(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass)); - if (swiper.scrollbar.el) { - swiper.scrollbar.el.classList.add(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass)); - } - destroy(); - }; - Object.assign(swiper.scrollbar, { - enable, - disable, - updateSize, - setTranslate, - init, - destroy - }); - } - - function Parallax(_ref) { - let { - swiper, - extendParams, - on - } = _ref; - extendParams({ - parallax: { - enabled: false - } - }); - const elementsSelector = '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]'; - const setTransform = (el, progress) => { - const { - rtl - } = swiper; - const rtlFactor = rtl ? -1 : 1; - const p = el.getAttribute('data-swiper-parallax') || '0'; - let x = el.getAttribute('data-swiper-parallax-x'); - let y = el.getAttribute('data-swiper-parallax-y'); - const scale = el.getAttribute('data-swiper-parallax-scale'); - const opacity = el.getAttribute('data-swiper-parallax-opacity'); - const rotate = el.getAttribute('data-swiper-parallax-rotate'); - if (x || y) { - x = x || '0'; - y = y || '0'; - } else if (swiper.isHorizontal()) { - x = p; - y = '0'; - } else { - y = p; - x = '0'; - } - if (x.indexOf('%') >= 0) { - x = `${parseInt(x, 10) * progress * rtlFactor}%`; - } else { - x = `${x * progress * rtlFactor}px`; - } - if (y.indexOf('%') >= 0) { - y = `${parseInt(y, 10) * progress}%`; - } else { - y = `${y * progress}px`; - } - if (typeof opacity !== 'undefined' && opacity !== null) { - const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress)); - el.style.opacity = currentOpacity; - } - let transform = `translate3d(${x}, ${y}, 0px)`; - if (typeof scale !== 'undefined' && scale !== null) { - const currentScale = scale - (scale - 1) * (1 - Math.abs(progress)); - transform += ` scale(${currentScale})`; - } - if (rotate && typeof rotate !== 'undefined' && rotate !== null) { - const currentRotate = rotate * progress * -1; - transform += ` rotate(${currentRotate}deg)`; - } - el.style.transform = transform; - }; - const setTranslate = () => { - const { - el, - slides, - progress, - snapGrid, - isElement - } = swiper; - const elements = elementChildren(el, elementsSelector); - if (swiper.isElement) { - elements.push(...elementChildren(swiper.hostEl, elementsSelector)); - } - elements.forEach(subEl => { - setTransform(subEl, progress); - }); - slides.forEach((slideEl, slideIndex) => { - let slideProgress = slideEl.progress; - if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') { - slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1); - } - slideProgress = Math.min(Math.max(slideProgress, -1), 1); - slideEl.querySelectorAll(`${elementsSelector}, [data-swiper-parallax-rotate]`).forEach(subEl => { - setTransform(subEl, slideProgress); - }); - }); - }; - const setTransition = function (duration) { - if (duration === void 0) { - duration = swiper.params.speed; - } - const { - el, - hostEl - } = swiper; - const elements = [...el.querySelectorAll(elementsSelector)]; - if (swiper.isElement) { - elements.push(...hostEl.querySelectorAll(elementsSelector)); - } - elements.forEach(parallaxEl => { - let parallaxDuration = parseInt(parallaxEl.getAttribute('data-swiper-parallax-duration'), 10) || duration; - if (duration === 0) parallaxDuration = 0; - parallaxEl.style.transitionDuration = `${parallaxDuration}ms`; - }); - }; - on('beforeInit', () => { - if (!swiper.params.parallax.enabled) return; - swiper.params.watchSlidesProgress = true; - swiper.originalParams.watchSlidesProgress = true; - }); - on('init', () => { - if (!swiper.params.parallax.enabled) return; - setTranslate(); - }); - on('setTranslate', () => { - if (!swiper.params.parallax.enabled) return; - setTranslate(); - }); - on('setTransition', (_swiper, duration) => { - if (!swiper.params.parallax.enabled) return; - setTransition(duration); - }); - } - - function Zoom(_ref) { - let { - swiper, - extendParams, - on, - emit - } = _ref; - const window = getWindow(); - extendParams({ - zoom: { - enabled: false, - maxRatio: 3, - minRatio: 1, - toggle: true, - containerClass: 'swiper-zoom-container', - zoomedSlideClass: 'swiper-slide-zoomed' - } - }); - swiper.zoom = { - enabled: false - }; - let currentScale = 1; - let isScaling = false; - let fakeGestureTouched; - let fakeGestureMoved; - const evCache = []; - const gesture = { - originX: 0, - originY: 0, - slideEl: undefined, - slideWidth: undefined, - slideHeight: undefined, - imageEl: undefined, - imageWrapEl: undefined, - maxRatio: 3 - }; - const image = { - isTouched: undefined, - isMoved: undefined, - currentX: undefined, - currentY: undefined, - minX: undefined, - minY: undefined, - maxX: undefined, - maxY: undefined, - width: undefined, - height: undefined, - startX: undefined, - startY: undefined, - touchesStart: {}, - touchesCurrent: {} - }; - const velocity = { - x: undefined, - y: undefined, - prevPositionX: undefined, - prevPositionY: undefined, - prevTime: undefined - }; - let scale = 1; - Object.defineProperty(swiper.zoom, 'scale', { - get() { - return scale; - }, - set(value) { - if (scale !== value) { - const imageEl = gesture.imageEl; - const slideEl = gesture.slideEl; - emit('zoomChange', value, imageEl, slideEl); - } - scale = value; - } - }); - function getDistanceBetweenTouches() { - if (evCache.length < 2) return 1; - const x1 = evCache[0].pageX; - const y1 = evCache[0].pageY; - const x2 = evCache[1].pageX; - const y2 = evCache[1].pageY; - const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2); - return distance; - } - function getScaleOrigin() { - if (evCache.length < 2) return { - x: null, - y: null - }; - const box = gesture.imageEl.getBoundingClientRect(); - return [(evCache[0].pageX + (evCache[1].pageX - evCache[0].pageX) / 2 - box.x - window.scrollX) / currentScale, (evCache[0].pageY + (evCache[1].pageY - evCache[0].pageY) / 2 - box.y - window.scrollY) / currentScale]; - } - function getSlideSelector() { - return swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`; - } - function eventWithinSlide(e) { - const slideSelector = getSlideSelector(); - if (e.target.matches(slideSelector)) return true; - if (swiper.slides.filter(slideEl => slideEl.contains(e.target)).length > 0) return true; - return false; - } - function eventWithinZoomContainer(e) { - const selector = `.${swiper.params.zoom.containerClass}`; - if (e.target.matches(selector)) return true; - if ([...swiper.hostEl.querySelectorAll(selector)].filter(containerEl => containerEl.contains(e.target)).length > 0) return true; - return false; - } - - // Events - function onGestureStart(e) { - if (e.pointerType === 'mouse') { - evCache.splice(0, evCache.length); - } - if (!eventWithinSlide(e)) return; - const params = swiper.params.zoom; - fakeGestureTouched = false; - fakeGestureMoved = false; - evCache.push(e); - if (evCache.length < 2) { - return; - } - fakeGestureTouched = true; - gesture.scaleStart = getDistanceBetweenTouches(); - if (!gesture.slideEl) { - gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`); - if (!gesture.slideEl) gesture.slideEl = swiper.slides[swiper.activeIndex]; - let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`); - if (imageEl) { - imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0]; - } - gesture.imageEl = imageEl; - if (imageEl) { - gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0]; - } else { - gesture.imageWrapEl = undefined; - } - if (!gesture.imageWrapEl) { - gesture.imageEl = undefined; - return; - } - gesture.maxRatio = gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio; - } - if (gesture.imageEl) { - const [originX, originY] = getScaleOrigin(); - gesture.originX = originX; - gesture.originY = originY; - gesture.imageEl.style.transitionDuration = '0ms'; - } - isScaling = true; - } - function onGestureChange(e) { - if (!eventWithinSlide(e)) return; - const params = swiper.params.zoom; - const zoom = swiper.zoom; - const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId); - if (pointerIndex >= 0) evCache[pointerIndex] = e; - if (evCache.length < 2) { - return; - } - fakeGestureMoved = true; - gesture.scaleMove = getDistanceBetweenTouches(); - if (!gesture.imageEl) { - return; - } - zoom.scale = gesture.scaleMove / gesture.scaleStart * currentScale; - if (zoom.scale > gesture.maxRatio) { - zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5; - } - if (zoom.scale < params.minRatio) { - zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5; - } - gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`; - } - function onGestureEnd(e) { - if (!eventWithinSlide(e)) return; - if (e.pointerType === 'mouse' && e.type === 'pointerout') return; - const params = swiper.params.zoom; - const zoom = swiper.zoom; - const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId); - if (pointerIndex >= 0) evCache.splice(pointerIndex, 1); - if (!fakeGestureTouched || !fakeGestureMoved) { - return; - } - fakeGestureTouched = false; - fakeGestureMoved = false; - if (!gesture.imageEl) return; - zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio); - gesture.imageEl.style.transitionDuration = `${swiper.params.speed}ms`; - gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`; - currentScale = zoom.scale; - isScaling = false; - if (zoom.scale > 1 && gesture.slideEl) { - gesture.slideEl.classList.add(`${params.zoomedSlideClass}`); - } else if (zoom.scale <= 1 && gesture.slideEl) { - gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`); - } - if (zoom.scale === 1) { - gesture.originX = 0; - gesture.originY = 0; - gesture.slideEl = undefined; - } - } - function onTouchStart(e) { - const device = swiper.device; - if (!gesture.imageEl) return; - if (image.isTouched) return; - if (device.android && e.cancelable) e.preventDefault(); - image.isTouched = true; - const event = evCache.length > 0 ? evCache[0] : e; - image.touchesStart.x = event.pageX; - image.touchesStart.y = event.pageY; - } - function onTouchMove(e) { - if (!eventWithinSlide(e) || !eventWithinZoomContainer(e)) return; - const zoom = swiper.zoom; - if (!gesture.imageEl) return; - if (!image.isTouched || !gesture.slideEl) return; - if (!image.isMoved) { - image.width = gesture.imageEl.offsetWidth; - image.height = gesture.imageEl.offsetHeight; - image.startX = getTranslate(gesture.imageWrapEl, 'x') || 0; - image.startY = getTranslate(gesture.imageWrapEl, 'y') || 0; - gesture.slideWidth = gesture.slideEl.offsetWidth; - gesture.slideHeight = gesture.slideEl.offsetHeight; - gesture.imageWrapEl.style.transitionDuration = '0ms'; - } - // Define if we need image drag - const scaledWidth = image.width * zoom.scale; - const scaledHeight = image.height * zoom.scale; - if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return; - image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0); - image.maxX = -image.minX; - image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0); - image.maxY = -image.minY; - image.touchesCurrent.x = evCache.length > 0 ? evCache[0].pageX : e.pageX; - image.touchesCurrent.y = evCache.length > 0 ? evCache[0].pageY : e.pageY; - const touchesDiff = Math.max(Math.abs(image.touchesCurrent.x - image.touchesStart.x), Math.abs(image.touchesCurrent.y - image.touchesStart.y)); - if (touchesDiff > 5) { - swiper.allowClick = false; - } - if (!image.isMoved && !isScaling) { - if (swiper.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) { - image.isTouched = false; - return; - } - if (!swiper.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) { - image.isTouched = false; - return; - } - } - if (e.cancelable) { - e.preventDefault(); - } - e.stopPropagation(); - image.isMoved = true; - const scaleRatio = (zoom.scale - currentScale) / (gesture.maxRatio - swiper.params.zoom.minRatio); - const { - originX, - originY - } = gesture; - image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX + scaleRatio * (image.width - originX * 2); - image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY + scaleRatio * (image.height - originY * 2); - if (image.currentX < image.minX) { - image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8; - } - if (image.currentX > image.maxX) { - image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8; - } - if (image.currentY < image.minY) { - image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8; - } - if (image.currentY > image.maxY) { - image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8; - } - - // Velocity - if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x; - if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y; - if (!velocity.prevTime) velocity.prevTime = Date.now(); - velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2; - velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2; - if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0; - if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0; - velocity.prevPositionX = image.touchesCurrent.x; - velocity.prevPositionY = image.touchesCurrent.y; - velocity.prevTime = Date.now(); - gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`; - } - function onTouchEnd() { - const zoom = swiper.zoom; - if (!gesture.imageEl) return; - if (!image.isTouched || !image.isMoved) { - image.isTouched = false; - image.isMoved = false; - return; - } - image.isTouched = false; - image.isMoved = false; - let momentumDurationX = 300; - let momentumDurationY = 300; - const momentumDistanceX = velocity.x * momentumDurationX; - const newPositionX = image.currentX + momentumDistanceX; - const momentumDistanceY = velocity.y * momentumDurationY; - const newPositionY = image.currentY + momentumDistanceY; - - // Fix duration - if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x); - if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y); - const momentumDuration = Math.max(momentumDurationX, momentumDurationY); - image.currentX = newPositionX; - image.currentY = newPositionY; - // Define if we need image drag - const scaledWidth = image.width * zoom.scale; - const scaledHeight = image.height * zoom.scale; - image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0); - image.maxX = -image.minX; - image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0); - image.maxY = -image.minY; - image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX); - image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY); - gesture.imageWrapEl.style.transitionDuration = `${momentumDuration}ms`; - gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`; - } - function onTransitionEnd() { - const zoom = swiper.zoom; - if (gesture.slideEl && swiper.activeIndex !== swiper.slides.indexOf(gesture.slideEl)) { - if (gesture.imageEl) { - gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)'; - } - if (gesture.imageWrapEl) { - gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)'; - } - gesture.slideEl.classList.remove(`${swiper.params.zoom.zoomedSlideClass}`); - zoom.scale = 1; - currentScale = 1; - gesture.slideEl = undefined; - gesture.imageEl = undefined; - gesture.imageWrapEl = undefined; - gesture.originX = 0; - gesture.originY = 0; - } - } - function zoomIn(e) { - const zoom = swiper.zoom; - const params = swiper.params.zoom; - if (!gesture.slideEl) { - if (e && e.target) { - gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`); - } - if (!gesture.slideEl) { - if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) { - gesture.slideEl = elementChildren(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0]; - } else { - gesture.slideEl = swiper.slides[swiper.activeIndex]; - } - } - let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`); - if (imageEl) { - imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0]; - } - gesture.imageEl = imageEl; - if (imageEl) { - gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0]; - } else { - gesture.imageWrapEl = undefined; - } - } - if (!gesture.imageEl || !gesture.imageWrapEl) return; - if (swiper.params.cssMode) { - swiper.wrapperEl.style.overflow = 'hidden'; - swiper.wrapperEl.style.touchAction = 'none'; - } - gesture.slideEl.classList.add(`${params.zoomedSlideClass}`); - let touchX; - let touchY; - let offsetX; - let offsetY; - let diffX; - let diffY; - let translateX; - let translateY; - let imageWidth; - let imageHeight; - let scaledWidth; - let scaledHeight; - let translateMinX; - let translateMinY; - let translateMaxX; - let translateMaxY; - let slideWidth; - let slideHeight; - if (typeof image.touchesStart.x === 'undefined' && e) { - touchX = e.pageX; - touchY = e.pageY; - } else { - touchX = image.touchesStart.x; - touchY = image.touchesStart.y; - } - const forceZoomRatio = typeof e === 'number' ? e : null; - if (currentScale === 1 && forceZoomRatio) { - touchX = undefined; - touchY = undefined; - } - zoom.scale = forceZoomRatio || gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio; - currentScale = forceZoomRatio || gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio; - if (e && !(currentScale === 1 && forceZoomRatio)) { - slideWidth = gesture.slideEl.offsetWidth; - slideHeight = gesture.slideEl.offsetHeight; - offsetX = elementOffset(gesture.slideEl).left + window.scrollX; - offsetY = elementOffset(gesture.slideEl).top + window.scrollY; - diffX = offsetX + slideWidth / 2 - touchX; - diffY = offsetY + slideHeight / 2 - touchY; - imageWidth = gesture.imageEl.offsetWidth; - imageHeight = gesture.imageEl.offsetHeight; - scaledWidth = imageWidth * zoom.scale; - scaledHeight = imageHeight * zoom.scale; - translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0); - translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0); - translateMaxX = -translateMinX; - translateMaxY = -translateMinY; - translateX = diffX * zoom.scale; - translateY = diffY * zoom.scale; - if (translateX < translateMinX) { - translateX = translateMinX; - } - if (translateX > translateMaxX) { - translateX = translateMaxX; - } - if (translateY < translateMinY) { - translateY = translateMinY; - } - if (translateY > translateMaxY) { - translateY = translateMaxY; - } - } else { - translateX = 0; - translateY = 0; - } - if (forceZoomRatio && zoom.scale === 1) { - gesture.originX = 0; - gesture.originY = 0; - } - gesture.imageWrapEl.style.transitionDuration = '300ms'; - gesture.imageWrapEl.style.transform = `translate3d(${translateX}px, ${translateY}px,0)`; - gesture.imageEl.style.transitionDuration = '300ms'; - gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`; - } - function zoomOut() { - const zoom = swiper.zoom; - const params = swiper.params.zoom; - if (!gesture.slideEl) { - if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) { - gesture.slideEl = elementChildren(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0]; - } else { - gesture.slideEl = swiper.slides[swiper.activeIndex]; - } - let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`); - if (imageEl) { - imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0]; - } - gesture.imageEl = imageEl; - if (imageEl) { - gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0]; - } else { - gesture.imageWrapEl = undefined; - } - } - if (!gesture.imageEl || !gesture.imageWrapEl) return; - if (swiper.params.cssMode) { - swiper.wrapperEl.style.overflow = ''; - swiper.wrapperEl.style.touchAction = ''; - } - zoom.scale = 1; - currentScale = 1; - gesture.imageWrapEl.style.transitionDuration = '300ms'; - gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)'; - gesture.imageEl.style.transitionDuration = '300ms'; - gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)'; - gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`); - gesture.slideEl = undefined; - gesture.originX = 0; - gesture.originY = 0; - } - - // Toggle Zoom - function zoomToggle(e) { - const zoom = swiper.zoom; - if (zoom.scale && zoom.scale !== 1) { - // Zoom Out - zoomOut(); - } else { - // Zoom In - zoomIn(e); - } - } - function getListeners() { - const passiveListener = swiper.params.passiveListeners ? { - passive: true, - capture: false - } : false; - const activeListenerWithCapture = swiper.params.passiveListeners ? { - passive: false, - capture: true - } : true; - return { - passiveListener, - activeListenerWithCapture - }; - } - - // Attach/Detach Events - function enable() { - const zoom = swiper.zoom; - if (zoom.enabled) return; - zoom.enabled = true; - const { - passiveListener, - activeListenerWithCapture - } = getListeners(); - - // Scale image - swiper.wrapperEl.addEventListener('pointerdown', onGestureStart, passiveListener); - swiper.wrapperEl.addEventListener('pointermove', onGestureChange, activeListenerWithCapture); - ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => { - swiper.wrapperEl.addEventListener(eventName, onGestureEnd, passiveListener); - }); - - // Move image - swiper.wrapperEl.addEventListener('pointermove', onTouchMove, activeListenerWithCapture); - } - function disable() { - const zoom = swiper.zoom; - if (!zoom.enabled) return; - zoom.enabled = false; - const { - passiveListener, - activeListenerWithCapture - } = getListeners(); - - // Scale image - swiper.wrapperEl.removeEventListener('pointerdown', onGestureStart, passiveListener); - swiper.wrapperEl.removeEventListener('pointermove', onGestureChange, activeListenerWithCapture); - ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => { - swiper.wrapperEl.removeEventListener(eventName, onGestureEnd, passiveListener); - }); - - // Move image - swiper.wrapperEl.removeEventListener('pointermove', onTouchMove, activeListenerWithCapture); - } - on('init', () => { - if (swiper.params.zoom.enabled) { - enable(); - } - }); - on('destroy', () => { - disable(); - }); - on('touchStart', (_s, e) => { - if (!swiper.zoom.enabled) return; - onTouchStart(e); - }); - on('touchEnd', (_s, e) => { - if (!swiper.zoom.enabled) return; - onTouchEnd(); - }); - on('doubleTap', (_s, e) => { - if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) { - zoomToggle(e); - } - }); - on('transitionEnd', () => { - if (swiper.zoom.enabled && swiper.params.zoom.enabled) { - onTransitionEnd(); - } - }); - on('slideChange', () => { - if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) { - onTransitionEnd(); - } - }); - Object.assign(swiper.zoom, { - enable, - disable, - in: zoomIn, - out: zoomOut, - toggle: zoomToggle - }); - } - - /* eslint no-bitwise: ["error", { "allow": [">>"] }] */ - function Controller(_ref) { - let { - swiper, - extendParams, - on - } = _ref; - extendParams({ - controller: { - control: undefined, - inverse: false, - by: 'slide' // or 'container' - } - }); - - swiper.controller = { - control: undefined - }; - function LinearSpline(x, y) { - const binarySearch = function search() { - let maxIndex; - let minIndex; - let guess; - return (array, val) => { - minIndex = -1; - maxIndex = array.length; - while (maxIndex - minIndex > 1) { - guess = maxIndex + minIndex >> 1; - if (array[guess] <= val) { - minIndex = guess; - } else { - maxIndex = guess; - } - } - return maxIndex; - }; - }(); - this.x = x; - this.y = y; - this.lastIndex = x.length - 1; - // Given an x value (x2), return the expected y2 value: - // (x1,y1) is the known point before given value, - // (x3,y3) is the known point after given value. - let i1; - let i3; - this.interpolate = function interpolate(x2) { - if (!x2) return 0; - - // Get the indexes of x1 and x3 (the array indexes before and after given x2): - i3 = binarySearch(this.x, x2); - i1 = i3 - 1; - - // We have our indexes i1 & i3, so we can calculate already: - // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1 - return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1]; - }; - return this; - } - function getInterpolateFunction(c) { - swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid); - } - function setTranslate(_t, byController) { - const controlled = swiper.controller.control; - let multiplier; - let controlledTranslate; - const Swiper = swiper.constructor; - function setControlledTranslate(c) { - if (c.destroyed) return; - - // this will create an Interpolate function based on the snapGrids - // x is the Grid of the scrolled scroller and y will be the controlled scroller - // it makes sense to create this only once and recall it for the interpolation - // the function does a lot of value caching for performance - const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate; - if (swiper.params.controller.by === 'slide') { - getInterpolateFunction(c); - // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid - // but it did not work out - controlledTranslate = -swiper.controller.spline.interpolate(-translate); - } - if (!controlledTranslate || swiper.params.controller.by === 'container') { - multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate()); - if (Number.isNaN(multiplier) || !Number.isFinite(multiplier)) { - multiplier = 1; - } - controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate(); - } - if (swiper.params.controller.inverse) { - controlledTranslate = c.maxTranslate() - controlledTranslate; - } - c.updateProgress(controlledTranslate); - c.setTranslate(controlledTranslate, swiper); - c.updateActiveIndex(); - c.updateSlidesClasses(); - } - if (Array.isArray(controlled)) { - for (let i = 0; i < controlled.length; i += 1) { - if (controlled[i] !== byController && controlled[i] instanceof Swiper) { - setControlledTranslate(controlled[i]); - } - } - } else if (controlled instanceof Swiper && byController !== controlled) { - setControlledTranslate(controlled); - } - } - function setTransition(duration, byController) { - const Swiper = swiper.constructor; - const controlled = swiper.controller.control; - let i; - function setControlledTransition(c) { - if (c.destroyed) return; - c.setTransition(duration, swiper); - if (duration !== 0) { - c.transitionStart(); - if (c.params.autoHeight) { - nextTick(() => { - c.updateAutoHeight(); - }); - } - elementTransitionEnd(c.wrapperEl, () => { - if (!controlled) return; - c.transitionEnd(); - }); - } - } - if (Array.isArray(controlled)) { - for (i = 0; i < controlled.length; i += 1) { - if (controlled[i] !== byController && controlled[i] instanceof Swiper) { - setControlledTransition(controlled[i]); - } - } - } else if (controlled instanceof Swiper && byController !== controlled) { - setControlledTransition(controlled); - } - } - function removeSpline() { - if (!swiper.controller.control) return; - if (swiper.controller.spline) { - swiper.controller.spline = undefined; - delete swiper.controller.spline; - } - } - on('beforeInit', () => { - if (typeof window !== 'undefined' && ( - // eslint-disable-line - typeof swiper.params.controller.control === 'string' || swiper.params.controller.control instanceof HTMLElement)) { - const controlElement = document.querySelector(swiper.params.controller.control); - if (controlElement && controlElement.swiper) { - swiper.controller.control = controlElement.swiper; - } else if (controlElement) { - const onControllerSwiper = e => { - swiper.controller.control = e.detail[0]; - swiper.update(); - controlElement.removeEventListener('init', onControllerSwiper); - }; - controlElement.addEventListener('init', onControllerSwiper); - } - return; - } - swiper.controller.control = swiper.params.controller.control; - }); - on('update', () => { - removeSpline(); - }); - on('resize', () => { - removeSpline(); - }); - on('observerUpdate', () => { - removeSpline(); - }); - on('setTranslate', (_s, translate, byController) => { - if (!swiper.controller.control || swiper.controller.control.destroyed) return; - swiper.controller.setTranslate(translate, byController); - }); - on('setTransition', (_s, duration, byController) => { - if (!swiper.controller.control || swiper.controller.control.destroyed) return; - swiper.controller.setTransition(duration, byController); - }); - Object.assign(swiper.controller, { - setTranslate, - setTransition - }); - } - - function A11y(_ref) { - let { - swiper, - extendParams, - on - } = _ref; - extendParams({ - a11y: { - enabled: true, - notificationClass: 'swiper-notification', - prevSlideMessage: 'Previous slide', - nextSlideMessage: 'Next slide', - firstSlideMessage: 'This is the first slide', - lastSlideMessage: 'This is the last slide', - paginationBulletMessage: 'Go to slide {{index}}', - slideLabelMessage: '{{index}} / {{slidesLength}}', - containerMessage: null, - containerRoleDescriptionMessage: null, - itemRoleDescriptionMessage: null, - slideRole: 'group', - id: null - } - }); - swiper.a11y = { - clicked: false - }; - let liveRegion = null; - function notify(message) { - const notification = liveRegion; - if (notification.length === 0) return; - notification.innerHTML = ''; - notification.innerHTML = message; - } - const makeElementsArray = el => (Array.isArray(el) ? el : [el]).filter(e => !!e); - function getRandomNumber(size) { - if (size === void 0) { - size = 16; - } - const randomChar = () => Math.round(16 * Math.random()).toString(16); - return 'x'.repeat(size).replace(/x/g, randomChar); - } - function makeElFocusable(el) { - el = makeElementsArray(el); - el.forEach(subEl => { - subEl.setAttribute('tabIndex', '0'); - }); - } - function makeElNotFocusable(el) { - el = makeElementsArray(el); - el.forEach(subEl => { - subEl.setAttribute('tabIndex', '-1'); - }); - } - function addElRole(el, role) { - el = makeElementsArray(el); - el.forEach(subEl => { - subEl.setAttribute('role', role); - }); - } - function addElRoleDescription(el, description) { - el = makeElementsArray(el); - el.forEach(subEl => { - subEl.setAttribute('aria-roledescription', description); - }); - } - function addElControls(el, controls) { - el = makeElementsArray(el); - el.forEach(subEl => { - subEl.setAttribute('aria-controls', controls); - }); - } - function addElLabel(el, label) { - el = makeElementsArray(el); - el.forEach(subEl => { - subEl.setAttribute('aria-label', label); - }); - } - function addElId(el, id) { - el = makeElementsArray(el); - el.forEach(subEl => { - subEl.setAttribute('id', id); - }); - } - function addElLive(el, live) { - el = makeElementsArray(el); - el.forEach(subEl => { - subEl.setAttribute('aria-live', live); - }); - } - function disableEl(el) { - el = makeElementsArray(el); - el.forEach(subEl => { - subEl.setAttribute('aria-disabled', true); - }); - } - function enableEl(el) { - el = makeElementsArray(el); - el.forEach(subEl => { - subEl.setAttribute('aria-disabled', false); - }); - } - function onEnterOrSpaceKey(e) { - if (e.keyCode !== 13 && e.keyCode !== 32) return; - const params = swiper.params.a11y; - const targetEl = e.target; - if (swiper.pagination && swiper.pagination.el && (targetEl === swiper.pagination.el || swiper.pagination.el.contains(e.target))) { - if (!e.target.matches(classesToSelector(swiper.params.pagination.bulletClass))) return; - } - if (swiper.navigation && swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl) { - if (!(swiper.isEnd && !swiper.params.loop)) { - swiper.slideNext(); - } - if (swiper.isEnd) { - notify(params.lastSlideMessage); - } else { - notify(params.nextSlideMessage); - } - } - if (swiper.navigation && swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl) { - if (!(swiper.isBeginning && !swiper.params.loop)) { - swiper.slidePrev(); - } - if (swiper.isBeginning) { - notify(params.firstSlideMessage); - } else { - notify(params.prevSlideMessage); - } - } - if (swiper.pagination && targetEl.matches(classesToSelector(swiper.params.pagination.bulletClass))) { - targetEl.click(); - } - } - function updateNavigation() { - if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return; - const { - nextEl, - prevEl - } = swiper.navigation; - if (prevEl) { - if (swiper.isBeginning) { - disableEl(prevEl); - makeElNotFocusable(prevEl); - } else { - enableEl(prevEl); - makeElFocusable(prevEl); - } - } - if (nextEl) { - if (swiper.isEnd) { - disableEl(nextEl); - makeElNotFocusable(nextEl); - } else { - enableEl(nextEl); - makeElFocusable(nextEl); - } - } - } - function hasPagination() { - return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length; - } - function hasClickablePagination() { - return hasPagination() && swiper.params.pagination.clickable; - } - function updatePagination() { - const params = swiper.params.a11y; - if (!hasPagination()) return; - swiper.pagination.bullets.forEach(bulletEl => { - if (swiper.params.pagination.clickable) { - makeElFocusable(bulletEl); - if (!swiper.params.pagination.renderBullet) { - addElRole(bulletEl, 'button'); - addElLabel(bulletEl, params.paginationBulletMessage.replace(/\{\{index\}\}/, elementIndex(bulletEl) + 1)); - } - } - if (bulletEl.matches(classesToSelector(swiper.params.pagination.bulletActiveClass))) { - bulletEl.setAttribute('aria-current', 'true'); - } else { - bulletEl.removeAttribute('aria-current'); - } - }); - } - const initNavEl = (el, wrapperId, message) => { - makeElFocusable(el); - if (el.tagName !== 'BUTTON') { - addElRole(el, 'button'); - el.addEventListener('keydown', onEnterOrSpaceKey); - } - addElLabel(el, message); - addElControls(el, wrapperId); - }; - const handlePointerDown = () => { - swiper.a11y.clicked = true; - }; - const handlePointerUp = () => { - requestAnimationFrame(() => { - requestAnimationFrame(() => { - if (!swiper.destroyed) { - swiper.a11y.clicked = false; - } - }); - }); - }; - const handleFocus = e => { - if (swiper.a11y.clicked) return; - const slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`); - if (!slideEl || !swiper.slides.includes(slideEl)) return; - const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex; - const isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl); - if (isActive || isVisible) return; - if (e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents) return; - if (swiper.isHorizontal()) { - swiper.el.scrollLeft = 0; - } else { - swiper.el.scrollTop = 0; - } - swiper.slideTo(swiper.slides.indexOf(slideEl), 0); - }; - const initSlides = () => { - const params = swiper.params.a11y; - if (params.itemRoleDescriptionMessage) { - addElRoleDescription(swiper.slides, params.itemRoleDescriptionMessage); - } - if (params.slideRole) { - addElRole(swiper.slides, params.slideRole); - } - const slidesLength = swiper.slides.length; - if (params.slideLabelMessage) { - swiper.slides.forEach((slideEl, index) => { - const slideIndex = swiper.params.loop ? parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10) : index; - const ariaLabelMessage = params.slideLabelMessage.replace(/\{\{index\}\}/, slideIndex + 1).replace(/\{\{slidesLength\}\}/, slidesLength); - addElLabel(slideEl, ariaLabelMessage); - }); - } - }; - const init = () => { - const params = swiper.params.a11y; - swiper.el.append(liveRegion); - - // Container - const containerEl = swiper.el; - if (params.containerRoleDescriptionMessage) { - addElRoleDescription(containerEl, params.containerRoleDescriptionMessage); - } - if (params.containerMessage) { - addElLabel(containerEl, params.containerMessage); - } - - // Wrapper - const wrapperEl = swiper.wrapperEl; - const wrapperId = params.id || wrapperEl.getAttribute('id') || `swiper-wrapper-${getRandomNumber(16)}`; - const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite'; - addElId(wrapperEl, wrapperId); - addElLive(wrapperEl, live); - - // Slide - initSlides(); - - // Navigation - let { - nextEl, - prevEl - } = swiper.navigation ? swiper.navigation : {}; - nextEl = makeElementsArray(nextEl); - prevEl = makeElementsArray(prevEl); - if (nextEl) { - nextEl.forEach(el => initNavEl(el, wrapperId, params.nextSlideMessage)); - } - if (prevEl) { - prevEl.forEach(el => initNavEl(el, wrapperId, params.prevSlideMessage)); - } - - // Pagination - if (hasClickablePagination()) { - const paginationEl = makeElementsArray(swiper.pagination.el); - paginationEl.forEach(el => { - el.addEventListener('keydown', onEnterOrSpaceKey); - }); - } - - // Tab focus - swiper.el.addEventListener('focus', handleFocus, true); - swiper.el.addEventListener('pointerdown', handlePointerDown, true); - swiper.el.addEventListener('pointerup', handlePointerUp, true); - }; - function destroy() { - if (liveRegion) liveRegion.remove(); - let { - nextEl, - prevEl - } = swiper.navigation ? swiper.navigation : {}; - nextEl = makeElementsArray(nextEl); - prevEl = makeElementsArray(prevEl); - if (nextEl) { - nextEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey)); - } - if (prevEl) { - prevEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey)); - } - - // Pagination - if (hasClickablePagination()) { - const paginationEl = makeElementsArray(swiper.pagination.el); - paginationEl.forEach(el => { - el.removeEventListener('keydown', onEnterOrSpaceKey); - }); - } - - // Tab focus - swiper.el.removeEventListener('focus', handleFocus, true); - swiper.el.removeEventListener('pointerdown', handlePointerDown, true); - swiper.el.removeEventListener('pointerup', handlePointerUp, true); - } - on('beforeInit', () => { - liveRegion = createElement('span', swiper.params.a11y.notificationClass); - liveRegion.setAttribute('aria-live', 'assertive'); - liveRegion.setAttribute('aria-atomic', 'true'); - }); - on('afterInit', () => { - if (!swiper.params.a11y.enabled) return; - init(); - }); - on('slidesLengthChange snapGridLengthChange slidesGridLengthChange', () => { - if (!swiper.params.a11y.enabled) return; - initSlides(); - }); - on('fromEdge toEdge afterInit lock unlock', () => { - if (!swiper.params.a11y.enabled) return; - updateNavigation(); - }); - on('paginationUpdate', () => { - if (!swiper.params.a11y.enabled) return; - updatePagination(); - }); - on('destroy', () => { - if (!swiper.params.a11y.enabled) return; - destroy(); - }); - } - - function History(_ref) { - let { - swiper, - extendParams, - on - } = _ref; - extendParams({ - history: { - enabled: false, - root: '', - replaceState: false, - key: 'slides', - keepQuery: false - } - }); - let initialized = false; - let paths = {}; - const slugify = text => { - return text.toString().replace(/\s+/g, '-').replace(/[^\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, ''); - }; - const getPathValues = urlOverride => { - const window = getWindow(); - let location; - if (urlOverride) { - location = new URL(urlOverride); - } else { - location = window.location; - } - const pathArray = location.pathname.slice(1).split('/').filter(part => part !== ''); - const total = pathArray.length; - const key = pathArray[total - 2]; - const value = pathArray[total - 1]; - return { - key, - value - }; - }; - const setHistory = (key, index) => { - const window = getWindow(); - if (!initialized || !swiper.params.history.enabled) return; - let location; - if (swiper.params.url) { - location = new URL(swiper.params.url); - } else { - location = window.location; - } - const slide = swiper.slides[index]; - let value = slugify(slide.getAttribute('data-history')); - if (swiper.params.history.root.length > 0) { - let root = swiper.params.history.root; - if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1); - value = `${root}/${key ? `${key}/` : ''}${value}`; - } else if (!location.pathname.includes(key)) { - value = `${key ? `${key}/` : ''}${value}`; - } - if (swiper.params.history.keepQuery) { - value += location.search; - } - const currentState = window.history.state; - if (currentState && currentState.value === value) { - return; - } - if (swiper.params.history.replaceState) { - window.history.replaceState({ - value - }, null, value); - } else { - window.history.pushState({ - value - }, null, value); - } - }; - const scrollToSlide = (speed, value, runCallbacks) => { - if (value) { - for (let i = 0, length = swiper.slides.length; i < length; i += 1) { - const slide = swiper.slides[i]; - const slideHistory = slugify(slide.getAttribute('data-history')); - if (slideHistory === value) { - const index = swiper.getSlideIndex(slide); - swiper.slideTo(index, speed, runCallbacks); - } - } - } else { - swiper.slideTo(0, speed, runCallbacks); - } - }; - const setHistoryPopState = () => { - paths = getPathValues(swiper.params.url); - scrollToSlide(swiper.params.speed, paths.value, false); - }; - const init = () => { - const window = getWindow(); - if (!swiper.params.history) return; - if (!window.history || !window.history.pushState) { - swiper.params.history.enabled = false; - swiper.params.hashNavigation.enabled = true; - return; - } - initialized = true; - paths = getPathValues(swiper.params.url); - if (!paths.key && !paths.value) { - if (!swiper.params.history.replaceState) { - window.addEventListener('popstate', setHistoryPopState); - } - return; - } - scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit); - if (!swiper.params.history.replaceState) { - window.addEventListener('popstate', setHistoryPopState); - } - }; - const destroy = () => { - const window = getWindow(); - if (!swiper.params.history.replaceState) { - window.removeEventListener('popstate', setHistoryPopState); - } - }; - on('init', () => { - if (swiper.params.history.enabled) { - init(); - } - }); - on('destroy', () => { - if (swiper.params.history.enabled) { - destroy(); - } - }); - on('transitionEnd _freeModeNoMomentumRelease', () => { - if (initialized) { - setHistory(swiper.params.history.key, swiper.activeIndex); - } - }); - on('slideChange', () => { - if (initialized && swiper.params.cssMode) { - setHistory(swiper.params.history.key, swiper.activeIndex); - } - }); - } - - function HashNavigation(_ref) { - let { - swiper, - extendParams, - emit, - on - } = _ref; - let initialized = false; - const document = getDocument(); - const window = getWindow(); - extendParams({ - hashNavigation: { - enabled: false, - replaceState: false, - watchState: false, - getSlideIndex(_s, hash) { - if (swiper.virtual && swiper.params.virtual.enabled) { - const slideWithHash = swiper.slides.filter(slideEl => slideEl.getAttribute('data-hash') === hash)[0]; - if (!slideWithHash) return 0; - const index = parseInt(slideWithHash.getAttribute('data-swiper-slide-index'), 10); - return index; - } - return swiper.getSlideIndex(elementChildren(swiper.slidesEl, `.${swiper.params.slideClass}[data-hash="${hash}"], swiper-slide[data-hash="${hash}"]`)[0]); - } - } - }); - const onHashChange = () => { - emit('hashChange'); - const newHash = document.location.hash.replace('#', ''); - const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index="${swiper.activeIndex}"]`) : swiper.slides[swiper.activeIndex]; - const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') : ''; - if (newHash !== activeSlideHash) { - const newIndex = swiper.params.hashNavigation.getSlideIndex(swiper, newHash); - if (typeof newIndex === 'undefined' || Number.isNaN(newIndex)) return; - swiper.slideTo(newIndex); - } - }; - const setHash = () => { - if (!initialized || !swiper.params.hashNavigation.enabled) return; - const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index="${swiper.activeIndex}"]`) : swiper.slides[swiper.activeIndex]; - const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') || activeSlideEl.getAttribute('data-history') : ''; - if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) { - window.history.replaceState(null, null, `#${activeSlideHash}` || ''); - emit('hashSet'); - } else { - document.location.hash = activeSlideHash || ''; - emit('hashSet'); - } - }; - const init = () => { - if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return; - initialized = true; - const hash = document.location.hash.replace('#', ''); - if (hash) { - const speed = 0; - const index = swiper.params.hashNavigation.getSlideIndex(swiper, hash); - swiper.slideTo(index || 0, speed, swiper.params.runCallbacksOnInit, true); - } - if (swiper.params.hashNavigation.watchState) { - window.addEventListener('hashchange', onHashChange); - } - }; - const destroy = () => { - if (swiper.params.hashNavigation.watchState) { - window.removeEventListener('hashchange', onHashChange); - } - }; - on('init', () => { - if (swiper.params.hashNavigation.enabled) { - init(); - } - }); - on('destroy', () => { - if (swiper.params.hashNavigation.enabled) { - destroy(); - } - }); - on('transitionEnd _freeModeNoMomentumRelease', () => { - if (initialized) { - setHash(); - } - }); - on('slideChange', () => { - if (initialized && swiper.params.cssMode) { - setHash(); - } - }); - } - - /* eslint no-underscore-dangle: "off" */ - /* eslint no-use-before-define: "off" */ - function Autoplay(_ref) { - let { - swiper, - extendParams, - on, - emit, - params - } = _ref; - swiper.autoplay = { - running: false, - paused: false, - timeLeft: 0 - }; - extendParams({ - autoplay: { - enabled: false, - delay: 3000, - waitForTransition: true, - disableOnInteraction: false, - stopOnLastSlide: false, - reverseDirection: false, - pauseOnMouseEnter: false - } - }); - let timeout; - let raf; - let autoplayDelayTotal = params && params.autoplay ? params.autoplay.delay : 3000; - let autoplayDelayCurrent = params && params.autoplay ? params.autoplay.delay : 3000; - let autoplayTimeLeft; - let autoplayStartTime = new Date().getTime(); - let wasPaused; - let isTouched; - let pausedByTouch; - let touchStartTimeout; - let slideChanged; - let pausedByInteraction; - let pausedByPointerEnter; - function onTransitionEnd(e) { - if (!swiper || swiper.destroyed || !swiper.wrapperEl) return; - if (e.target !== swiper.wrapperEl) return; - swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd); - if (pausedByPointerEnter) { - return; - } - resume(); - } - const calcTimeLeft = () => { - if (swiper.destroyed || !swiper.autoplay.running) return; - if (swiper.autoplay.paused) { - wasPaused = true; - } else if (wasPaused) { - autoplayDelayCurrent = autoplayTimeLeft; - wasPaused = false; - } - const timeLeft = swiper.autoplay.paused ? autoplayTimeLeft : autoplayStartTime + autoplayDelayCurrent - new Date().getTime(); - swiper.autoplay.timeLeft = timeLeft; - emit('autoplayTimeLeft', timeLeft, timeLeft / autoplayDelayTotal); - raf = requestAnimationFrame(() => { - calcTimeLeft(); - }); - }; - const getSlideDelay = () => { - let activeSlideEl; - if (swiper.virtual && swiper.params.virtual.enabled) { - activeSlideEl = swiper.slides.filter(slideEl => slideEl.classList.contains('swiper-slide-active'))[0]; - } else { - activeSlideEl = swiper.slides[swiper.activeIndex]; - } - if (!activeSlideEl) return undefined; - const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10); - return currentSlideDelay; - }; - const run = delayForce => { - if (swiper.destroyed || !swiper.autoplay.running) return; - cancelAnimationFrame(raf); - calcTimeLeft(); - let delay = typeof delayForce === 'undefined' ? swiper.params.autoplay.delay : delayForce; - autoplayDelayTotal = swiper.params.autoplay.delay; - autoplayDelayCurrent = swiper.params.autoplay.delay; - const currentSlideDelay = getSlideDelay(); - if (!Number.isNaN(currentSlideDelay) && currentSlideDelay > 0 && typeof delayForce === 'undefined') { - delay = currentSlideDelay; - autoplayDelayTotal = currentSlideDelay; - autoplayDelayCurrent = currentSlideDelay; - } - autoplayTimeLeft = delay; - const speed = swiper.params.speed; - const proceed = () => { - if (!swiper || swiper.destroyed) return; - if (swiper.params.autoplay.reverseDirection) { - if (!swiper.isBeginning || swiper.params.loop || swiper.params.rewind) { - swiper.slidePrev(speed, true, true); - emit('autoplay'); - } else if (!swiper.params.autoplay.stopOnLastSlide) { - swiper.slideTo(swiper.slides.length - 1, speed, true, true); - emit('autoplay'); - } - } else { - if (!swiper.isEnd || swiper.params.loop || swiper.params.rewind) { - swiper.slideNext(speed, true, true); - emit('autoplay'); - } else if (!swiper.params.autoplay.stopOnLastSlide) { - swiper.slideTo(0, speed, true, true); - emit('autoplay'); - } - } - if (swiper.params.cssMode) { - autoplayStartTime = new Date().getTime(); - requestAnimationFrame(() => { - run(); - }); - } - }; - if (delay > 0) { - clearTimeout(timeout); - timeout = setTimeout(() => { - proceed(); - }, delay); - } else { - requestAnimationFrame(() => { - proceed(); - }); - } - - // eslint-disable-next-line - return delay; - }; - const start = () => { - autoplayStartTime = new Date().getTime(); - swiper.autoplay.running = true; - run(); - emit('autoplayStart'); - }; - const stop = () => { - swiper.autoplay.running = false; - clearTimeout(timeout); - cancelAnimationFrame(raf); - emit('autoplayStop'); - }; - const pause = (internal, reset) => { - if (swiper.destroyed || !swiper.autoplay.running) return; - clearTimeout(timeout); - if (!internal) { - pausedByInteraction = true; - } - const proceed = () => { - emit('autoplayPause'); - if (swiper.params.autoplay.waitForTransition) { - swiper.wrapperEl.addEventListener('transitionend', onTransitionEnd); - } else { - resume(); - } - }; - swiper.autoplay.paused = true; - if (reset) { - if (slideChanged) { - autoplayTimeLeft = swiper.params.autoplay.delay; - } - slideChanged = false; - proceed(); - return; - } - const delay = autoplayTimeLeft || swiper.params.autoplay.delay; - autoplayTimeLeft = delay - (new Date().getTime() - autoplayStartTime); - if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) return; - if (autoplayTimeLeft < 0) autoplayTimeLeft = 0; - proceed(); - }; - const resume = () => { - if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop || swiper.destroyed || !swiper.autoplay.running) return; - autoplayStartTime = new Date().getTime(); - if (pausedByInteraction) { - pausedByInteraction = false; - run(autoplayTimeLeft); - } else { - run(); - } - swiper.autoplay.paused = false; - emit('autoplayResume'); - }; - const onVisibilityChange = () => { - if (swiper.destroyed || !swiper.autoplay.running) return; - const document = getDocument(); - if (document.visibilityState === 'hidden') { - pausedByInteraction = true; - pause(true); - } - if (document.visibilityState === 'visible') { - resume(); - } - }; - const onPointerEnter = e => { - if (e.pointerType !== 'mouse') return; - pausedByInteraction = true; - pausedByPointerEnter = true; - if (swiper.animating || swiper.autoplay.paused) return; - pause(true); - }; - const onPointerLeave = e => { - if (e.pointerType !== 'mouse') return; - pausedByPointerEnter = false; - if (swiper.autoplay.paused) { - resume(); - } - }; - const attachMouseEvents = () => { - if (swiper.params.autoplay.pauseOnMouseEnter) { - swiper.el.addEventListener('pointerenter', onPointerEnter); - swiper.el.addEventListener('pointerleave', onPointerLeave); - } - }; - const detachMouseEvents = () => { - swiper.el.removeEventListener('pointerenter', onPointerEnter); - swiper.el.removeEventListener('pointerleave', onPointerLeave); - }; - const attachDocumentEvents = () => { - const document = getDocument(); - document.addEventListener('visibilitychange', onVisibilityChange); - }; - const detachDocumentEvents = () => { - const document = getDocument(); - document.removeEventListener('visibilitychange', onVisibilityChange); - }; - on('init', () => { - if (swiper.params.autoplay.enabled) { - attachMouseEvents(); - attachDocumentEvents(); - start(); - } - }); - on('destroy', () => { - detachMouseEvents(); - detachDocumentEvents(); - if (swiper.autoplay.running) { - stop(); - } - }); - on('_freeModeStaticRelease', () => { - if (pausedByTouch || pausedByInteraction) { - resume(); - } - }); - on('_freeModeNoMomentumRelease', () => { - if (!swiper.params.autoplay.disableOnInteraction) { - pause(true, true); - } else { - stop(); - } - }); - on('beforeTransitionStart', (_s, speed, internal) => { - if (swiper.destroyed || !swiper.autoplay.running) return; - if (internal || !swiper.params.autoplay.disableOnInteraction) { - pause(true, true); - } else { - stop(); - } - }); - on('sliderFirstMove', () => { - if (swiper.destroyed || !swiper.autoplay.running) return; - if (swiper.params.autoplay.disableOnInteraction) { - stop(); - return; - } - isTouched = true; - pausedByTouch = false; - pausedByInteraction = false; - touchStartTimeout = setTimeout(() => { - pausedByInteraction = true; - pausedByTouch = true; - pause(true); - }, 200); - }); - on('touchEnd', () => { - if (swiper.destroyed || !swiper.autoplay.running || !isTouched) return; - clearTimeout(touchStartTimeout); - clearTimeout(timeout); - if (swiper.params.autoplay.disableOnInteraction) { - pausedByTouch = false; - isTouched = false; - return; - } - if (pausedByTouch && swiper.params.cssMode) resume(); - pausedByTouch = false; - isTouched = false; - }); - on('slideChange', () => { - if (swiper.destroyed || !swiper.autoplay.running) return; - slideChanged = true; - }); - Object.assign(swiper.autoplay, { - start, - stop, - pause, - resume - }); - } - - function Thumb(_ref) { - let { - swiper, - extendParams, - on - } = _ref; - extendParams({ - thumbs: { - swiper: null, - multipleActiveThumbs: true, - autoScrollOffset: 0, - slideThumbActiveClass: 'swiper-slide-thumb-active', - thumbsContainerClass: 'swiper-thumbs' - } - }); - let initialized = false; - let swiperCreated = false; - swiper.thumbs = { - swiper: null - }; - function onThumbClick() { - const thumbsSwiper = swiper.thumbs.swiper; - if (!thumbsSwiper || thumbsSwiper.destroyed) return; - const clickedIndex = thumbsSwiper.clickedIndex; - const clickedSlide = thumbsSwiper.clickedSlide; - if (clickedSlide && clickedSlide.classList.contains(swiper.params.thumbs.slideThumbActiveClass)) return; - if (typeof clickedIndex === 'undefined' || clickedIndex === null) return; - let slideToIndex; - if (thumbsSwiper.params.loop) { - slideToIndex = parseInt(thumbsSwiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10); - } else { - slideToIndex = clickedIndex; - } - if (swiper.params.loop) { - swiper.slideToLoop(slideToIndex); - } else { - swiper.slideTo(slideToIndex); - } - } - function init() { - const { - thumbs: thumbsParams - } = swiper.params; - if (initialized) return false; - initialized = true; - const SwiperClass = swiper.constructor; - if (thumbsParams.swiper instanceof SwiperClass) { - swiper.thumbs.swiper = thumbsParams.swiper; - Object.assign(swiper.thumbs.swiper.originalParams, { - watchSlidesProgress: true, - slideToClickedSlide: false - }); - Object.assign(swiper.thumbs.swiper.params, { - watchSlidesProgress: true, - slideToClickedSlide: false - }); - swiper.thumbs.swiper.update(); - } else if (isObject$1(thumbsParams.swiper)) { - const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper); - Object.assign(thumbsSwiperParams, { - watchSlidesProgress: true, - slideToClickedSlide: false - }); - swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams); - swiperCreated = true; - } - swiper.thumbs.swiper.el.classList.add(swiper.params.thumbs.thumbsContainerClass); - swiper.thumbs.swiper.on('tap', onThumbClick); - return true; - } - function update(initial) { - const thumbsSwiper = swiper.thumbs.swiper; - if (!thumbsSwiper || thumbsSwiper.destroyed) return; - const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView; - - // Activate thumbs - let thumbsToActivate = 1; - const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass; - if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) { - thumbsToActivate = swiper.params.slidesPerView; - } - if (!swiper.params.thumbs.multipleActiveThumbs) { - thumbsToActivate = 1; - } - thumbsToActivate = Math.floor(thumbsToActivate); - thumbsSwiper.slides.forEach(slideEl => slideEl.classList.remove(thumbActiveClass)); - if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) { - for (let i = 0; i < thumbsToActivate; i += 1) { - elementChildren(thumbsSwiper.slidesEl, `[data-swiper-slide-index="${swiper.realIndex + i}"]`).forEach(slideEl => { - slideEl.classList.add(thumbActiveClass); - }); - } - } else { - for (let i = 0; i < thumbsToActivate; i += 1) { - if (thumbsSwiper.slides[swiper.realIndex + i]) { - thumbsSwiper.slides[swiper.realIndex + i].classList.add(thumbActiveClass); - } - } - } - const autoScrollOffset = swiper.params.thumbs.autoScrollOffset; - const useOffset = autoScrollOffset && !thumbsSwiper.params.loop; - if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) { - const currentThumbsIndex = thumbsSwiper.activeIndex; - let newThumbsIndex; - let direction; - if (thumbsSwiper.params.loop) { - const newThumbsSlide = thumbsSwiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') === `${swiper.realIndex}`)[0]; - newThumbsIndex = thumbsSwiper.slides.indexOf(newThumbsSlide); - direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev'; - } else { - newThumbsIndex = swiper.realIndex; - direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev'; - } - if (useOffset) { - newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset; - } - if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) { - if (thumbsSwiper.params.centeredSlides) { - if (newThumbsIndex > currentThumbsIndex) { - newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1; - } else { - newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1; - } - } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) ; - thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined); - } - } - } - on('beforeInit', () => { - const { - thumbs - } = swiper.params; - if (!thumbs || !thumbs.swiper) return; - if (typeof thumbs.swiper === 'string' || thumbs.swiper instanceof HTMLElement) { - const document = getDocument(); - const getThumbsElementAndInit = () => { - const thumbsElement = typeof thumbs.swiper === 'string' ? document.querySelector(thumbs.swiper) : thumbs.swiper; - if (thumbsElement && thumbsElement.swiper) { - thumbs.swiper = thumbsElement.swiper; - init(); - update(true); - } else if (thumbsElement) { - const onThumbsSwiper = e => { - thumbs.swiper = e.detail[0]; - thumbsElement.removeEventListener('init', onThumbsSwiper); - init(); - update(true); - thumbs.swiper.update(); - swiper.update(); - }; - thumbsElement.addEventListener('init', onThumbsSwiper); - } - return thumbsElement; - }; - const watchForThumbsToAppear = () => { - if (swiper.destroyed) return; - const thumbsElement = getThumbsElementAndInit(); - if (!thumbsElement) { - requestAnimationFrame(watchForThumbsToAppear); - } - }; - requestAnimationFrame(watchForThumbsToAppear); - } else { - init(); - update(true); - } - }); - on('slideChange update resize observerUpdate', () => { - update(); - }); - on('setTransition', (_s, duration) => { - const thumbsSwiper = swiper.thumbs.swiper; - if (!thumbsSwiper || thumbsSwiper.destroyed) return; - thumbsSwiper.setTransition(duration); - }); - on('beforeDestroy', () => { - const thumbsSwiper = swiper.thumbs.swiper; - if (!thumbsSwiper || thumbsSwiper.destroyed) return; - if (swiperCreated) { - thumbsSwiper.destroy(); - } - }); - Object.assign(swiper.thumbs, { - init, - update - }); - } - - function freeMode(_ref) { - let { - swiper, - extendParams, - emit, - once - } = _ref; - extendParams({ - freeMode: { - enabled: false, - momentum: true, - momentumRatio: 1, - momentumBounce: true, - momentumBounceRatio: 1, - momentumVelocityRatio: 1, - sticky: false, - minimumVelocity: 0.02 - } - }); - function onTouchStart() { - if (swiper.params.cssMode) return; - const translate = swiper.getTranslate(); - swiper.setTranslate(translate); - swiper.setTransition(0); - swiper.touchEventsData.velocities.length = 0; - swiper.freeMode.onTouchEnd({ - currentPos: swiper.rtl ? swiper.translate : -swiper.translate - }); - } - function onTouchMove() { - if (swiper.params.cssMode) return; - const { - touchEventsData: data, - touches - } = swiper; - // Velocity - if (data.velocities.length === 0) { - data.velocities.push({ - position: touches[swiper.isHorizontal() ? 'startX' : 'startY'], - time: data.touchStartTime - }); - } - data.velocities.push({ - position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'], - time: now() - }); - } - function onTouchEnd(_ref2) { - let { - currentPos - } = _ref2; - if (swiper.params.cssMode) return; - const { - params, - wrapperEl, - rtlTranslate: rtl, - snapGrid, - touchEventsData: data - } = swiper; - // Time diff - const touchEndTime = now(); - const timeDiff = touchEndTime - data.touchStartTime; - if (currentPos < -swiper.minTranslate()) { - swiper.slideTo(swiper.activeIndex); - return; - } - if (currentPos > -swiper.maxTranslate()) { - if (swiper.slides.length < snapGrid.length) { - swiper.slideTo(snapGrid.length - 1); - } else { - swiper.slideTo(swiper.slides.length - 1); - } - return; - } - if (params.freeMode.momentum) { - if (data.velocities.length > 1) { - const lastMoveEvent = data.velocities.pop(); - const velocityEvent = data.velocities.pop(); - const distance = lastMoveEvent.position - velocityEvent.position; - const time = lastMoveEvent.time - velocityEvent.time; - swiper.velocity = distance / time; - swiper.velocity /= 2; - if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) { - swiper.velocity = 0; - } - // this implies that the user stopped moving a finger then released. - // There would be no events with distance zero, so the last event is stale. - if (time > 150 || now() - lastMoveEvent.time > 300) { - swiper.velocity = 0; - } - } else { - swiper.velocity = 0; - } - swiper.velocity *= params.freeMode.momentumVelocityRatio; - data.velocities.length = 0; - let momentumDuration = 1000 * params.freeMode.momentumRatio; - const momentumDistance = swiper.velocity * momentumDuration; - let newPosition = swiper.translate + momentumDistance; - if (rtl) newPosition = -newPosition; - let doBounce = false; - let afterBouncePosition; - const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio; - let needsLoopFix; - if (newPosition < swiper.maxTranslate()) { - if (params.freeMode.momentumBounce) { - if (newPosition + swiper.maxTranslate() < -bounceAmount) { - newPosition = swiper.maxTranslate() - bounceAmount; - } - afterBouncePosition = swiper.maxTranslate(); - doBounce = true; - data.allowMomentumBounce = true; - } else { - newPosition = swiper.maxTranslate(); - } - if (params.loop && params.centeredSlides) needsLoopFix = true; - } else if (newPosition > swiper.minTranslate()) { - if (params.freeMode.momentumBounce) { - if (newPosition - swiper.minTranslate() > bounceAmount) { - newPosition = swiper.minTranslate() + bounceAmount; - } - afterBouncePosition = swiper.minTranslate(); - doBounce = true; - data.allowMomentumBounce = true; - } else { - newPosition = swiper.minTranslate(); - } - if (params.loop && params.centeredSlides) needsLoopFix = true; - } else if (params.freeMode.sticky) { - let nextSlide; - for (let j = 0; j < snapGrid.length; j += 1) { - if (snapGrid[j] > -newPosition) { - nextSlide = j; - break; - } - } - if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') { - newPosition = snapGrid[nextSlide]; - } else { - newPosition = snapGrid[nextSlide - 1]; - } - newPosition = -newPosition; - } - if (needsLoopFix) { - once('transitionEnd', () => { - swiper.loopFix(); - }); - } - // Fix duration - if (swiper.velocity !== 0) { - if (rtl) { - momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity); - } else { - momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity); - } - if (params.freeMode.sticky) { - // If freeMode.sticky is active and the user ends a swipe with a slow-velocity - // event, then durations can be 20+ seconds to slide one (or zero!) slides. - // It's easy to see this when simulating touch with mouse events. To fix this, - // limit single-slide swipes to the default slide duration. This also has the - // nice side effect of matching slide speed if the user stopped moving before - // lifting finger or mouse vs. moving slowly before lifting the finger/mouse. - // For faster swipes, also apply limits (albeit higher ones). - const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate); - const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex]; - if (moveDistance < currentSlideSize) { - momentumDuration = params.speed; - } else if (moveDistance < 2 * currentSlideSize) { - momentumDuration = params.speed * 1.5; - } else { - momentumDuration = params.speed * 2.5; - } - } - } else if (params.freeMode.sticky) { - swiper.slideToClosest(); - return; - } - if (params.freeMode.momentumBounce && doBounce) { - swiper.updateProgress(afterBouncePosition); - swiper.setTransition(momentumDuration); - swiper.setTranslate(newPosition); - swiper.transitionStart(true, swiper.swipeDirection); - swiper.animating = true; - elementTransitionEnd(wrapperEl, () => { - if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return; - emit('momentumBounce'); - swiper.setTransition(params.speed); - setTimeout(() => { - swiper.setTranslate(afterBouncePosition); - elementTransitionEnd(wrapperEl, () => { - if (!swiper || swiper.destroyed) return; - swiper.transitionEnd(); - }); - }, 0); - }); - } else if (swiper.velocity) { - emit('_freeModeNoMomentumRelease'); - swiper.updateProgress(newPosition); - swiper.setTransition(momentumDuration); - swiper.setTranslate(newPosition); - swiper.transitionStart(true, swiper.swipeDirection); - if (!swiper.animating) { - swiper.animating = true; - elementTransitionEnd(wrapperEl, () => { - if (!swiper || swiper.destroyed) return; - swiper.transitionEnd(); - }); - } - } else { - swiper.updateProgress(newPosition); - } - swiper.updateActiveIndex(); - swiper.updateSlidesClasses(); - } else if (params.freeMode.sticky) { - swiper.slideToClosest(); - return; - } else if (params.freeMode) { - emit('_freeModeNoMomentumRelease'); - } - if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) { - emit('_freeModeStaticRelease'); - swiper.updateProgress(); - swiper.updateActiveIndex(); - swiper.updateSlidesClasses(); - } - } - Object.assign(swiper, { - freeMode: { - onTouchStart, - onTouchMove, - onTouchEnd - } - }); - } - - function Grid(_ref) { - let { - swiper, - extendParams, - on - } = _ref; - extendParams({ - grid: { - rows: 1, - fill: 'column' - } - }); - let slidesNumberEvenToRows; - let slidesPerRow; - let numFullColumns; - let wasMultiRow; - const getSpaceBetween = () => { - let spaceBetween = swiper.params.spaceBetween; - if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) { - spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size; - } else if (typeof spaceBetween === 'string') { - spaceBetween = parseFloat(spaceBetween); - } - return spaceBetween; - }; - const initSlides = slides => { - const { - slidesPerView - } = swiper.params; - const { - rows, - fill - } = swiper.params.grid; - const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : slides.length; - numFullColumns = Math.floor(slidesLength / rows); - if (Math.floor(slidesLength / rows) === slidesLength / rows) { - slidesNumberEvenToRows = slidesLength; - } else { - slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows; - } - if (slidesPerView !== 'auto' && fill === 'row') { - slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows); - } - slidesPerRow = slidesNumberEvenToRows / rows; - }; - const unsetSlides = () => { - if (swiper.slides) { - swiper.slides.forEach(slide => { - if (slide.swiperSlideGridSet) { - slide.style.height = ''; - slide.style[swiper.getDirectionLabel('margin-top')] = ''; - } - }); - } - }; - const updateSlide = (i, slide, slides) => { - const { - slidesPerGroup - } = swiper.params; - const spaceBetween = getSpaceBetween(); - const { - rows, - fill - } = swiper.params.grid; - const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : slides.length; - // Set slides order - let newSlideOrderIndex; - let column; - let row; - if (fill === 'row' && slidesPerGroup > 1) { - const groupIndex = Math.floor(i / (slidesPerGroup * rows)); - const slideIndexInGroup = i - rows * slidesPerGroup * groupIndex; - const columnsInGroup = groupIndex === 0 ? slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows), slidesPerGroup); - row = Math.floor(slideIndexInGroup / columnsInGroup); - column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup; - newSlideOrderIndex = column + row * slidesNumberEvenToRows / rows; - slide.style.order = newSlideOrderIndex; - } else if (fill === 'column') { - column = Math.floor(i / rows); - row = i - column * rows; - if (column > numFullColumns || column === numFullColumns && row === rows - 1) { - row += 1; - if (row >= rows) { - row = 0; - column += 1; - } - } - } else { - row = Math.floor(i / slidesPerRow); - column = i - row * slidesPerRow; - } - slide.row = row; - slide.column = column; - slide.style.height = `calc((100% - ${(rows - 1) * spaceBetween}px) / ${rows})`; - slide.style[swiper.getDirectionLabel('margin-top')] = row !== 0 ? spaceBetween && `${spaceBetween}px` : ''; - slide.swiperSlideGridSet = true; - }; - const updateWrapperSize = (slideSize, snapGrid) => { - const { - centeredSlides, - roundLengths - } = swiper.params; - const spaceBetween = getSpaceBetween(); - const { - rows - } = swiper.params.grid; - swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows; - swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween; - if (!swiper.params.cssMode) { - swiper.wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`; - } - if (centeredSlides) { - const newSlidesGrid = []; - for (let i = 0; i < snapGrid.length; i += 1) { - let slidesGridItem = snapGrid[i]; - if (roundLengths) slidesGridItem = Math.floor(slidesGridItem); - if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem); - } - snapGrid.splice(0, snapGrid.length); - snapGrid.push(...newSlidesGrid); - } - }; - const onInit = () => { - wasMultiRow = swiper.params.grid && swiper.params.grid.rows > 1; - }; - const onUpdate = () => { - const { - params, - el - } = swiper; - const isMultiRow = params.grid && params.grid.rows > 1; - if (wasMultiRow && !isMultiRow) { - el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`); - numFullColumns = 1; - swiper.emitContainerClasses(); - } else if (!wasMultiRow && isMultiRow) { - el.classList.add(`${params.containerModifierClass}grid`); - if (params.grid.fill === 'column') { - el.classList.add(`${params.containerModifierClass}grid-column`); - } - swiper.emitContainerClasses(); - } - wasMultiRow = isMultiRow; - }; - on('init', onInit); - on('update', onUpdate); - swiper.grid = { - initSlides, - unsetSlides, - updateSlide, - updateWrapperSize - }; - } - - function appendSlide(slides) { - const swiper = this; - const { - params, - slidesEl - } = swiper; - if (params.loop) { - swiper.loopDestroy(); - } - const appendElement = slideEl => { - if (typeof slideEl === 'string') { - const tempDOM = document.createElement('div'); - tempDOM.innerHTML = slideEl; - slidesEl.append(tempDOM.children[0]); - tempDOM.innerHTML = ''; - } else { - slidesEl.append(slideEl); - } - }; - if (typeof slides === 'object' && 'length' in slides) { - for (let i = 0; i < slides.length; i += 1) { - if (slides[i]) appendElement(slides[i]); - } - } else { - appendElement(slides); - } - swiper.recalcSlides(); - if (params.loop) { - swiper.loopCreate(); - } - if (!params.observer || swiper.isElement) { - swiper.update(); - } - } - - function prependSlide(slides) { - const swiper = this; - const { - params, - activeIndex, - slidesEl - } = swiper; - if (params.loop) { - swiper.loopDestroy(); - } - let newActiveIndex = activeIndex + 1; - const prependElement = slideEl => { - if (typeof slideEl === 'string') { - const tempDOM = document.createElement('div'); - tempDOM.innerHTML = slideEl; - slidesEl.prepend(tempDOM.children[0]); - tempDOM.innerHTML = ''; - } else { - slidesEl.prepend(slideEl); - } - }; - if (typeof slides === 'object' && 'length' in slides) { - for (let i = 0; i < slides.length; i += 1) { - if (slides[i]) prependElement(slides[i]); - } - newActiveIndex = activeIndex + slides.length; - } else { - prependElement(slides); - } - swiper.recalcSlides(); - if (params.loop) { - swiper.loopCreate(); - } - if (!params.observer || swiper.isElement) { - swiper.update(); - } - swiper.slideTo(newActiveIndex, 0, false); - } - - function addSlide(index, slides) { - const swiper = this; - const { - params, - activeIndex, - slidesEl - } = swiper; - let activeIndexBuffer = activeIndex; - if (params.loop) { - activeIndexBuffer -= swiper.loopedSlides; - swiper.loopDestroy(); - swiper.recalcSlides(); - } - const baseLength = swiper.slides.length; - if (index <= 0) { - swiper.prependSlide(slides); - return; - } - if (index >= baseLength) { - swiper.appendSlide(slides); - return; - } - let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer; - const slidesBuffer = []; - for (let i = baseLength - 1; i >= index; i -= 1) { - const currentSlide = swiper.slides[i]; - currentSlide.remove(); - slidesBuffer.unshift(currentSlide); - } - if (typeof slides === 'object' && 'length' in slides) { - for (let i = 0; i < slides.length; i += 1) { - if (slides[i]) slidesEl.append(slides[i]); - } - newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer; - } else { - slidesEl.append(slides); - } - for (let i = 0; i < slidesBuffer.length; i += 1) { - slidesEl.append(slidesBuffer[i]); - } - swiper.recalcSlides(); - if (params.loop) { - swiper.loopCreate(); - } - if (!params.observer || swiper.isElement) { - swiper.update(); - } - if (params.loop) { - swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false); - } else { - swiper.slideTo(newActiveIndex, 0, false); - } - } - - function removeSlide(slidesIndexes) { - const swiper = this; - const { - params, - activeIndex - } = swiper; - let activeIndexBuffer = activeIndex; - if (params.loop) { - activeIndexBuffer -= swiper.loopedSlides; - swiper.loopDestroy(); - } - let newActiveIndex = activeIndexBuffer; - let indexToRemove; - if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) { - for (let i = 0; i < slidesIndexes.length; i += 1) { - indexToRemove = slidesIndexes[i]; - if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove(); - if (indexToRemove < newActiveIndex) newActiveIndex -= 1; - } - newActiveIndex = Math.max(newActiveIndex, 0); - } else { - indexToRemove = slidesIndexes; - if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove(); - if (indexToRemove < newActiveIndex) newActiveIndex -= 1; - newActiveIndex = Math.max(newActiveIndex, 0); - } - swiper.recalcSlides(); - if (params.loop) { - swiper.loopCreate(); - } - if (!params.observer || swiper.isElement) { - swiper.update(); - } - if (params.loop) { - swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false); - } else { - swiper.slideTo(newActiveIndex, 0, false); - } - } - - function removeAllSlides() { - const swiper = this; - const slidesIndexes = []; - for (let i = 0; i < swiper.slides.length; i += 1) { - slidesIndexes.push(i); - } - swiper.removeSlide(slidesIndexes); - } - - function Manipulation(_ref) { - let { - swiper - } = _ref; - Object.assign(swiper, { - appendSlide: appendSlide.bind(swiper), - prependSlide: prependSlide.bind(swiper), - addSlide: addSlide.bind(swiper), - removeSlide: removeSlide.bind(swiper), - removeAllSlides: removeAllSlides.bind(swiper) - }); - } - - function effectInit(params) { - const { - effect, - swiper, - on, - setTranslate, - setTransition, - overwriteParams, - perspective, - recreateShadows, - getEffectParams - } = params; - on('beforeInit', () => { - if (swiper.params.effect !== effect) return; - swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`); - if (perspective && perspective()) { - swiper.classNames.push(`${swiper.params.containerModifierClass}3d`); - } - const overwriteParamsResult = overwriteParams ? overwriteParams() : {}; - Object.assign(swiper.params, overwriteParamsResult); - Object.assign(swiper.originalParams, overwriteParamsResult); - }); - on('setTranslate', () => { - if (swiper.params.effect !== effect) return; - setTranslate(); - }); - on('setTransition', (_s, duration) => { - if (swiper.params.effect !== effect) return; - setTransition(duration); - }); - on('transitionEnd', () => { - if (swiper.params.effect !== effect) return; - if (recreateShadows) { - if (!getEffectParams || !getEffectParams().slideShadows) return; - // remove shadows - swiper.slides.forEach(slideEl => { - slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => shadowEl.remove()); - }); - // create new one - recreateShadows(); - } - }); - let requireUpdateOnVirtual; - on('virtualUpdate', () => { - if (swiper.params.effect !== effect) return; - if (!swiper.slides.length) { - requireUpdateOnVirtual = true; - } - requestAnimationFrame(() => { - if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) { - setTranslate(); - requireUpdateOnVirtual = false; - } - }); - }); - } - - function effectTarget(effectParams, slideEl) { - const transformEl = getSlideTransformEl(slideEl); - if (transformEl !== slideEl) { - transformEl.style.backfaceVisibility = 'hidden'; - transformEl.style['-webkit-backface-visibility'] = 'hidden'; - } - return transformEl; - } - - function effectVirtualTransitionEnd(_ref) { - let { - swiper, - duration, - transformElements, - allSlides - } = _ref; - const { - activeIndex - } = swiper; - const getSlide = el => { - if (!el.parentElement) { - // assume shadow root - const slide = swiper.slides.filter(slideEl => slideEl.shadowRoot && slideEl.shadowRoot === el.parentNode)[0]; - return slide; - } - return el.parentElement; - }; - if (swiper.params.virtualTranslate && duration !== 0) { - let eventTriggered = false; - let transitionEndTarget; - if (allSlides) { - transitionEndTarget = transformElements; - } else { - transitionEndTarget = transformElements.filter(transformEl => { - const el = transformEl.classList.contains('swiper-slide-transform') ? getSlide(transformEl) : transformEl; - return swiper.getSlideIndex(el) === activeIndex; - }); - } - transitionEndTarget.forEach(el => { - elementTransitionEnd(el, () => { - if (eventTriggered) return; - if (!swiper || swiper.destroyed) return; - eventTriggered = true; - swiper.animating = false; - const evt = new window.CustomEvent('transitionend', { - bubbles: true, - cancelable: true - }); - swiper.wrapperEl.dispatchEvent(evt); - }); - }); - } - } - - function EffectFade(_ref) { - let { - swiper, - extendParams, - on - } = _ref; - extendParams({ - fadeEffect: { - crossFade: false - } - }); - const setTranslate = () => { - const { - slides - } = swiper; - const params = swiper.params.fadeEffect; - for (let i = 0; i < slides.length; i += 1) { - const slideEl = swiper.slides[i]; - const offset = slideEl.swiperSlideOffset; - let tx = -offset; - if (!swiper.params.virtualTranslate) tx -= swiper.translate; - let ty = 0; - if (!swiper.isHorizontal()) { - ty = tx; - tx = 0; - } - const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(slideEl.progress), 0) : 1 + Math.min(Math.max(slideEl.progress, -1), 0); - const targetEl = effectTarget(params, slideEl); - targetEl.style.opacity = slideOpacity; - targetEl.style.transform = `translate3d(${tx}px, ${ty}px, 0px)`; - } - }; - const setTransition = duration => { - const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl)); - transformElements.forEach(el => { - el.style.transitionDuration = `${duration}ms`; - }); - effectVirtualTransitionEnd({ - swiper, - duration, - transformElements, - allSlides: true - }); - }; - effectInit({ - effect: 'fade', - swiper, - on, - setTranslate, - setTransition, - overwriteParams: () => ({ - slidesPerView: 1, - slidesPerGroup: 1, - watchSlidesProgress: true, - spaceBetween: 0, - virtualTranslate: !swiper.params.cssMode - }) - }); - } - - function EffectCube(_ref) { - let { - swiper, - extendParams, - on - } = _ref; - extendParams({ - cubeEffect: { - slideShadows: true, - shadow: true, - shadowOffset: 20, - shadowScale: 0.94 - } - }); - const createSlideShadows = (slideEl, progress, isHorizontal) => { - let shadowBefore = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top'); - let shadowAfter = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom'); - if (!shadowBefore) { - shadowBefore = createElement('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'left' : 'top'}`.split(' ')); - slideEl.append(shadowBefore); - } - if (!shadowAfter) { - shadowAfter = createElement('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'right' : 'bottom'}`.split(' ')); - slideEl.append(shadowAfter); - } - if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0); - if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0); - }; - const recreateShadows = () => { - // create new ones - const isHorizontal = swiper.isHorizontal(); - swiper.slides.forEach(slideEl => { - const progress = Math.max(Math.min(slideEl.progress, 1), -1); - createSlideShadows(slideEl, progress, isHorizontal); - }); - }; - const setTranslate = () => { - const { - el, - wrapperEl, - slides, - width: swiperWidth, - height: swiperHeight, - rtlTranslate: rtl, - size: swiperSize, - browser - } = swiper; - const params = swiper.params.cubeEffect; - const isHorizontal = swiper.isHorizontal(); - const isVirtual = swiper.virtual && swiper.params.virtual.enabled; - let wrapperRotate = 0; - let cubeShadowEl; - if (params.shadow) { - if (isHorizontal) { - cubeShadowEl = swiper.wrapperEl.querySelector('.swiper-cube-shadow'); - if (!cubeShadowEl) { - cubeShadowEl = createElement('div', 'swiper-cube-shadow'); - swiper.wrapperEl.append(cubeShadowEl); - } - cubeShadowEl.style.height = `${swiperWidth}px`; - } else { - cubeShadowEl = el.querySelector('.swiper-cube-shadow'); - if (!cubeShadowEl) { - cubeShadowEl = createElement('div', 'swiper-cube-shadow'); - el.append(cubeShadowEl); - } - } - } - for (let i = 0; i < slides.length; i += 1) { - const slideEl = slides[i]; - let slideIndex = i; - if (isVirtual) { - slideIndex = parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10); - } - let slideAngle = slideIndex * 90; - let round = Math.floor(slideAngle / 360); - if (rtl) { - slideAngle = -slideAngle; - round = Math.floor(-slideAngle / 360); - } - const progress = Math.max(Math.min(slideEl.progress, 1), -1); - let tx = 0; - let ty = 0; - let tz = 0; - if (slideIndex % 4 === 0) { - tx = -round * 4 * swiperSize; - tz = 0; - } else if ((slideIndex - 1) % 4 === 0) { - tx = 0; - tz = -round * 4 * swiperSize; - } else if ((slideIndex - 2) % 4 === 0) { - tx = swiperSize + round * 4 * swiperSize; - tz = swiperSize; - } else if ((slideIndex - 3) % 4 === 0) { - tx = -swiperSize; - tz = 3 * swiperSize + swiperSize * 4 * round; - } - if (rtl) { - tx = -tx; - } - if (!isHorizontal) { - ty = tx; - tx = 0; - } - const transform = `rotateX(${isHorizontal ? 0 : -slideAngle}deg) rotateY(${isHorizontal ? slideAngle : 0}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`; - if (progress <= 1 && progress > -1) { - wrapperRotate = slideIndex * 90 + progress * 90; - if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90; - if (swiper.browser && swiper.browser.isSafari && Math.abs(wrapperRotate) / 90 % 2 === 1) { - wrapperRotate += 0.001; - } - } - slideEl.style.transform = transform; - if (params.slideShadows) { - createSlideShadows(slideEl, progress, isHorizontal); - } - } - wrapperEl.style.transformOrigin = `50% 50% -${swiperSize / 2}px`; - wrapperEl.style['-webkit-transform-origin'] = `50% 50% -${swiperSize / 2}px`; - if (params.shadow) { - if (isHorizontal) { - cubeShadowEl.style.transform = `translate3d(0px, ${swiperWidth / 2 + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(89.99deg) rotateZ(0deg) scale(${params.shadowScale})`; - } else { - const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90; - const multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2); - const scale1 = params.shadowScale; - const scale2 = params.shadowScale / multiplier; - const offset = params.shadowOffset; - cubeShadowEl.style.transform = `scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${swiperHeight / 2 + offset}px, ${-swiperHeight / 2 / scale2}px) rotateX(-89.99deg)`; - } - } - const zFactor = (browser.isSafari || browser.isWebView) && browser.needPerspectiveFix ? -swiperSize / 2 : 0; - wrapperEl.style.transform = `translate3d(0px,0,${zFactor}px) rotateX(${swiper.isHorizontal() ? 0 : wrapperRotate}deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate : 0}deg)`; - wrapperEl.style.setProperty('--swiper-cube-translate-z', `${zFactor}px`); - }; - const setTransition = duration => { - const { - el, - slides - } = swiper; - slides.forEach(slideEl => { - slideEl.style.transitionDuration = `${duration}ms`; - slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(subEl => { - subEl.style.transitionDuration = `${duration}ms`; - }); - }); - if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) { - const shadowEl = el.querySelector('.swiper-cube-shadow'); - if (shadowEl) shadowEl.style.transitionDuration = `${duration}ms`; - } - }; - effectInit({ - effect: 'cube', - swiper, - on, - setTranslate, - setTransition, - recreateShadows, - getEffectParams: () => swiper.params.cubeEffect, - perspective: () => true, - overwriteParams: () => ({ - slidesPerView: 1, - slidesPerGroup: 1, - watchSlidesProgress: true, - resistanceRatio: 0, - spaceBetween: 0, - centeredSlides: false, - virtualTranslate: true - }) - }); - } - - function createShadow(suffix, slideEl, side) { - const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}${suffix ? ` swiper-slide-shadow-${suffix}` : ''}`; - const shadowContainer = getSlideTransformEl(slideEl); - let shadowEl = shadowContainer.querySelector(`.${shadowClass.split(' ').join('.')}`); - if (!shadowEl) { - shadowEl = createElement('div', shadowClass.split(' ')); - shadowContainer.append(shadowEl); - } - return shadowEl; - } - - function EffectFlip(_ref) { - let { - swiper, - extendParams, - on - } = _ref; - extendParams({ - flipEffect: { - slideShadows: true, - limitRotation: true - } - }); - const createSlideShadows = (slideEl, progress) => { - let shadowBefore = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top'); - let shadowAfter = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom'); - if (!shadowBefore) { - shadowBefore = createShadow('flip', slideEl, swiper.isHorizontal() ? 'left' : 'top'); - } - if (!shadowAfter) { - shadowAfter = createShadow('flip', slideEl, swiper.isHorizontal() ? 'right' : 'bottom'); - } - if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0); - if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0); - }; - const recreateShadows = () => { - // Set shadows - swiper.params.flipEffect; - swiper.slides.forEach(slideEl => { - let progress = slideEl.progress; - if (swiper.params.flipEffect.limitRotation) { - progress = Math.max(Math.min(slideEl.progress, 1), -1); - } - createSlideShadows(slideEl, progress); - }); - }; - const setTranslate = () => { - const { - slides, - rtlTranslate: rtl - } = swiper; - const params = swiper.params.flipEffect; - for (let i = 0; i < slides.length; i += 1) { - const slideEl = slides[i]; - let progress = slideEl.progress; - if (swiper.params.flipEffect.limitRotation) { - progress = Math.max(Math.min(slideEl.progress, 1), -1); - } - const offset = slideEl.swiperSlideOffset; - const rotate = -180 * progress; - let rotateY = rotate; - let rotateX = 0; - let tx = swiper.params.cssMode ? -offset - swiper.translate : -offset; - let ty = 0; - if (!swiper.isHorizontal()) { - ty = tx; - tx = 0; - rotateX = -rotateY; - rotateY = 0; - } else if (rtl) { - rotateY = -rotateY; - } - if (swiper.browser && swiper.browser.isSafari) { - if (Math.abs(rotateY) / 90 % 2 === 1) { - rotateY += 0.001; - } - if (Math.abs(rotateX) / 90 % 2 === 1) { - rotateX += 0.001; - } - } - slideEl.style.zIndex = -Math.abs(Math.round(progress)) + slides.length; - if (params.slideShadows) { - createSlideShadows(slideEl, progress); - } - const transform = `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`; - const targetEl = effectTarget(params, slideEl); - targetEl.style.transform = transform; - } - }; - const setTransition = duration => { - const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl)); - transformElements.forEach(el => { - el.style.transitionDuration = `${duration}ms`; - el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => { - shadowEl.style.transitionDuration = `${duration}ms`; - }); - }); - effectVirtualTransitionEnd({ - swiper, - duration, - transformElements - }); - }; - effectInit({ - effect: 'flip', - swiper, - on, - setTranslate, - setTransition, - recreateShadows, - getEffectParams: () => swiper.params.flipEffect, - perspective: () => true, - overwriteParams: () => ({ - slidesPerView: 1, - slidesPerGroup: 1, - watchSlidesProgress: true, - spaceBetween: 0, - virtualTranslate: !swiper.params.cssMode - }) - }); - } - - function EffectCoverflow(_ref) { - let { - swiper, - extendParams, - on - } = _ref; - extendParams({ - coverflowEffect: { - rotate: 50, - stretch: 0, - depth: 100, - scale: 1, - modifier: 1, - slideShadows: true - } - }); - const setTranslate = () => { - const { - width: swiperWidth, - height: swiperHeight, - slides, - slidesSizesGrid - } = swiper; - const params = swiper.params.coverflowEffect; - const isHorizontal = swiper.isHorizontal(); - const transform = swiper.translate; - const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2; - const rotate = isHorizontal ? params.rotate : -params.rotate; - const translate = params.depth; - // Each slide offset from center - for (let i = 0, length = slides.length; i < length; i += 1) { - const slideEl = slides[i]; - const slideSize = slidesSizesGrid[i]; - const slideOffset = slideEl.swiperSlideOffset; - const centerOffset = (center - slideOffset - slideSize / 2) / slideSize; - const offsetMultiplier = typeof params.modifier === 'function' ? params.modifier(centerOffset) : centerOffset * params.modifier; - let rotateY = isHorizontal ? rotate * offsetMultiplier : 0; - let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier; - // var rotateZ = 0 - let translateZ = -translate * Math.abs(offsetMultiplier); - let stretch = params.stretch; - // Allow percentage to make a relative stretch for responsive sliders - if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) { - stretch = parseFloat(params.stretch) / 100 * slideSize; - } - let translateY = isHorizontal ? 0 : stretch * offsetMultiplier; - let translateX = isHorizontal ? stretch * offsetMultiplier : 0; - let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier); - - // Fix for ultra small values - if (Math.abs(translateX) < 0.001) translateX = 0; - if (Math.abs(translateY) < 0.001) translateY = 0; - if (Math.abs(translateZ) < 0.001) translateZ = 0; - if (Math.abs(rotateY) < 0.001) rotateY = 0; - if (Math.abs(rotateX) < 0.001) rotateX = 0; - if (Math.abs(scale) < 0.001) scale = 0; - if (swiper.browser && swiper.browser.isSafari) { - if (Math.abs(rotateY) / 90 % 2 === 1) { - rotateY += 0.001; - } - if (Math.abs(rotateX) / 90 % 2 === 1) { - rotateX += 0.001; - } - } - const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${rotateX}deg) rotateY(${rotateY}deg) scale(${scale})`; - const targetEl = effectTarget(params, slideEl); - targetEl.style.transform = slideTransform; - slideEl.style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1; - if (params.slideShadows) { - // Set shadows - let shadowBeforeEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top'); - let shadowAfterEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom'); - if (!shadowBeforeEl) { - shadowBeforeEl = createShadow('coverflow', slideEl, isHorizontal ? 'left' : 'top'); - } - if (!shadowAfterEl) { - shadowAfterEl = createShadow('coverflow', slideEl, isHorizontal ? 'right' : 'bottom'); - } - if (shadowBeforeEl) shadowBeforeEl.style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0; - if (shadowAfterEl) shadowAfterEl.style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0; - } - } - }; - const setTransition = duration => { - const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl)); - transformElements.forEach(el => { - el.style.transitionDuration = `${duration}ms`; - el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => { - shadowEl.style.transitionDuration = `${duration}ms`; - }); - }); - }; - effectInit({ - effect: 'coverflow', - swiper, - on, - setTranslate, - setTransition, - perspective: () => true, - overwriteParams: () => ({ - watchSlidesProgress: true - }) - }); - } - - function EffectCreative(_ref) { - let { - swiper, - extendParams, - on - } = _ref; - extendParams({ - creativeEffect: { - limitProgress: 1, - shadowPerProgress: false, - progressMultiplier: 1, - perspective: true, - 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 getTranslateValue = value => { - if (typeof value === 'string') return value; - return `${value}px`; - }; - const setTranslate = () => { - const { - slides, - wrapperEl, - slidesSizesGrid - } = swiper; - const params = swiper.params.creativeEffect; - const { - progressMultiplier: multiplier - } = params; - const isCenteredSlides = swiper.params.centeredSlides; - if (isCenteredSlides) { - const margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0; - wrapperEl.style.transform = `translateX(calc(50% - ${margin}px))`; - } - for (let i = 0; i < slides.length; i += 1) { - const slideEl = slides[i]; - const slideProgress = slideEl.progress; - const progress = Math.min(Math.max(slideEl.progress, -params.limitProgress), params.limitProgress); - let originalProgress = progress; - if (!isCenteredSlides) { - originalProgress = Math.min(Math.max(slideEl.originalProgress, -params.limitProgress), params.limitProgress); - } - const offset = slideEl.swiperSlideOffset; - const t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0]; - const r = [0, 0, 0]; - let custom = false; - if (!swiper.isHorizontal()) { - t[1] = t[0]; - t[0] = 0; - } - let data = { - translate: [0, 0, 0], - rotate: [0, 0, 0], - scale: 1, - opacity: 1 - }; - if (progress < 0) { - data = params.next; - custom = true; - } else if (progress > 0) { - data = params.prev; - custom = true; - } - // set translate - t.forEach((value, index) => { - t[index] = `calc(${value}px + (${getTranslateValue(data.translate[index])} * ${Math.abs(progress * multiplier)}))`; - }); - // set rotates - r.forEach((value, index) => { - let val = data.rotate[index] * Math.abs(progress * multiplier); - if (swiper.browser && swiper.browser.isSafari && Math.abs(val) / 90 % 2 === 1) { - val += 0.001; - } - r[index] = val; - }); - slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length; - const translateString = t.join(', '); - const rotateString = `rotateX(${r[0]}deg) rotateY(${r[1]}deg) rotateZ(${r[2]}deg)`; - const scaleString = originalProgress < 0 ? `scale(${1 + (1 - data.scale) * originalProgress * multiplier})` : `scale(${1 - (1 - data.scale) * originalProgress * multiplier})`; - const opacityString = originalProgress < 0 ? 1 + (1 - data.opacity) * originalProgress * multiplier : 1 - (1 - data.opacity) * originalProgress * multiplier; - const transform = `translate3d(${translateString}) ${rotateString} ${scaleString}`; - - // Set shadows - if (custom && data.shadow || !custom) { - let shadowEl = slideEl.querySelector('.swiper-slide-shadow'); - if (!shadowEl && data.shadow) { - shadowEl = createShadow('creative', slideEl); - } - if (shadowEl) { - const shadowOpacity = params.shadowPerProgress ? progress * (1 / params.limitProgress) : progress; - shadowEl.style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1); - } - } - const targetEl = effectTarget(params, slideEl); - targetEl.style.transform = transform; - targetEl.style.opacity = opacityString; - if (data.origin) { - targetEl.style.transformOrigin = data.origin; - } - } - }; - const setTransition = duration => { - const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl)); - transformElements.forEach(el => { - el.style.transitionDuration = `${duration}ms`; - el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => { - shadowEl.style.transitionDuration = `${duration}ms`; - }); - }); - effectVirtualTransitionEnd({ - swiper, - duration, - transformElements, - allSlides: true - }); - }; - effectInit({ - effect: 'creative', - swiper, - on, - setTranslate, - setTransition, - perspective: () => swiper.params.creativeEffect.perspective, - overwriteParams: () => ({ - watchSlidesProgress: true, - virtualTranslate: !swiper.params.cssMode - }) - }); - } - - function EffectCards(_ref) { - let { - swiper, - extendParams, - on - } = _ref; - extendParams({ - cardsEffect: { - slideShadows: true, - rotate: true, - perSlideRotate: 2, - perSlideOffset: 8 - } - }); - const setTranslate = () => { - const { - slides, - activeIndex, - rtlTranslate: rtl - } = swiper; - const params = swiper.params.cardsEffect; - const { - startTranslate, - isTouched - } = swiper.touchEventsData; - const currentTranslate = rtl ? -swiper.translate : swiper.translate; - for (let i = 0; i < slides.length; i += 1) { - const slideEl = slides[i]; - const slideProgress = slideEl.progress; - const progress = Math.min(Math.max(slideProgress, -4), 4); - let offset = slideEl.swiperSlideOffset; - if (swiper.params.centeredSlides && !swiper.params.cssMode) { - swiper.wrapperEl.style.transform = `translateX(${swiper.minTranslate()}px)`; - } - if (swiper.params.centeredSlides && swiper.params.cssMode) { - offset -= slides[0].swiperSlideOffset; - } - let tX = swiper.params.cssMode ? -offset - swiper.translate : -offset; - let tY = 0; - const tZ = -100 * Math.abs(progress); - let scale = 1; - let rotate = -params.perSlideRotate * progress; - let tXAdd = params.perSlideOffset - Math.abs(progress) * 0.75; - const slideIndex = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.from + i : i; - const isSwipeToNext = (slideIndex === activeIndex || slideIndex === activeIndex - 1) && progress > 0 && progress < 1 && (isTouched || swiper.params.cssMode) && currentTranslate < startTranslate; - const isSwipeToPrev = (slideIndex === activeIndex || slideIndex === activeIndex + 1) && progress < 0 && progress > -1 && (isTouched || swiper.params.cssMode) && currentTranslate > startTranslate; - if (isSwipeToNext || isSwipeToPrev) { - const subProgress = (1 - Math.abs((Math.abs(progress) - 0.5) / 0.5)) ** 0.5; - rotate += -28 * progress * subProgress; - scale += -0.5 * subProgress; - tXAdd += 96 * subProgress; - tY = `${-25 * subProgress * Math.abs(progress)}%`; - } - if (progress < 0) { - // next - tX = `calc(${tX}px ${rtl ? '-' : '+'} (${tXAdd * Math.abs(progress)}%))`; - } else if (progress > 0) { - // prev - tX = `calc(${tX}px ${rtl ? '-' : '+'} (-${tXAdd * Math.abs(progress)}%))`; - } else { - tX = `${tX}px`; - } - if (!swiper.isHorizontal()) { - const prevY = tY; - tY = tX; - tX = prevY; - } - const scaleString = progress < 0 ? `${1 + (1 - scale) * progress}` : `${1 - (1 - scale) * progress}`; - - /* eslint-disable */ - const transform = ` - translate3d(${tX}, ${tY}, ${tZ}px) - rotateZ(${params.rotate ? rtl ? -rotate : rotate : 0}deg) - scale(${scaleString}) - `; - /* eslint-enable */ - - if (params.slideShadows) { - // Set shadows - let shadowEl = slideEl.querySelector('.swiper-slide-shadow'); - if (!shadowEl) { - shadowEl = createShadow('cards', slideEl); - } - if (shadowEl) shadowEl.style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1); - } - slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length; - const targetEl = effectTarget(params, slideEl); - targetEl.style.transform = transform; - } - }; - const setTransition = duration => { - const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl)); - transformElements.forEach(el => { - el.style.transitionDuration = `${duration}ms`; - el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => { - shadowEl.style.transitionDuration = `${duration}ms`; - }); - }); - effectVirtualTransitionEnd({ - swiper, - duration, - transformElements - }); - }; - effectInit({ - effect: 'cards', - swiper, - on, - setTranslate, - setTransition, - perspective: () => true, - overwriteParams: () => ({ - watchSlidesProgress: true, - virtualTranslate: !swiper.params.cssMode - }) - }); - } - - /** - * Swiper 11.0.5 - * 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: November 22, 2023 - */ - - - // Swiper Class - const modules = [Virtual, Keyboard, Mousewheel, Navigation, Pagination, Scrollbar, Parallax, Zoom, Controller, A11y, History, HashNavigation, Autoplay, Thumb, freeMode, Grid, Manipulation, EffectFade, EffectCube, EffectFlip, EffectCoverflow, EffectCreative, EffectCards]; - Swiper.use(modules); - - /* underscore in name -> watch for changes */ - const paramsList = ['eventsPrefix', 'injectStyles', 'injectStylesUrls', 'modules', 'init', '_direction', 'oneWayMovement', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', 'focusableElements', '_enabled', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', 'breakpointsBase', '_spaceBetween', '_slidesPerView', 'maxBackfaceHiddenSlides', '_grid', '_slidesPerGroup', '_slidesPerGroupSkip', '_slidesPerGroupAuto', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_loop', 'loopAdditionalSlides', 'loopAddBlankSlides', 'loopPreventsSliding', '_rewind', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideActiveClass', 'slideVisibleClass', 'slideFullyVisibleClass', 'slideNextClass', 'slidePrevClass', 'slideBlankClass', 'wrapperClass', 'lazyPreloaderClass', 'lazyPreloadPrevNext', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren', - // modules - 'a11y', '_autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'creativeEffect', 'cardsEffect', 'hashNavigation', 'history', 'keyboard', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom', 'control']; - - function isObject(o) { - return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object' && !o.__swiper__; - } - function extend(target, src) { - const noExtend = ['__proto__', 'constructor', 'prototype']; - Object.keys(src).filter(key => noExtend.indexOf(key) < 0).forEach(key => { - if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) { - if (src[key].__swiper__) target[key] = src[key];else extend(target[key], src[key]); - } else { - target[key] = src[key]; - } - }); - } - function needsNavigation(params) { - if (params === void 0) { - params = {}; - } - return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined'; - } - function needsPagination(params) { - if (params === void 0) { - params = {}; - } - return params.pagination && typeof params.pagination.el === 'undefined'; - } - function needsScrollbar(params) { - if (params === void 0) { - params = {}; - } - return params.scrollbar && typeof params.scrollbar.el === 'undefined'; - } - function attrToProp(attrName) { - if (attrName === void 0) { - attrName = ''; - } - return attrName.replace(/-[a-z]/g, l => l.toUpperCase().replace('-', '')); - } - - function updateSwiper(_ref) { - let { - swiper, - slides, - passedParams, - changedParams, - nextEl, - prevEl, - scrollbarEl, - paginationEl - } = _ref; - const updateParams = changedParams.filter(key => key !== 'children' && key !== 'direction' && key !== 'wrapperClass'); - const { - params: currentParams, - pagination, - navigation, - scrollbar, - virtual, - thumbs - } = swiper; - let needThumbsInit; - let needControllerInit; - let needPaginationInit; - let needScrollbarInit; - let needNavigationInit; - let loopNeedDestroy; - let loopNeedEnable; - let loopNeedReloop; - if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && currentParams.thumbs && !currentParams.thumbs.swiper) { - needThumbsInit = true; - } - if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) { - needControllerInit = true; - } - if (changedParams.includes('pagination') && passedParams.pagination && (passedParams.pagination.el || paginationEl) && (currentParams.pagination || currentParams.pagination === false) && pagination && !pagination.el) { - needPaginationInit = true; - } - if (changedParams.includes('scrollbar') && passedParams.scrollbar && (passedParams.scrollbar.el || scrollbarEl) && (currentParams.scrollbar || currentParams.scrollbar === false) && scrollbar && !scrollbar.el) { - needScrollbarInit = true; - } - if (changedParams.includes('navigation') && passedParams.navigation && (passedParams.navigation.prevEl || prevEl) && (passedParams.navigation.nextEl || nextEl) && (currentParams.navigation || currentParams.navigation === false) && navigation && !navigation.prevEl && !navigation.nextEl) { - needNavigationInit = true; - } - const destroyModule = mod => { - if (!swiper[mod]) return; - swiper[mod].destroy(); - if (mod === 'navigation') { - if (swiper.isElement) { - swiper[mod].prevEl.remove(); - swiper[mod].nextEl.remove(); - } - currentParams[mod].prevEl = undefined; - currentParams[mod].nextEl = undefined; - swiper[mod].prevEl = undefined; - swiper[mod].nextEl = undefined; - } else { - if (swiper.isElement) { - swiper[mod].el.remove(); - } - currentParams[mod].el = undefined; - swiper[mod].el = undefined; - } - }; - if (changedParams.includes('loop') && swiper.isElement) { - if (currentParams.loop && !passedParams.loop) { - loopNeedDestroy = true; - } else if (!currentParams.loop && passedParams.loop) { - loopNeedEnable = true; - } else { - loopNeedReloop = true; - } - } - updateParams.forEach(key => { - if (isObject(currentParams[key]) && isObject(passedParams[key])) { - Object.assign(currentParams[key], passedParams[key]); - if ((key === 'navigation' || key === 'pagination' || key === 'scrollbar') && 'enabled' in passedParams[key] && !passedParams[key].enabled) { - destroyModule(key); - } - } else { - const newValue = passedParams[key]; - if ((newValue === true || newValue === false) && (key === 'navigation' || key === 'pagination' || key === 'scrollbar')) { - if (newValue === false) { - destroyModule(key); - } - } else { - currentParams[key] = passedParams[key]; - } - } - }); - if (updateParams.includes('controller') && !needControllerInit && swiper.controller && swiper.controller.control && currentParams.controller && currentParams.controller.control) { - swiper.controller.control = currentParams.controller.control; - } - if (changedParams.includes('children') && slides && virtual && currentParams.virtual.enabled) { - virtual.slides = slides; - virtual.update(true); - } else if (changedParams.includes('virtual') && virtual && currentParams.virtual.enabled) { - if (slides) virtual.slides = slides; - virtual.update(true); - } - if (changedParams.includes('children') && slides && currentParams.loop) { - loopNeedReloop = true; - } - if (needThumbsInit) { - const initialized = thumbs.init(); - if (initialized) thumbs.update(true); - } - if (needControllerInit) { - swiper.controller.control = currentParams.controller.control; - } - if (needPaginationInit) { - if (swiper.isElement && (!paginationEl || typeof paginationEl === 'string')) { - paginationEl = document.createElement('div'); - paginationEl.classList.add('swiper-pagination'); - paginationEl.part.add('pagination'); - swiper.el.appendChild(paginationEl); - } - if (paginationEl) currentParams.pagination.el = paginationEl; - pagination.init(); - pagination.render(); - pagination.update(); - } - if (needScrollbarInit) { - if (swiper.isElement && (!scrollbarEl || typeof scrollbarEl === 'string')) { - scrollbarEl = document.createElement('div'); - scrollbarEl.classList.add('swiper-scrollbar'); - scrollbarEl.part.add('scrollbar'); - swiper.el.appendChild(scrollbarEl); - } - if (scrollbarEl) currentParams.scrollbar.el = scrollbarEl; - scrollbar.init(); - scrollbar.updateSize(); - scrollbar.setTranslate(); - } - if (needNavigationInit) { - if (swiper.isElement) { - if (!nextEl || typeof nextEl === 'string') { - nextEl = document.createElement('div'); - nextEl.classList.add('swiper-button-next'); - nextEl.innerHTML = swiper.hostEl.constructor.nextButtonSvg; - nextEl.part.add('button-next'); - swiper.el.appendChild(nextEl); - } - if (!prevEl || typeof prevEl === 'string') { - prevEl = document.createElement('div'); - prevEl.classList.add('swiper-button-prev'); - prevEl.innerHTML = swiper.hostEl.constructor.prevButtonSvg; - prevEl.part.add('button-prev'); - swiper.el.appendChild(prevEl); - } - } - if (nextEl) currentParams.navigation.nextEl = nextEl; - if (prevEl) currentParams.navigation.prevEl = prevEl; - navigation.init(); - navigation.update(); - } - if (changedParams.includes('allowSlideNext')) { - swiper.allowSlideNext = passedParams.allowSlideNext; - } - if (changedParams.includes('allowSlidePrev')) { - swiper.allowSlidePrev = passedParams.allowSlidePrev; - } - if (changedParams.includes('direction')) { - swiper.changeDirection(passedParams.direction, false); - } - if (loopNeedDestroy || loopNeedReloop) { - swiper.loopDestroy(); - } - if (loopNeedEnable || loopNeedReloop) { - swiper.loopCreate(); - } - swiper.update(); - } - - const formatValue = val => { - if (parseFloat(val) === Number(val)) return Number(val); - if (val === 'true') return true; - if (val === '') return true; - if (val === 'false') return false; - if (val === 'null') return null; - if (val === 'undefined') return undefined; - if (typeof val === 'string' && val.includes('{') && val.includes('}') && val.includes('"')) { - let v; - try { - v = JSON.parse(val); - } catch (err) { - v = val; - } - return v; - } - return val; - }; - const modulesParamsList = ['a11y', 'autoplay', 'controller', 'cards-effect', 'coverflow-effect', 'creative-effect', 'cube-effect', 'fade-effect', 'flip-effect', 'free-mode', 'grid', 'hash-navigation', 'history', 'keyboard', 'mousewheel', 'navigation', 'pagination', 'parallax', 'scrollbar', 'thumbs', 'virtual', 'zoom']; - function getParams(element, propName, propValue) { - const params = {}; - const passedParams = {}; - extend(params, defaults); - const localParamsList = [...paramsList, 'on']; - const allowedParams = localParamsList.map(key => key.replace(/_/, '')); - - // First check props - localParamsList.forEach(paramName => { - paramName = paramName.replace('_', ''); - if (typeof element[paramName] !== 'undefined') { - passedParams[paramName] = element[paramName]; - } - }); - - // Attributes - const attrsList = [...element.attributes]; - if (typeof propName === 'string' && typeof propValue !== 'undefined') { - attrsList.push({ - name: propName, - value: isObject(propValue) ? { - ...propValue - } : propValue - }); - } - attrsList.forEach(attr => { - const moduleParam = modulesParamsList.filter(mParam => attr.name.indexOf(`${mParam}-`) === 0)[0]; - if (moduleParam) { - const parentObjName = attrToProp(moduleParam); - const subObjName = attrToProp(attr.name.split(`${moduleParam}-`)[1]); - if (typeof passedParams[parentObjName] === 'undefined') passedParams[parentObjName] = {}; - if (passedParams[parentObjName] === true) { - passedParams[parentObjName] = { - enabled: true - }; - } - passedParams[parentObjName][subObjName] = formatValue(attr.value); - } else { - const name = attrToProp(attr.name); - if (!allowedParams.includes(name)) return; - const value = formatValue(attr.value); - if (passedParams[name] && modulesParamsList.includes(attr.name) && !isObject(value)) { - if (passedParams[name].constructor !== Object) { - passedParams[name] = {}; - } - passedParams[name].enabled = !!value; - } else { - passedParams[name] = value; - } - } - }); - extend(params, passedParams); - if (params.navigation) { - params.navigation = { - prevEl: '.swiper-button-prev', - nextEl: '.swiper-button-next', - ...(params.navigation !== true ? params.navigation : {}) - }; - } else if (params.navigation === false) { - delete params.navigation; - } - if (params.scrollbar) { - params.scrollbar = { - el: '.swiper-scrollbar', - ...(params.scrollbar !== true ? params.scrollbar : {}) - }; - } else if (params.scrollbar === false) { - delete params.scrollbar; - } - if (params.pagination) { - params.pagination = { - el: '.swiper-pagination', - ...(params.pagination !== true ? params.pagination : {}) - }; - } else if (params.pagination === false) { - delete params.pagination; - } - return { - params, - passedParams - }; - } - - /** - * Swiper Custom Element 11.0.5 - * 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: November 22, 2023 - */ - - - /* eslint-disable spaced-comment */ - - const SwiperCSS = `:host{--swiper-theme-color:#007aff}:host{position:relative;display:block;margin-left:auto;margin-right:auto;z-index:1}.swiper{width:100%;height:100%;margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);box-sizing:content-box}.swiper-android ::slotted(swiper-slide),.swiper-ios ::slotted(swiper-slide),.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}::slotted(swiper-slide){flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}::slotted(.swiper-slide-invisible-blank){visibility:hidden}.swiper-autoheight,.swiper-autoheight ::slotted(swiper-slide){height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden ::slotted(swiper-slide){transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d ::slotted(swiper-slide){transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode ::slotted(swiper-slide){scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode ::slotted(swiper-slide){scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered ::slotted(swiper-slide){scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal ::slotted(swiper-slide):first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical ::slotted(swiper-slide):first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-virtual ::slotted(swiper-slide){-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper::after{content:'';position:absolute;left:0;top:0;pointer-events:none}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after{width:1px;height:var(--swiper-virtual-size)}:host{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:var(--swiper-navigation-top-offset,50%);width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size)/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next.swiper-button-hidden,.swiper-button-prev.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled .swiper-button-next,.swiper-navigation-disabled .swiper-button-prev{display:none!important}.swiper-button-next svg,.swiper-button-prev svg{width:100%;height:100%;object-fit:contain;transform-origin:center}.swiper-rtl .swiper-button-next svg,.swiper-rtl .swiper-button-prev svg{transform:rotate(180deg)}.swiper-button-prev,.swiper-rtl .swiper-button-next{left:var(--swiper-navigation-sides-offset,10px);right:auto}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:var(--swiper-navigation-sides-offset,10px);left:auto}.swiper-button-lock{display:none}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:var(--swiper-pagination-bottom,8px);top:var(--swiper-pagination-top,auto);left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));display:inline-block;border-radius:var(--swiper-pagination-bullet-border-radius,50%);background:var(--swiper-pagination-bullet-inactive-color,#000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{right:var(--swiper-pagination-right,8px);left:var(--swiper-pagination-left,auto);top:50%;transform:translate3d(0px,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0;display:block}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color,inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color,rgba(0,0,0,.25));position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:var(--swiper-pagination-progressbar-size,4px);left:0;top:0}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{width:var(--swiper-pagination-progressbar-size,4px);height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:var(--swiper-scrollbar-border-radius,10px);position:relative;touch-action:none;background:var(--swiper-scrollbar-bg-color,rgba(0,0,0,.1))}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:var(--swiper-scrollbar-sides-offset,1%);bottom:var(--swiper-scrollbar-bottom,4px);top:var(--swiper-scrollbar-top,auto);z-index:50;height:var(--swiper-scrollbar-size,4px);width:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{position:absolute;left:var(--swiper-scrollbar-left,auto);right:var(--swiper-scrollbar-right,4px);top:var(--swiper-scrollbar-sides-offset,1%);z-index:50;width:var(--swiper-scrollbar-size,4px);height:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:var(--swiper-scrollbar-drag-bg-color,rgba(0,0,0,.5));border-radius:var(--swiper-scrollbar-border-radius,10px);left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}::slotted(.swiper-slide-zoomed){cursor:move;touch-action:none}.swiper .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-fade.swiper-free-mode ::slotted(swiper-slide){transition-timing-function:ease-out}.swiper-fade ::slotted(swiper-slide){pointer-events:none;transition-property:opacity}.swiper-fade ::slotted(swiper-slide) ::slotted(swiper-slide){pointer-events:none}.swiper-fade ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-fade ::slotted(.swiper-slide-active) ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-cube{overflow:visible}.swiper-cube ::slotted(swiper-slide){pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube ::slotted(swiper-slide) ::slotted(swiper-slide){pointer-events:none}.swiper-cube.swiper-rtl ::slotted(swiper-slide){transform-origin:100% 0}.swiper-cube ::slotted(.swiper-slide-active),.swiper-cube ::slotted(.swiper-slide-active) ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-cube ::slotted(.swiper-slide-active),.swiper-cube ::slotted(.swiper-slide-next),.swiper-cube ::slotted(.swiper-slide-prev){pointer-events:auto;visibility:visible}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:'';background:#000;position:absolute;left:0;top:0;bottom:0;right:0;filter:blur(50px)}.swiper-cube ::slotted(.swiper-slide-next)+::slotted(swiper-slide){pointer-events:auto;visibility:visible}.swiper-flip{overflow:visible}.swiper-flip ::slotted(swiper-slide){pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-flip ::slotted(swiper-slide) ::slotted(swiper-slide){pointer-events:none}.swiper-flip ::slotted(.swiper-slide-active),.swiper-flip ::slotted(.swiper-slide-active) ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-creative ::slotted(swiper-slide){-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper-cards{overflow:visible}.swiper-cards ::slotted(swiper-slide){transform-origin:center bottom;-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden}`; - const SwiperSlideCSS = `::slotted(.swiper-slide-shadow),::slotted(.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-top){position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}::slotted(.swiper-slide-shadow){background:rgba(0,0,0,.15)}::slotted(.swiper-slide-shadow-left){background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-slide-shadow-right){background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-slide-shadow-top){background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-slide-shadow-bottom){background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear;width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-top){z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-top){z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}::slotted(.swiper-zoom-container){width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}::slotted(.swiper-zoom-container)>canvas,::slotted(.swiper-zoom-container)>img,::slotted(.swiper-zoom-container)>svg{max-width:100%;max-height:100%;object-fit:contain}`; - - class DummyHTMLElement {} - const ClassToExtend = typeof window === 'undefined' || typeof HTMLElement === 'undefined' ? DummyHTMLElement : HTMLElement; - const arrowSvg = ` - `; - const addStyle = (shadowRoot, styles) => { - if (typeof CSSStyleSheet !== 'undefined' && shadowRoot.adoptedStyleSheets) { - const styleSheet = new CSSStyleSheet(); - styleSheet.replaceSync(styles); - shadowRoot.adoptedStyleSheets = [styleSheet]; - } else { - const style = document.createElement('style'); - style.rel = 'stylesheet'; - style.textContent = styles; - shadowRoot.appendChild(style); - } - }; - class SwiperContainer extends ClassToExtend { - constructor() { - super(); - this.attachShadow({ - mode: 'open' - }); - } - static get nextButtonSvg() { - return arrowSvg; - } - static get prevButtonSvg() { - return arrowSvg.replace('/>', ' transform-origin="center" transform="rotate(180)"/>'); - } - cssStyles() { - return [SwiperCSS, - // eslint-disable-line - ...(this.injectStyles && Array.isArray(this.injectStyles) ? this.injectStyles : [])].join('\n'); - } - cssLinks() { - return this.injectStylesUrls || []; - } - calcSlideSlots() { - const currentSideSlots = this.slideSlots || 0; - // slide slots - const slideSlotChildren = [...this.querySelectorAll(`[slot^=slide-]`)].map(child => { - return parseInt(child.getAttribute('slot').split('slide-')[1], 10); - }); - this.slideSlots = slideSlotChildren.length ? Math.max(...slideSlotChildren) + 1 : 0; - if (!this.rendered) return; - if (this.slideSlots > currentSideSlots) { - for (let i = currentSideSlots; i < this.slideSlots; i += 1) { - const slideEl = document.createElement('swiper-slide'); - slideEl.setAttribute('part', `slide slide-${i + 1}`); - const slotEl = document.createElement('slot'); - slotEl.setAttribute('name', `slide-${i + 1}`); - slideEl.appendChild(slotEl); - this.shadowRoot.querySelector('.swiper-wrapper').appendChild(slideEl); - } - } else if (this.slideSlots < currentSideSlots) { - const slides = this.swiper.slides; - for (let i = slides.length - 1; i >= 0; i -= 1) { - if (i > this.slideSlots) { - slides[i].remove(); - } - } - } - } - render() { - if (this.rendered) return; - this.calcSlideSlots(); - - // local styles - let localStyles = this.cssStyles(); - if (this.slideSlots > 0) { - localStyles = localStyles.replace(/::slotted\(([a-z-0-9.]*)\)/g, '$1'); - } - if (localStyles.length) { - addStyle(this.shadowRoot, localStyles); - } - this.cssLinks().forEach(url => { - const linkExists = this.shadowRoot.querySelector(`link[href="${url}"]`); - if (linkExists) return; - const linkEl = document.createElement('link'); - linkEl.rel = 'stylesheet'; - linkEl.href = url; - this.shadowRoot.appendChild(linkEl); - }); - // prettier-ignore - const el = document.createElement('div'); - el.classList.add('swiper'); - el.part = 'container'; - - // prettier-ignore - el.innerHTML = ` - -
    - - ${Array.from({ - length: this.slideSlots - }).map((_, index) => ` - - - - `).join('')} -
    - - ${needsNavigation(this.passedParams) ? ` -
    ${this.constructor.prevButtonSvg}
    -
    ${this.constructor.nextButtonSvg}
    - ` : ''} - ${needsPagination(this.passedParams) ? ` -
    - ` : ''} - ${needsScrollbar(this.passedParams) ? ` -
    - ` : ''} - `; - this.shadowRoot.appendChild(el); - this.rendered = true; - } - initialize() { - var _this = this; - if (this.initialized) return; - this.initialized = true; - const { - params: swiperParams, - passedParams - } = getParams(this); - this.swiperParams = swiperParams; - this.passedParams = passedParams; - delete this.swiperParams.init; - this.render(); - - // eslint-disable-next-line - this.swiper = new Swiper(this.shadowRoot.querySelector('.swiper'), { - ...(swiperParams.virtual ? {} : { - observer: true, - observeSlideChildren: this.slideSlots > 0 - }), - ...swiperParams, - touchEventsTarget: 'container', - onAny: function (name) { - if (name === 'observerUpdate') { - _this.calcSlideSlots(); - } - const eventName = swiperParams.eventsPrefix ? `${swiperParams.eventsPrefix}${name.toLowerCase()}` : name.toLowerCase(); - for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - const event = new CustomEvent(eventName, { - detail: args, - bubbles: name !== 'hashChange', - cancelable: true - }); - _this.dispatchEvent(event); - } - }); - } - connectedCallback() { - if (this.initialized && this.nested && this.closest('swiper-slide') && this.closest('swiper-slide').swiperLoopMoveDOM) { - return; - } - if (this.init === false || this.getAttribute('init') === 'false') { - return; - } - this.initialize(); - } - disconnectedCallback() { - if (this.nested && this.closest('swiper-slide') && this.closest('swiper-slide').swiperLoopMoveDOM) { - return; - } - if (this.swiper && this.swiper.destroy) { - this.swiper.destroy(); - } - this.initialized = false; - } - updateSwiperOnPropChange(propName, propValue) { - const { - params: swiperParams, - passedParams - } = getParams(this, propName, propValue); - this.passedParams = passedParams; - this.swiperParams = swiperParams; - if (this.swiper && this.swiper.params[propName] === propValue) { - return; - } - updateSwiper({ - swiper: this.swiper, - passedParams: this.passedParams, - changedParams: [attrToProp(propName)], - ...(propName === 'navigation' && passedParams[propName] ? { - prevEl: '.swiper-button-prev', - nextEl: '.swiper-button-next' - } : {}), - ...(propName === 'pagination' && passedParams[propName] ? { - paginationEl: '.swiper-pagination' - } : {}), - ...(propName === 'scrollbar' && passedParams[propName] ? { - scrollbarEl: '.swiper-scrollbar' - } : {}) - }); - } - attributeChangedCallback(attr, prevValue, newValue) { - if (!this.initialized) return; - if (prevValue === 'true' && newValue === null) { - newValue = false; - } - this.updateSwiperOnPropChange(attr, newValue); - } - static get observedAttributes() { - const attrs = paramsList.filter(param => param.includes('_')).map(param => param.replace(/[A-Z]/g, v => `-${v}`).replace('_', '').toLowerCase()); - return attrs; - } - } - paramsList.forEach(paramName => { - if (paramName === 'init') return; - paramName = paramName.replace('_', ''); - Object.defineProperty(SwiperContainer.prototype, paramName, { - configurable: true, - get() { - return (this.passedParams || {})[paramName]; - }, - set(value) { - if (!this.passedParams) this.passedParams = {}; - this.passedParams[paramName] = value; - if (!this.initialized) return; - this.updateSwiperOnPropChange(paramName, value); - } - }); - }); - class SwiperSlide extends ClassToExtend { - constructor() { - super(); - this.attachShadow({ - mode: 'open' - }); - } - render() { - const lazy = this.lazy || this.getAttribute('lazy') === '' || this.getAttribute('lazy') === 'true'; - addStyle(this.shadowRoot, SwiperSlideCSS); - this.shadowRoot.appendChild(document.createElement('slot')); - if (lazy) { - const lazyDiv = document.createElement('div'); - lazyDiv.classList.add('swiper-lazy-preloader'); - lazyDiv.part.add('preloader'); - this.shadowRoot.appendChild(lazyDiv); - } - } - initialize() { - this.render(); - } - connectedCallback() { - this.initialize(); - } - } - - // eslint-disable-next-line - const register = () => { - if (typeof window === 'undefined') return; - if (!window.customElements.get('swiper-container')) window.customElements.define('swiper-container', SwiperContainer); - if (!window.customElements.get('swiper-slide')) window.customElements.define('swiper-slide', SwiperSlide); - }; - if (typeof window !== 'undefined') { - window.SwiperElementRegisterParams = params => { - paramsList.push(...params); - }; - } - - register(); - -})(); diff --git a/build/assets/js/vendor/swiper/swiper-element-bundle.min.js b/build/assets/js/vendor/swiper/swiper-element-bundle.min.js deleted file mode 100644 index f84dedd..0000000 --- a/build/assets/js/vendor/swiper/swiper-element-bundle.min.js +++ /dev/null @@ -1,14 +0,0 @@ -/** - * Swiper Custom Element 11.0.5 - * 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: November 22, 2023 - */ - -!function(){"use strict";function e(e){return null!==e&&"object"==typeof e&&"constructor"in e&&e.constructor===Object}function t(s,i){void 0===s&&(s={}),void 0===i&&(i={}),Object.keys(i).forEach((a=>{void 0===s[a]?s[a]=i[a]:e(i[a])&&e(s[a])&&Object.keys(i[a]).length>0&&t(s[a],i[a])}))}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 i(){const e="undefined"!=typeof document?document:{};return t(e,s),e}const a={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,a),e}function n(e){return void 0===e&&(e=""),e.trim().split(" ").filter((e=>!!e.trim()))}function l(e,t){return void 0===t&&(t=0),setTimeout(e,t)}function o(){return Date.now()}function d(e,t){void 0===t&&(t="x");const s=r();let i,a,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?(a=l.transform||l.webkitTransform,a.split(",").length>6&&(a=a.split(", ").map((e=>e.replace(",","."))).join(", ")),n=new s.WebKitCSSMatrix("none"===a?"":a)):(n=l.MozTransform||l.OTransform||l.MsTransform||l.msTransform||l.transform||l.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),i=n.toString().split(",")),"x"===t&&(a=s.WebKitCSSMatrix?n.m41:16===i.length?parseFloat(i[12]):parseFloat(i[4])),"y"===t&&(a=s.WebKitCSSMatrix?n.m42:16===i.length?parseFloat(i[13]):parseFloat(i[5])),a||0}function p(e){return"object"==typeof e&&null!==e&&e.constructor&&"Object"===Object.prototype.toString.call(e).slice(8,-1)}function c(){const e=Object(arguments.length<=0?void 0:arguments[0]),t=["__proto__","constructor","prototype"];for(let i=1;it.indexOf(e)<0));for(let t=0,i=s.length;tn?"next":"prev",c=(e,t)=>"next"===p&&e>=t||"prev"===p&&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 p=n+r*(s-n);if(c(p,s)&&(p=s),t.wrapperEl.scrollTo({[i]:p}),c(p,s))return t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.scrollSnapType="",setTimeout((()=>{t.wrapperEl.style.overflow="",t.wrapperEl.scrollTo({[i]:p})})),void a.cancelAnimationFrame(t.cssModeFrameID);t.cssModeFrameID=a.requestAnimationFrame(u)};u()}function h(e){return e.querySelector(".swiper-slide-transform")||e.shadowRoot&&e.shadowRoot.querySelector(".swiper-slide-transform")||e}function f(e,t){return void 0===t&&(t=""),[...e.children].filter((e=>e.matches(t)))}function g(e){try{return void console.warn(e)}catch(e){}}function v(e,t){void 0===t&&(t=[]);const s=document.createElement(e);return s.classList.add(...Array.isArray(t)?t:n(t)),s}function w(e){const t=r(),s=i(),a=e.getBoundingClientRect(),n=s.body,l=e.clientTop||n.clientTop||0,o=e.clientLeft||n.clientLeft||0,d=e===t?t.scrollY:e.scrollTop,p=e===t?t.scrollX:e.scrollLeft;return{top:a.top+d-l,left:a.left+p-o}}function b(e,t){return r().getComputedStyle(e,null).getPropertyValue(t)}function y(e){let t,s=e;if(s){for(t=0;null!==(s=s.previousSibling);)1===s.nodeType&&(t+=1);return t}}function x(e,t){const s=[];let i=e.parentElement;for(;i;)t?i.matches(t)&&s.push(i):s.push(i),i=i.parentElement;return s}function E(e,t){t&&e.addEventListener("transitionend",(function s(i){i.target===e&&(t.call(e,i),e.removeEventListener("transitionend",s))}))}function S(e,t,s){const i=r();return s?e["width"===t?"offsetWidth":"offsetHeight"]+parseFloat(i.getComputedStyle(e,null).getPropertyValue("width"===t?"margin-right":"margin-top"))+parseFloat(i.getComputedStyle(e,null).getPropertyValue("width"===t?"margin-left":"margin-bottom")):e.offsetWidth}let T,M,C;function P(){return T||(T=function(){const e=r(),t=i();return{smoothScroll:t.documentElement&&t.documentElement.style&&"scrollBehavior"in t.documentElement.style,touch:!!("ontouchstart"in e||e.DocumentTouch&&t instanceof e.DocumentTouch)}}()),T}function L(e){return void 0===e&&(e={}),M||(M=function(e){let{userAgent:t}=void 0===e?{}:e;const s=P(),i=r(),a=i.navigator.platform,n=t||i.navigator.userAgent,l={ios:!1,android:!1},o=i.screen.width,d=i.screen.height,p=n.match(/(Android);?[\s\/]+([\d.]+)?/);let c=n.match(/(iPad).*OS\s([\d_]+)/);const u=n.match(/(iPod)(.*OS\s([\d_]+))?/),m=!c&&n.match(/(iPhone\sOS|iOS)\s([\d_]+)/),h="Win32"===a;let f="MacIntel"===a;return!c&&f&&s.touch&&["1024x1366","1366x1024","834x1194","1194x834","834x1112","1112x834","768x1024","1024x768","820x1180","1180x820","810x1080","1080x810"].indexOf(`${o}x${d}`)>=0&&(c=n.match(/(Version)\/([\d.]+)/),c||(c=[0,1,"13_0_0"]),f=!1),p&&!h&&(l.os="android",l.android=!0),(c||m||u)&&(l.os="ios",l.ios=!0),l}(e)),M}function z(){return C||(C=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,i]=s.split("Version/")[1].split(" ")[0].split(".").map((e=>Number(e)));t=e<16||16===e&&i<2}}return{isSafari:t||s(),needPerspectiveFix:t,isWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(e.navigator.userAgent)}}()),C}var k={on(e,t,s){const i=this;if(!i.eventsListeners||i.destroyed)return i;if("function"!=typeof t)return i;const a=s?"unshift":"push";return e.split(" ").forEach((e=>{i.eventsListeners[e]||(i.eventsListeners[e]=[]),i.eventsListeners[e][a](t)})),i},once(e,t,s){const i=this;if(!i.eventsListeners||i.destroyed)return i;if("function"!=typeof t)return i;function a(){i.off(e,a),a.__emitterProxy&&delete a.__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(((i,a)=>{(i===t||i.__emitterProxy&&i.__emitterProxy===t)&&s.eventsListeners[e].splice(a,1)}))})),s):s},emit(){const e=this;if(!e.eventsListeners||e.destroyed)return e;if(!e.eventsListeners)return e;let t,s,i;for(var a=arguments.length,r=new Array(a),n=0;n{e.eventsAnyListeners&&e.eventsAnyListeners.length&&e.eventsAnyListeners.forEach((e=>{e.apply(i,[t,...s])})),e.eventsListeners&&e.eventsListeners[t]&&e.eventsListeners[t].forEach((e=>{e.apply(i,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){let t=s.querySelector(`.${e.params.lazyPreloaderClass}`);!t&&e.isElement&&(s.shadowRoot?t=s.shadowRoot.querySelector(`.${e.params.lazyPreloaderClass}`):requestAnimationFrame((()=>{s.shadowRoot&&(t=s.shadowRoot.querySelector(`.${e.params.lazyPreloaderClass}`),t&&t.remove())}))),t&&t.remove()}},I=(e,t)=>{if(!e.slides[t])return;const s=e.slides[t].querySelector('[loading="lazy"]');s&&s.removeAttribute("loading")},$=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 i="auto"===e.params.slidesPerView?e.slidesPerViewDynamic():Math.ceil(e.params.slidesPerView),a=e.activeIndex;if(e.params.grid&&e.params.grid.rows>1){const s=a,r=[s-t];return r.push(...Array.from({length:t}).map(((e,t)=>s+i+t))),void e.slides.forEach(((t,s)=>{r.includes(t.column)&&I(e,s)}))}const r=a+i-1;if(e.params.rewind||e.params.loop)for(let i=a-t;i<=r+t;i+=1){const t=(i%s+s)%s;(tr)&&I(e,t)}else for(let i=Math.max(a-t,0);i<=Math.min(r+t,s-1);i+=1)i!==a&&(i>r||i=0?E=parseFloat(E.replace("%",""))/100*r:"string"==typeof E&&(E=parseFloat(E)),e.virtualSize=-E,p.forEach((e=>{n?e.style.marginLeft="":e.style.marginRight="",e.style.marginBottom="",e.style.marginTop=""})),s.centeredSlides&&s.cssMode&&(u(i,"--swiper-centered-offset-before",""),u(i,"--swiper-centered-offset-after",""));const P=s.grid&&s.grid.rows>1&&e.grid;let L;P?e.grid.initSlides(p):e.grid&&e.grid.unsetSlides();const z="auto"===s.slidesPerView&&s.breakpoints&&Object.keys(s.breakpoints).filter((e=>void 0!==s.breakpoints[e].slidesPerView)).length>0;for(let i=0;i1&&m.push(e.virtualSize-r)}if(o&&s.loop){const t=g[0]+E;if(s.slidesPerGroup>1){const i=Math.ceil((e.virtual.slidesBefore+e.virtual.slidesAfter)/s.slidesPerGroup),a=t*s.slidesPerGroup;for(let e=0;e!(s.cssMode&&!s.loop)||t!==p.length-1)).forEach((e=>{e.style[t]=`${E}px`}))}if(s.centeredSlides&&s.centeredSlidesBounds){let e=0;g.forEach((t=>{e+=t+(E||0)})),e-=E;const t=e-r;m=m.map((e=>e<=0?-v:e>t?t+w:e))}if(s.centerInsufficientSlides){let e=0;if(g.forEach((t=>{e+=t+(E||0)})),e-=E,e{m[s]=e-t})),h.forEach(((e,s)=>{h[s]=e+t}))}}if(Object.assign(e,{slides:p,snapGrid:m,slidesGrid:h,slidesSizesGrid:g}),s.centeredSlides&&s.cssMode&&!s.centeredSlidesBounds){u(i,"--swiper-centered-offset-before",-m[0]+"px"),u(i,"--swiper-centered-offset-after",e.size/2-g[g.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(c!==d&&e.emit("slidesLengthChange"),m.length!==y&&(e.params.watchOverflow&&e.checkOverflow(),e.emit("snapGridLengthChange")),h.length!==x&&e.emit("slidesGridLengthChange"),s.watchSlidesProgress&&e.updateSlidesOffset(),e.emit("slidesUpdated"),!(o||s.cssMode||"slide"!==s.effect&&"fade"!==s.effect)){const t=`${s.containerModifierClass}backface-hidden`,i=e.el.classList.contains(t);c<=s.maxBackfaceHiddenSlides?i||e.el.classList.add(t):i&&e.el.classList.remove(t)}},updateAutoHeight:function(e){const t=this,s=[],i=t.virtual&&t.params.virtual.enabled;let a,r=0;"number"==typeof e?t.setTransition(e):!0===e&&t.setTransition(t.params.speed);const n=e=>i?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(a=0;at.slides.length&&!i)break;s.push(n(e))}else s.push(n(t.activeIndex));for(a=0;ar?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 i=0;i{e.classList.remove(s.slideVisibleClass,s.slideFullyVisibleClass)})),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&&u<=t.size-t.slidesSizesGrid[e];(u>=0&&u1&&m<=t.size||u<=0&&m>=t.size)&&(t.visibleSlides.push(o),t.visibleSlidesIndexes.push(e),i[e].classList.add(s.slideVisibleClass)),h&&i[e].classList.add(s.slideFullyVisibleClass),o.progress=a?-p:p,o.originalProgress=a?-c:c}},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,i=t.maxTranslate()-t.minTranslate();let{progress:a,isBeginning:r,isEnd:n,progressLoop:l}=t;const o=r,d=n;if(0===i)a=0,r=!0,n=!0;else{a=(e-t.minTranslate())/i;const s=Math.abs(e-t.minTranslate())<1,l=Math.abs(e-t.maxTranslate())<1;r=s||a<=0,n=l||a>=1,s&&(a=0),l&&(a=1)}if(s.loop){const s=t.getSlideIndexByData(0),i=t.getSlideIndexByData(t.slides.length-1),a=t.slidesGrid[s],r=t.slidesGrid[i],n=t.slidesGrid[t.slidesGrid.length-1],o=Math.abs(e);l=o>=a?(o-a)/n:(o+n-r)/n,l>1&&(l-=1)}Object.assign(t,{progress:a,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",a)},updateSlidesClasses:function(){const e=this,{slides:t,params:s,slidesEl:i,activeIndex:a}=e,r=e.virtual&&s.virtual.enabled,n=e.grid&&s.grid&&s.grid.rows>1,l=e=>f(i,`.${s.slideClass}${e}, swiper-slide${e}`)[0];let o,d,p;if(t.forEach((e=>{e.classList.remove(s.slideActiveClass,s.slideNextClass,s.slidePrevClass)})),r)if(s.loop){let t=a-e.virtual.slidesBefore;t<0&&(t=e.virtual.slides.length+t),t>=e.virtual.slides.length&&(t-=e.virtual.slides.length),o=l(`[data-swiper-slide-index="${t}"]`)}else o=l(`[data-swiper-slide-index="${a}"]`);else n?(o=t.filter((e=>e.column===a))[0],p=t.filter((e=>e.column===a+1))[0],d=t.filter((e=>e.column===a-1))[0]):o=t[a];o&&(o.classList.add(s.slideActiveClass),n?(p&&p.classList.add(s.slideNextClass),d&&d.classList.add(s.slidePrevClass)):(p=function(e,t){const s=[];for(;e.nextElementSibling;){const i=e.nextElementSibling;t?i.matches(t)&&s.push(i):s.push(i),e=i}return s}(o,`.${s.slideClass}, swiper-slide`)[0],s.loop&&!p&&(p=t[0]),p&&p.classList.add(s.slideNextClass),d=function(e,t){const s=[];for(;e.previousElementSibling;){const i=e.previousElementSibling;t?i.matches(t)&&s.push(i):s.push(i),e=i}return s}(o,`.${s.slideClass}, swiper-slide`)[0],s.loop&&0===!d&&(d=t[t.length-1]),d&&d.classList.add(s.slidePrevClass))),e.emitSlidesClasses()},updateActiveIndex:function(e){const t=this,s=t.rtlTranslate?t.translate:-t.translate,{snapGrid:i,params:a,activeIndex:r,realIndex:n,snapIndex:l}=t;let o,d=e;const p=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,i=e.rtlTranslate?e.translate:-e.translate;let a;for(let e=0;e=t[e]&&i=t[e]&&i=t[e]&&(a=e);return s.normalizeSlideIndex&&(a<0||void 0===a)&&(a=0),a}(t)),i.indexOf(s)>=0)o=i.indexOf(s);else{const e=Math.min(a.slidesPerGroupSkip,d);o=e+Math.floor((d-e)/a.slidesPerGroup)}if(o>=i.length&&(o=i.length-1),d===r&&!t.params.loop)return void(o!==l&&(t.snapIndex=o,t.emit("snapIndexChange")));if(d===r&&t.params.loop&&t.virtual&&t.params.virtual.enabled)return void(t.realIndex=p(d));const c=t.grid&&a.grid&&a.grid.rows>1;let u;if(t.virtual&&a.virtual.enabled&&a.loop)u=p(d);else if(c){const e=t.slides.filter((e=>e.column===d))[0];let s=parseInt(e.getAttribute("data-swiper-slide-index"),10);Number.isNaN(s)&&(s=Math.max(t.slides.indexOf(e),0)),u=Math.floor(s/a.grid.rows)}else if(t.slides[d]){const e=t.slides[d].getAttribute("data-swiper-slide-index");u=e?parseInt(e,10):d}else u=d;Object.assign(t,{previousSnapIndex:l,snapIndex:o,previousRealIndex:n,realIndex:u,previousIndex:r,activeIndex:d}),t.initialized&&$(t),t.emit("activeIndexChange"),t.emit("snapIndexChange"),(t.initialized||t.params.runCallbacksOnInit)&&(n!==u&&t.emit("realIndexChange"),t.emit("slideChange"))},updateClickedSlide:function(e,t){const s=this,i=s.params;let a=e.closest(`.${i.slideClass}, swiper-slide`);!a&&s.isElement&&t&&t.length>1&&t.includes(e)&&[...t.slice(t.indexOf(e)+1,t.length)].forEach((e=>{!a&&e.matches&&e.matches(`.${i.slideClass}, swiper-slide`)&&(a=e)}));let r,n=!1;if(a)for(let e=0;eo?o:i&&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!==c){if(!r.allowSlideNext&&(u?w>r.translate&&w>r.minTranslate():wr.translate&&w>r.maxTranslate()&&(c||0)!==n)return!1}let b;if(n!==(p||0)&&s&&r.emit("beforeSlideChangeStart"),r.updateProgress(w),b=n>c?"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,i),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,i){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 a=this,r=a.grid&&a.params.grid&&a.params.grid.rows>1;let n=e;if(a.params.loop)if(a.virtual&&a.params.virtual.enabled)n+=a.virtual.slidesBefore;else{let e;if(r){const t=n*a.params.grid.rows;e=a.slides.filter((e=>1*e.getAttribute("data-swiper-slide-index")===t))[0].column}else e=a.getSlideIndexByData(n);const t=r?Math.ceil(a.slides.length/a.params.grid.rows):a.slides.length,{centeredSlides:s}=a.params;let i=a.params.slidesPerView;"auto"===i?i=a.slidesPerViewDynamic():(i=Math.ceil(parseFloat(a.params.slidesPerView,10)),s&&i%2==0&&(i+=1));let l=t-e1*t.getAttribute("data-swiper-slide-index")===e))[0].column}else n=a.getSlideIndexByData(n)}return requestAnimationFrame((()=>{a.slideTo(n,t,s,i)})),a},slideNext:function(e,t,s){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);const i=this,{enabled:a,params:r,animating:n}=i;if(!a)return i;let l=r.slidesPerGroup;"auto"===r.slidesPerView&&1===r.slidesPerGroup&&r.slidesPerGroupAuto&&(l=Math.max(i.slidesPerViewDynamic("current",!0),1));const o=i.activeIndex{i.slideTo(i.activeIndex+o,e,t,s)})),!0}return r.rewind&&i.isEnd?i.slideTo(0,e,t,s):i.slideTo(i.activeIndex+o,e,t,s)},slidePrev:function(e,t,s){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);const i=this,{params:a,snapGrid:r,slidesGrid:n,rtlTranslate:l,enabled:o,animating:d}=i;if(!o)return i;const p=i.virtual&&a.virtual.enabled;if(a.loop){if(d&&!p&&a.loopPreventsSliding)return!1;i.loopFix({direction:"prev"}),i._clientLeft=i.wrapperEl.clientLeft}function c(e){return e<0?-Math.floor(Math.abs(e)):Math.floor(e)}const u=c(l?i.translate:-i.translate),m=r.map((e=>c(e)));let h=r[m.indexOf(u)-1];if(void 0===h&&a.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=i.activeIndex-1),"auto"===a.slidesPerView&&1===a.slidesPerGroup&&a.slidesPerGroupAuto&&(f=f-i.slidesPerViewDynamic("previous",!0)+1,f=Math.max(f,0))),a.rewind&&i.isBeginning){const a=i.params.virtual&&i.params.virtual.enabled&&i.virtual?i.virtual.slides.length-1:i.slides.length-1;return i.slideTo(a,e,t,s)}return a.loop&&0===i.activeIndex&&a.cssMode?(requestAnimationFrame((()=>{i.slideTo(f,e,t,s)})),!0):i.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,i){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0),void 0===i&&(i=.5);const a=this;let r=a.activeIndex;const n=Math.min(a.params.slidesPerGroupSkip,r),l=n+Math.floor((r-n)/a.params.slidesPerGroup),o=a.rtlTranslate?a.translate:-a.translate;if(o>=a.snapGrid[l]){const e=a.snapGrid[l];o-e>(a.snapGrid[l+1]-e)*i&&(r+=a.params.slidesPerGroup)}else{const e=a.snapGrid[l-1];o-e<=(a.snapGrid[l]-e)*i&&(r-=a.params.slidesPerGroup)}return r=Math.max(r,0),r=Math.min(r,a.slidesGrid.length-1),a.slideTo(r,e,t,s)},slideToClickedSlide:function(){const e=this,{params:t,slidesEl:s}=e,i="auto"===t.slidesPerView?e.slidesPerViewDynamic():t.slidesPerView;let a,r=e.clickedIndex;const n=e.isElement?"swiper-slide":`.${t.slideClass}`;if(t.loop){if(e.animating)return;a=parseInt(e.clickedSlide.getAttribute("data-swiper-slide-index"),10),t.centeredSlides?re.slides.length-e.loopedSlides+i/2?(e.loopFix(),r=e.getSlideIndex(f(s,`${n}[data-swiper-slide-index="${a}"]`)[0]),l((()=>{e.slideTo(r)}))):e.slideTo(r):r>e.slides.length-i?(e.loopFix(),r=e.getSlideIndex(f(s,`${n}[data-swiper-slide-index="${a}"]`)[0]),l((()=>{e.slideTo(r)}))):e.slideTo(r)}else e.slideTo(r)}};var B={loopCreate:function(e){const t=this,{params:s,slidesEl:i}=t;if(!s.loop||t.virtual&&t.params.virtual.enabled)return;const a=()=>{f(i,`.${s.slideClass}, swiper-slide`).forEach(((e,t)=>{e.setAttribute("data-swiper-slide-index",t)}))},r=t.grid&&s.grid&&s.grid.rows>1,n=s.slidesPerGroup*(r?s.grid.rows:1),l=t.slides.length%n!=0,o=r&&t.slides.length%s.grid.rows!=0,d=e=>{for(let i=0;i1;d.lengthe.classList.contains(m.slideActiveClass)))[0]):E=r;const S="next"===i||!i,T="prev"===i||!i;let M=0,C=0;const P=b?Math.ceil(d.length/m.grid.rows):d.length,L=(b?d[r].column:r)+(h&&void 0===a?-f/2+.5:0);if(L=0;t-=1)d[t].column===e&&y.push(t)}else y.push(P-t-1)}}else if(L+f>P-w){C=Math.max(L-(P-2*w),v);for(let e=0;e{e.column===t&&x.push(s)})):x.push(t)}}if(o.__preventObserver__=!0,requestAnimationFrame((()=>{o.__preventObserver__=!1})),T&&y.forEach((e=>{d[e].swiperLoopMoveDOM=!0,u.prepend(d[e]),d[e].swiperLoopMoveDOM=!1})),S&&x.forEach((e=>{d[e].swiperLoopMoveDOM=!0,u.append(d[e]),d[e].swiperLoopMoveDOM=!1})),o.recalcSlides(),"auto"===m.slidesPerView?o.updateSlides():b&&(y.length>0&&T||x.length>0&&S)&&o.slides.forEach(((e,t)=>{o.grid.updateSlide(t,e,o.slides)})),m.watchSlidesProgress&&o.updateSlidesOffset(),s)if(y.length>0&&T){if(void 0===t){const e=o.slidesGrid[E],t=o.slidesGrid[E+M]-e;l?o.setTranslate(o.translate-t):(o.slideTo(E+M,0,!1,!0),a&&(o.touchEventsData.startTranslate=o.touchEventsData.startTranslate-t,o.touchEventsData.currentTranslate=o.touchEventsData.currentTranslate-t))}else if(a){const e=b?y.length/m.grid.rows:y.length;o.slideTo(o.activeIndex+e,0,!1,!0),o.touchEventsData.currentTranslate=o.translate}}else if(x.length>0&&S)if(void 0===t){const e=o.slidesGrid[E],t=o.slidesGrid[E-C]-e;l?o.setTranslate(o.translate-t):(o.slideTo(E-C,0,!1,!0),a&&(o.touchEventsData.startTranslate=o.touchEventsData.startTranslate-t,o.touchEventsData.currentTranslate=o.touchEventsData.currentTranslate-t))}else{const e=b?x.length/m.grid.rows:x.length;o.slideTo(o.activeIndex-e,0,!1,!0)}if(o.allowSlidePrev=p,o.allowSlideNext=c,o.controller&&o.controller.control&&!n){const e={slideRealIndex:t,direction:i,setTranslate:a,activeSlideIndex:r,byController:!0};Array.isArray(o.controller.control)?o.controller.control.forEach((t=>{!t.destroyed&&t.params.loop&&t.loopFix({...e,slideTo:t.params.slidesPerView===m.slidesPerView&&s})})):o.controller.control instanceof o.constructor&&o.controller.control.params.loop&&o.controller.control.loopFix({...e,slideTo:o.controller.control.params.slidesPerView===m.slidesPerView&&s})}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 i=[];e.slides.forEach((e=>{const t=void 0===e.swiperSlideIndex?1*e.getAttribute("data-swiper-slide-index"):e.swiperSlideIndex;i[t]=e})),e.slides.forEach((e=>{e.removeAttribute("data-swiper-slide-index")})),i.forEach((e=>{s.append(e)})),e.recalcSlides(),e.slideTo(e.realIndex,0)}};function N(e,t,s){const i=r(),{params:a}=e,n=a.edgeSwipeDetection,l=a.edgeSwipeThreshold;return!n||!(s<=l||s>=i.innerWidth-l)||"prevent"===n&&(t.preventDefault(),!0)}function H(e){const t=this,s=i();let a=e;a.originalEvent&&(a=a.originalEvent);const n=t.touchEventsData;if("pointerdown"===a.type){if(null!==n.pointerId&&n.pointerId!==a.pointerId)return;n.pointerId=a.pointerId}else"touchstart"===a.type&&1===a.targetTouches.length&&(n.touchId=a.targetTouches[0].identifier);if("touchstart"===a.type)return void N(t,a,a.targetTouches[0].pageX);const{params:l,touches:d,enabled:p}=t;if(!p)return;if(!l.simulateTouch&&"mouse"===a.pointerType)return;if(t.animating&&l.preventInteractionOnTransition)return;!t.animating&&l.cssMode&&l.loop&&t.loopFix();let c=a.target;if("wrapper"===l.touchEventsTarget&&!t.wrapperEl.contains(c))return;if("which"in a&&3===a.which)return;if("button"in a&&a.button>0)return;if(n.isTouched&&n.isMoved)return;const u=!!l.noSwipingClass&&""!==l.noSwipingClass,m=a.composedPath?a.composedPath():a.path;u&&a.target&&a.target.shadowRoot&&m&&(c=m[0]);const h=l.noSwipingSelector?l.noSwipingSelector:`.${l.noSwipingClass}`,f=!(!a.target||!a.target.shadowRoot);if(l.noSwiping&&(f?function(e,t){return void 0===t&&(t=this),function t(s){if(!s||s===i()||s===r())return null;s.assignedSlot&&(s=s.assignedSlot);const a=s.closest(e);return a||s.getRootNode?a||t(s.getRootNode().host):null}(t)}(h,c):c.closest(h)))return void(t.allowClick=!0);if(l.swipeHandler&&!c.closest(l.swipeHandler))return;d.currentX=a.pageX,d.currentY=a.pageY;const g=d.currentX,v=d.currentY;if(!N(t,a,g))return;Object.assign(n,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),d.startX=g,d.startY=v,n.touchStartTime=o(),t.allowClick=!0,t.updateSize(),t.swipeDirection=void 0,l.threshold>0&&(n.allowThresholdMove=!1);let w=!0;c.matches(n.focusableElements)&&(w=!1,"SELECT"===c.nodeName&&(n.isTouched=!1)),s.activeElement&&s.activeElement.matches(n.focusableElements)&&s.activeElement!==c&&s.activeElement.blur();const b=w&&t.allowTouchMove&&l.touchStartPreventDefault;!l.touchStartForcePreventDefault&&!b||c.isContentEditable||a.preventDefault(),l.freeMode&&l.freeMode.enabled&&t.freeMode&&t.animating&&!l.cssMode&&t.freeMode.onTouchStart(),t.emit("touchStart",a)}function R(e){const t=i(),s=this,a=s.touchEventsData,{params:r,touches:n,rtlTranslate:l,enabled:d}=s;if(!d)return;if(!r.simulateTouch&&"mouse"===e.pointerType)return;let p,c=e;if(c.originalEvent&&(c=c.originalEvent),"pointermove"===c.type){if(null!==a.touchId)return;if(c.pointerId!==a.pointerId)return}if("touchmove"===c.type){if(p=[...c.changedTouches].filter((e=>e.identifier===a.touchId))[0],!p||p.identifier!==a.touchId)return}else p=c;if(!a.isTouched)return void(a.startMoving&&a.isScrolling&&s.emit("touchMoveOpposite",c));const u=p.pageX,m=p.pageY;if(c.preventedByNestedSwiper)return n.startX=u,void(n.startY=m);if(!s.allowTouchMove)return c.target.matches(a.focusableElements)||(s.allowClick=!1),void(a.isTouched&&(Object.assign(n,{startX:u,startY:m,currentX:u,currentY:m}),a.touchStartTime=o()));if(r.touchReleaseOnEdges&&!r.loop)if(s.isVertical()){if(mn.startY&&s.translate>=s.minTranslate())return a.isTouched=!1,void(a.isMoved=!1)}else if(un.startX&&s.translate>=s.minTranslate())return;if(t.activeElement&&c.target===t.activeElement&&c.target.matches(a.focusableElements))return a.isMoved=!0,void(s.allowClick=!1);a.allowTouchCallbacks&&s.emit("touchMove",c),n.previousX=n.currentX,n.previousY=n.currentY,n.currentX=u,n.currentY=m;const h=n.currentX-n.startX,f=n.currentY-n.startY;if(s.params.threshold&&Math.sqrt(h**2+f**2)=25&&(e=180*Math.atan2(Math.abs(f),Math.abs(h))/Math.PI,a.isScrolling=s.isHorizontal()?e>r.touchAngle:90-e>r.touchAngle)}if(a.isScrolling&&s.emit("touchMoveOpposite",c),void 0===a.startMoving&&(n.currentX===n.startX&&n.currentY===n.startY||(a.startMoving=!0)),a.isScrolling)return void(a.isTouched=!1);if(!a.startMoving)return;s.allowClick=!1,!r.cssMode&&c.cancelable&&c.preventDefault(),r.touchMoveStopPropagation&&!r.nested&&c.stopPropagation();let g=s.isHorizontal()?h:f,v=s.isHorizontal()?n.currentX-n.previousX:n.currentY-n.previousY;r.oneWayMovement&&(g=Math.abs(g)*(l?1:-1),v=Math.abs(v)*(l?1:-1)),n.diff=g,g*=r.touchRatio,l&&(g=-g,v=-v);const w=s.touchesDirection;s.swipeDirection=g>0?"prev":"next",s.touchesDirection=v>0?"prev":"next";const b=s.params.loop&&!r.cssMode,y="next"===s.touchesDirection&&s.allowSlideNext||"prev"===s.touchesDirection&&s.allowSlidePrev;if(!a.isMoved){if(b&&y&&s.loopFix({direction:s.swipeDirection}),a.startTranslate=s.getTranslate(),s.setTransition(0),s.animating){const e=new window.CustomEvent("transitionend",{bubbles:!0,cancelable:!0});s.wrapperEl.dispatchEvent(e)}a.allowMomentumBounce=!1,!r.grabCursor||!0!==s.allowSlideNext&&!0!==s.allowSlidePrev||s.setGrabCursor(!0),s.emit("sliderFirstMove",c)}if((new Date).getTime(),a.isMoved&&a.allowThresholdMove&&w!==s.touchesDirection&&b&&y&&Math.abs(g)>=1)return Object.assign(n,{startX:u,startY:m,currentX:u,currentY:m,startTranslate:a.currentTranslate}),a.loopSwapReset=!0,void(a.startTranslate=a.currentTranslate);s.emit("sliderMove",c),a.isMoved=!0,a.currentTranslate=g+a.startTranslate;let x=!0,E=r.resistanceRatio;if(r.touchReleaseOnEdges&&(E=0),g>0?(b&&y&&a.allowThresholdMove&&a.currentTranslate>(r.centeredSlides?s.minTranslate()-s.slidesSizesGrid[s.activeIndex+1]:s.minTranslate())&&s.loopFix({direction:"prev",setTranslate:!0,activeSlideIndex:0}),a.currentTranslate>s.minTranslate()&&(x=!1,r.resistance&&(a.currentTranslate=s.minTranslate()-1+(-s.minTranslate()+a.startTranslate+g)**E))):g<0&&(b&&y&&a.allowThresholdMove&&a.currentTranslate<(r.centeredSlides?s.maxTranslate()+s.slidesSizesGrid[s.slidesSizesGrid.length-1]:s.maxTranslate())&&s.loopFix({direction:"next",setTranslate:!0,activeSlideIndex:s.slides.length-("auto"===r.slidesPerView?s.slidesPerViewDynamic():Math.ceil(parseFloat(r.slidesPerView,10)))}),a.currentTranslatea.startTranslate&&(a.currentTranslate=a.startTranslate),s.allowSlidePrev||s.allowSlideNext||(a.currentTranslate=a.startTranslate),r.threshold>0){if(!(Math.abs(g)>r.threshold||a.allowThresholdMove))return void(a.currentTranslate=a.startTranslate);if(!a.allowThresholdMove)return a.allowThresholdMove=!0,n.startX=n.currentX,n.startY=n.currentY,a.currentTranslate=a.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(a.currentTranslate),s.setTranslate(a.currentTranslate))}function X(e){const t=this,s=t.touchEventsData;let i,a=e;a.originalEvent&&(a=a.originalEvent);if("touchend"===a.type||"touchcancel"===a.type){if(i=[...a.changedTouches].filter((e=>e.identifier===s.touchId))[0],!i||i.identifier!==s.touchId)return}else{if(null!==s.touchId)return;if(a.pointerId!==s.pointerId)return;i=a}if(["pointercancel","pointerout","pointerleave","contextmenu"].includes(a.type)){if(!(["pointercancel","contextmenu"].includes(a.type)&&(t.browser.isSafari||t.browser.isWebView)))return}s.pointerId=null,s.touchId=null;const{params:r,touches:n,rtlTranslate:d,slidesGrid:p,enabled:c}=t;if(!c)return;if(!r.simulateTouch&&"mouse"===a.pointerType)return;if(s.allowTouchCallbacks&&t.emit("touchEnd",a),s.allowTouchCallbacks=!1,!s.isTouched)return s.isMoved&&r.grabCursor&&t.setGrabCursor(!1),s.isMoved=!1,void(s.startMoving=!1);r.grabCursor&&s.isMoved&&s.isTouched&&(!0===t.allowSlideNext||!0===t.allowSlidePrev)&&t.setGrabCursor(!1);const u=o(),m=u-s.touchStartTime;if(t.allowClick){const e=a.path||a.composedPath&&a.composedPath();t.updateClickedSlide(e&&e[0]||a.target,e),t.emit("tap click",a),m<300&&u-s.lastClickTime<300&&t.emit("doubleTap doubleClick",a)}if(s.lastClickTime=o(),l((()=>{t.destroyed||(t.allowClick=!0)})),!s.isTouched||!s.isMoved||!t.swipeDirection||0===n.diff&&!s.loopSwapReset||s.currentTranslate===s.startTranslate&&!s.loopSwapReset)return s.isTouched=!1,s.isMoved=!1,void(s.startMoving=!1);let h;if(s.isTouched=!1,s.isMoved=!1,s.startMoving=!1,h=r.followFinger?d?t.translate:-t.translate:-s.currentTranslate,r.cssMode)return;if(r.freeMode&&r.freeMode.enabled)return void t.freeMode.onTouchEnd({currentPos:h});const f=h>=-t.maxTranslate()&&!t.params.loop;let g=0,v=t.slidesSizesGrid[0];for(let e=0;e=p[e]&&h=p[e])&&(g=e,v=p[p.length-1]-p[p.length-2])}let w=null,b=null;r.rewind&&(t.isBeginning?b=r.virtual&&r.virtual.enabled&&t.virtual?t.virtual.slides.length-1:t.slides.length-1:t.isEnd&&(w=0));const y=(h-p[g])/v,x=gr.longSwipesMs){if(!r.longSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&(y>=r.longSwipesRatio?t.slideTo(r.rewind&&t.isEnd?w:g+x):t.slideTo(g)),"prev"===t.swipeDirection&&(y>1-r.longSwipesRatio?t.slideTo(g+x):null!==b&&y<0&&Math.abs(y)>r.longSwipesRatio?t.slideTo(b):t.slideTo(g))}else{if(!r.shortSwipes)return void t.slideTo(t.activeIndex);t.navigation&&(a.target===t.navigation.nextEl||a.target===t.navigation.prevEl)?a.target===t.navigation.nextEl?t.slideTo(g+x):t.slideTo(g):("next"===t.swipeDirection&&t.slideTo(null!==w?w:g+x),"prev"===t.swipeDirection&&t.slideTo(null!==b?b:g))}}function Y(){const e=this,{params:t,el:s}=e;if(s&&0===s.offsetWidth)return;t.breakpoints&&e.setBreakpoint();const{allowSlideNext:i,allowSlidePrev:a,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=a,e.allowSlideNext=i,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 V(){const e=this,{wrapperEl:t,rtlTranslate:s,enabled:i}=e;if(!i)return;let a;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();a=0===r?0:(e.translate-e.minTranslate())/r,a!==e.progress&&e.updateProgress(s?-e.translate:e.translate),e.emit("setTranslate",e.translate,!1)}function j(e){const t=this;A(t,e.target),t.params.cssMode||"auto"!==t.params.slidesPerView&&!t.params.autoHeight||t.update()}function F(){const e=this;e.documentTouchHandlerProceeded||(e.documentTouchHandlerProceeded=!0,e.params.touchReleaseOnEdges&&(e.el.style.touchAction="auto"))}const W=(e,t)=>{const s=i(),{params:a,el:r,wrapperEl:n,device:l}=e,o=!!a.nested,d="on"===t?"addEventListener":"removeEventListener",p=t;s[d]("touchstart",e.onDocumentTouchStart,{passive:!1,capture:o}),r[d]("touchstart",e.onTouchStart,{passive:!1}),r[d]("pointerdown",e.onTouchStart,{passive:!1}),s[d]("touchmove",e.onTouchMove,{passive:!1,capture:o}),s[d]("pointermove",e.onTouchMove,{passive:!1,capture:o}),s[d]("touchend",e.onTouchEnd,{passive:!0}),s[d]("pointerup",e.onTouchEnd,{passive:!0}),s[d]("pointercancel",e.onTouchEnd,{passive:!0}),s[d]("touchcancel",e.onTouchEnd,{passive:!0}),s[d]("pointerout",e.onTouchEnd,{passive:!0}),s[d]("pointerleave",e.onTouchEnd,{passive:!0}),s[d]("contextmenu",e.onTouchEnd,{passive:!0}),(a.preventClicks||a.preventClicksPropagation)&&r[d]("click",e.onClick,!0),a.cssMode&&n[d]("scroll",e.onScroll),a.updateOnWindowResize?e[p](l.ios||l.android?"resize orientationchange observerUpdate":"resize observerUpdate",Y,!0):e[p]("observerUpdate",Y,!0),r[d]("load",e.onLoad,{capture:!0})};const U=(e,t)=>e.grid&&t.grid&&t.grid.rows>1;var K={init:!0,direction:"horizontal",oneWayMovement:!1,touchEventsTarget:"wrapper",initialSlide:0,speed:300,cssMode:!1,updateOnWindowResize:!0,resizeObserver:!0,nested:!1,createElements:!1,eventsPrefix:"swiper",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,loopAddBlankSlides:!0,loopAdditionalSlides:0,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",slideBlankClass:"swiper-slide-blank",slideActiveClass:"swiper-slide-active",slideVisibleClass:"swiper-slide-visible",slideFullyVisibleClass:"swiper-slide-fully-visible",slideNextClass:"swiper-slide-next",slidePrevClass:"swiper-slide-prev",wrapperClass:"swiper-wrapper",lazyPreloaderClass:"swiper-lazy-preloader",lazyPreloadPrevNext:0,runCallbacksOnInit:!0,_emitClasses:!1};function Z(e,t){return function(s){void 0===s&&(s={});const i=Object.keys(s)[0],a=s[i];"object"==typeof a&&null!==a?(!0===e[i]&&(e[i]={enabled:!0}),"navigation"===i&&e[i]&&e[i].enabled&&!e[i].prevEl&&!e[i].nextEl&&(e[i].auto=!0),["pagination","scrollbar"].indexOf(i)>=0&&e[i]&&e[i].enabled&&!e[i].el&&(e[i].auto=!0),i in e&&"enabled"in a?("object"!=typeof e[i]||"enabled"in e[i]||(e[i].enabled=!0),e[i]||(e[i]={enabled:!1}),c(t,s)):c(t,s)):c(t,s)}}const Q={eventsEmitter:k,update:O,translate:D,transition:{setTransition:function(e,t){const s=this;s.params.cssMode||(s.wrapperEl.style.transitionDuration=`${e}ms`,s.wrapperEl.style.transitionDelay=0===e?"0ms":""),s.emit("setTransition",e,t)},transitionStart:function(e,t){void 0===e&&(e=!0);const s=this,{params:i}=s;i.cssMode||(i.autoHeight&&s.updateAutoHeight(),_({swiper:s,runCallbacks:e,direction:t,step:"Start"}))},transitionEnd:function(e,t){void 0===e&&(e=!0);const s=this,{params:i}=s;s.animating=!1,i.cssMode||(s.setTransition(0),_({swiper:s,runCallbacks:e,direction:t,step:"End"}))}},slide:G,loop:B,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,{params:t}=e;e.onTouchStart=H.bind(e),e.onTouchMove=R.bind(e),e.onTouchEnd=X.bind(e),e.onDocumentTouchStart=F.bind(e),t.cssMode&&(e.onScroll=V.bind(e)),e.onClick=q.bind(e),e.onLoad=j.bind(e),W(e,"on")},detachEvents:function(){W(this,"off")}},breakpoints:{setBreakpoint:function(){const e=this,{realIndex:t,initialized:s,params:i,el:a}=e,r=i.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=U(e,i),d=U(e,l),p=i.enabled;o&&!d?(a.classList.remove(`${i.containerModifierClass}grid`,`${i.containerModifierClass}grid-column`),e.emitContainerClasses()):!o&&d&&(a.classList.add(`${i.containerModifierClass}grid`),(l.grid.fill&&"column"===l.grid.fill||!l.grid.fill&&"column"===i.grid.fill)&&a.classList.add(`${i.containerModifierClass}grid-column`),e.emitContainerClasses()),["navigation","pagination","scrollbar"].forEach((t=>{if(void 0===l[t])return;const s=i[t]&&i[t].enabled,a=l[t]&&l[t].enabled;s&&!a&&e[t].disable(),!s&&a&&e[t].enable()}));const u=l.direction&&l.direction!==i.direction,m=i.loop&&(l.slidesPerView!==i.slidesPerView||u),h=i.loop;u&&s&&e.changeDirection(),c(e.params,l);const f=e.params.enabled,g=e.params.loop;Object.assign(e,{allowTouchMove:e.params.allowTouchMove,allowSlideNext:e.params.allowSlideNext,allowSlidePrev:e.params.allowSlidePrev}),p&&!f?e.disable():!p&&f&&e.enable(),e.currentBreakpoint=n,e.emit("_beforeBreakpoint",l),s&&(m?(e.loopDestroy(),e.loopCreate(t),e.updateSlides()):!h&&g?(e.loopCreate(t),e.updateSlides()):h&&!g&&e.loopDestroy()),e.emit("breakpoint",l)},getBreakpoint:function(e,t,s){if(void 0===t&&(t="window"),!e||"container"===t&&!s)return;let i=!1;const a=r(),n="window"===t?a.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:i,el:a,device:r}=e,n=function(e,t){const s=[];return e.forEach((e=>{"object"==typeof e?Object.keys(e).forEach((i=>{e[i]&&s.push(t+i)})):"string"==typeof e&&s.push(t+e)})),s}(["initialized",s.direction,{"free-mode":e.params.freeMode&&s.freeMode.enabled},{autoheight:s.autoHeight},{rtl:i},{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),a.classList.add(...t),e.emitContainerClasses()},removeClasses:function(){const{el:e,classNames:t}=this;e.classList.remove(...t),this.emitContainerClasses()}}},J={};class ee{constructor(){let e,t;for(var s=arguments.length,a=new Array(s),r=0;r1){const e=[];return n.querySelectorAll(t.el).forEach((s=>{const i=c({},t,{el:s});e.push(new ee(i))})),e}const l=this;l.__swiper__=!0,l.support=P(),l.device=L({userAgent:t.userAgent}),l.browser=z(),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:Z(t,o),on:l.on.bind(l),once:l.once.bind(l),off:l.off.bind(l),emit:l.emit.bind(l)})}));const d=c({},K,o);return l.params=c({},d,J,t),l.originalParams=c({},l.params),l.passedParams=c({},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,pointerId:null,touchId:null},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}getDirectionLabel(e){return this.isHorizontal()?e:{width:"height","margin-top":"margin-left","margin-bottom ":"margin-right","margin-left":"margin-top","margin-right":"margin-bottom","padding-left":"padding-top","padding-right":"padding-bottom",marginRight:"marginBottom"}[e]}getSlideIndex(e){const{slidesEl:t,params:s}=this,i=y(f(t,`.${s.slideClass}, swiper-slide`)[0]);return y(e)-i}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 i=s.minTranslate(),a=(s.maxTranslate()-i)*e+i;s.translateTo(a,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 i=e.getSlideClasses(s);t.push({slideEl:s,classNames:i}),e.emit("_slideClass",s,i)})),e.emit("_slideClasses",t)}slidesPerViewDynamic(e,t){void 0===e&&(e="current"),void 0===t&&(t=!1);const{params:s,slides:i,slidesGrid:a,slidesSizesGrid:r,size:n,activeIndex:l}=this;let o=1;if("number"==typeof s.slidesPerView)return s.slidesPerView;if(s.centeredSlides){let e,t=i[l]?i[l].swiperSlideSize:0;for(let s=l+1;sn&&(e=!0));for(let s=l-1;s>=0;s-=1)i[s]&&!e&&(t+=i[s].swiperSlideSize,o+=1,t>n&&(e=!0))}else if("current"===e)for(let e=l+1;e=0;e-=1){a[l]-a[e]{t.complete&&A(e,t)})),e.updateSize(),e.updateSlides(),e.updateProgress(),e.updateSlidesClasses(),s.freeMode&&s.freeMode.enabled&&!s.cssMode)i(),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;a=e.slideTo(t.length-1,0,!1,!0)}else a=e.slideTo(e.activeIndex,0,!1,!0);a||i()}s.watchOverflow&&t!==e.snapGrid&&e.checkOverflow(),e.emit("update")}changeDirection(e,t){void 0===t&&(t=!0);const s=this,i=s.params.direction;return e||(e="horizontal"===i?"vertical":"horizontal"),e===i||"horizontal"!==e&&"vertical"!==e||(s.el.classList.remove(`${s.params.containerModifierClass}${i}`),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.parentNode&&s.parentNode.host&&"SWIPER-CONTAINER"===s.parentNode.host.nodeName&&(t.isElement=!0);const i=()=>`.${(t.params.wrapperClass||"").trim().split(" ").join(".")}`;let a=(()=>{if(s&&s.shadowRoot&&s.shadowRoot.querySelector){return s.shadowRoot.querySelector(i())}return f(s,i())[0]})();return!a&&t.params.createElements&&(a=v("div",t.params.wrapperClass),s.append(a),f(s,`.${t.params.slideClass}`).forEach((e=>{a.append(e)}))),Object.assign(t,{el:s,wrapperEl:a,slidesEl:t.isElement&&!s.parentNode.host.slideSlots?s.parentNode.host:a,hostEl:t.isElement?s.parentNode.host:s,mounted:!0,rtl:"rtl"===s.dir.toLowerCase()||"rtl"===b(s,"direction"),rtlTranslate:"horizontal"===t.params.direction&&("rtl"===s.dir.toLowerCase()||"rtl"===b(s,"direction")),wrongRTL:"-webkit-box"===b(a,"display")}),!0}init(e){const t=this;if(t.initialized)return t;if(!1===t.mount(e))return t;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();const s=[...t.el.querySelectorAll('[loading="lazy"]')];return t.isElement&&s.push(...t.hostEl.querySelectorAll('[loading="lazy"]')),s.forEach((e=>{e.complete?A(t,e):e.addEventListener("load",(e=>{A(t,e.target)}))})),$(t),t.initialized=!0,$(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:i,el:a,wrapperEl:r,slides:n}=s;return void 0===s.params||s.destroyed||(s.emit("beforeDestroy"),s.initialized=!1,s.detachEvents(),i.loop&&s.loopDestroy(),t&&(s.removeClasses(),a.removeAttribute("style"),r.removeAttribute("style"),n&&n.length&&n.forEach((e=>{e.classList.remove(i.slideVisibleClass,i.slideFullyVisibleClass,i.slideActiveClass,i.slideNextClass,i.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){c(J,e)}static get extendedDefaults(){return J}static get defaults(){return K}static installModule(e){ee.prototype.__modules__||(ee.prototype.__modules__=[]);const t=ee.prototype.__modules__;"function"==typeof e&&t.indexOf(e)<0&&t.push(e)}static use(e){return Array.isArray(e)?(e.forEach((e=>ee.installModule(e))),ee):(ee.installModule(e),ee)}}function te(e,t,s,i){return e.params.createElements&&Object.keys(i).forEach((a=>{if(!s[a]&&!0===s.auto){let r=f(e.el,`.${i[a]}`)[0];r||(r=v("div",i[a]),r.className=i[a],e.el.append(r)),s[a]=r,t[a]=r}})),s}function se(e){return void 0===e&&(e=""),`.${e.trim().replace(/([\.:!+\/])/g,"\\$1").replace(/ /g,".")}`}function ie(e){const t=this,{params:s,slidesEl:i}=t;s.loop&&t.loopDestroy();const a=e=>{if("string"==typeof e){const t=document.createElement("div");t.innerHTML=e,i.append(t.children[0]),t.innerHTML=""}else i.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,a.prepend(t.children[0]),t.innerHTML=""}else a.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)})),i("setTranslate",(()=>{s.params.effect===t&&a()})),i("setTransition",((e,i)=>{s.params.effect===t&&r(i)})),i("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()}})),i("virtualUpdate",(()=>{s.params.effect===t&&(s.slides.length||(p=!0),requestAnimationFrame((()=>{p&&s.slides&&s.slides.length&&(a(),p=!1)})))}))}function de(e,t){const s=h(t);return s!==t&&(s.style.backfaceVisibility="hidden",s.style["-webkit-backface-visibility"]="hidden"),s}function pe(e){let{swiper:t,duration:s,transformElements:i,allSlides:a}=e;const{activeIndex:r}=t;if(t.params.virtualTranslate&&0!==s){let e,s=!1;e=a?i:i.filter((e=>{const s=e.classList.contains("swiper-slide-transform")?(e=>{if(!e.parentElement)return t.slides.filter((t=>t.shadowRoot&&t.shadowRoot===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 i=`swiper-slide-shadow${s?`-${s}`:""}${e?` swiper-slide-shadow-${e}`:""}`,a=h(t);let r=a.querySelector(`.${i.split(" ").join(".")}`);return r||(r=v("div",i.split(" ")),a.append(r)),r}Object.keys(Q).forEach((e=>{Object.keys(Q[e]).forEach((t=>{ee.prototype[t]=Q[e][t]}))})),ee.use([function(e){let{swiper:t,on:s,emit:i}=e;const a=r();let n=null,l=null;const o=()=>{t&&!t.destroyed&&t.initialized&&(i("beforeResize"),i("resize"))},d=()=>{t&&!t.destroyed&&t.initialized&&i("orientationchange")};s("init",(()=>{t.params.resizeObserver&&void 0!==a.ResizeObserver?t&&!t.destroyed&&t.initialized&&(n=new ResizeObserver((e=>{l=a.requestAnimationFrame((()=>{const{width:s,height:i}=t;let a=s,r=i;e.forEach((e=>{let{contentBoxSize:s,contentRect:i,target:n}=e;n&&n!==t.el||(a=i?i.width:(s[0]||s).inlineSize,r=i?i.height:(s[0]||s).blockSize)})),a===s&&r===i||o()}))})),n.observe(t.el)):(a.addEventListener("resize",o),a.addEventListener("orientationchange",d))})),s("destroy",(()=>{l&&a.cancelAnimationFrame(l),n&&n.unobserve&&t.el&&(n.unobserve(t.el),n=null),a.removeEventListener("resize",o),a.removeEventListener("orientationchange",d)}))},function(e){let{swiper:t,extendParams:s,on:i,emit:a}=e;const n=[],l=r(),o=function(e,s){void 0===s&&(s={});const i=new(l.MutationObserver||l.WebkitMutationObserver)((e=>{if(t.__preventObserver__)return;if(1===e.length)return void a("observerUpdate",e[0]);const s=function(){a("observerUpdate",e[0])};l.requestAnimationFrame?l.requestAnimationFrame(s):l.setTimeout(s,0)}));i.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(i)};s({observer:!1,observeParents:!1,observeSlideChildren:!1}),i("init",(()=>{if(t.params.observer){if(t.params.observeParents){const e=x(t.hostEl);for(let t=0;t{n.forEach((e=>{e.disconnect()})),n.splice(0,n.length)}))}]);const ue=[function(e){let t,{swiper:s,extendParams:a,on:r,emit:n}=e;a({virtual:{enabled:!1,slides:[],cache:!0,renderSlide:null,renderExternal:null,renderExternalUpdate:!0,addSlidesBefore:0,addSlidesAfter:0}});const l=i();s.virtual={cache:{},from:void 0,to:void 0,slides:[],offset:0,slidesGrid:[]};const o=l.createElement("div");function d(e,t){const i=s.params.virtual;if(i.cache&&s.virtual.cache[t])return s.virtual.cache[t];let a;return i.renderSlide?(a=i.renderSlide.call(s,e,t),"string"==typeof a&&(o.innerHTML=a,a=o.children[0])):a=s.isElement?v("swiper-slide"):v("div",s.params.slideClass),a.setAttribute("data-swiper-slide-index",t),i.renderSlide||(a.innerHTML=e),i.cache&&(s.virtual.cache[t]=a),a}function p(e){const{slidesPerView:t,slidesPerGroup:i,centeredSlides:a,loop:r}=s.params,{addSlidesBefore:l,addSlidesAfter:o}=s.params.virtual,{from:p,to:c,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",a?(w=Math.floor(t/2)+i+o,b=Math.floor(t/2)+i+l):(w=t+(i-1)+o,b=(r?t:i)+l);let y=g-b,x=g+w;r||(y=Math.max(y,0),x=Math.min(x,u.length-1));let E=(s.slidesGrid[y]||0)-(s.slidesGrid[0]||0);function S(){s.updateSlides(),s.updateProgress(),s.updateSlidesClasses(),n("virtualUpdate")}if(r&&g>=b?(y-=b,a||(E+=s.slidesGrid[0])):r&&g{e.style[v]=E-Math.abs(s.cssOverflowAdjustment())+"px"})),s.updateProgress(),void n("virtualUpdate");if(s.params.virtual.renderExternal)return s.params.virtual.renderExternal.call(s,{offset:E,from:y,to:x,slides:function(){const e=[];for(let t=y;t<=x;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.slides.filter((e=>e.matches(`.${s.params.slideClass}, swiper-slide`))).forEach((e=>{e.remove()}));else for(let e=p;e<=c;e+=1)if(ex){const t=C(e);s.slides.filter((e=>e.matches(`.${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<=x){const s=C(t);void 0===c||e?M.push(s):(t>c&&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]=E-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,p()})),r("setTranslate",(()=>{s.params.virtual.enabled&&(s.params.cssMode&&!s._immediateVirtual?(clearTimeout(t),t=setTimeout((()=>{p()}),100)):p())})),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 i=e[s],r=i.getAttribute("data-swiper-slide-index");r&&i.setAttribute("data-swiper-slide-index",parseInt(r,10)+a),t[parseInt(s,10)+a]=i})),s.virtual.cache=t}p(!0),s.slideTo(i,0)},removeSlide:function(e){if(null==e)return;let t=s.activeIndex;if(Array.isArray(e))for(let i=e.length-1;i>=0;i-=1)s.params.virtual.cache&&(delete s.virtual.cache[e[i]],Object.keys(s.virtual.cache).forEach((t=>{t>e&&(s.virtual.cache[t-1]=s.virtual.cache[t],s.virtual.cache[t-1].setAttribute("data-swiper-slide-index",t-1),delete s.virtual.cache[t])}))),s.virtual.slides.splice(e[i],1),e[i]{t>e&&(s.virtual.cache[t-1]=s.virtual.cache[t],s.virtual.cache[t-1].setAttribute("data-swiper-slide-index",t-1),delete s.virtual.cache[t])}))),s.virtual.slides.splice(e,1),e0&&0===x(t.el,`.${t.params.slideActiveClass}`).length)return;const i=t.el,a=i.clientWidth,r=i.clientHeight,n=o.innerWidth,l=o.innerHeight,d=w(i);s&&(d.left-=i.scrollLeft);const p=[[d.left,d.top],[d.left+a,d.top],[d.left,d.top+r],[d.left+a,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||p||c||u)&&(i.preventDefault?i.preventDefault():i.returnValue=!1),((p||u)&&!s||(d||c)&&s)&&t.slideNext(),((d||c)&&!s||(p||u)&&s)&&t.slidePrev()):((d||p||m||h)&&(i.preventDefault?i.preventDefault():i.returnValue=!1),(p||h)&&t.slideNext(),(d||m)&&t.slidePrev()),n("keyPress",a)}}function p(){t.keyboard.enabled||(l.addEventListener("keydown",d),t.keyboard.enabled=!0)}function c(){t.keyboard.enabled&&(l.removeEventListener("keydown",d),t.keyboard.enabled=!1)}t.keyboard={enabled:!1},s({keyboard:{enabled:!1,onlyInViewport:!0,pageUpDown:!0}}),a("init",(()=>{t.params.keyboard.enabled&&p()})),a("destroy",(()=>{t.keyboard.enabled&&c()})),Object.assign(t.keyboard,{enable:p,disable:c})},function(e){let{swiper:t,extendParams:s,on:i,emit:a}=e;const n=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 p,c=o();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&&o()-c<60||(e.direction<0?t.isEnd&&!t.params.loop||t.animating||(t.slideNext(),a("scroll",e.raw)):t.isBeginning&&!t.params.loop||t.animating||(t.slidePrev(),a("scroll",e.raw)),c=(new n.Date).getTime(),!1)))}function g(e){let s=e,i=!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 n=t.el;"container"!==t.params.mousewheel.eventsTarget&&(n=document.querySelector(t.params.mousewheel.eventsTarget));const c=n&&n.contains(s.target);if(!t.mouseEntered&&!c&&!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,i=0,a=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),i=10*t,a=10*s,"deltaY"in e&&(a=e.deltaY),"deltaX"in e&&(i=e.deltaX),e.shiftKey&&!i&&(i=a,a=0),(i||a)&&e.deltaMode&&(1===e.deltaMode?(i*=40,a*=40):(i*=800,a*=800)),i&&!t&&(t=i<1?-1:1),a&&!s&&(s=a<1?-1:1),{spinX:t,spinY:s,pixelX:i,pixelY:a}}(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()),i=!!t.params.loop||!(v===t.minTranslate()||v===t.maxTranslate()),i&&t.params.nested&&s.stopPropagation(),t.params.freeMode&&t.params.freeMode.enabled){const e={time:o(),delta:Math.abs(m),direction:Math.sign(m)},i=p&&e.time=t.minTranslate()&&(n=t.minTranslate()),n<=t.maxTranslate()&&(n=t.maxTranslate()),t.setTransition(0),t.setTranslate(n),t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses(),(!o&&t.isBeginning||!c&&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,i=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-i.time<500&&i.delta-e.delta>=1&&e.delta<=6){const s=m>0?.8:.2;p=e,u.splice(0),d=l((()=>{t.slideToClosest(t.params.speed,!0,void 0,s)}),0)}d||(d=l((()=>{p=e,u.splice(0),t.slideToClosest(t.params.speed,!0,void 0,.5)}),500))}if(i||a("scroll",s),t.params.autoplay&&t.params.autoplayDisableOnInteraction&&t.autoplay.stop(),r.releaseOnEdges&&(n===t.minTranslate()||n===t.maxTranslate()))return!0}}else{const s={time:o(),delta:Math.abs(m),direction:Math.sign(m),raw:e};u.length>=2&&u.shift();const i=u.length?u[u.length-1]:void 0;if(u.push(s),i?(s.direction!==i.direction||s.delta>i.delta||s.time>i.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)}i("init",(()=>{!t.params.mousewheel.enabled&&t.params.cssMode&&b(),t.params.mousewheel.enabled&&w()})),i("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:i,emit:a}=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));function n(e){let s;return e&&"string"==typeof e&&t.isElement&&(s=t.el.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 i=t.params.navigation;(e=r(e)).forEach((e=>{e&&(e.classList[s?"add":"remove"](...i.disabledClass.split(" ")),"BUTTON"===e.tagName&&(e.disabled=s),t.params.watchOverflow&&t.enabled&&e.classList[t.isLocked?"add":"remove"](i.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(),a("navigationPrev"))}function p(e){e.preventDefault(),(!t.isEnd||t.params.loop||t.params.rewind)&&(t.slideNext(),a("navigationNext"))}function c(){const e=t.params.navigation;if(t.params.navigation=te(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),i=n(e.prevEl);Object.assign(t.navigation,{nextEl:s,prevEl:i}),s=r(s),i=r(i);const a=(s,i)=>{s&&s.addEventListener("click","next"===i?p:d),!t.enabled&&s&&s.classList.add(...e.lockClass.split(" "))};s.forEach((e=>a(e,"next"))),i.forEach((e=>a(e,"prev")))}function u(){let{nextEl:e,prevEl:s}=t.navigation;e=r(e),s=r(s);const i=(e,s)=>{e.removeEventListener("click","next"===s?p:d),e.classList.remove(...t.params.navigation.disabledClass.split(" "))};e.forEach((e=>i(e,"next"))),s.forEach((e=>i(e,"prev")))}i("init",(()=>{!1===t.params.navigation.enabled?m():(c(),o())})),i("toEdge fromEdge lock unlock",(()=>{o()})),i("destroy",(()=>{u()})),i("enable disable",(()=>{let{nextEl:e,prevEl:s}=t.navigation;e=r(e),s=r(s),t.enabled?o():[...e,...s].filter((e=>!!e)).forEach((e=>e.classList.add(t.params.navigation.lockClass)))})),i("click",((e,s)=>{let{nextEl:i,prevEl:n}=t.navigation;i=r(i),n=r(n);const l=s.target;if(t.params.navigation.hideOnClick&&!n.includes(l)&&!i.includes(l)){if(t.pagination&&t.params.pagination&&t.params.pagination.clickable&&(t.pagination.el===l||t.pagination.el.contains(l)))return;let e;i.length?e=i[0].classList.contains(t.params.navigation.hiddenClass):n.length&&(e=n[0].classList.contains(t.params.navigation.hiddenClass)),a(!0===e?"navigationShow":"navigationHide"),[...i,...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(" ")),c(),o()},disable:m,update:o,init:c,destroy:u})},function(e){let{swiper:t,extendParams:s,on:i,emit:a}=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));function d(){return!t.params.pagination.el||!t.pagination.el||Array.isArray(t.pagination.el)&&0===t.pagination.el.length}function p(e,s){const{bulletActiveClass:i}=t.params.pagination;e&&(e=e[("prev"===s?"previous":"next")+"ElementSibling"])&&(e.classList.add(`${i}-${s}`),(e=e[("prev"===s?"previous":"next")+"ElementSibling"])&&e.classList.add(`${i}-${s}-${s}`))}function c(e){const s=e.target.closest(se(t.params.pagination.bulletClass));if(!s)return;e.preventDefault();const i=y(s)*t.params.slidesPerGroup;if(t.params.loop){if(t.realIndex===i)return;t.slideToLoop(i)}else t.slideTo(i)}function u(){const e=t.rtl,s=t.params.pagination;if(d())return;let i,r,c=t.pagination.el;c=o(c);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,i=t.params.slidesPerGroup>1?Math.floor(t.realIndex/t.params.slidesPerGroup):t.realIndex):void 0!==t.snapIndex?(i=t.snapIndex,r=t.previousSnapIndex):(r=t.previousIndex||0,i=t.activeIndex||0),"bullets"===s.type&&t.pagination.bullets&&t.pagination.bullets.length>0){const a=t.pagination.bullets;let o,d,u;if(s.dynamicBullets&&(n=S(a[0],t.isHorizontal()?"width":"height",!0),c.forEach((e=>{e.style[t.isHorizontal()?"width":"height"]=n*(s.dynamicMainBullets+4)+"px"})),s.dynamicMainBullets>1&&void 0!==r&&(l+=i-(r||0),l>s.dynamicMainBullets-1?l=s.dynamicMainBullets-1:l<0&&(l=0)),o=Math.max(i-l,0),d=o+(Math.min(a.length,s.dynamicMainBullets)-1),u=(d+o)/2),a.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)})),c.length>1)a.forEach((e=>{const a=y(e);a===i?e.classList.add(...s.bulletActiveClass.split(" ")):t.isElement&&e.setAttribute("part","bullet"),s.dynamicBullets&&(a>=o&&a<=d&&e.classList.add(...`${s.bulletActiveClass}-main`.split(" ")),a===o&&p(e,"prev"),a===d&&p(e,"next"))}));else{const e=a[i];if(e&&e.classList.add(...s.bulletActiveClass.split(" ")),t.isElement&&a.forEach(((e,t)=>{e.setAttribute("part",t===i?"bullet-active":"bullet")})),s.dynamicBullets){const e=a[o],t=a[d];for(let e=o;e<=d;e+=1)a[e]&&a[e].classList.add(...`${s.bulletActiveClass}-main`.split(" "));p(e,"prev"),p(t,"next")}}if(s.dynamicBullets){const i=Math.min(a.length,s.dynamicMainBullets+4),r=(n*i-n)/2-u*n,l=e?"right":"left";a.forEach((e=>{e.style[t.isHorizontal()?l:"top"]=`${r}px`}))}}c.forEach(((e,r)=>{if("fraction"===s.type&&(e.querySelectorAll(se(s.currentClass)).forEach((e=>{e.textContent=s.formatFractionCurrent(i+1)})),e.querySelectorAll(se(s.totalClass)).forEach((e=>{e.textContent=s.formatFractionTotal(m)}))),"progressbar"===s.type){let a;a=s.progressbarOpposite?t.isHorizontal()?"vertical":"horizontal":t.isHorizontal()?"horizontal":"vertical";const r=(i+1)/m;let n=1,l=1;"horizontal"===a?n=r:l=r,e.querySelectorAll(se(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,i+1,m),0===r&&a("paginationRender",e)):(0===r&&a("paginationRender",e),a("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.grid&&t.params.grid.rows>1?t.slides.length/Math.ceil(t.params.grid.rows):t.slides.length;let i=t.pagination.el;i=o(i);let r="";if("bullets"===e.type){let i=t.params.loop?Math.ceil(s/t.params.slidesPerGroup):t.snapGrid.length;t.params.freeMode&&t.params.freeMode.enabled&&i>s&&(i=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=[],i.forEach((s=>{"custom"!==e.type&&(s.innerHTML=r||""),"bullets"===e.type&&t.pagination.bullets.push(...s.querySelectorAll(se(e.bulletClass)))})),"custom"!==e.type&&a("paginationRender",i[0])}function h(){t.params.pagination=te(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.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=>x(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||"").split(" ")),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",c),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.classList.remove(...(e.clickableClass||"").split(" ")),s.removeEventListener("click",c))}))),t.pagination.bullets&&t.pagination.bullets.forEach((t=>t.classList.remove(...e.bulletActiveClass.split(" "))))}i("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)}))})),i("init",(()=>{!1===t.params.pagination.enabled?g():(h(),m(),u())})),i("activeIndexChange",(()=>{void 0===t.snapIndex&&u()})),i("snapIndexChange",(()=>{u()})),i("snapGridLengthChange",(()=>{m(),u()})),i("destroy",(()=>{f()})),i("enable disable",(()=>{let{el:e}=t.pagination;e&&(e=o(e),e.forEach((e=>e.classList[t.enabled?"remove":"add"](t.params.pagination.lockClass))))})),i("lock unlock",(()=>{u()})),i("click",((e,s)=>{const i=s.target,r=o(t.pagination.el);if(t.params.pagination.el&&t.params.pagination.hideOnClick&&r&&r.length>0&&!i.classList.contains(t.params.pagination.bulletClass)){if(t.navigation&&(t.navigation.nextEl&&i===t.navigation.nextEl||t.navigation.prevEl&&i===t.navigation.prevEl))return;const e=r[0].classList.contains(t.params.pagination.hiddenClass);a(!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:a,emit:r}=e;const o=i();let d,p,c,u,m=!1,h=null,f=null;function g(){if(!t.params.scrollbar.el||!t.scrollbar.el)return;const{scrollbar:e,rtlTranslate:s}=t,{dragEl:i,el:a}=e,r=t.params.scrollbar,n=t.params.loop?t.progressLoop:t.progress;let l=p,o=(c-p)*n;s?(o=-o,o>0?(l=p-o,o=0):-o+p>c&&(l=c+o)):o<0?(l=p+o,o=0):o+p>c&&(l=c-o),t.isHorizontal()?(i.style.transform=`translate3d(${o}px, 0, 0)`,i.style.width=`${l}px`):(i.style.transform=`translate3d(0px, ${o}px, 0)`,i.style.height=`${l}px`),r.hide&&(clearTimeout(h),a.style.opacity=1,h=setTimeout((()=>{a.style.opacity=0,a.style.transitionDuration="400ms"}),1e3))}function b(){if(!t.params.scrollbar.el||!t.scrollbar.el)return;const{scrollbar:e}=t,{dragEl:s,el:i}=e;s.style.width="",s.style.height="",c=t.isHorizontal()?i.offsetWidth:i.offsetHeight,u=t.size/(t.virtualSize+t.params.slidesOffsetBefore-(t.params.centeredSlides?t.snapGrid[0]:0)),p="auto"===t.params.scrollbar.dragSize?c*u:parseInt(t.params.scrollbar.dragSize,10),t.isHorizontal()?s.style.width=`${p}px`:s.style.height=`${p}px`,i.style.display=u>=1?"none":"",t.params.scrollbar.hide&&(i.style.opacity=0),t.params.watchOverflow&&t.enabled&&e.el.classList[t.isLocked?"add":"remove"](t.params.scrollbar.lockClass)}function y(e){return t.isHorizontal()?e.clientX:e.clientY}function x(e){const{scrollbar:s,rtlTranslate:i}=t,{el:a}=s;let r;r=(y(e)-w(a)[t.isHorizontal()?"left":"top"]-(null!==d?d:p/2))/(c-p),r=Math.max(Math.min(r,1),0),i&&(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:i,wrapperEl:a}=t,{el:n,dragEl:l}=i;m=!0,d=e.target===l?y(e)-e.target.getBoundingClientRect()[t.isHorizontal()?"left":"top"]:null,e.preventDefault(),e.stopPropagation(),a.style.transitionDuration="100ms",l.style.transitionDuration="100ms",x(e),clearTimeout(f),n.style.transitionDuration="0ms",s.hide&&(n.style.opacity=1),t.params.cssMode&&(t.wrapperEl.style["scroll-snap-type"]="none"),r("scrollbarDragStart",e)}function S(e){const{scrollbar:s,wrapperEl:i}=t,{el:a,dragEl:n}=s;m&&(e.preventDefault?e.preventDefault():e.returnValue=!1,x(e),i.style.transitionDuration="0ms",a.style.transitionDuration="0ms",n.style.transitionDuration="0ms",r("scrollbarDragMove",e))}function T(e){const s=t.params.scrollbar,{scrollbar:i,wrapperEl:a}=t,{el:n}=i;m&&(m=!1,t.params.cssMode&&(t.wrapperEl.style["scroll-snap-type"]="",a.style.transitionDuration=""),s.hide&&(clearTimeout(f),f=l((()=>{n.style.opacity=0,n.style.transitionDuration="400ms"}),1e3)),r("scrollbarDragEnd",e),s.snapOnRelease&&t.slideToClosest())}function M(e){const{scrollbar:s,params:i}=t,a=s.el;if(!a)return;const r=a,n=!!i.passiveListeners&&{passive:!1,capture:!1},l=!!i.passiveListeners&&{passive:!0,capture:!1};if(!r)return;const d="on"===e?"addEventListener":"removeEventListener";r[d]("pointerdown",E,n),o[d]("pointermove",S,n),o[d]("pointerup",T,l)}function C(){const{scrollbar:e,el:s}=t;t.params.scrollbar=te(t,t.originalParams.scrollbar,t.params.scrollbar,{el:"swiper-scrollbar"});const i=t.params.scrollbar;if(!i.el)return;let a,r;if("string"==typeof i.el&&t.isElement&&(a=t.el.querySelector(i.el)),a||"string"!=typeof i.el)a||(a=i.el);else if(a=o.querySelectorAll(i.el),!a.length)return;t.params.uniqueNavElements&&"string"==typeof i.el&&a.length>1&&1===s.querySelectorAll(i.el).length&&(a=s.querySelector(i.el)),a.length>0&&(a=a[0]),a.classList.add(t.isHorizontal()?i.horizontalClass:i.verticalClass),a&&(r=a.querySelector(se(t.params.scrollbar.dragClass)),r||(r=v("div",t.params.scrollbar.dragClass),a.append(r))),Object.assign(e,{el:a,dragEl:r}),i.draggable&&t.params.scrollbar.el&&t.scrollbar.el&&M("on"),a&&a.classList[t.enabled?"remove":"add"](...n(t.params.scrollbar.lockClass))}function P(){const e=t.params.scrollbar,s=t.scrollbar.el;s&&s.classList.remove(...n(t.isHorizontal()?e.horizontalClass:e.verticalClass)),t.params.scrollbar.el&&t.scrollbar.el&&M("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},a("init",(()=>{!1===t.params.scrollbar.enabled?L():(C(),b(),g())})),a("update resize observerUpdate lock unlock",(()=>{b()})),a("setTranslate",(()=>{g()})),a("setTransition",((e,s)=>{!function(e){t.params.scrollbar.el&&t.scrollbar.el&&(t.scrollbar.dragEl.style.transitionDuration=`${e}ms`)}(s)})),a("enable disable",(()=>{const{el:e}=t.scrollbar;e&&e.classList[t.enabled?"remove":"add"](...n(t.params.scrollbar.lockClass))})),a("destroy",(()=>{P()}));const L=()=>{t.el.classList.add(...n(t.params.scrollbar.scrollbarDisabledClass)),t.scrollbar.el&&t.scrollbar.el.classList.add(...n(t.params.scrollbar.scrollbarDisabledClass)),P()};Object.assign(t.scrollbar,{enable:()=>{t.el.classList.remove(...n(t.params.scrollbar.scrollbarDisabledClass)),t.scrollbar.el&&t.scrollbar.el.classList.remove(...n(t.params.scrollbar.scrollbarDisabledClass)),C(),b(),g()},disable:L,updateSize:b,setTranslate:g,init:C,destroy:P})},function(e){let{swiper:t,extendParams:s,on:i}=e;s({parallax:{enabled:!1}});const a="[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]",r=(e,s)=>{const{rtl:i}=t,a=i?-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"),p=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*a+"%":n*s*a+"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 c=`translate3d(${n}, ${l}, 0px)`;if(null!=o){c+=` scale(${o-(o-1)*(1-Math.abs(s))})`}if(p&&null!=p){c+=` rotate(${p*s*-1}deg)`}e.style.transform=c},n=()=>{const{el:e,slides:s,progress:i,snapGrid:n,isElement:l}=t,o=f(e,a);t.isElement&&o.push(...f(t.hostEl,a)),o.forEach((e=>{r(e,i)})),s.forEach(((e,s)=>{let l=e.progress;t.params.slidesPerGroup>1&&"auto"!==t.params.slidesPerView&&(l+=Math.ceil(s/2)-i*(n.length-1)),l=Math.min(Math.max(l,-1),1),e.querySelectorAll(`${a}, [data-swiper-parallax-rotate]`).forEach((e=>{r(e,l)}))}))};i("beforeInit",(()=>{t.params.parallax.enabled&&(t.params.watchSlidesProgress=!0,t.originalParams.watchSlidesProgress=!0)})),i("init",(()=>{t.params.parallax.enabled&&n()})),i("setTranslate",(()=>{t.params.parallax.enabled&&n()})),i("setTransition",((e,s)=>{t.params.parallax.enabled&&function(e){void 0===e&&(e=t.params.speed);const{el:s,hostEl:i}=t,r=[...s.querySelectorAll(a)];t.isElement&&r.push(...i.querySelectorAll(a)),r.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:i,emit:a}=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,o,p=1,c=!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 v=1;function b(){if(u.length<2)return 1;const e=u[0].pageX,t=u[0].pageY,s=u[1].pageX,i=u[1].pageY;return Math.sqrt((s-e)**2+(i-t)**2)}function y(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 E(e){if("mouse"===e.pointerType&&u.splice(0,u.length),!y(e))return;const s=t.params.zoom;if(l=!1,o=!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 i=m.slideEl.querySelector(`.${s.containerClass}`);if(i&&(i=i.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),m.imageEl=i,m.imageWrapEl=i?x(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-n.scrollX)/p,(u[0].pageY+(u[1].pageY-u[0].pageY)/2-e.y-n.scrollY)/p]}();m.originX=e,m.originY=t,m.imageEl.style.transitionDuration="0ms"}c=!0}}function S(e){if(!y(e))return;const s=t.params.zoom,i=t.zoom,a=u.findIndex((t=>t.pointerId===e.pointerId));a>=0&&(u[a]=e),u.length<2||(o=!0,m.scaleMove=b(),m.imageEl&&(i.scale=m.scaleMove/m.scaleStart*p,i.scale>m.maxRatio&&(i.scale=m.maxRatio-1+(i.scale-m.maxRatio+1)**.5),i.scalet.pointerId===e.pointerId));a>=0&&u.splice(a,1),l&&o&&(l=!1,o=!1,m.imageEl&&(i.scale=Math.max(Math.min(i.scale,m.maxRatio),s.minRatio),m.imageEl.style.transitionDuration=`${t.params.speed}ms`,m.imageEl.style.transform=`translate3d(0,0,0) scale(${i.scale})`,p=i.scale,c=!1,i.scale>1&&m.slideEl?m.slideEl.classList.add(`${s.zoomedSlideClass}`):i.scale<=1&&m.slideEl&&m.slideEl.classList.remove(`${s.zoomedSlideClass}`),1===i.scale&&(m.originX=0,m.originY=0,m.slideEl=void 0)))}function M(e){if(!y(e)||!function(e){const s=`.${t.params.zoom.containerClass}`;return!!e.target.matches(s)||[...t.hostEl.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=d(m.imageWrapEl,"x")||0,h.startY=d(m.imageWrapEl,"y")||0,m.slideWidth=m.slideEl.offsetWidth,m.slideHeight=m.slideEl.offsetHeight,m.imageWrapEl.style.transitionDuration="0ms");const i=h.width*s.scale,a=h.height*s.scale;if(i0?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&&!c){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-p)/(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,p=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,i=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(`.${i.containerClass}`);s&&(s=s.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),m.imageEl=s,m.imageWrapEl=s?x(m.imageEl,`.${i.containerClass}`)[0]:void 0}if(!m.imageEl||!m.imageWrapEl)return;let a,r,l,o,d,c,u,g,v,b,y,E,S,T,M,C,P,L;t.params.cssMode&&(t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.touchAction="none"),m.slideEl.classList.add(`${i.zoomedSlideClass}`),void 0===h.touchesStart.x&&e?(a=e.pageX,r=e.pageY):(a=h.touchesStart.x,r=h.touchesStart.y);const z="number"==typeof e?e:null;1===p&&z&&(a=void 0,r=void 0),s.scale=z||m.imageWrapEl.getAttribute("data-swiper-zoom")||i.maxRatio,p=z||m.imageWrapEl.getAttribute("data-swiper-zoom")||i.maxRatio,!e||1===p&&z?(u=0,g=0):(P=m.slideEl.offsetWidth,L=m.slideEl.offsetHeight,l=w(m.slideEl).left+n.scrollX,o=w(m.slideEl).top+n.scrollY,d=l+P/2-a,c=o+L/2-r,v=m.imageEl.offsetWidth,b=m.imageEl.offsetHeight,y=v*s.scale,E=b*s.scale,S=Math.min(P/2-y/2,0),T=Math.min(L/2-E/2,0),M=-S,C=-T,u=d*s.scale,g=c*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?x(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,p=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 k(){return{passiveListener:!!t.params.passiveListeners&&{passive:!0,capture:!1},activeListenerWithCapture:!t.params.passiveListeners||{passive:!1,capture:!0}}}function A(){const e=t.zoom;if(e.enabled)return;e.enabled=!0;const{passiveListener:s,activeListenerWithCapture:i}=k();t.wrapperEl.addEventListener("pointerdown",E,s),t.wrapperEl.addEventListener("pointermove",S,i),["pointerup","pointercancel","pointerout"].forEach((e=>{t.wrapperEl.addEventListener(e,T,s)})),t.wrapperEl.addEventListener("pointermove",M,i)}function I(){const e=t.zoom;if(!e.enabled)return;e.enabled=!1;const{passiveListener:s,activeListenerWithCapture:i}=k();t.wrapperEl.removeEventListener("pointerdown",E,s),t.wrapperEl.removeEventListener("pointermove",S,i),["pointerup","pointercancel","pointerout"].forEach((e=>{t.wrapperEl.removeEventListener(e,T,s)})),t.wrapperEl.removeEventListener("pointermove",M,i)}Object.defineProperty(t.zoom,"scale",{get:()=>v,set(e){if(v!==e){const t=m.imageEl,s=m.slideEl;a("zoomChange",e,t,s)}v=e}}),i("init",(()=>{t.params.zoom.enabled&&A()})),i("destroy",(()=>{I()})),i("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 i=u.length>0?u[0]:e;h.touchesStart.x=i.pageX,h.touchesStart.y=i.pageY}(s)})),i("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,i=300;const a=g.x*s,r=h.currentX+a,n=g.y*i,l=h.currentY+n;0!==g.x&&(s=Math.abs((r-h.currentX)/g.x)),0!==g.y&&(i=Math.abs((l-h.currentY)/g.y));const o=Math.max(s,i);h.currentX=r,h.currentY=l;const d=h.width*e.scale,p=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-p/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)`}()})),i("doubleTap",((e,s)=>{!t.animating&&t.params.zoom.enabled&&t.zoom.enabled&&t.params.zoom.toggle&&z(s)})),i("transitionEnd",(()=>{t.zoom.enabled&&t.params.zoom.enabled&&C()})),i("slideChange",(()=>{t.zoom.enabled&&t.params.zoom.enabled&&t.params.cssMode&&C()})),Object.assign(t.zoom,{enable:A,disable:I,in:P,out:L,toggle:z})},function(e){let{swiper:t,extendParams:s,on:i}=e;function a(e,t){const s=function(){let e,t,s;return(i,a)=>{for(t=-1,e=i.length;e-t>1;)s=e+t>>1,i[s]<=a?t=s:e=s;return e}}();let i,a;return this.x=e,this.y=t,this.lastIndex=e.length-1,this.interpolate=function(e){return e?(a=s(this.x,e),i=a-1,(e-this.x[i])*(this.y[a]-this.y[i])/(this.x[a]-this.x[i])+this.y[i]):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},i("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=i=>{t.controller.control=i.detail[0],t.update(),e.removeEventListener("init",s)};e.addEventListener("init",s)}}else t.controller.control=t.params.controller.control})),i("update",(()=>{r()})),i("resize",(()=>{r()})),i("observerUpdate",(()=>{r()})),i("setTranslate",((e,s,i)=>{t.controller.control&&!t.controller.control.destroyed&&t.controller.setTranslate(s,i)})),i("setTransition",((e,s,i)=>{t.controller.control&&!t.controller.control.destroyed&&t.controller.setTransition(s,i)})),Object.assign(t.controller,{setTranslate:function(e,s){const i=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 a(t.slidesGrid,e.slidesGrid):new a(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(i))for(let e=0;e{s.updateAutoHeight()})),E(s.wrapperEl,(()=>{a&&s.transitionEnd()}))))}if(Array.isArray(a))for(r=0;r(Array.isArray(e)?e:[e]).filter((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 p(e,t){(e=n(e)).forEach((e=>{e.setAttribute("aria-roledescription",t)}))}function c(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,i=e.target;t.pagination&&t.pagination.el&&(i===t.pagination.el||t.pagination.el.contains(e.target))&&!e.target.matches(se(t.params.pagination.bulletClass))||(t.navigation&&t.navigation.nextEl&&i===t.navigation.nextEl&&(t.isEnd&&!t.params.loop||t.slideNext(),t.isEnd?r(s.lastSlideMessage):r(s.nextSlideMessage)),t.navigation&&t.navigation.prevEl&&i===t.navigation.prevEl&&(t.isBeginning&&!t.params.loop||t.slidePrev(),t.isBeginning?r(s.firstSlideMessage):r(s.prevSlideMessage)),t.pagination&&i.matches(se(t.params.pagination.bulletClass))&&i.click())}function f(){return t.pagination&&t.pagination.bullets&&t.pagination.bullets.length}function g(){return f()&&t.params.pagination.clickable}const w=(e,t,s)=>{l(e),"BUTTON"!==e.tagName&&(d(e,"button"),e.addEventListener("keydown",h)),c(e,s),function(e,t){(e=n(e)).forEach((e=>{e.setAttribute("aria-controls",t)}))}(e,t)},b=()=>{t.a11y.clicked=!0},x=()=>{requestAnimationFrame((()=>{requestAnimationFrame((()=>{t.destroyed||(t.a11y.clicked=!1)}))}))},E=e=>{if(t.a11y.clicked)return;const s=e.target.closest(`.${t.params.slideClass}, swiper-slide`);if(!s||!t.slides.includes(s))return;const i=t.slides.indexOf(s)===t.activeIndex,a=t.params.watchSlidesProgress&&t.visibleSlides&&t.visibleSlides.includes(s);i||a||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&&p(t.slides,e.itemRoleDescriptionMessage),e.slideRole&&d(t.slides,e.slideRole);const s=t.slides.length;e.slideLabelMessage&&t.slides.forEach(((i,a)=>{const r=t.params.loop?parseInt(i.getAttribute("data-swiper-slide-index"),10):a;c(i,e.slideLabelMessage.replace(/\{\{index\}\}/,r+1).replace(/\{\{slidesLength\}\}/,s))}))},T=()=>{const e=t.params.a11y;t.el.append(a);const s=t.el;e.containerRoleDescriptionMessage&&p(s,e.containerRoleDescriptionMessage),e.containerMessage&&c(s,e.containerMessage);const i=t.wrapperEl,r=e.id||i.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(i).forEach((e=>{e.setAttribute("id",d)})),function(e,t){(e=n(e)).forEach((e=>{e.setAttribute("aria-live",t)}))}(i,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))),g()){n(t.pagination.el).forEach((e=>{e.addEventListener("keydown",h)}))}t.el.addEventListener("focus",E,!0),t.el.addEventListener("pointerdown",b,!0),t.el.addEventListener("pointerup",x,!0)};i("beforeInit",(()=>{a=v("span",t.params.a11y.notificationClass),a.setAttribute("aria-live","assertive"),a.setAttribute("aria-atomic","true")})),i("afterInit",(()=>{t.params.a11y.enabled&&T()})),i("slidesLengthChange snapGridLengthChange slidesGridLengthChange",(()=>{t.params.a11y.enabled&&S()})),i("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)))}()})),i("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"),c(s,e.paginationBulletMessage.replace(/\{\{index\}\}/,y(s)+1)))),s.matches(se(t.params.pagination.bulletActiveClass))?s.setAttribute("aria-current","true"):s.removeAttribute("aria-current")}))}()})),i("destroy",(()=>{t.params.a11y.enabled&&function(){a&&a.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))),g()&&n(t.pagination.el).forEach((e=>{e.removeEventListener("keydown",h)}));t.el.removeEventListener("focus",E,!0),t.el.removeEventListener("pointerdown",b,!0),t.el.removeEventListener("pointerup",x,!0)}()}))},function(e){let{swiper:t,extendParams:s,on:i}=e;s({history:{enabled:!1,root:"",replaceState:!1,key:"slides",keepQuery:!1}});let a=!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 i=s.pathname.slice(1).split("/").filter((e=>""!==e)),a=i.length;return{key:i[a-2],value:i[a-1]}},d=(e,s)=>{const i=r();if(!a||!t.params.history.enabled)return;let n;n=t.params.url?new URL(t.params.url):i.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 p=i.history.state;p&&p.value===d||(t.params.history.replaceState?i.history.replaceState({value:d},null,d):i.history.pushState({value:d},null,d))},p=(e,s,i)=>{if(s)for(let a=0,r=t.slides.length;a{n=o(t.params.url),p(t.params.speed,n.value,!1)};i("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);a=!0,n=o(t.params.url),n.key||n.value?(p(0,n.value,t.params.runCallbacksOnInit),t.params.history.replaceState||e.addEventListener("popstate",c)):t.params.history.replaceState||e.addEventListener("popstate",c)}})()})),i("destroy",(()=>{t.params.history.enabled&&(()=>{const e=r();t.params.history.replaceState||e.removeEventListener("popstate",c)})()})),i("transitionEnd _freeModeNoMomentumRelease",(()=>{a&&d(t.params.history.key,t.activeIndex)})),i("slideChange",(()=>{a&&t.params.cssMode&&d(t.params.history.key,t.activeIndex)}))},function(e){let{swiper:t,extendParams:s,emit:a,on:n}=e,l=!1;const o=i(),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 p=()=>{a("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)}},c=()=>{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}`||""),a("hashSet")):(o.location.hash=s||"",a("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,i=t.params.hashNavigation.getSlideIndex(t,e);t.slideTo(i||0,s,t.params.runCallbacksOnInit,!0)}t.params.hashNavigation.watchState&&d.addEventListener("hashchange",p)})()})),n("destroy",(()=>{t.params.hashNavigation.enabled&&t.params.hashNavigation.watchState&&d.removeEventListener("hashchange",p)})),n("transitionEnd _freeModeNoMomentumRelease",(()=>{l&&c()})),n("slideChange",(()=>{l&&t.params.cssMode&&c()}))},function(e){let t,s,{swiper:a,extendParams:r,on:n,emit:l,params:o}=e;a.autoplay={running:!1,paused:!1,timeLeft:0},r({autoplay:{enabled:!1,delay:3e3,waitForTransition:!0,disableOnInteraction:!1,stopOnLastSlide:!1,reverseDirection:!1,pauseOnMouseEnter:!1}});let d,p,c,u,m,h,f,g,v=o&&o.autoplay?o.autoplay.delay:3e3,w=o&&o.autoplay?o.autoplay.delay:3e3,b=(new Date).getTime();function y(e){a&&!a.destroyed&&a.wrapperEl&&e.target===a.wrapperEl&&(a.wrapperEl.removeEventListener("transitionend",y),g||C())}const x=()=>{if(a.destroyed||!a.autoplay.running)return;a.autoplay.paused?p=!0:p&&(w=d,p=!1);const e=a.autoplay.paused?d:b+w-(new Date).getTime();a.autoplay.timeLeft=e,l("autoplayTimeLeft",e,e/v),s=requestAnimationFrame((()=>{x()}))},E=e=>{if(a.destroyed||!a.autoplay.running)return;cancelAnimationFrame(s),x();let i=void 0===e?a.params.autoplay.delay:e;v=a.params.autoplay.delay,w=a.params.autoplay.delay;const r=(()=>{let e;if(e=a.virtual&&a.params.virtual.enabled?a.slides.filter((e=>e.classList.contains("swiper-slide-active")))[0]:a.slides[a.activeIndex],!e)return;return parseInt(e.getAttribute("data-swiper-autoplay"),10)})();!Number.isNaN(r)&&r>0&&void 0===e&&(i=r,v=r,w=r),d=i;const n=a.params.speed,o=()=>{a&&!a.destroyed&&(a.params.autoplay.reverseDirection?!a.isBeginning||a.params.loop||a.params.rewind?(a.slidePrev(n,!0,!0),l("autoplay")):a.params.autoplay.stopOnLastSlide||(a.slideTo(a.slides.length-1,n,!0,!0),l("autoplay")):!a.isEnd||a.params.loop||a.params.rewind?(a.slideNext(n,!0,!0),l("autoplay")):a.params.autoplay.stopOnLastSlide||(a.slideTo(0,n,!0,!0),l("autoplay")),a.params.cssMode&&(b=(new Date).getTime(),requestAnimationFrame((()=>{E()}))))};return i>0?(clearTimeout(t),t=setTimeout((()=>{o()}),i)):requestAnimationFrame((()=>{o()})),i},S=()=>{b=(new Date).getTime(),a.autoplay.running=!0,E(),l("autoplayStart")},T=()=>{a.autoplay.running=!1,clearTimeout(t),cancelAnimationFrame(s),l("autoplayStop")},M=(e,s)=>{if(a.destroyed||!a.autoplay.running)return;clearTimeout(t),e||(f=!0);const i=()=>{l("autoplayPause"),a.params.autoplay.waitForTransition?a.wrapperEl.addEventListener("transitionend",y):C()};if(a.autoplay.paused=!0,s)return h&&(d=a.params.autoplay.delay),h=!1,void i();const r=d||a.params.autoplay.delay;d=r-((new Date).getTime()-b),a.isEnd&&d<0&&!a.params.loop||(d<0&&(d=0),i())},C=()=>{a.isEnd&&d<0&&!a.params.loop||a.destroyed||!a.autoplay.running||(b=(new Date).getTime(),f?(f=!1,E(d)):E(),a.autoplay.paused=!1,l("autoplayResume"))},P=()=>{if(a.destroyed||!a.autoplay.running)return;const e=i();"hidden"===e.visibilityState&&(f=!0,M(!0)),"visible"===e.visibilityState&&C()},L=e=>{"mouse"===e.pointerType&&(f=!0,g=!0,a.animating||a.autoplay.paused||M(!0))},z=e=>{"mouse"===e.pointerType&&(g=!1,a.autoplay.paused&&C())};n("init",(()=>{a.params.autoplay.enabled&&(a.params.autoplay.pauseOnMouseEnter&&(a.el.addEventListener("pointerenter",L),a.el.addEventListener("pointerleave",z)),i().addEventListener("visibilitychange",P),S())})),n("destroy",(()=>{a.el.removeEventListener("pointerenter",L),a.el.removeEventListener("pointerleave",z),i().removeEventListener("visibilitychange",P),a.autoplay.running&&T()})),n("_freeModeStaticRelease",(()=>{(u||f)&&C()})),n("_freeModeNoMomentumRelease",(()=>{a.params.autoplay.disableOnInteraction?T():M(!0,!0)})),n("beforeTransitionStart",((e,t,s)=>{!a.destroyed&&a.autoplay.running&&(s||!a.params.autoplay.disableOnInteraction?M(!0,!0):T())})),n("sliderFirstMove",(()=>{!a.destroyed&&a.autoplay.running&&(a.params.autoplay.disableOnInteraction?T():(c=!0,u=!1,f=!1,m=setTimeout((()=>{f=!0,u=!0,M(!0)}),200)))})),n("touchEnd",(()=>{if(!a.destroyed&&a.autoplay.running&&c){if(clearTimeout(m),clearTimeout(t),a.params.autoplay.disableOnInteraction)return u=!1,void(c=!1);u&&a.params.cssMode&&C(),u=!1,c=!1}})),n("slideChange",(()=>{!a.destroyed&&a.autoplay.running&&(h=!0)})),Object.assign(a.autoplay,{start:S,stop:T,pause:M,resume:C})},function(e){let{swiper:t,extendParams:s,on:a}=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,i=e.clickedSlide;if(i&&i.classList.contains(t.params.thumbs.slideThumbActiveClass))return;if(null==s)return;let a;a=e.params.loop?parseInt(e.clickedSlide.getAttribute("data-swiper-slide-index"),10):s,t.params.loop?t.slideToLoop(a):t.slideTo(a)}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(p(e.swiper)){const i=Object.assign({},e.swiper);Object.assign(i,{watchSlidesProgress:!0,slideToClickedSlide:!1}),t.thumbs.swiper=new s(i),n=!0}return t.thumbs.swiper.el.classList.add(t.params.thumbs.thumbsContainerClass),t.thumbs.swiper.on("tap",l),!0}function d(e){const s=t.thumbs.swiper;if(!s||s.destroyed)return;const i="auto"===s.params.slidesPerView?s.slidesPerViewDynamic():s.params.slidesPerView;let a=1;const r=t.params.thumbs.slideThumbActiveClass;if(t.params.slidesPerView>1&&!t.params.centeredSlides&&(a=t.params.slidesPerView),t.params.thumbs.multipleActiveThumbs||(a=1),a=Math.floor(a),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>a?r-Math.floor(i/2)+1:r+Math.floor(i/2)-1:r>a&&s.params.slidesPerGroup,s.slideTo(r,e?0:void 0))}}t.thumbs={swiper:null},a("beforeInit",(()=>{const{thumbs:e}=t.params;if(e&&e.swiper)if("string"==typeof e.swiper||e.swiper instanceof HTMLElement){const s=i(),a=()=>{const i="string"==typeof e.swiper?s.querySelector(e.swiper):e.swiper;if(i&&i.swiper)e.swiper=i.swiper,o(),d(!0);else if(i){const s=a=>{e.swiper=a.detail[0],i.removeEventListener("init",s),o(),d(!0),e.swiper.update(),t.update()};i.addEventListener("init",s)}return i},r=()=>{if(t.destroyed)return;a()||requestAnimationFrame(r)};requestAnimationFrame(r)}else o(),d(!0)})),a("slideChange update resize observerUpdate",(()=>{d()})),a("setTransition",((e,s)=>{const i=t.thumbs.swiper;i&&!i.destroyed&&i.setTransition(s)})),a("beforeDestroy",(()=>{const e=t.thumbs.swiper;e&&!e.destroyed&&n&&e.destroy()})),Object.assign(t.thumbs,{init:o,update:d})},function(e){let{swiper:t,extendParams:s,emit:i,once:a}=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:o()})},onTouchEnd:function(e){let{currentPos:s}=e;if(t.params.cssMode)return;const{params:r,wrapperEl:n,rtlTranslate:l,snapGrid:d,touchEventsData:p}=t,c=o()-p.touchStartTime;if(s<-t.minTranslate())t.slideTo(t.activeIndex);else if(s>-t.maxTranslate())t.slides.length1){const e=p.velocities.pop(),s=p.velocities.pop(),i=e.position-s.position,a=e.time-s.time;t.velocity=i/a,t.velocity/=2,Math.abs(t.velocity)150||o()-e.time>300)&&(t.velocity=0)}else t.velocity=0;t.velocity*=r.freeMode.momentumVelocityRatio,p.velocities.length=0;let e=1e3*r.freeMode.momentumRatio;const s=t.velocity*e;let c=t.translate+s;l&&(c=-c);let u,m=!1;const h=20*Math.abs(t.velocity)*r.freeMode.momentumBounceRatio;let f;if(ct.minTranslate())r.freeMode.momentumBounce?(c-t.minTranslate()>h&&(c=t.minTranslate()+h),u=t.minTranslate(),m=!0,p.allowMomentumBounce=!0):c=t.minTranslate(),r.loop&&r.centeredSlides&&(f=!0);else if(r.freeMode.sticky){let e;for(let t=0;t-c){e=t;break}c=Math.abs(d[e]-c){t.loopFix()})),0!==t.velocity){if(e=l?Math.abs((-c-t.translate)/t.velocity):Math.abs((c-t.translate)/t.velocity),r.freeMode.sticky){const s=Math.abs((l?-c:c)-t.translate),i=t.slidesSizesGrid[t.activeIndex];e=s{t&&!t.destroyed&&p.allowMomentumBounce&&(i("momentumBounce"),t.setTransition(r.speed),setTimeout((()=>{t.setTranslate(u),E(n,(()=>{t&&!t.destroyed&&t.transitionEnd()}))}),0))}))):t.velocity?(i("_freeModeNoMomentumRelease"),t.updateProgress(c),t.setTransition(e),t.setTranslate(c),t.transitionStart(!0,t.swipeDirection),t.animating||(t.animating=!0,E(n,(()=>{t&&!t.destroyed&&t.transitionEnd()})))):t.updateProgress(c),t.updateActiveIndex(),t.updateSlidesClasses()}else{if(r.freeMode.sticky)return void t.slideToClosest();r.freeMode&&i("_freeModeNoMomentumRelease")}(!r.freeMode.momentum||c>=r.longSwipesMs)&&(i("_freeModeStaticRelease"),t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses())}}}})},function(e){let t,s,i,a,{swiper:r,extendParams:n,on:l}=e;n({grid:{rows:1,fill:"column"}});const o=()=>{let e=r.params.spaceBetween;return"string"==typeof e&&e.indexOf("%")>=0?e=parseFloat(e.replace("%",""))/100*r.size:"string"==typeof e&&(e=parseFloat(e)),e};l("init",(()=>{a=r.params.grid&&r.params.grid.rows>1})),l("update",(()=>{const{params:e,el:t}=r,s=e.grid&&e.grid.rows>1;a&&!s?(t.classList.remove(`${e.containerModifierClass}grid`,`${e.containerModifierClass}grid-column`),i=1,r.emitContainerClasses()):!a&&s&&(t.classList.add(`${e.containerModifierClass}grid`),"column"===e.grid.fill&&t.classList.add(`${e.containerModifierClass}grid-column`),r.emitContainerClasses()),a=s})),r.grid={initSlides:e=>{const{slidesPerView:a}=r.params,{rows:n,fill:l}=r.params.grid,o=r.virtual&&r.params.virtual.enabled?r.virtual.slides.length:e.length;i=Math.floor(o/n),t=Math.floor(o/n)===o/n?o:Math.ceil(o/n)*n,"auto"!==a&&"row"===l&&(t=Math.max(t,a*n)),s=t/n},unsetSlides:()=>{r.slides&&r.slides.forEach((e=>{e.swiperSlideGridSet&&(e.style.height="",e.style[r.getDirectionLabel("margin-top")]="")}))},updateSlide:(e,a,n)=>{const{slidesPerGroup:l}=r.params,d=o(),{rows:p,fill:c}=r.params.grid,u=r.virtual&&r.params.virtual.enabled?r.virtual.slides.length:n.length;let m,h,f;if("row"===c&&l>1){const s=Math.floor(e/(l*p)),i=e-p*l*s,r=0===s?l:Math.min(Math.ceil((u-s*p*l)/p),l);f=Math.floor(i/r),h=i-f*r+s*l,m=h+f*t/p,a.style.order=m}else"column"===c?(h=Math.floor(e/p),f=e-h*p,(h>i||h===i&&f===p-1)&&(f+=1,f>=p&&(f=0,h+=1))):(f=Math.floor(e/s),h=e-f*s);a.row=f,a.column=h,a.style.height=`calc((100% - ${(p-1)*d}px) / ${p})`,a.style[r.getDirectionLabel("margin-top")]=0!==f?d&&`${d}px`:"",a.swiperSlideGridSet=!0},updateWrapperSize:(e,s)=>{const{centeredSlides:i,roundLengths:a}=r.params,n=o(),{rows:l}=r.params.grid;if(r.virtualSize=(e+n)*t,r.virtualSize=Math.ceil(r.virtualSize/l)-n,r.params.cssMode||(r.wrapperEl.style[r.getDirectionLabel("width")]=`${r.virtualSize+n}px`),i){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`})),pe({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:i}=e;s({cubeEffect:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94}});const a=(e,t,s)=>{let i=s?e.querySelector(".swiper-slide-shadow-left"):e.querySelector(".swiper-slide-shadow-top"),a=s?e.querySelector(".swiper-slide-shadow-right"):e.querySelector(".swiper-slide-shadow-bottom");i||(i=v("div",("swiper-slide-shadow-cube swiper-slide-shadow-"+(s?"left":"top")).split(" ")),e.append(i)),a||(a=v("div",("swiper-slide-shadow-cube swiper-slide-shadow-"+(s?"right":"bottom")).split(" ")),e.append(a)),i&&(i.style.opacity=Math.max(-t,0)),a&&(a.style.opacity=Math.max(t,0))};oe({effect:"cube",swiper:t,on:i,setTranslate:()=>{const{el:e,wrapperEl:s,slides:i,width:r,height:n,rtlTranslate:l,size:o,browser:d}=t,p=t.params.cubeEffect,c=t.isHorizontal(),u=t.virtual&&t.params.virtual.enabled;let m,h=0;p.shadow&&(c?(m=t.wrapperEl.querySelector(".swiper-cube-shadow"),m||(m=v("div","swiper-cube-shadow"),t.wrapperEl.append(m)),m.style.height=`${r}px`):(m=e.querySelector(".swiper-cube-shadow"),m||(m=v("div","swiper-cube-shadow"),e.append(m))));for(let e=0;e-1&&(h=90*r+90*m,l&&(h=90*-r-90*m),t.browser&&t.browser.isSafari&&Math.abs(h)/90%2==1&&(h+=.001)),s.style.transform=w,p.slideShadows&&a(s,m,c)}if(s.style.transformOrigin=`50% 50% -${o/2}px`,s.style["-webkit-transform-origin"]=`50% 50% -${o/2}px`,p.shadow)if(c)m.style.transform=`translate3d(0px, ${r/2+p.shadowOffset}px, ${-r/2}px) rotateX(89.99deg) rotateZ(0deg) scale(${p.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=p.shadowScale,i=p.shadowScale/t,a=p.shadowOffset;m.style.transform=`scale3d(${s}, 1, ${i}) translate3d(0px, ${n/2+a}px, ${-n/2/i}px) rotateX(-89.99deg)`}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:i}=t;if(i.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);a(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:i}=e;s({flipEffect:{slideShadows:!0,limitRotation:!0}});const a=(e,s)=>{let i=t.isHorizontal()?e.querySelector(".swiper-slide-shadow-left"):e.querySelector(".swiper-slide-shadow-top"),a=t.isHorizontal()?e.querySelector(".swiper-slide-shadow-right"):e.querySelector(".swiper-slide-shadow-bottom");i||(i=ce("flip",e,t.isHorizontal()?"left":"top")),a||(a=ce("flip",e,t.isHorizontal()?"right":"bottom")),i&&(i.style.opacity=Math.max(-s,0)),a&&(a.style.opacity=Math.max(s,0))};oe({effect:"flip",swiper:t,on:i,setTranslate:()=>{const{slides:e,rtlTranslate:s}=t,i=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`}))})),pe({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)),a(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:i}=e;s({coverflowEffect:{rotate:50,stretch:0,depth:100,scale:1,modifier:1,slideShadows:!0}}),oe({effect:"coverflow",swiper:t,on:i,setTranslate:()=>{const{width:e,height:s,slides:i,slidesSizesGrid:a}=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,p=r.depth;for(let e=0,s=i.length;e0?u:0),t&&(t.style.opacity=-u>0?-u: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:i}=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 a=e=>"string"==typeof e?e:`${e}px`;oe({effect:"creative",swiper:t,on:i,setTranslate:()=>{const{slides:e,wrapperEl:s,slidesSizesGrid:i}=t,r=t.params.creativeEffect,{progressMultiplier:n}=r,l=t.params.centeredSlides;if(l){const e=i[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 + (${a(f.translate[t])} * ${Math.abs(d*n)}))`})),m.forEach(((e,s)=>{let i=f.rotate[s]*Math.abs(d*n);t.browser&&t.browser.isSafari&&Math.abs(i)/90%2==1&&(i+=.001),m[s]=i})),i.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=p<0?`scale(${1+(1-f.scale)*p*n})`:`scale(${1-(1-f.scale)*p*n})`,b=p<0?1+(1-f.opacity)*p*n:1-(1-f.opacity)*p*n,y=`translate3d(${g}) ${v} ${w}`;if(h&&f.shadow||!h){let e=i.querySelector(".swiper-slide-shadow");if(!e&&f.shadow&&(e=ce("creative",i)),e){const t=r.shadowPerProgress?d*(1/r.limitProgress):d;e.style.opacity=Math.min(Math.max(Math.abs(t),0),1)}}const x=de(0,i);x.style.transform=y,x.style.opacity=b,f.origin&&(x.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`}))})),pe({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:i}=e;s({cardsEffect:{slideShadows:!0,rotate:!0,perSlideRotate:2,perSlideOffset:8}}),oe({effect:"cards",swiper:t,on:i,setTranslate:()=>{const{slides:e,activeIndex:s,rtlTranslate:i}=t,a=t.params.cardsEffect,{startTranslate:r,isTouched:n}=t.touchEventsData,l=i?-t.translate:t.translate;for(let o=0;o0&&c<1&&(n||t.params.cssMode)&&l-1&&(n||t.params.cssMode)&&l>r;if(y||x){const e=(1-Math.abs((Math.abs(c)-.5)/.5))**.5;v+=-28*c*e,g+=-.5*e,w+=96*e,h=-25*e*Math.abs(c)+"%"}if(m=c<0?`calc(${m}px ${i?"-":"+"} (${w*Math.abs(c)}%))`:c>0?`calc(${m}px ${i?"-":"+"} (-${w*Math.abs(c)}%))`:`${m}px`,!t.isHorizontal()){const e=h;h=m,m=e}const E=c<0?""+(1+(1-g)*c):""+(1-(1-g)*c),S=`\n translate3d(${m}, ${h}, ${f}px)\n rotateZ(${a.rotate?i?-v:v:0}deg)\n scale(${E})\n `;if(a.slideShadows){let e=d.querySelector(".swiper-slide-shadow");e||(e=ce("cards",d)),e&&(e.style.opacity=Math.min(Math.max((Math.abs(c)-.5)/.5,0),1))}d.style.zIndex=-Math.abs(Math.round(p))+e.length;de(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`}))})),pe({swiper:t,duration:e,transformElements:s})},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!t.params.cssMode})})}];ee.use(ue);const me=["eventsPrefix","injectStyles","injectStylesUrls","modules","init","_direction","oneWayMovement","touchEventsTarget","initialSlide","_speed","cssMode","updateOnWindowResize","resizeObserver","nested","focusableElements","_enabled","_width","_height","preventInteractionOnTransition","userAgent","url","_edgeSwipeDetection","_edgeSwipeThreshold","_freeMode","_autoHeight","setWrapperSize","virtualTranslate","_effect","breakpoints","breakpointsBase","_spaceBetween","_slidesPerView","maxBackfaceHiddenSlides","_grid","_slidesPerGroup","_slidesPerGroupSkip","_slidesPerGroupAuto","_centeredSlides","_centeredSlidesBounds","_slidesOffsetBefore","_slidesOffsetAfter","normalizeSlideIndex","_centerInsufficientSlides","_watchOverflow","roundLengths","touchRatio","touchAngle","simulateTouch","_shortSwipes","_longSwipes","longSwipesRatio","longSwipesMs","_followFinger","allowTouchMove","_threshold","touchMoveStopPropagation","touchStartPreventDefault","touchStartForcePreventDefault","touchReleaseOnEdges","uniqueNavElements","_resistance","_resistanceRatio","_watchSlidesProgress","_grabCursor","preventClicks","preventClicksPropagation","_slideToClickedSlide","_loop","loopAdditionalSlides","loopAddBlankSlides","loopPreventsSliding","_rewind","_allowSlidePrev","_allowSlideNext","_swipeHandler","_noSwiping","noSwipingClass","noSwipingSelector","passiveListeners","containerModifierClass","slideClass","slideActiveClass","slideVisibleClass","slideFullyVisibleClass","slideNextClass","slidePrevClass","slideBlankClass","wrapperClass","lazyPreloaderClass","lazyPreloadPrevNext","runCallbacksOnInit","observer","observeParents","observeSlideChildren","a11y","_autoplay","_controller","coverflowEffect","cubeEffect","fadeEffect","flipEffect","creativeEffect","cardsEffect","hashNavigation","history","keyboard","mousewheel","_navigation","_pagination","parallax","_scrollbar","_thumbs","virtual","zoom","control"];function he(e){return"object"==typeof e&&null!==e&&e.constructor&&"Object"===Object.prototype.toString.call(e).slice(8,-1)&&!e.__swiper__}function fe(e,t){const s=["__proto__","constructor","prototype"];Object.keys(t).filter((e=>s.indexOf(e)<0)).forEach((s=>{void 0===e[s]?e[s]=t[s]:he(t[s])&&he(e[s])&&Object.keys(t[s]).length>0?t[s].__swiper__?e[s]=t[s]:fe(e[s],t[s]):e[s]=t[s]}))}function ge(e){return void 0===e&&(e=""),e.replace(/-[a-z]/g,(e=>e.toUpperCase().replace("-","")))}const ve=e=>{if(parseFloat(e)===Number(e))return Number(e);if("true"===e)return!0;if(""===e)return!0;if("false"===e)return!1;if("null"===e)return null;if("undefined"!==e){if("string"==typeof e&&e.includes("{")&&e.includes("}")&&e.includes('"')){let t;try{t=JSON.parse(e)}catch(s){t=e}return t}return e}},we=["a11y","autoplay","controller","cards-effect","coverflow-effect","creative-effect","cube-effect","fade-effect","flip-effect","free-mode","grid","hash-navigation","history","keyboard","mousewheel","navigation","pagination","parallax","scrollbar","thumbs","virtual","zoom"];function be(e,t,s){const i={},a={};fe(i,K);const r=[...me,"on"],n=r.map((e=>e.replace(/_/,"")));r.forEach((t=>{t=t.replace("_",""),void 0!==e[t]&&(a[t]=e[t])}));const l=[...e.attributes];return"string"==typeof t&&void 0!==s&&l.push({name:t,value:he(s)?{...s}:s}),l.forEach((e=>{const t=we.filter((t=>0===e.name.indexOf(`${t}-`)))[0];if(t){const s=ge(t),i=ge(e.name.split(`${t}-`)[1]);void 0===a[s]&&(a[s]={}),!0===a[s]&&(a[s]={enabled:!0}),a[s][i]=ve(e.value)}else{const t=ge(e.name);if(!n.includes(t))return;const s=ve(e.value);a[t]&&we.includes(e.name)&&!he(s)?(a[t].constructor!==Object&&(a[t]={}),a[t].enabled=!!s):a[t]=s}})),fe(i,a),i.navigation?i.navigation={prevEl:".swiper-button-prev",nextEl:".swiper-button-next",...!0!==i.navigation?i.navigation:{}}:!1===i.navigation&&delete i.navigation,i.scrollbar?i.scrollbar={el:".swiper-scrollbar",...!0!==i.scrollbar?i.scrollbar:{}}:!1===i.scrollbar&&delete i.scrollbar,i.pagination?i.pagination={el:".swiper-pagination",...!0!==i.pagination?i.pagination:{}}:!1===i.pagination&&delete i.pagination,{params:i,passedParams:a}}const ye=":host{--swiper-theme-color:#007aff}:host{position:relative;display:block;margin-left:auto;margin-right:auto;z-index:1}.swiper{width:100%;height:100%;margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);box-sizing:content-box}.swiper-android ::slotted(swiper-slide),.swiper-ios ::slotted(swiper-slide),.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}::slotted(swiper-slide){flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}::slotted(.swiper-slide-invisible-blank){visibility:hidden}.swiper-autoheight,.swiper-autoheight ::slotted(swiper-slide){height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden ::slotted(swiper-slide){transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d ::slotted(swiper-slide){transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode ::slotted(swiper-slide){scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode ::slotted(swiper-slide){scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered ::slotted(swiper-slide){scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal ::slotted(swiper-slide):first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical ::slotted(swiper-slide):first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-virtual ::slotted(swiper-slide){-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper::after{content:'';position:absolute;left:0;top:0;pointer-events:none}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after{width:1px;height:var(--swiper-virtual-size)}:host{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:var(--swiper-navigation-top-offset,50%);width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size)/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next.swiper-button-hidden,.swiper-button-prev.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled .swiper-button-next,.swiper-navigation-disabled .swiper-button-prev{display:none!important}.swiper-button-next svg,.swiper-button-prev svg{width:100%;height:100%;object-fit:contain;transform-origin:center}.swiper-rtl .swiper-button-next svg,.swiper-rtl .swiper-button-prev svg{transform:rotate(180deg)}.swiper-button-prev,.swiper-rtl .swiper-button-next{left:var(--swiper-navigation-sides-offset,10px);right:auto}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:var(--swiper-navigation-sides-offset,10px);left:auto}.swiper-button-lock{display:none}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:var(--swiper-pagination-bottom,8px);top:var(--swiper-pagination-top,auto);left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));display:inline-block;border-radius:var(--swiper-pagination-bullet-border-radius,50%);background:var(--swiper-pagination-bullet-inactive-color,#000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{right:var(--swiper-pagination-right,8px);left:var(--swiper-pagination-left,auto);top:50%;transform:translate3d(0px,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0;display:block}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color,inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color,rgba(0,0,0,.25));position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:var(--swiper-pagination-progressbar-size,4px);left:0;top:0}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{width:var(--swiper-pagination-progressbar-size,4px);height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:var(--swiper-scrollbar-border-radius,10px);position:relative;touch-action:none;background:var(--swiper-scrollbar-bg-color,rgba(0,0,0,.1))}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:var(--swiper-scrollbar-sides-offset,1%);bottom:var(--swiper-scrollbar-bottom,4px);top:var(--swiper-scrollbar-top,auto);z-index:50;height:var(--swiper-scrollbar-size,4px);width:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{position:absolute;left:var(--swiper-scrollbar-left,auto);right:var(--swiper-scrollbar-right,4px);top:var(--swiper-scrollbar-sides-offset,1%);z-index:50;width:var(--swiper-scrollbar-size,4px);height:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:var(--swiper-scrollbar-drag-bg-color,rgba(0,0,0,.5));border-radius:var(--swiper-scrollbar-border-radius,10px);left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}::slotted(.swiper-slide-zoomed){cursor:move;touch-action:none}.swiper .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-fade.swiper-free-mode ::slotted(swiper-slide){transition-timing-function:ease-out}.swiper-fade ::slotted(swiper-slide){pointer-events:none;transition-property:opacity}.swiper-fade ::slotted(swiper-slide) ::slotted(swiper-slide){pointer-events:none}.swiper-fade ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-fade ::slotted(.swiper-slide-active) ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-cube{overflow:visible}.swiper-cube ::slotted(swiper-slide){pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube ::slotted(swiper-slide) ::slotted(swiper-slide){pointer-events:none}.swiper-cube.swiper-rtl ::slotted(swiper-slide){transform-origin:100% 0}.swiper-cube ::slotted(.swiper-slide-active),.swiper-cube ::slotted(.swiper-slide-active) ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-cube ::slotted(.swiper-slide-active),.swiper-cube ::slotted(.swiper-slide-next),.swiper-cube ::slotted(.swiper-slide-prev){pointer-events:auto;visibility:visible}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:'';background:#000;position:absolute;left:0;top:0;bottom:0;right:0;filter:blur(50px)}.swiper-cube ::slotted(.swiper-slide-next)+::slotted(swiper-slide){pointer-events:auto;visibility:visible}.swiper-flip{overflow:visible}.swiper-flip ::slotted(swiper-slide){pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-flip ::slotted(swiper-slide) ::slotted(swiper-slide){pointer-events:none}.swiper-flip ::slotted(.swiper-slide-active),.swiper-flip ::slotted(.swiper-slide-active) ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-creative ::slotted(swiper-slide){-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper-cards{overflow:visible}.swiper-cards ::slotted(swiper-slide){transform-origin:center bottom;-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden}";const xe="undefined"==typeof window||"undefined"==typeof HTMLElement?class{}:HTMLElement,Ee='\n ',Se=(e,t)=>{if("undefined"!=typeof CSSStyleSheet&&e.adoptedStyleSheets){const s=new CSSStyleSheet;s.replaceSync(t),e.adoptedStyleSheets=[s]}else{const s=document.createElement("style");s.rel="stylesheet",s.textContent=t,e.appendChild(s)}};class Te extends xe{constructor(){super(),this.attachShadow({mode:"open"})}static get nextButtonSvg(){return Ee}static get prevButtonSvg(){return Ee.replace("/>",' transform-origin="center" transform="rotate(180)"/>')}cssStyles(){return[ye,...this.injectStyles&&Array.isArray(this.injectStyles)?this.injectStyles:[]].join("\n")}cssLinks(){return this.injectStylesUrls||[]}calcSlideSlots(){const e=this.slideSlots||0,t=[...this.querySelectorAll("[slot^=slide-]")].map((e=>parseInt(e.getAttribute("slot").split("slide-")[1],10)));if(this.slideSlots=t.length?Math.max(...t)+1:0,this.rendered)if(this.slideSlots>e)for(let t=e;t=0;t-=1)t>this.slideSlots&&e[t].remove()}}render(){if(this.rendered)return;this.calcSlideSlots();let e=this.cssStyles();this.slideSlots>0&&(e=e.replace(/::slotted\(([a-z-0-9.]*)\)/g,"$1")),e.length&&Se(this.shadowRoot,e),this.cssLinks().forEach((e=>{if(this.shadowRoot.querySelector(`link[href="${e}"]`))return;const t=document.createElement("link");t.rel="stylesheet",t.href=e,this.shadowRoot.appendChild(t)}));const t=document.createElement("div");var s;t.classList.add("swiper"),t.part="container",t.innerHTML=`\n \n
    \n \n ${Array.from({length:this.slideSlots}).map(((e,t)=>`\n \n \n \n `)).join("")}\n
    \n \n ${s=this.passedParams,void 0===s&&(s={}),s.navigation&&void 0===s.navigation.nextEl&&void 0===s.navigation.prevEl?`\n
    ${this.constructor.prevButtonSvg}
    \n
    ${this.constructor.nextButtonSvg}
    \n `:""}\n ${function(e){return void 0===e&&(e={}),e.pagination&&void 0===e.pagination.el}(this.passedParams)?'\n
    \n ':""}\n ${function(e){return void 0===e&&(e={}),e.scrollbar&&void 0===e.scrollbar.el}(this.passedParams)?'\n
    \n ':""}\n `,this.shadowRoot.appendChild(t),this.rendered=!0}initialize(){var e=this;if(this.initialized)return;this.initialized=!0;const{params:t,passedParams:s}=be(this);this.swiperParams=t,this.passedParams=s,delete this.swiperParams.init,this.render(),this.swiper=new ee(this.shadowRoot.querySelector(".swiper"),{...t.virtual?{}:{observer:!0,observeSlideChildren:this.slideSlots>0},...t,touchEventsTarget:"container",onAny:function(s){"observerUpdate"===s&&e.calcSlideSlots();const i=t.eventsPrefix?`${t.eventsPrefix}${s.toLowerCase()}`:s.toLowerCase();for(var a=arguments.length,r=new Array(a>1?a-1:0),n=1;n"children"!==e&&"direction"!==e&&"wrapperClass"!==e)),{params:p,pagination:c,navigation:u,scrollbar:m,virtual:h,thumbs:f}=t;let g,v,w,b,y,x,E,S;a.includes("thumbs")&&i.thumbs&&i.thumbs.swiper&&p.thumbs&&!p.thumbs.swiper&&(g=!0),a.includes("controller")&&i.controller&&i.controller.control&&p.controller&&!p.controller.control&&(v=!0),a.includes("pagination")&&i.pagination&&(i.pagination.el||o)&&(p.pagination||!1===p.pagination)&&c&&!c.el&&(w=!0),a.includes("scrollbar")&&i.scrollbar&&(i.scrollbar.el||l)&&(p.scrollbar||!1===p.scrollbar)&&m&&!m.el&&(b=!0),a.includes("navigation")&&i.navigation&&(i.navigation.prevEl||n)&&(i.navigation.nextEl||r)&&(p.navigation||!1===p.navigation)&&u&&!u.prevEl&&!u.nextEl&&(y=!0);const T=e=>{t[e]&&(t[e].destroy(),"navigation"===e?(t.isElement&&(t[e].prevEl.remove(),t[e].nextEl.remove()),p[e].prevEl=void 0,p[e].nextEl=void 0,t[e].prevEl=void 0,t[e].nextEl=void 0):(t.isElement&&t[e].el.remove(),p[e].el=void 0,t[e].el=void 0))};a.includes("loop")&&t.isElement&&(p.loop&&!i.loop?x=!0:!p.loop&&i.loop?E=!0:S=!0),d.forEach((e=>{if(he(p[e])&&he(i[e]))Object.assign(p[e],i[e]),"navigation"!==e&&"pagination"!==e&&"scrollbar"!==e||!("enabled"in i[e])||i[e].enabled||T(e);else{const t=i[e];!0!==t&&!1!==t||"navigation"!==e&&"pagination"!==e&&"scrollbar"!==e?p[e]=i[e]:!1===t&&T(e)}})),d.includes("controller")&&!v&&t.controller&&t.controller.control&&p.controller&&p.controller.control&&(t.controller.control=p.controller.control),a.includes("children")&&s&&h&&p.virtual.enabled?(h.slides=s,h.update(!0)):a.includes("virtual")&&h&&p.virtual.enabled&&(s&&(h.slides=s),h.update(!0)),a.includes("children")&&s&&p.loop&&(S=!0),g&&f.init()&&f.update(!0);v&&(t.controller.control=p.controller.control),w&&(!t.isElement||o&&"string"!=typeof o||(o=document.createElement("div"),o.classList.add("swiper-pagination"),o.part.add("pagination"),t.el.appendChild(o)),o&&(p.pagination.el=o),c.init(),c.render(),c.update()),b&&(!t.isElement||l&&"string"!=typeof l||(l=document.createElement("div"),l.classList.add("swiper-scrollbar"),l.part.add("scrollbar"),t.el.appendChild(l)),l&&(p.scrollbar.el=l),m.init(),m.updateSize(),m.setTranslate()),y&&(t.isElement&&(r&&"string"!=typeof r||(r=document.createElement("div"),r.classList.add("swiper-button-next"),r.innerHTML=t.hostEl.constructor.nextButtonSvg,r.part.add("button-next"),t.el.appendChild(r)),n&&"string"!=typeof n||(n=document.createElement("div"),n.classList.add("swiper-button-prev"),n.innerHTML=t.hostEl.constructor.prevButtonSvg,n.part.add("button-prev"),t.el.appendChild(n))),r&&(p.navigation.nextEl=r),n&&(p.navigation.prevEl=n),u.init(),u.update()),a.includes("allowSlideNext")&&(t.allowSlideNext=i.allowSlideNext),a.includes("allowSlidePrev")&&(t.allowSlidePrev=i.allowSlidePrev),a.includes("direction")&&t.changeDirection(i.direction,!1),(x||S)&&t.loopDestroy(),(E||S)&&t.loopCreate(),t.update()}({swiper:this.swiper,passedParams:this.passedParams,changedParams:[ge(e)],..."navigation"===e&&i[e]?{prevEl:".swiper-button-prev",nextEl:".swiper-button-next"}:{},..."pagination"===e&&i[e]?{paginationEl:".swiper-pagination"}:{},..."scrollbar"===e&&i[e]?{scrollbarEl:".swiper-scrollbar"}:{}})}attributeChangedCallback(e,t,s){this.initialized&&("true"===t&&null===s&&(s=!1),this.updateSwiperOnPropChange(e,s))}static get observedAttributes(){return me.filter((e=>e.includes("_"))).map((e=>e.replace(/[A-Z]/g,(e=>`-${e}`)).replace("_","").toLowerCase()))}}me.forEach((e=>{"init"!==e&&(e=e.replace("_",""),Object.defineProperty(Te.prototype,e,{configurable:!0,get(){return(this.passedParams||{})[e]},set(t){this.passedParams||(this.passedParams={}),this.passedParams[e]=t,this.initialized&&this.updateSwiperOnPropChange(e,t)}}))}));class Me extends xe{constructor(){super(),this.attachShadow({mode:"open"})}render(){const e=this.lazy||""===this.getAttribute("lazy")||"true"===this.getAttribute("lazy");if(Se(this.shadowRoot,"::slotted(.swiper-slide-shadow),::slotted(.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-top){position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}::slotted(.swiper-slide-shadow){background:rgba(0,0,0,.15)}::slotted(.swiper-slide-shadow-left){background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-slide-shadow-right){background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-slide-shadow-top){background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-slide-shadow-bottom){background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear;width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-top){z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-top){z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}::slotted(.swiper-zoom-container){width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}::slotted(.swiper-zoom-container)>canvas,::slotted(.swiper-zoom-container)>img,::slotted(.swiper-zoom-container)>svg{max-width:100%;max-height:100%;object-fit:contain}"),this.shadowRoot.appendChild(document.createElement("slot")),e){const e=document.createElement("div");e.classList.add("swiper-lazy-preloader"),e.part.add("preloader"),this.shadowRoot.appendChild(e)}}initialize(){this.render()}connectedCallback(){this.initialize()}}"undefined"!=typeof window&&(window.SwiperElementRegisterParams=e=>{me.push(...e)}),"undefined"!=typeof window&&(window.customElements.get("swiper-container")||window.customElements.define("swiper-container",Te),window.customElements.get("swiper-slide")||window.customElements.define("swiper-slide",Me))}(); -//# sourceMappingURL=swiper-element-bundle.min.js.map \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/swiper-element-bundle.min.js.map b/build/assets/js/vendor/swiper/swiper-element-bundle.min.js.map deleted file mode 100644 index a067847..0000000 --- a/build/assets/js/vendor/swiper/swiper-element-bundle.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"swiper-element-bundle.js.js","names":["isObject$2","obj","constructor","Object","extend$2","target","src","keys","forEach","key","length","ssrDocument","body","addEventListener","removeEventListener","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","createElement","children","childNodes","style","setAttribute","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","getDocument","doc","document","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","this","getComputedStyle","getPropertyValue","Image","Date","screen","setTimeout","clearTimeout","matchMedia","requestAnimationFrame","callback","cancelAnimationFrame","id","getWindow","win","window","classesToTokens","classes","trim","split","filter","c","nextTick","delay","now","getTranslate","el","axis","matrix","curTransform","transformMatrix","curStyle","currentStyle","getComputedStyle$1","WebKitCSSMatrix","transform","webkitTransform","map","a","replace","join","MozTransform","OTransform","MsTransform","msTransform","toString","m41","parseFloat","m42","isObject$1","o","prototype","call","slice","extend$1","to","arguments","undefined","noExtend","i","nextSource","node","HTMLElement","nodeType","keysArray","indexOf","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","enumerable","__swiper__","setCSSProperty","varName","varValue","setProperty","animateCSSModeScroll","_ref","swiper","targetPosition","side","startPosition","translate","time","startTime","duration","params","speed","wrapperEl","scrollSnapType","cssModeFrameID","dir","isOutOfBound","current","animate","getTime","progress","Math","max","min","easeProgress","cos","PI","currentPosition","scrollTo","overflow","getSlideTransformEl","slideEl","shadowRoot","elementChildren","element","selector","matches","showWarning","text","console","warn","err","tag","classList","add","Array","isArray","elementOffset","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","elementStyle","prop","elementIndex","child","previousSibling","elementParents","parents","parent","parentElement","push","elementTransitionEnd","fireCallBack","e","elementOuterSize","size","includeMargins","offsetWidth","support","deviceCached","browser","getSupport","smoothScroll","documentElement","touch","DocumentTouch","calcSupport","getDevice","overrides","_temp","platform","ua","device","ios","android","screenWidth","width","screenHeight","height","match","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","needPerspectiveFix","isSafari","toLowerCase","String","includes","major","minor","num","Number","isWebView","test","calcBrowser","eventsEmitter","on","events","handler","priority","self","eventsListeners","destroyed","method","event","once","onceHandler","off","__emitterProxy","_len","args","_key","apply","onAny","eventsAnyListeners","offAny","index","splice","eventHandler","emit","data","context","_len2","_key2","unshift","processLazyPreloader","imageEl","closest","isElement","slideClass","lazyEl","lazyPreloaderClass","remove","unlazy","slides","removeAttribute","preload","amount","lazyPreloadPrevNext","slidesPerView","slidesPerViewDynamic","ceil","activeIndex","grid","rows","activeColumn","preloadColumns","from","_","column","slideIndexLastInView","rewind","loop","realIndex","update","updateSize","clientWidth","clientHeight","isHorizontal","isVertical","parseInt","isNaN","assign","updateSlides","getDirectionPropertyValue","label","getDirectionLabel","slidesEl","swiperSize","rtlTranslate","rtl","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginRight","marginBottom","marginTop","centeredSlides","cssMode","gridEnabled","slideSize","initSlides","unsetSlides","shouldResetSlideSize","breakpoints","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","floor","swiperSlideSize","abs","slidesPerGroup","slidesPerGroupSkip","effect","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","groups","slidesBefore","slidesAfter","groupSize","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","v","watchOverflow","checkOverflow","watchSlidesProgress","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","contains","maxBackfaceHiddenSlides","updateAutoHeight","activeSlides","newHeight","setTransition","getSlideByIndex","getSlideIndexByData","visibleSlides","offsetHeight","minusOffset","offsetLeft","offsetTop","swiperSlideOffset","cssOverflowAdjustment","updateSlidesProgress","offsetCenter","slideVisibleClass","slideFullyVisibleClass","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","isFullyVisible","originalProgress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","progressLoop","wasBeginning","wasEnd","isBeginningRounded","isEndRounded","firstSlideIndex","lastSlideIndex","firstSlideTranslate","lastSlideTranslate","translateMax","translateAbs","autoHeight","updateSlidesClasses","getFilteredSlide","activeSlide","prevSlide","nextSlide","slideActiveClass","slideNextClass","slidePrevClass","nextEls","nextElementSibling","next","elementNextAll","prevEls","previousElementSibling","prev","elementPrevAll","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","getVirtualRealIndex","aIndex","normalizeSlideIndex","getActiveIndexByTranslate","skip","firstSlideInColumn","activeSlideIndex","getAttribute","initialized","runCallbacksOnInit","updateClickedSlide","path","pathEl","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","virtualTranslate","currentTranslate","setTranslate","byController","newProgress","x","y","previousTranslate","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","isH","behavior","onTranslateToWrapperTransitionEnd","transitionEmit","direction","step","slideTo","initial","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","transitionStart","transitionEnd","t","_immediateVirtual","_cssModeVirtualInitialSet","initialSlide","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","targetSlideIndex","cols","needLoopFix","loopFix","slideRealIndex","slideNext","perGroup","slidesPerGroupAuto","increment","loopPreventsSliding","_clientLeft","slidePrev","normalize","val","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","lastIndex","slideReset","slideToClosest","threshold","currentSnap","slideToIndex","slideSelector","loopedSlides","getSlideIndex","loopCreate","shouldFillGroup","shouldFillGrid","addBlankSlides","amountOfSlides","slideBlankClass","append","loopAddBlankSlides","recalcSlides","byMousewheel","loopAdditionalSlides","fill","prependSlidesIndexes","appendSlidesIndexes","isNext","isPrev","slidesPrepended","slidesAppended","activeColIndexWithShift","colIndexToPrepend","__preventObserver__","swiperLoopMoveDOM","prepend","currentSlideTranslate","diff","touchEventsData","startTranslate","shift","controller","control","loopParams","loopDestroy","newSlidesOrder","swiperSlideIndex","preventEdgeSwipe","startX","edgeSwipeDetection","edgeSwipeThreshold","innerWidth","preventDefault","onTouchStart","originalEvent","type","pointerId","targetTouches","touchId","identifier","pageX","touches","simulateTouch","pointerType","targetEl","touchEventsTarget","which","button","isTouched","isMoved","swipingClassHasValue","noSwipingClass","eventPath","composedPath","noSwipingSelector","isTargetShadow","noSwiping","base","__closestFrom","assignedSlot","found","getRootNode","closestElement","allowClick","swipeHandler","currentX","currentY","pageY","startY","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","freeMode","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","previousX","previousY","diffX","diffY","sqrt","touchAngle","atan2","cancelable","touchMoveStopPropagation","nested","stopPropagation","touchesDiff","oneWayMovement","touchRatio","prevTouchesDirection","touchesDirection","isLoop","allowLoopFix","evt","bubbles","dispatchEvent","allowMomentumBounce","grabCursor","setGrabCursor","loopSwapReset","disableParentSwiper","resistanceRatio","resistance","followFinger","onTouchEnd","touchEndTime","timeDiff","pathTree","lastClickTime","currentPos","swipeToLast","stopIndex","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","setBreakpoint","isVirtualLoop","autoplay","running","paused","resizeTimeout","resume","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","onLoad","onDocumentTouchStart","documentTouchHandlerProceeded","touchAction","capture","domMethod","swiperMethod","passive","updateOnWindowResize","isGridEnabled","defaults","init","resizeObserver","createElements","eventsPrefix","url","breakpointsBase","uniqueNavElements","passiveListeners","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","transition","transitionDuration","transitionDelay","moving","isLocked","cursor","unsetGrabCursor","attachEvents","bind","detachEvents","breakpoint","getBreakpoint","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","wasModuleEnabled","isModuleEnabled","disable","enable","directionChanged","needsReLoop","wasLoop","changeDirection","isEnabled","hasLoop","containerEl","currentHeight","innerHeight","points","point","minRatio","substr","value","sort","b","wasLocked","lastSlideRightEdge","addClasses","classNames","suffixes","entries","prefix","resultClasses","item","prepareClasses","autoheight","centered","removeClasses","extendedDefaults","Swiper","swipers","newParams","modules","__modules__","mod","extendParams","swiperParams","passedParams","eventName","velocity","trunc","clickTimeout","velocities","imagesToLoad","imagesLoaded","property","setProgress","cls","className","getSlideClasses","updates","view","exact","spv","breakLoop","translateValue","translated","complete","newDirection","needUpdate","currentDirection","changeLanguageDirection","mount","mounted","parentNode","getWrapperSelector","getWrapper","slideSlots","hostEl","lazyElements","destroy","deleteInstance","cleanStyles","object","deleteProps","extendDefaults","newDefaults","installModule","use","module","m","createElementIfNotDefined","checkProps","classesToSelector","appendSlide","appendElement","tempDOM","innerHTML","observer","prependSlide","prependElement","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","effectInit","overwriteParams","perspective","recreateShadows","getEffectParams","requireUpdateOnVirtual","overwriteParamsResult","_s","slideShadows","shadowEl","effectTarget","effectParams","transformEl","backfaceVisibility","effectVirtualTransitionEnd","transformElements","allSlides","transitionEndTarget","eventTriggered","getSlide","createShadow","suffix","shadowClass","shadowContainer","prototypeGroup","protoMethod","animationFrame","resizeHandler","orientationChangeHandler","ResizeObserver","newWidth","_ref2","contentBoxSize","contentRect","inlineSize","blockSize","observe","unobserve","observers","attach","options","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","observeParents","observeSlideChildren","containerParents","disconnect","cssModeTimeout","cache","renderSlide","renderExternal","renderExternalUpdate","addSlidesBefore","addSlidesAfter","offset","force","previousFrom","previousTo","previousSlidesGrid","previousOffset","offsetProp","onRendered","slidesToRender","prependIndexes","appendIndexes","loopFrom","loopTo","domSlidesAssigned","numberOfNewSlides","newCache","cachedIndex","cachedEl","cachedElIndex","handle","kc","keyCode","charCode","pageUpDown","keyboard","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","shiftKey","altKey","ctrlKey","metaKey","onlyInViewport","inView","swiperWidth","swiperHeight","windowWidth","windowHeight","swiperOffset","swiperCoord","returnValue","timeout","mousewheel","releaseOnEdges","invert","forceToAxis","sensitivity","eventsTarget","thresholdDelta","thresholdTime","noMousewheelClass","lastEventBeforeSnap","lastScrollTime","recentWheelEvents","handleMouseEnter","mouseEntered","handleMouseLeave","animateSlider","newEvent","delta","raw","targetElContainsTarget","rtlFactor","sX","sY","pX","pY","detail","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","positions","sign","ignoreWheelEvents","position","sticky","prevEvent","firstEvent","snapToThreshold","autoplayDisableOnInteraction","stop","releaseScroll","hideOnClick","disabledClass","hiddenClass","lockClass","navigationDisabledClass","makeElementsArray","getEl","res","toggleEl","disabled","subEl","tagName","onPrevClick","onNextClick","initButton","destroyButton","pagination","clickable","isHidden","toggle","pfx","bulletSize","bulletElement","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","number","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","progressbarFillClass","progressbarOppositeClass","clickableClass","horizontalClass","verticalClass","paginationDisabledClass","bullets","dynamicBulletIndex","isPaginationDisabled","setSideBullets","bulletEl","onBulletClick","total","firstIndex","midIndex","classesToRemove","s","flat","bullet","bulletIndex","firstDisplayedBullet","lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","subElIndex","fractionEl","textContent","totalEl","progressbarDirection","scale","scaleX","scaleY","progressEl","render","paginationHTML","numberOfBullets","dragStartPos","dragSize","trackSize","divider","dragTimeout","scrollbar","dragEl","newSize","newPos","hide","opacity","display","getPointerPosition","clientX","clientY","setDragPosition","positionRatio","onDragStart","onDragMove","onDragEnd","snapOnRelease","activeListener","passiveListener","eventMethod","swiperEl","dragClass","draggable","scrollbarDisabledClass","parallax","elementsSelector","setTransform","p","rotate","currentOpacity","elements","_swiper","parallaxEl","parallaxDuration","zoom","maxRatio","containerClass","zoomedSlideClass","fakeGestureTouched","fakeGestureMoved","currentScale","isScaling","evCache","gesture","originX","originY","slideWidth","slideHeight","imageWrapEl","image","minX","minY","maxX","maxY","touchesStart","touchesCurrent","prevPositionX","prevPositionY","prevTime","getDistanceBetweenTouches","x1","y1","x2","y2","eventWithinSlide","onGestureStart","scaleStart","getScaleOrigin","onGestureChange","pointerIndex","findIndex","cachedEv","scaleMove","onGestureEnd","eventWithinZoomContainer","scaledWidth","scaledHeight","scaleRatio","onTransitionEnd","zoomIn","touchX","touchY","offsetX","offsetY","translateX","translateY","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","forceZoomRatio","zoomOut","zoomToggle","getListeners","activeListenerWithCapture","defineProperty","get","set","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","momentumDuration","in","out","LinearSpline","binarySearch","maxIndex","minIndex","guess","array","i1","i3","interpolate","removeSpline","spline","inverse","by","controlElement","onControllerSwiper","_t","controlled","controlledTranslate","setControlledTranslate","getInterpolateFunction","isFinite","setControlledTransition","a11y","notificationClass","prevSlideMessage","nextSlideMessage","firstSlideMessage","lastSlideMessage","paginationBulletMessage","slideLabelMessage","containerMessage","containerRoleDescriptionMessage","itemRoleDescriptionMessage","slideRole","clicked","liveRegion","notify","message","notification","makeElFocusable","makeElNotFocusable","addElRole","role","addElRoleDescription","description","addElLabel","disableEl","enableEl","onEnterOrSpaceKey","click","hasPagination","hasClickablePagination","initNavEl","wrapperId","controls","addElControls","handlePointerDown","handlePointerUp","handleFocus","isActive","isVisible","sourceCapabilities","firesTouchEvents","repeat","round","random","live","addElLive","updateNavigation","updatePagination","root","keepQuery","paths","slugify","getPathValues","urlOverride","URL","pathArray","part","setHistory","currentState","state","scrollToSlide","setHistoryPopState","hashNavigation","watchState","slideWithHash","onHashChange","newHash","activeSlideEl","setHash","activeSlideHash","raf","timeLeft","waitForTransition","disableOnInteraction","stopOnLastSlide","reverseDirection","pauseOnMouseEnter","autoplayTimeLeft","wasPaused","pausedByTouch","touchStartTimeout","slideChanged","pausedByInteraction","pausedByPointerEnter","autoplayDelayTotal","autoplayDelayCurrent","autoplayStartTime","calcTimeLeft","run","delayForce","currentSlideDelay","getSlideDelay","proceed","start","pause","reset","onVisibilityChange","visibilityState","onPointerEnter","onPointerLeave","thumbs","multipleActiveThumbs","autoScrollOffset","slideThumbActiveClass","thumbsContainerClass","swiperCreated","onThumbClick","thumbsSwiper","thumbsParams","SwiperClass","thumbsSwiperParams","thumbsToActivate","thumbActiveClass","useOffset","currentThumbsIndex","newThumbsIndex","newThumbsSlide","getThumbsElementAndInit","thumbsElement","onThumbsSwiper","watchForThumbsToAppear","momentum","momentumRatio","momentumBounce","momentumBounceRatio","momentumVelocityRatio","minimumVelocity","lastMoveEvent","pop","velocityEvent","distance","momentumDistance","newPosition","afterBouncePosition","doBounce","bounceAmount","needsLoopFix","j","moveDistance","currentSlideSize","slidesNumberEvenToRows","slidesPerRow","numFullColumns","getSpaceBetween","swiperSlideGridSet","newSlideOrderIndex","row","groupIndex","slideIndexInGroup","columnsInGroup","order","fadeEffect","crossFade","tx","ty","slideOpacity","cubeEffect","shadow","shadowOffset","shadowScale","createSlideShadows","shadowBefore","shadowAfter","cubeShadowEl","wrapperRotate","slideAngle","tz","transformOrigin","shadowAngle","sin","scale1","scale2","zFactor","flipEffect","limitRotation","rotateY","rotateX","zIndex","coverflowEffect","stretch","depth","modifier","center","centerOffset","offsetMultiplier","translateZ","slideTransform","shadowBeforeEl","shadowAfterEl","creativeEffect","limitProgress","shadowPerProgress","progressMultiplier","getTranslateValue","isCenteredSlides","margin","r","custom","translateString","rotateString","scaleString","opacityString","shadowOpacity","cardsEffect","perSlideRotate","perSlideOffset","tX","tY","tZ","tXAdd","isSwipeToNext","isSwipeToPrev","subProgress","prevY","paramsList","isObject","extend","attrToProp","attrName","l","toUpperCase","formatValue","JSON","parse","modulesParamsList","getParams","propName","propValue","localParamsList","allowedParams","paramName","attrsList","name","attr","moduleParam","mParam","parentObjName","subObjName","SwiperCSS","ClassToExtend","arrowSvg","addStyle","styles","CSSStyleSheet","adoptedStyleSheets","styleSheet","replaceSync","rel","appendChild","SwiperContainer","super","attachShadow","mode","nextButtonSvg","prevButtonSvg","cssStyles","injectStyles","cssLinks","injectStylesUrls","calcSlideSlots","currentSideSlots","slideSlotChildren","rendered","slotEl","localStyles","linkEl","needsPagination","needsScrollbar","initialize","_this","connectedCallback","disconnectedCallback","updateSwiperOnPropChange","changedParams","scrollbarEl","paginationEl","updateParams","currentParams","needThumbsInit","needControllerInit","needPaginationInit","needScrollbarInit","needNavigationInit","loopNeedDestroy","loopNeedEnable","loopNeedReloop","destroyModule","newValue","updateSwiper","attributeChangedCallback","prevValue","observedAttributes","param","configurable","SwiperSlide","lazy","lazyDiv","SwiperElementRegisterParams","customElements","define"],"sources":["0"],"mappings":"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"} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/swiper-element-bundle.min.mjs b/build/assets/js/vendor/swiper/swiper-element-bundle.min.mjs deleted file mode 100644 index cec9f91..0000000 --- a/build/assets/js/vendor/swiper/swiper-element-bundle.min.mjs +++ /dev/null @@ -1,14 +0,0 @@ -/** - * Swiper Custom Element 11.0.5 - * 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: November 22, 2023 - */ - -import"./swiper-bundle.mjs";import{p as paramsList,n as needsNavigation,a as needsPagination,b as needsScrollbar,u as updateSwiper,c as attrToProp}from"./shared/update-swiper.min.mjs";import{g as getParams}from"./shared/get-element-params.min.mjs";import{S as Swiper}from"./shared/swiper-core.min.mjs";const SwiperCSS=":host{--swiper-theme-color:#007aff}:host{position:relative;display:block;margin-left:auto;margin-right:auto;z-index:1}.swiper{width:100%;height:100%;margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);box-sizing:content-box}.swiper-android ::slotted(swiper-slide),.swiper-ios ::slotted(swiper-slide),.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}::slotted(swiper-slide){flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}::slotted(.swiper-slide-invisible-blank){visibility:hidden}.swiper-autoheight,.swiper-autoheight ::slotted(swiper-slide){height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden ::slotted(swiper-slide){transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d ::slotted(swiper-slide){transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode ::slotted(swiper-slide){scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode ::slotted(swiper-slide){scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered ::slotted(swiper-slide){scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal ::slotted(swiper-slide):first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical ::slotted(swiper-slide):first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-virtual ::slotted(swiper-slide){-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper::after{content:'';position:absolute;left:0;top:0;pointer-events:none}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after{width:1px;height:var(--swiper-virtual-size)}:host{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:var(--swiper-navigation-top-offset,50%);width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size)/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next.swiper-button-hidden,.swiper-button-prev.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled .swiper-button-next,.swiper-navigation-disabled .swiper-button-prev{display:none!important}.swiper-button-next svg,.swiper-button-prev svg{width:100%;height:100%;object-fit:contain;transform-origin:center}.swiper-rtl .swiper-button-next svg,.swiper-rtl .swiper-button-prev svg{transform:rotate(180deg)}.swiper-button-prev,.swiper-rtl .swiper-button-next{left:var(--swiper-navigation-sides-offset,10px);right:auto}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:var(--swiper-navigation-sides-offset,10px);left:auto}.swiper-button-lock{display:none}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:var(--swiper-pagination-bottom,8px);top:var(--swiper-pagination-top,auto);left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));display:inline-block;border-radius:var(--swiper-pagination-bullet-border-radius,50%);background:var(--swiper-pagination-bullet-inactive-color,#000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{right:var(--swiper-pagination-right,8px);left:var(--swiper-pagination-left,auto);top:50%;transform:translate3d(0px,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0;display:block}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color,inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color,rgba(0,0,0,.25));position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:var(--swiper-pagination-progressbar-size,4px);left:0;top:0}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{width:var(--swiper-pagination-progressbar-size,4px);height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:var(--swiper-scrollbar-border-radius,10px);position:relative;touch-action:none;background:var(--swiper-scrollbar-bg-color,rgba(0,0,0,.1))}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:var(--swiper-scrollbar-sides-offset,1%);bottom:var(--swiper-scrollbar-bottom,4px);top:var(--swiper-scrollbar-top,auto);z-index:50;height:var(--swiper-scrollbar-size,4px);width:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{position:absolute;left:var(--swiper-scrollbar-left,auto);right:var(--swiper-scrollbar-right,4px);top:var(--swiper-scrollbar-sides-offset,1%);z-index:50;width:var(--swiper-scrollbar-size,4px);height:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:var(--swiper-scrollbar-drag-bg-color,rgba(0,0,0,.5));border-radius:var(--swiper-scrollbar-border-radius,10px);left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}::slotted(.swiper-slide-zoomed){cursor:move;touch-action:none}.swiper .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-fade.swiper-free-mode ::slotted(swiper-slide){transition-timing-function:ease-out}.swiper-fade ::slotted(swiper-slide){pointer-events:none;transition-property:opacity}.swiper-fade ::slotted(swiper-slide) ::slotted(swiper-slide){pointer-events:none}.swiper-fade ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-fade ::slotted(.swiper-slide-active) ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-cube{overflow:visible}.swiper-cube ::slotted(swiper-slide){pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube ::slotted(swiper-slide) ::slotted(swiper-slide){pointer-events:none}.swiper-cube.swiper-rtl ::slotted(swiper-slide){transform-origin:100% 0}.swiper-cube ::slotted(.swiper-slide-active),.swiper-cube ::slotted(.swiper-slide-active) ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-cube ::slotted(.swiper-slide-active),.swiper-cube ::slotted(.swiper-slide-next),.swiper-cube ::slotted(.swiper-slide-prev){pointer-events:auto;visibility:visible}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:'';background:#000;position:absolute;left:0;top:0;bottom:0;right:0;filter:blur(50px)}.swiper-cube ::slotted(.swiper-slide-next)+::slotted(swiper-slide){pointer-events:auto;visibility:visible}.swiper-flip{overflow:visible}.swiper-flip ::slotted(swiper-slide){pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-flip ::slotted(swiper-slide) ::slotted(swiper-slide){pointer-events:none}.swiper-flip ::slotted(.swiper-slide-active),.swiper-flip ::slotted(.swiper-slide-active) ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-creative ::slotted(swiper-slide){-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper-cards{overflow:visible}.swiper-cards ::slotted(swiper-slide){transform-origin:center bottom;-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden}",SwiperSlideCSS="::slotted(.swiper-slide-shadow),::slotted(.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-top){position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}::slotted(.swiper-slide-shadow){background:rgba(0,0,0,.15)}::slotted(.swiper-slide-shadow-left){background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-slide-shadow-right){background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-slide-shadow-top){background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-slide-shadow-bottom){background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear;width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-top){z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-top){z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}::slotted(.swiper-zoom-container){width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}::slotted(.swiper-zoom-container)>canvas,::slotted(.swiper-zoom-container)>img,::slotted(.swiper-zoom-container)>svg{max-width:100%;max-height:100%;object-fit:contain}";class DummyHTMLElement{}const ClassToExtend="undefined"==typeof window||"undefined"==typeof HTMLElement?DummyHTMLElement:HTMLElement,arrowSvg='\n ',addStyle=(e,i)=>{if("undefined"!=typeof CSSStyleSheet&&e.adoptedStyleSheets){const t=new CSSStyleSheet;t.replaceSync(i),e.adoptedStyleSheets=[t]}else{const t=document.createElement("style");t.rel="stylesheet",t.textContent=i,e.appendChild(t)}};class SwiperContainer extends ClassToExtend{constructor(){super(),this.attachShadow({mode:"open"})}static get nextButtonSvg(){return arrowSvg}static get prevButtonSvg(){return arrowSvg.replace("/>",' transform-origin="center" transform="rotate(180)"/>')}cssStyles(){return[SwiperCSS,...this.injectStyles&&Array.isArray(this.injectStyles)?this.injectStyles:[]].join("\n")}cssLinks(){return this.injectStylesUrls||[]}calcSlideSlots(){const e=this.slideSlots||0,i=[...this.querySelectorAll("[slot^=slide-]")].map((e=>parseInt(e.getAttribute("slot").split("slide-")[1],10)));if(this.slideSlots=i.length?Math.max(...i)+1:0,this.rendered)if(this.slideSlots>e)for(let i=e;i=0;i-=1)i>this.slideSlots&&e[i].remove()}}render(){if(this.rendered)return;this.calcSlideSlots();let e=this.cssStyles();this.slideSlots>0&&(e=e.replace(/::slotted\(([a-z-0-9.]*)\)/g,"$1")),e.length&&addStyle(this.shadowRoot,e),this.cssLinks().forEach((e=>{if(this.shadowRoot.querySelector(`link[href="${e}"]`))return;const i=document.createElement("link");i.rel="stylesheet",i.href=e,this.shadowRoot.appendChild(i)}));const i=document.createElement("div");i.classList.add("swiper"),i.part="container",i.innerHTML=`\n \n
    \n \n ${Array.from({length:this.slideSlots}).map(((e,i)=>`\n \n \n \n `)).join("")}\n
    \n \n ${needsNavigation(this.passedParams)?`\n
    ${this.constructor.prevButtonSvg}
    \n
    ${this.constructor.nextButtonSvg}
    \n `:""}\n ${needsPagination(this.passedParams)?'\n
    \n ':""}\n ${needsScrollbar(this.passedParams)?'\n
    \n ':""}\n `,this.shadowRoot.appendChild(i),this.rendered=!0}initialize(){var e=this;if(this.initialized)return;this.initialized=!0;const{params:i,passedParams:t}=getParams(this);this.swiperParams=i,this.passedParams=t,delete this.swiperParams.init,this.render(),this.swiper=new Swiper(this.shadowRoot.querySelector(".swiper"),{...i.virtual?{}:{observer:!0,observeSlideChildren:this.slideSlots>0},...i,touchEventsTarget:"container",onAny:function(t){"observerUpdate"===t&&e.calcSlideSlots();const s=i.eventsPrefix?`${i.eventsPrefix}${t.toLowerCase()}`:t.toLowerCase();for(var r=arguments.length,a=new Array(r>1?r-1:0),o=1;oe.includes("_"))).map((e=>e.replace(/[A-Z]/g,(e=>`-${e}`)).replace("_","").toLowerCase()))}}paramsList.forEach((e=>{"init"!==e&&(e=e.replace("_",""),Object.defineProperty(SwiperContainer.prototype,e,{configurable:!0,get(){return(this.passedParams||{})[e]},set(i){this.passedParams||(this.passedParams={}),this.passedParams[e]=i,this.initialized&&this.updateSwiperOnPropChange(e,i)}}))}));class SwiperSlide extends ClassToExtend{constructor(){super(),this.attachShadow({mode:"open"})}render(){const e=this.lazy||""===this.getAttribute("lazy")||"true"===this.getAttribute("lazy");if(addStyle(this.shadowRoot,SwiperSlideCSS),this.shadowRoot.appendChild(document.createElement("slot")),e){const e=document.createElement("div");e.classList.add("swiper-lazy-preloader"),e.part.add("preloader"),this.shadowRoot.appendChild(e)}}initialize(){this.render()}connectedCallback(){this.initialize()}}const register=()=>{"undefined"!=typeof window&&(window.customElements.get("swiper-container")||window.customElements.define("swiper-container",SwiperContainer),window.customElements.get("swiper-slide")||window.customElements.define("swiper-slide",SwiperSlide))};"undefined"!=typeof window&&(window.SwiperElementRegisterParams=e=>{paramsList.push(...e)});export{SwiperContainer,SwiperSlide,register}; -//# sourceMappingURL=swiper-element-bundle.min.mjs.map \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/swiper-element-bundle.min.mjs.map b/build/assets/js/vendor/swiper/swiper-element-bundle.min.mjs.map deleted file mode 100644 index 04551bb..0000000 --- a/build/assets/js/vendor/swiper/swiper-element-bundle.min.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"swiper-element-bundle.mjs.mjs","names":["paramsList","needsNavigation","needsPagination","needsScrollbar","updateSwiper","attrToProp","getParams","Swiper","SwiperCSS","SwiperSlideCSS","DummyHTMLElement","ClassToExtend","window","HTMLElement","arrowSvg","addStyle","shadowRoot","styles","CSSStyleSheet","adoptedStyleSheets","styleSheet","replaceSync","style","document","createElement","rel","textContent","appendChild","SwiperContainer","constructor","super","this","attachShadow","mode","nextButtonSvg","prevButtonSvg","replace","cssStyles","injectStyles","Array","isArray","join","cssLinks","injectStylesUrls","calcSlideSlots","currentSideSlots","slideSlots","slideSlotChildren","querySelectorAll","map","child","parseInt","getAttribute","split","length","Math","max","rendered","i","slideEl","setAttribute","slotEl","querySelector","slides","swiper","remove","render","localStyles","forEach","url","linkEl","href","el","classList","add","part","innerHTML","from","_","index","passedParams","initialize","_this","initialized","params","swiperParams","init","virtual","observer","observeSlideChildren","touchEventsTarget","onAny","name","eventName","eventsPrefix","toLowerCase","_len","arguments","args","_key","event","CustomEvent","detail","bubbles","cancelable","dispatchEvent","connectedCallback","nested","closest","swiperLoopMoveDOM","disconnectedCallback","destroy","updateSwiperOnPropChange","propName","propValue","changedParams","prevEl","nextEl","paginationEl","scrollbarEl","attributeChangedCallback","attr","prevValue","newValue","observedAttributes","filter","param","includes","v","paramName","Object","defineProperty","prototype","configurable","get","set","value","SwiperSlide","lazy","lazyDiv","register","customElements","define","SwiperElementRegisterParams","push"],"sources":["0"],"mappings":"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"} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/swiper-element-bundle.mjs b/build/assets/js/vendor/swiper/swiper-element-bundle.mjs deleted file mode 100644 index 5ec4dbf..0000000 --- a/build/assets/js/vendor/swiper/swiper-element-bundle.mjs +++ /dev/null @@ -1,287 +0,0 @@ -/** - * Swiper Custom Element 11.0.5 - * 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: November 22, 2023 - */ - -import './swiper-bundle.mjs'; -import { p as paramsList, n as needsNavigation, a as needsPagination, b as needsScrollbar, u as updateSwiper, c as attrToProp } from './shared/update-swiper.mjs'; -import { g as getParams } from './shared/get-element-params.mjs'; -import { S as Swiper } from './shared/swiper-core.mjs'; - -/* eslint-disable spaced-comment */ - -const SwiperCSS = `:host{--swiper-theme-color:#007aff}:host{position:relative;display:block;margin-left:auto;margin-right:auto;z-index:1}.swiper{width:100%;height:100%;margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);box-sizing:content-box}.swiper-android ::slotted(swiper-slide),.swiper-ios ::slotted(swiper-slide),.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}::slotted(swiper-slide){flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}::slotted(.swiper-slide-invisible-blank){visibility:hidden}.swiper-autoheight,.swiper-autoheight ::slotted(swiper-slide){height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden ::slotted(swiper-slide){transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d ::slotted(swiper-slide){transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode ::slotted(swiper-slide){scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode ::slotted(swiper-slide){scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered ::slotted(swiper-slide){scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal ::slotted(swiper-slide):first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical ::slotted(swiper-slide):first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-virtual ::slotted(swiper-slide){-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper::after{content:'';position:absolute;left:0;top:0;pointer-events:none}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after{width:1px;height:var(--swiper-virtual-size)}:host{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:var(--swiper-navigation-top-offset,50%);width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size)/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next.swiper-button-hidden,.swiper-button-prev.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled .swiper-button-next,.swiper-navigation-disabled .swiper-button-prev{display:none!important}.swiper-button-next svg,.swiper-button-prev svg{width:100%;height:100%;object-fit:contain;transform-origin:center}.swiper-rtl .swiper-button-next svg,.swiper-rtl .swiper-button-prev svg{transform:rotate(180deg)}.swiper-button-prev,.swiper-rtl .swiper-button-next{left:var(--swiper-navigation-sides-offset,10px);right:auto}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:var(--swiper-navigation-sides-offset,10px);left:auto}.swiper-button-lock{display:none}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:var(--swiper-pagination-bottom,8px);top:var(--swiper-pagination-top,auto);left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));display:inline-block;border-radius:var(--swiper-pagination-bullet-border-radius,50%);background:var(--swiper-pagination-bullet-inactive-color,#000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{right:var(--swiper-pagination-right,8px);left:var(--swiper-pagination-left,auto);top:50%;transform:translate3d(0px,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0;display:block}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color,inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color,rgba(0,0,0,.25));position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:var(--swiper-pagination-progressbar-size,4px);left:0;top:0}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{width:var(--swiper-pagination-progressbar-size,4px);height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:var(--swiper-scrollbar-border-radius,10px);position:relative;touch-action:none;background:var(--swiper-scrollbar-bg-color,rgba(0,0,0,.1))}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:var(--swiper-scrollbar-sides-offset,1%);bottom:var(--swiper-scrollbar-bottom,4px);top:var(--swiper-scrollbar-top,auto);z-index:50;height:var(--swiper-scrollbar-size,4px);width:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{position:absolute;left:var(--swiper-scrollbar-left,auto);right:var(--swiper-scrollbar-right,4px);top:var(--swiper-scrollbar-sides-offset,1%);z-index:50;width:var(--swiper-scrollbar-size,4px);height:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:var(--swiper-scrollbar-drag-bg-color,rgba(0,0,0,.5));border-radius:var(--swiper-scrollbar-border-radius,10px);left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}::slotted(.swiper-slide-zoomed){cursor:move;touch-action:none}.swiper .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-fade.swiper-free-mode ::slotted(swiper-slide){transition-timing-function:ease-out}.swiper-fade ::slotted(swiper-slide){pointer-events:none;transition-property:opacity}.swiper-fade ::slotted(swiper-slide) ::slotted(swiper-slide){pointer-events:none}.swiper-fade ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-fade ::slotted(.swiper-slide-active) ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-cube{overflow:visible}.swiper-cube ::slotted(swiper-slide){pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube ::slotted(swiper-slide) ::slotted(swiper-slide){pointer-events:none}.swiper-cube.swiper-rtl ::slotted(swiper-slide){transform-origin:100% 0}.swiper-cube ::slotted(.swiper-slide-active),.swiper-cube ::slotted(.swiper-slide-active) ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-cube ::slotted(.swiper-slide-active),.swiper-cube ::slotted(.swiper-slide-next),.swiper-cube ::slotted(.swiper-slide-prev){pointer-events:auto;visibility:visible}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:'';background:#000;position:absolute;left:0;top:0;bottom:0;right:0;filter:blur(50px)}.swiper-cube ::slotted(.swiper-slide-next)+::slotted(swiper-slide){pointer-events:auto;visibility:visible}.swiper-flip{overflow:visible}.swiper-flip ::slotted(swiper-slide){pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-flip ::slotted(swiper-slide) ::slotted(swiper-slide){pointer-events:none}.swiper-flip ::slotted(.swiper-slide-active),.swiper-flip ::slotted(.swiper-slide-active) ::slotted(.swiper-slide-active){pointer-events:auto}.swiper-creative ::slotted(swiper-slide){-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper-cards{overflow:visible}.swiper-cards ::slotted(swiper-slide){transform-origin:center bottom;-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden}` -const SwiperSlideCSS = `::slotted(.swiper-slide-shadow),::slotted(.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-top){position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}::slotted(.swiper-slide-shadow){background:rgba(0,0,0,.15)}::slotted(.swiper-slide-shadow-left){background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-slide-shadow-right){background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-slide-shadow-top){background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-slide-shadow-bottom){background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear;width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-top){z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-top){z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}::slotted(.swiper-zoom-container){width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}::slotted(.swiper-zoom-container)>canvas,::slotted(.swiper-zoom-container)>img,::slotted(.swiper-zoom-container)>svg{max-width:100%;max-height:100%;object-fit:contain}` - -class DummyHTMLElement {} -const ClassToExtend = typeof window === 'undefined' || typeof HTMLElement === 'undefined' ? DummyHTMLElement : HTMLElement; -const arrowSvg = ` - `; -const addStyle = (shadowRoot, styles) => { - if (typeof CSSStyleSheet !== 'undefined' && shadowRoot.adoptedStyleSheets) { - const styleSheet = new CSSStyleSheet(); - styleSheet.replaceSync(styles); - shadowRoot.adoptedStyleSheets = [styleSheet]; - } else { - const style = document.createElement('style'); - style.rel = 'stylesheet'; - style.textContent = styles; - shadowRoot.appendChild(style); - } -}; -class SwiperContainer extends ClassToExtend { - constructor() { - super(); - this.attachShadow({ - mode: 'open' - }); - } - static get nextButtonSvg() { - return arrowSvg; - } - static get prevButtonSvg() { - return arrowSvg.replace('/>', ' transform-origin="center" transform="rotate(180)"/>'); - } - cssStyles() { - return [SwiperCSS, - // eslint-disable-line - ...(this.injectStyles && Array.isArray(this.injectStyles) ? this.injectStyles : [])].join('\n'); - } - cssLinks() { - return this.injectStylesUrls || []; - } - calcSlideSlots() { - const currentSideSlots = this.slideSlots || 0; - // slide slots - const slideSlotChildren = [...this.querySelectorAll(`[slot^=slide-]`)].map(child => { - return parseInt(child.getAttribute('slot').split('slide-')[1], 10); - }); - this.slideSlots = slideSlotChildren.length ? Math.max(...slideSlotChildren) + 1 : 0; - if (!this.rendered) return; - if (this.slideSlots > currentSideSlots) { - for (let i = currentSideSlots; i < this.slideSlots; i += 1) { - const slideEl = document.createElement('swiper-slide'); - slideEl.setAttribute('part', `slide slide-${i + 1}`); - const slotEl = document.createElement('slot'); - slotEl.setAttribute('name', `slide-${i + 1}`); - slideEl.appendChild(slotEl); - this.shadowRoot.querySelector('.swiper-wrapper').appendChild(slideEl); - } - } else if (this.slideSlots < currentSideSlots) { - const slides = this.swiper.slides; - for (let i = slides.length - 1; i >= 0; i -= 1) { - if (i > this.slideSlots) { - slides[i].remove(); - } - } - } - } - render() { - if (this.rendered) return; - this.calcSlideSlots(); - - // local styles - let localStyles = this.cssStyles(); - if (this.slideSlots > 0) { - localStyles = localStyles.replace(/::slotted\(([a-z-0-9.]*)\)/g, '$1'); - } - if (localStyles.length) { - addStyle(this.shadowRoot, localStyles); - } - this.cssLinks().forEach(url => { - const linkExists = this.shadowRoot.querySelector(`link[href="${url}"]`); - if (linkExists) return; - const linkEl = document.createElement('link'); - linkEl.rel = 'stylesheet'; - linkEl.href = url; - this.shadowRoot.appendChild(linkEl); - }); - // prettier-ignore - const el = document.createElement('div'); - el.classList.add('swiper'); - el.part = 'container'; - - // prettier-ignore - el.innerHTML = ` - -
    - - ${Array.from({ - length: this.slideSlots - }).map((_, index) => ` - - - - `).join('')} -
    - - ${needsNavigation(this.passedParams) ? ` -
    ${this.constructor.prevButtonSvg}
    -
    ${this.constructor.nextButtonSvg}
    - ` : ''} - ${needsPagination(this.passedParams) ? ` -
    - ` : ''} - ${needsScrollbar(this.passedParams) ? ` -
    - ` : ''} - `; - this.shadowRoot.appendChild(el); - this.rendered = true; - } - initialize() { - var _this = this; - if (this.initialized) return; - this.initialized = true; - const { - params: swiperParams, - passedParams - } = getParams(this); - this.swiperParams = swiperParams; - this.passedParams = passedParams; - delete this.swiperParams.init; - this.render(); - - // eslint-disable-next-line - this.swiper = new Swiper(this.shadowRoot.querySelector('.swiper'), { - ...(swiperParams.virtual ? {} : { - observer: true, - observeSlideChildren: this.slideSlots > 0 - }), - ...swiperParams, - touchEventsTarget: 'container', - onAny: function (name) { - if (name === 'observerUpdate') { - _this.calcSlideSlots(); - } - const eventName = swiperParams.eventsPrefix ? `${swiperParams.eventsPrefix}${name.toLowerCase()}` : name.toLowerCase(); - for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - const event = new CustomEvent(eventName, { - detail: args, - bubbles: name !== 'hashChange', - cancelable: true - }); - _this.dispatchEvent(event); - } - }); - } - connectedCallback() { - if (this.initialized && this.nested && this.closest('swiper-slide') && this.closest('swiper-slide').swiperLoopMoveDOM) { - return; - } - if (this.init === false || this.getAttribute('init') === 'false') { - return; - } - this.initialize(); - } - disconnectedCallback() { - if (this.nested && this.closest('swiper-slide') && this.closest('swiper-slide').swiperLoopMoveDOM) { - return; - } - if (this.swiper && this.swiper.destroy) { - this.swiper.destroy(); - } - this.initialized = false; - } - updateSwiperOnPropChange(propName, propValue) { - const { - params: swiperParams, - passedParams - } = getParams(this, propName, propValue); - this.passedParams = passedParams; - this.swiperParams = swiperParams; - if (this.swiper && this.swiper.params[propName] === propValue) { - return; - } - updateSwiper({ - swiper: this.swiper, - passedParams: this.passedParams, - changedParams: [attrToProp(propName)], - ...(propName === 'navigation' && passedParams[propName] ? { - prevEl: '.swiper-button-prev', - nextEl: '.swiper-button-next' - } : {}), - ...(propName === 'pagination' && passedParams[propName] ? { - paginationEl: '.swiper-pagination' - } : {}), - ...(propName === 'scrollbar' && passedParams[propName] ? { - scrollbarEl: '.swiper-scrollbar' - } : {}) - }); - } - attributeChangedCallback(attr, prevValue, newValue) { - if (!this.initialized) return; - if (prevValue === 'true' && newValue === null) { - newValue = false; - } - this.updateSwiperOnPropChange(attr, newValue); - } - static get observedAttributes() { - const attrs = paramsList.filter(param => param.includes('_')).map(param => param.replace(/[A-Z]/g, v => `-${v}`).replace('_', '').toLowerCase()); - return attrs; - } -} -paramsList.forEach(paramName => { - if (paramName === 'init') return; - paramName = paramName.replace('_', ''); - Object.defineProperty(SwiperContainer.prototype, paramName, { - configurable: true, - get() { - return (this.passedParams || {})[paramName]; - }, - set(value) { - if (!this.passedParams) this.passedParams = {}; - this.passedParams[paramName] = value; - if (!this.initialized) return; - this.updateSwiperOnPropChange(paramName, value); - } - }); -}); -class SwiperSlide extends ClassToExtend { - constructor() { - super(); - this.attachShadow({ - mode: 'open' - }); - } - render() { - const lazy = this.lazy || this.getAttribute('lazy') === '' || this.getAttribute('lazy') === 'true'; - addStyle(this.shadowRoot, SwiperSlideCSS); - this.shadowRoot.appendChild(document.createElement('slot')); - if (lazy) { - const lazyDiv = document.createElement('div'); - lazyDiv.classList.add('swiper-lazy-preloader'); - lazyDiv.part.add('preloader'); - this.shadowRoot.appendChild(lazyDiv); - } - } - initialize() { - this.render(); - } - connectedCallback() { - this.initialize(); - } -} - -// eslint-disable-next-line -const register = () => { - if (typeof window === 'undefined') return; - if (!window.customElements.get('swiper-container')) window.customElements.define('swiper-container', SwiperContainer); - if (!window.customElements.get('swiper-slide')) window.customElements.define('swiper-slide', SwiperSlide); -}; -if (typeof window !== 'undefined') { - window.SwiperElementRegisterParams = params => { - paramsList.push(...params); - }; -} - -export { SwiperContainer, SwiperSlide, register }; diff --git a/build/assets/js/vendor/swiper/swiper-element.d.ts b/build/assets/js/vendor/swiper/swiper-element.d.ts deleted file mode 100644 index 4100356..0000000 --- a/build/assets/js/vendor/swiper/swiper-element.d.ts +++ /dev/null @@ -1,444 +0,0 @@ -// @ts-ignore -import { Swiper, SwiperOptions } from './types/index.d.ts'; - -declare const register: () => void; - -// prettier-ignore -interface SwiperContainerEventMap extends Omit { - /** - * Event will be fired in when autoplay started - */ - autoplaystart: CustomEvent<[swiper: Swiper]>; - /** - * Event will be fired when autoplay stopped - */ - autoplaystop: CustomEvent<[swiper: Swiper]>; - /** - * Event will be fired on autoplay pause - */ - autoplaypause: CustomEvent<[swiper: Swiper]>; - /** - * Event will be fired on autoplay resume - */ - autoplayresume: CustomEvent<[swiper: Swiper]>; - /** - * Event triggers continuously while autoplay is enabled. It contains time left (in ms) before transition to next slide and percentage of that time related to autoplay delay - */ - autoplaytimeleft: CustomEvent<[swiper: Swiper, timeLeft: number, percentage: number]>; - /** - * Event will be fired when slide changed with autoplay - */ - autoplay: CustomEvent<[swiper: Swiper]>;/** - * Event will be fired on window hash change - */ - hashchange: CustomEvent<[swiper: Swiper]>; - /** - * Event will be fired when swiper updates the hash - */ - hashset: CustomEvent<[swiper: Swiper]>;/** - * Event will be fired on key press - */ - keypress: CustomEvent<[swiper: Swiper, keyCode: string]>;/** - * Event will be fired on mousewheel scroll - */ - scroll: CustomEvent<[swiper: Swiper, event: WheelEvent]>;/** - * Event will be fired on navigation hide - */ - navigationhide: CustomEvent<[swiper: Swiper]>; - /** - * Event will be fired on navigation show - */ - navigationshow: CustomEvent<[swiper: Swiper]>; - /** - * Event will be fired on navigation prev button click - */ - navigationprev: CustomEvent<[swiper: Swiper]>; - /** - * Event will be fired on navigation next button click - */ - navigationnext: CustomEvent<[swiper: Swiper]>;/** - * Event will be fired after pagination rendered - */ - paginationrender: CustomEvent<[swiper: Swiper, paginationEl: HTMLElement]>; - - /** - * Event will be fired when pagination updated - */ - paginationupdate: CustomEvent<[swiper: Swiper, paginationEl: HTMLElement]>; - - /** - * Event will be fired on pagination hide - */ - paginationhide: CustomEvent<[swiper: Swiper]>; - - /** - * Event will be fired on pagination show - */ - paginationshow: CustomEvent<[swiper: Swiper]>;/** - * Event will be fired on draggable scrollbar drag start - */ - scrollbardragstart: CustomEvent<[swiper: Swiper, event: MouseEvent | TouchEvent | PointerEvent]>; - - /** - * Event will be fired on draggable scrollbar drag move - */ - scrollbardragmove: CustomEvent<[swiper: Swiper, event: MouseEvent | TouchEvent | PointerEvent]>; - - /** - * Event will be fired on draggable scrollbar drag end - */ - scrollbardragend: CustomEvent<[swiper: Swiper, event: MouseEvent | TouchEvent | PointerEvent]>;/** - * Event will be fired on zoom change - */ - zoomchange: CustomEvent<[swiper: Swiper, scale: number, imageEl: HTMLElement, slideEl: HTMLElement]>; - - - /** - * Fired right after Swiper initialization. - * @note Note that with `swiper.on('init')` syntax it will - * work only in case you set `init: false` parameter. - * - * @example - * ```js - * const swiper = new Swiper('.swiper', { - * init: CustomEvent<[false, - * // other parameters - * }]>; - * swiper.on('init', function() { - * // do something - * }); - * // init Swiper - * swiper.init(); - * ``` - * - * @example - * ```js - * // Otherwise use it as the parameter: - * const swiper = new Swiper('.swiper', { - * // other parameters - * on: CustomEvent<[{ - * init: function { - * // do something - * }, - * } - * })]>; - * ``` - */ - init: CustomEvent<[swiper: Swiper]>; - - /** - * Event will be fired right before Swiper destroyed - */ - beforedestroy: CustomEvent<[swiper: Swiper]>; - - /** - * Event will be fired after slides and their sizes are calculated and updated - */ - slidesupdated: CustomEvent<[swiper: Swiper]>; - /** - * Event will be fired when currently active slide is changed - */ - slidechange: CustomEvent<[swiper: Swiper]>; - - /** - * Event will be fired in the beginning of animation to other slide (next or previous). - */ - slidechangetransitionstart: CustomEvent<[swiper: Swiper]>; - - /** - * Event will be fired after animation to other slide (next or previous). - */ - slidechangetransitionend: CustomEvent<[swiper: Swiper]>; - - /** - * Same as "slideChangeTransitionStart" but for "forward" direction only - */ - slidenexttransitionstart: CustomEvent<[swiper: Swiper]>; - - /** - * Same as "slideChangeTransitionEnd" but for "forward" direction only - */ - slidenexttransitionend: CustomEvent<[swiper: Swiper]>; - - /** - * Same as "slideChangeTransitionStart" but for "backward" direction only - */ - slideprevtransitionstart: CustomEvent<[swiper: Swiper]>; - - /** - * Same as "slideChangeTransitionEnd" but for "backward" direction only - */ - slideprevtransitionend: CustomEvent<[swiper: Swiper]>; - - /** - * Event will be fired in the beginning of transition. - */ - transitionstart: CustomEvent<[swiper: Swiper]>; - - /** - * Event will be fired after transition. - */ - transitionend: CustomEvent<[swiper: Swiper]>; - - /** - * Event will be fired when user touch Swiper. Receives `pointerdown` event as an arguments. - */ - touchstart: CustomEvent<[swiper: Swiper, event: MouseEvent | TouchEvent | PointerEvent]>; - - /** - * Event will be fired when user touch and move finger over Swiper. Receives `pointermove` event as an arguments. - */ - touchmove: CustomEvent<[swiper: Swiper, event: MouseEvent | TouchEvent | PointerEvent]>; - - /** - * Event will be fired when user touch and move finger over Swiper in direction opposite to direction parameter. Receives `pointermove` event as an arguments. - */ - touchmoveopposite: CustomEvent<[swiper: Swiper, event: MouseEvent | TouchEvent | PointerEvent]>; - - /** - * Event will be fired when user touch and move finger over Swiper and move it. Receives `pointermove` event as an arguments. - */ - slidermove: CustomEvent<[swiper: Swiper, event: MouseEvent | TouchEvent | PointerEvent]>; - - /** - * Event will be fired when user release Swiper. Receives `pointerup` event as an arguments. - */ - touchend: CustomEvent<[swiper: Swiper, event: MouseEvent | TouchEvent | PointerEvent]>; - - /** - * Event will be fired when user click/tap on Swiper. Receives `pointerup` event as an arguments. - */ - click: CustomEvent<[swiper: Swiper, event: MouseEvent | TouchEvent | PointerEvent]>; - - /** - * Event will be fired when user click/tap on Swiper. Receives `pointerup` event as an arguments. - */ - tap: CustomEvent<[swiper: Swiper, event: MouseEvent | TouchEvent | PointerEvent]>; - - /** - * Event will be fired when user double tap on Swiper's container. Receives `pointerup` event as an arguments - */ - doubletap: CustomEvent<[swiper: Swiper, event: MouseEvent | TouchEvent | PointerEvent]>; - - /** - * Event will be fired when Swiper progress is changed, as an arguments it receives progress that is always from 0 to 1 - */ - progress: CustomEvent<[swiper: Swiper, progress: number]>; - - /** - * Event will be fired when Swiper reach its beginning (initial position) - */ - reachbeginning: CustomEvent<[swiper: Swiper]>; - - /** - * Event will be fired when Swiper reach last slide - */ - reachend: CustomEvent<[swiper: Swiper]>; - - /** - * Event will be fired when Swiper goes to beginning or end position - */ - toedge: CustomEvent<[swiper: Swiper]>; - - /** - * Event will be fired when Swiper goes from beginning or end position - */ - fromedge: CustomEvent<[swiper: Swiper]>; - - /** - * Event will be fired when swiper's wrapper change its position. Receives current translate value as an arguments - */ - settranslate: CustomEvent<[swiper: Swiper, translate: number]>; - - /** - * Event will be fired everytime when swiper starts animation. Receives current transition duration (in ms) as an arguments - */ - settransition: CustomEvent<[swiper: Swiper, transition: number]>; - - /** - * Event will be fired on window resize right before swiper's onresize manipulation - */ - resize: CustomEvent<[swiper: Swiper]>; - - /** - * Event will be fired if observer is enabled and it detects DOM mutations - */ - observerupdate: CustomEvent<[swiper: Swiper]>; - - /** - * Event will be fired right before "loop fix" - */ - beforeloopfix: CustomEvent<[swiper: Swiper]>; - - /** - * Event will be fired after "loop fix" - */ - loopfix: CustomEvent<[swiper: Swiper]>; - - /** - * Event will be fired on breakpoint change - */ - breakpoint: CustomEvent<[swiper: Swiper, breakpointParams: SwiperOptions]>; - - /** - * !INTERNAL: Event will fired right before breakpoint change - */ - - - /** - * !INTERNAL: Event will fired after setting CSS classes on swiper container element - */ - - - /** - * !INTERNAL: Event will fired after setting CSS classes on swiper slide element - */ - - - /** - * !INTERNAL: Event will fired after setting CSS classes on all swiper slides - */ - - - /** - * !INTERNAL: Event will fired as soon as swiper instance available (before init) - */ - - - /** - * !INTERNAL: Event will be fired on free mode touch end (release) and there will no be momentum - */ - - - /** - * Event will fired on active index change - */ - activeindexchange: CustomEvent<[swiper: Swiper]>; - /** - * Event will fired on snap index change - */ - snapindexchange: CustomEvent<[swiper: Swiper]>; - /** - * Event will fired on real index change - */ - realindexchange: CustomEvent<[swiper: Swiper]>; - /** - * Event will fired right after initialization - */ - afterinit: CustomEvent<[swiper: Swiper]>; - /** - * Event will fired right before initialization - */ - beforeinit: CustomEvent<[swiper: Swiper]>; - /** - * Event will fired before resize handler - */ - beforeresize: CustomEvent<[swiper: Swiper]>; - /** - * Event will fired before slide change transition start - */ - beforeslidechangestart: CustomEvent<[swiper: Swiper]>; - /** - * Event will fired before transition start - */ - beforetransitionstart: CustomEvent<[swiper: Swiper, speed: number, internal: any]>; // what is internal? - /** - * Event will fired on direction change - */ - changedirection: CustomEvent<[swiper: Swiper]>; - /** - * Event will be fired when user double click/tap on Swiper - */ - doubleclick: CustomEvent<[swiper: Swiper, event: MouseEvent | TouchEvent | PointerEvent]>; - /** - * Event will be fired on swiper destroy - */ - destroy: CustomEvent<[swiper: Swiper]>; - /** - * Event will be fired on momentum bounce - */ - momentumbounce: CustomEvent<[swiper: Swiper]>; - /** - * Event will be fired on orientation change (e.g. landscape -> portrait) - */ - orientationchange: CustomEvent<[swiper: Swiper]>; - /** - * Event will be fired in the beginning of animation of resetting slide to current one - */ - slideresettransitionstart: CustomEvent<[swiper: Swiper]>; - /** - * Event will be fired in the end of animation of resetting slide to current one - */ - slideresettransitionend: CustomEvent<[swiper: Swiper]>; - /** - * Event will be fired with first touch/drag move - */ - sliderfirstmove: CustomEvent<[swiper: Swiper, event: TouchEvent]>; - /** - * Event will be fired when number of slides has changed - */ - slideslengthchange: CustomEvent<[swiper: Swiper]>; - /** - * Event will be fired when slides grid has changed - */ - slidesgridlengthchange: CustomEvent<[swiper: Swiper]>; - /** - * Event will be fired when snap grid has changed - */ - snapgridlengthchange: CustomEvent<[swiper: Swiper]>; - /** - * Event will be fired after swiper.update() call - */ - update: CustomEvent<[swiper: Swiper]>; - /** - * Event will be fired when swiper is locked (when `watchOverflow` enabled) - */ - lock: CustomEvent<[swiper: Swiper]>; - /** - * Event will be fired when swiper is unlocked (when `watchOverflow` enabled) - */ - unlock: CustomEvent<[swiper: Swiper]>; - -} - -interface SwiperContainer extends HTMLElement {} -interface SwiperContainer extends SwiperOptions { - swiper: Swiper; - initialize: () => void; - injectStyles: string[]; - injectStylesUrls: string[]; - eventsPrefix: string; - addEventListener( - type: K, - listener: (this: SwiperContainer, ev: SwiperContainerEventMap[K]) => any, - options?: boolean | AddEventListenerOptions, - ): void; - addEventListener( - type: string, - listener: EventListenerOrEventListenerObject, - options?: boolean | AddEventListenerOptions, - ): void; - removeEventListener( - type: K, - listener: (this: SwiperContainer, ev: SwiperContainerEventMap[K]) => any, - options?: boolean | EventListenerOptions, - ): void; - removeEventListener( - type: string, - listener: EventListenerOrEventListenerObject, - options?: boolean | EventListenerOptions, - ): void; -} - -interface SwiperSlide extends HTMLElement { - lazy: string | boolean; -} - -declare global { - interface HTMLElementTagNameMap { - 'swiper-container': SwiperContainer; - 'swiper-slide': SwiperSlide; - } -} - -export { SwiperContainer, SwiperSlide, register }; diff --git a/build/assets/js/vendor/swiper/swiper-element.js b/build/assets/js/vendor/swiper/swiper-element.js deleted file mode 100644 index 2f60842..0000000 --- a/build/assets/js/vendor/swiper/swiper-element.js +++ /dev/null @@ -1,4897 +0,0 @@ -/** - * Swiper Custom Element 11.0.5 - * 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: November 22, 2023 - */ - -(function () { - 'use strict'; - - /** - * SSR Window 4.0.2 - * Better handling for window object in SSR environment - * https://github.com/nolimits4web/ssr-window - * - * Copyright 2021, Vladimir Kharlampidi - * - * Licensed under MIT - * - * Released on: December 13, 2021 - */ - /* eslint-disable no-param-reassign */ - function isObject$2(obj) { - return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object; - } - function extend$2(target, src) { - if (target === void 0) { - target = {}; - } - if (src === void 0) { - src = {}; - } - Object.keys(src).forEach(key => { - if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject$2(src[key]) && isObject$2(target[key]) && Object.keys(src[key]).length > 0) { - extend$2(target[key], src[key]); - } - }); - } - const ssrDocument = { - body: {}, - addEventListener() {}, - removeEventListener() {}, - activeElement: { - blur() {}, - nodeName: '' - }, - querySelector() { - return null; - }, - querySelectorAll() { - return []; - }, - getElementById() { - return null; - }, - createEvent() { - return { - initEvent() {} - }; - }, - createElement() { - return { - children: [], - childNodes: [], - style: {}, - setAttribute() {}, - getElementsByTagName() { - return []; - } - }; - }, - createElementNS() { - return {}; - }, - importNode() { - return null; - }, - location: { - hash: '', - host: '', - hostname: '', - href: '', - origin: '', - pathname: '', - protocol: '', - search: '' - } - }; - function getDocument() { - const doc = typeof document !== 'undefined' ? document : {}; - extend$2(doc, ssrDocument); - return doc; - } - const ssrWindow = { - document: ssrDocument, - navigator: { - userAgent: '' - }, - location: { - hash: '', - host: '', - hostname: '', - href: '', - origin: '', - pathname: '', - protocol: '', - search: '' - }, - history: { - replaceState() {}, - pushState() {}, - go() {}, - back() {} - }, - CustomEvent: function CustomEvent() { - return this; - }, - addEventListener() {}, - removeEventListener() {}, - getComputedStyle() { - return { - getPropertyValue() { - return ''; - } - }; - }, - Image() {}, - Date() {}, - screen: {}, - setTimeout() {}, - clearTimeout() {}, - matchMedia() { - return {}; - }, - requestAnimationFrame(callback) { - if (typeof setTimeout === 'undefined') { - callback(); - return null; - } - return setTimeout(callback, 0); - }, - cancelAnimationFrame(id) { - if (typeof setTimeout === 'undefined') { - return; - } - clearTimeout(id); - } - }; - function getWindow() { - const win = typeof window !== 'undefined' ? window : {}; - extend$2(win, ssrWindow); - return win; - } - - function classesToTokens(classes) { - if (classes === void 0) { - classes = ''; - } - return classes.trim().split(' ').filter(c => !!c.trim()); - } - - function deleteProps(obj) { - const object = obj; - Object.keys(object).forEach(key => { - try { - object[key] = null; - } catch (e) { - // no getter for object - } - try { - delete object[key]; - } catch (e) { - // something got wrong - } - }); - } - function nextTick(callback, delay) { - if (delay === void 0) { - delay = 0; - } - return setTimeout(callback, delay); - } - function now() { - return Date.now(); - } - function getComputedStyle$1(el) { - const window = getWindow(); - let style; - if (window.getComputedStyle) { - style = window.getComputedStyle(el, null); - } - if (!style && el.currentStyle) { - style = el.currentStyle; - } - if (!style) { - style = el.style; - } - return style; - } - function getTranslate(el, axis) { - if (axis === void 0) { - axis = 'x'; - } - const window = getWindow(); - let matrix; - let curTransform; - let transformMatrix; - const curStyle = getComputedStyle$1(el); - if (window.WebKitCSSMatrix) { - curTransform = curStyle.transform || curStyle.webkitTransform; - if (curTransform.split(',').length > 6) { - curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', '); - } - // Some old versions of Webkit choke when 'none' is passed; pass - // empty string instead in this case - transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform); - } else { - transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,'); - matrix = transformMatrix.toString().split(','); - } - if (axis === 'x') { - // Latest Chrome and webkits Fix - if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; - // Crazy IE10 Matrix - else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); - // Normal Browsers - else curTransform = parseFloat(matrix[4]); - } - if (axis === 'y') { - // Latest Chrome and webkits Fix - if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; - // Crazy IE10 Matrix - else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); - // Normal Browsers - else curTransform = parseFloat(matrix[5]); - } - return curTransform || 0; - } - function isObject$1(o) { - return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object'; - } - function isNode(node) { - // eslint-disable-next-line - if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') { - return node instanceof HTMLElement; - } - return node && (node.nodeType === 1 || node.nodeType === 11); - } - function extend$1() { - const to = Object(arguments.length <= 0 ? undefined : arguments[0]); - const noExtend = ['__proto__', 'constructor', 'prototype']; - for (let i = 1; i < arguments.length; i += 1) { - const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i]; - if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) { - const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0); - for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) { - const nextKey = keysArray[nextIndex]; - const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey); - if (desc !== undefined && desc.enumerable) { - if (isObject$1(to[nextKey]) && isObject$1(nextSource[nextKey])) { - if (nextSource[nextKey].__swiper__) { - to[nextKey] = nextSource[nextKey]; - } else { - extend$1(to[nextKey], nextSource[nextKey]); - } - } else if (!isObject$1(to[nextKey]) && isObject$1(nextSource[nextKey])) { - to[nextKey] = {}; - if (nextSource[nextKey].__swiper__) { - to[nextKey] = nextSource[nextKey]; - } else { - extend$1(to[nextKey], nextSource[nextKey]); - } - } else { - to[nextKey] = nextSource[nextKey]; - } - } - } - } - } - return to; - } - function setCSSProperty(el, varName, varValue) { - el.style.setProperty(varName, varValue); - } - function animateCSSModeScroll(_ref) { - let { - swiper, - targetPosition, - side - } = _ref; - const window = getWindow(); - const startPosition = -swiper.translate; - let startTime = null; - let time; - const duration = swiper.params.speed; - swiper.wrapperEl.style.scrollSnapType = 'none'; - window.cancelAnimationFrame(swiper.cssModeFrameID); - const dir = targetPosition > startPosition ? 'next' : 'prev'; - const isOutOfBound = (current, target) => { - return dir === 'next' && current >= target || dir === 'prev' && current <= target; - }; - const animate = () => { - time = new Date().getTime(); - if (startTime === null) { - startTime = time; - } - const progress = Math.max(Math.min((time - startTime) / duration, 1), 0); - const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2; - let currentPosition = startPosition + easeProgress * (targetPosition - startPosition); - if (isOutOfBound(currentPosition, targetPosition)) { - currentPosition = targetPosition; - } - swiper.wrapperEl.scrollTo({ - [side]: currentPosition - }); - if (isOutOfBound(currentPosition, targetPosition)) { - swiper.wrapperEl.style.overflow = 'hidden'; - swiper.wrapperEl.style.scrollSnapType = ''; - setTimeout(() => { - swiper.wrapperEl.style.overflow = ''; - swiper.wrapperEl.scrollTo({ - [side]: currentPosition - }); - }); - window.cancelAnimationFrame(swiper.cssModeFrameID); - return; - } - swiper.cssModeFrameID = window.requestAnimationFrame(animate); - }; - animate(); - } - function elementChildren(element, selector) { - if (selector === void 0) { - selector = ''; - } - return [...element.children].filter(el => el.matches(selector)); - } - function showWarning(text) { - try { - console.warn(text); - return; - } catch (err) { - // err - } - } - function createElement(tag, classes) { - if (classes === void 0) { - classes = []; - } - const el = document.createElement(tag); - el.classList.add(...(Array.isArray(classes) ? classes : classesToTokens(classes))); - return el; - } - function elementPrevAll(el, selector) { - const prevEls = []; - while (el.previousElementSibling) { - const prev = el.previousElementSibling; // eslint-disable-line - if (selector) { - if (prev.matches(selector)) prevEls.push(prev); - } else prevEls.push(prev); - el = prev; - } - return prevEls; - } - function elementNextAll(el, selector) { - const nextEls = []; - while (el.nextElementSibling) { - const next = el.nextElementSibling; // eslint-disable-line - if (selector) { - if (next.matches(selector)) nextEls.push(next); - } else nextEls.push(next); - el = next; - } - return nextEls; - } - function elementStyle(el, prop) { - const window = getWindow(); - return window.getComputedStyle(el, null).getPropertyValue(prop); - } - function elementIndex(el) { - let child = el; - let i; - if (child) { - i = 0; - // eslint-disable-next-line - while ((child = child.previousSibling) !== null) { - if (child.nodeType === 1) i += 1; - } - return i; - } - return undefined; - } - function elementParents(el, selector) { - const parents = []; // eslint-disable-line - let parent = el.parentElement; // eslint-disable-line - while (parent) { - if (selector) { - if (parent.matches(selector)) parents.push(parent); - } else { - parents.push(parent); - } - parent = parent.parentElement; - } - return parents; - } - function elementOuterSize(el, size, includeMargins) { - const window = getWindow(); - if (includeMargins) { - return el[size === 'width' ? 'offsetWidth' : 'offsetHeight'] + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-right' : 'margin-top')) + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-left' : 'margin-bottom')); - } - return el.offsetWidth; - } - - let support; - function calcSupport() { - const window = getWindow(); - const document = getDocument(); - return { - smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style, - touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch) - }; - } - function getSupport() { - if (!support) { - support = calcSupport(); - } - return support; - } - - let deviceCached; - function calcDevice(_temp) { - let { - userAgent - } = _temp === void 0 ? {} : _temp; - const support = getSupport(); - const window = getWindow(); - const platform = window.navigator.platform; - const ua = userAgent || window.navigator.userAgent; - const device = { - ios: false, - android: false - }; - const screenWidth = window.screen.width; - const screenHeight = window.screen.height; - const android = ua.match(/(Android);?[\s\/]+([\d.]+)?/); // eslint-disable-line - let ipad = ua.match(/(iPad).*OS\s([\d_]+)/); - const ipod = ua.match(/(iPod)(.*OS\s([\d_]+))?/); - const iphone = !ipad && ua.match(/(iPhone\sOS|iOS)\s([\d_]+)/); - const windows = platform === 'Win32'; - let macos = platform === 'MacIntel'; - - // iPadOs 13 fix - const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810']; - if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) { - ipad = ua.match(/(Version)\/([\d.]+)/); - if (!ipad) ipad = [0, 1, '13_0_0']; - macos = false; - } - - // Android - if (android && !windows) { - device.os = 'android'; - device.android = true; - } - if (ipad || iphone || ipod) { - device.os = 'ios'; - device.ios = true; - } - - // Export object - return device; - } - function getDevice(overrides) { - if (overrides === void 0) { - overrides = {}; - } - if (!deviceCached) { - deviceCached = calcDevice(overrides); - } - return deviceCached; - } - - let browser; - function calcBrowser() { - const window = getWindow(); - let needPerspectiveFix = false; - function isSafari() { - const ua = window.navigator.userAgent.toLowerCase(); - return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0; - } - if (isSafari()) { - const ua = String(window.navigator.userAgent); - if (ua.includes('Version/')) { - const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num)); - needPerspectiveFix = major < 16 || major === 16 && minor < 2; - } - } - return { - isSafari: needPerspectiveFix || isSafari(), - needPerspectiveFix, - isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent) - }; - } - function getBrowser() { - if (!browser) { - browser = calcBrowser(); - } - return browser; - } - - function Resize(_ref) { - let { - swiper, - on, - emit - } = _ref; - const window = getWindow(); - let observer = null; - let animationFrame = null; - const resizeHandler = () => { - if (!swiper || swiper.destroyed || !swiper.initialized) return; - emit('beforeResize'); - emit('resize'); - }; - const createObserver = () => { - if (!swiper || swiper.destroyed || !swiper.initialized) return; - observer = new ResizeObserver(entries => { - animationFrame = window.requestAnimationFrame(() => { - const { - width, - height - } = swiper; - let newWidth = width; - let newHeight = height; - entries.forEach(_ref2 => { - let { - contentBoxSize, - contentRect, - target - } = _ref2; - if (target && target !== swiper.el) return; - newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize; - newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize; - }); - if (newWidth !== width || newHeight !== height) { - resizeHandler(); - } - }); - }); - observer.observe(swiper.el); - }; - const removeObserver = () => { - if (animationFrame) { - window.cancelAnimationFrame(animationFrame); - } - if (observer && observer.unobserve && swiper.el) { - observer.unobserve(swiper.el); - observer = null; - } - }; - const orientationChangeHandler = () => { - if (!swiper || swiper.destroyed || !swiper.initialized) return; - emit('orientationchange'); - }; - on('init', () => { - if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') { - createObserver(); - return; - } - window.addEventListener('resize', resizeHandler); - window.addEventListener('orientationchange', orientationChangeHandler); - }); - on('destroy', () => { - removeObserver(); - window.removeEventListener('resize', resizeHandler); - window.removeEventListener('orientationchange', orientationChangeHandler); - }); - } - - function Observer(_ref) { - let { - swiper, - extendParams, - on, - emit - } = _ref; - const observers = []; - const window = getWindow(); - const attach = function (target, options) { - if (options === void 0) { - options = {}; - } - const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver; - const observer = new ObserverFunc(mutations => { - // The observerUpdate event should only be triggered - // once despite the number of mutations. Additional - // triggers are redundant and are very costly - if (swiper.__preventObserver__) return; - if (mutations.length === 1) { - emit('observerUpdate', mutations[0]); - return; - } - const observerUpdate = function observerUpdate() { - emit('observerUpdate', mutations[0]); - }; - if (window.requestAnimationFrame) { - window.requestAnimationFrame(observerUpdate); - } else { - window.setTimeout(observerUpdate, 0); - } - }); - observer.observe(target, { - attributes: typeof options.attributes === 'undefined' ? true : options.attributes, - childList: typeof options.childList === 'undefined' ? true : options.childList, - characterData: typeof options.characterData === 'undefined' ? true : options.characterData - }); - observers.push(observer); - }; - const init = () => { - if (!swiper.params.observer) return; - if (swiper.params.observeParents) { - const containerParents = elementParents(swiper.hostEl); - for (let i = 0; i < containerParents.length; i += 1) { - attach(containerParents[i]); - } - } - // Observe container - attach(swiper.hostEl, { - childList: swiper.params.observeSlideChildren - }); - - // Observe wrapper - attach(swiper.wrapperEl, { - attributes: false - }); - }; - const destroy = () => { - observers.forEach(observer => { - observer.disconnect(); - }); - observers.splice(0, observers.length); - }; - extendParams({ - observer: false, - observeParents: false, - observeSlideChildren: false - }); - on('init', init); - on('destroy', destroy); - } - - /* eslint-disable no-underscore-dangle */ - - var eventsEmitter = { - on(events, handler, priority) { - const self = this; - if (!self.eventsListeners || self.destroyed) return self; - if (typeof handler !== 'function') return self; - const method = priority ? 'unshift' : 'push'; - events.split(' ').forEach(event => { - if (!self.eventsListeners[event]) self.eventsListeners[event] = []; - self.eventsListeners[event][method](handler); - }); - return self; - }, - once(events, handler, priority) { - const self = this; - if (!self.eventsListeners || self.destroyed) return self; - if (typeof handler !== 'function') return self; - function onceHandler() { - self.off(events, onceHandler); - if (onceHandler.__emitterProxy) { - delete onceHandler.__emitterProxy; - } - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - handler.apply(self, args); - } - onceHandler.__emitterProxy = handler; - return self.on(events, onceHandler, priority); - }, - onAny(handler, priority) { - const self = this; - if (!self.eventsListeners || self.destroyed) return self; - if (typeof handler !== 'function') return self; - const method = priority ? 'unshift' : 'push'; - if (self.eventsAnyListeners.indexOf(handler) < 0) { - self.eventsAnyListeners[method](handler); - } - return self; - }, - offAny(handler) { - const self = this; - if (!self.eventsListeners || self.destroyed) return self; - if (!self.eventsAnyListeners) return self; - const index = self.eventsAnyListeners.indexOf(handler); - if (index >= 0) { - self.eventsAnyListeners.splice(index, 1); - } - return self; - }, - off(events, handler) { - const self = this; - if (!self.eventsListeners || self.destroyed) return self; - if (!self.eventsListeners) return self; - events.split(' ').forEach(event => { - if (typeof handler === 'undefined') { - self.eventsListeners[event] = []; - } else if (self.eventsListeners[event]) { - self.eventsListeners[event].forEach((eventHandler, index) => { - if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) { - self.eventsListeners[event].splice(index, 1); - } - }); - } - }); - return self; - }, - emit() { - const self = this; - if (!self.eventsListeners || self.destroyed) return self; - if (!self.eventsListeners) return self; - let events; - let data; - let context; - for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - args[_key2] = arguments[_key2]; - } - if (typeof args[0] === 'string' || Array.isArray(args[0])) { - events = args[0]; - data = args.slice(1, args.length); - context = self; - } else { - events = args[0].events; - data = args[0].data; - context = args[0].context || self; - } - data.unshift(context); - const eventsArray = Array.isArray(events) ? events : events.split(' '); - eventsArray.forEach(event => { - if (self.eventsAnyListeners && self.eventsAnyListeners.length) { - self.eventsAnyListeners.forEach(eventHandler => { - eventHandler.apply(context, [event, ...data]); - }); - } - if (self.eventsListeners && self.eventsListeners[event]) { - self.eventsListeners[event].forEach(eventHandler => { - eventHandler.apply(context, data); - }); - } - }); - return self; - } - }; - - function updateSize() { - const swiper = this; - let width; - let height; - const el = swiper.el; - if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) { - width = swiper.params.width; - } else { - width = el.clientWidth; - } - if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) { - height = swiper.params.height; - } else { - height = el.clientHeight; - } - if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) { - return; - } - - // Subtract paddings - width = width - parseInt(elementStyle(el, 'padding-left') || 0, 10) - parseInt(elementStyle(el, 'padding-right') || 0, 10); - height = height - parseInt(elementStyle(el, 'padding-top') || 0, 10) - parseInt(elementStyle(el, 'padding-bottom') || 0, 10); - if (Number.isNaN(width)) width = 0; - if (Number.isNaN(height)) height = 0; - Object.assign(swiper, { - width, - height, - size: swiper.isHorizontal() ? width : height - }); - } - - function updateSlides() { - const swiper = this; - function getDirectionPropertyValue(node, label) { - return parseFloat(node.getPropertyValue(swiper.getDirectionLabel(label)) || 0); - } - const params = swiper.params; - const { - wrapperEl, - slidesEl, - size: swiperSize, - rtlTranslate: rtl, - wrongRTL - } = swiper; - const isVirtual = swiper.virtual && params.virtual.enabled; - const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length; - const slides = elementChildren(slidesEl, `.${swiper.params.slideClass}, swiper-slide`); - const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length; - let snapGrid = []; - const slidesGrid = []; - const slidesSizesGrid = []; - let offsetBefore = params.slidesOffsetBefore; - if (typeof offsetBefore === 'function') { - offsetBefore = params.slidesOffsetBefore.call(swiper); - } - let offsetAfter = params.slidesOffsetAfter; - if (typeof offsetAfter === 'function') { - offsetAfter = params.slidesOffsetAfter.call(swiper); - } - const previousSnapGridLength = swiper.snapGrid.length; - const previousSlidesGridLength = swiper.slidesGrid.length; - let spaceBetween = params.spaceBetween; - let slidePosition = -offsetBefore; - let prevSlideSize = 0; - let index = 0; - if (typeof swiperSize === 'undefined') { - return; - } - if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) { - spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize; - } else if (typeof spaceBetween === 'string') { - spaceBetween = parseFloat(spaceBetween); - } - swiper.virtualSize = -spaceBetween; - - // reset margins - slides.forEach(slideEl => { - if (rtl) { - slideEl.style.marginLeft = ''; - } else { - slideEl.style.marginRight = ''; - } - slideEl.style.marginBottom = ''; - slideEl.style.marginTop = ''; - }); - - // reset cssMode offsets - if (params.centeredSlides && params.cssMode) { - setCSSProperty(wrapperEl, '--swiper-centered-offset-before', ''); - setCSSProperty(wrapperEl, '--swiper-centered-offset-after', ''); - } - const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid; - if (gridEnabled) { - swiper.grid.initSlides(slides); - } else if (swiper.grid) { - swiper.grid.unsetSlides(); - } - - // Calc slides - let slideSize; - const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => { - return typeof params.breakpoints[key].slidesPerView !== 'undefined'; - }).length > 0; - for (let i = 0; i < slidesLength; i += 1) { - slideSize = 0; - let slide; - if (slides[i]) slide = slides[i]; - if (gridEnabled) { - swiper.grid.updateSlide(i, slide, slides); - } - if (slides[i] && elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line - - if (params.slidesPerView === 'auto') { - if (shouldResetSlideSize) { - slides[i].style[swiper.getDirectionLabel('width')] = ``; - } - const slideStyles = getComputedStyle(slide); - const currentTransform = slide.style.transform; - const currentWebKitTransform = slide.style.webkitTransform; - if (currentTransform) { - slide.style.transform = 'none'; - } - if (currentWebKitTransform) { - slide.style.webkitTransform = 'none'; - } - if (params.roundLengths) { - slideSize = swiper.isHorizontal() ? elementOuterSize(slide, 'width', true) : elementOuterSize(slide, 'height', true); - } else { - // eslint-disable-next-line - const width = getDirectionPropertyValue(slideStyles, 'width'); - const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left'); - const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right'); - const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left'); - const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right'); - const boxSizing = slideStyles.getPropertyValue('box-sizing'); - if (boxSizing && boxSizing === 'border-box') { - slideSize = width + marginLeft + marginRight; - } else { - const { - clientWidth, - offsetWidth - } = slide; - slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth); - } - } - if (currentTransform) { - slide.style.transform = currentTransform; - } - if (currentWebKitTransform) { - slide.style.webkitTransform = currentWebKitTransform; - } - if (params.roundLengths) slideSize = Math.floor(slideSize); - } else { - slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView; - if (params.roundLengths) slideSize = Math.floor(slideSize); - if (slides[i]) { - slides[i].style[swiper.getDirectionLabel('width')] = `${slideSize}px`; - } - } - if (slides[i]) { - slides[i].swiperSlideSize = slideSize; - } - slidesSizesGrid.push(slideSize); - if (params.centeredSlides) { - slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween; - if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween; - if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween; - if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0; - if (params.roundLengths) slidePosition = Math.floor(slidePosition); - if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition); - slidesGrid.push(slidePosition); - } else { - if (params.roundLengths) slidePosition = Math.floor(slidePosition); - if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition); - slidesGrid.push(slidePosition); - slidePosition = slidePosition + slideSize + spaceBetween; - } - swiper.virtualSize += slideSize + spaceBetween; - prevSlideSize = slideSize; - index += 1; - } - swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter; - if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) { - wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`; - } - if (params.setWrapperSize) { - wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`; - } - if (gridEnabled) { - swiper.grid.updateWrapperSize(slideSize, snapGrid); - } - - // Remove last grid elements depending on width - if (!params.centeredSlides) { - const newSlidesGrid = []; - for (let i = 0; i < snapGrid.length; i += 1) { - let slidesGridItem = snapGrid[i]; - if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem); - if (snapGrid[i] <= swiper.virtualSize - swiperSize) { - newSlidesGrid.push(slidesGridItem); - } - } - snapGrid = newSlidesGrid; - if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) { - snapGrid.push(swiper.virtualSize - swiperSize); - } - } - if (isVirtual && params.loop) { - const size = slidesSizesGrid[0] + spaceBetween; - if (params.slidesPerGroup > 1) { - const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup); - const groupSize = size * params.slidesPerGroup; - for (let i = 0; i < groups; i += 1) { - snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize); - } - } - for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) { - if (params.slidesPerGroup === 1) { - snapGrid.push(snapGrid[snapGrid.length - 1] + size); - } - slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size); - swiper.virtualSize += size; - } - } - if (snapGrid.length === 0) snapGrid = [0]; - if (spaceBetween !== 0) { - const key = swiper.isHorizontal() && rtl ? 'marginLeft' : swiper.getDirectionLabel('marginRight'); - slides.filter((_, slideIndex) => { - if (!params.cssMode || params.loop) return true; - if (slideIndex === slides.length - 1) { - return false; - } - return true; - }).forEach(slideEl => { - slideEl.style[key] = `${spaceBetween}px`; - }); - } - if (params.centeredSlides && params.centeredSlidesBounds) { - let allSlidesSize = 0; - slidesSizesGrid.forEach(slideSizeValue => { - allSlidesSize += slideSizeValue + (spaceBetween || 0); - }); - allSlidesSize -= spaceBetween; - const maxSnap = allSlidesSize - swiperSize; - snapGrid = snapGrid.map(snap => { - if (snap <= 0) return -offsetBefore; - if (snap > maxSnap) return maxSnap + offsetAfter; - return snap; - }); - } - if (params.centerInsufficientSlides) { - let allSlidesSize = 0; - slidesSizesGrid.forEach(slideSizeValue => { - allSlidesSize += slideSizeValue + (spaceBetween || 0); - }); - allSlidesSize -= spaceBetween; - if (allSlidesSize < swiperSize) { - const allSlidesOffset = (swiperSize - allSlidesSize) / 2; - snapGrid.forEach((snap, snapIndex) => { - snapGrid[snapIndex] = snap - allSlidesOffset; - }); - slidesGrid.forEach((snap, snapIndex) => { - slidesGrid[snapIndex] = snap + allSlidesOffset; - }); - } - } - Object.assign(swiper, { - slides, - snapGrid, - slidesGrid, - slidesSizesGrid - }); - if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) { - setCSSProperty(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`); - setCSSProperty(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`); - const addToSnapGrid = -swiper.snapGrid[0]; - const addToSlidesGrid = -swiper.slidesGrid[0]; - swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid); - swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid); - } - if (slidesLength !== previousSlidesLength) { - swiper.emit('slidesLengthChange'); - } - if (snapGrid.length !== previousSnapGridLength) { - if (swiper.params.watchOverflow) swiper.checkOverflow(); - swiper.emit('snapGridLengthChange'); - } - if (slidesGrid.length !== previousSlidesGridLength) { - swiper.emit('slidesGridLengthChange'); - } - if (params.watchSlidesProgress) { - swiper.updateSlidesOffset(); - } - swiper.emit('slidesUpdated'); - if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) { - const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`; - const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass); - if (slidesLength <= params.maxBackfaceHiddenSlides) { - if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass); - } else if (hasClassBackfaceClassAdded) { - swiper.el.classList.remove(backFaceHiddenClass); - } - } - } - - function updateAutoHeight(speed) { - const swiper = this; - const activeSlides = []; - const isVirtual = swiper.virtual && swiper.params.virtual.enabled; - let newHeight = 0; - let i; - if (typeof speed === 'number') { - swiper.setTransition(speed); - } else if (speed === true) { - swiper.setTransition(swiper.params.speed); - } - const getSlideByIndex = index => { - if (isVirtual) { - return swiper.slides[swiper.getSlideIndexByData(index)]; - } - return swiper.slides[index]; - }; - // Find slides currently in view - if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) { - if (swiper.params.centeredSlides) { - (swiper.visibleSlides || []).forEach(slide => { - activeSlides.push(slide); - }); - } else { - for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) { - const index = swiper.activeIndex + i; - if (index > swiper.slides.length && !isVirtual) break; - activeSlides.push(getSlideByIndex(index)); - } - } - } else { - activeSlides.push(getSlideByIndex(swiper.activeIndex)); - } - - // Find new height from highest slide in view - for (i = 0; i < activeSlides.length; i += 1) { - if (typeof activeSlides[i] !== 'undefined') { - const height = activeSlides[i].offsetHeight; - newHeight = height > newHeight ? height : newHeight; - } - } - - // Update Height - if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`; - } - - function updateSlidesOffset() { - const swiper = this; - const slides = swiper.slides; - // eslint-disable-next-line - const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0; - for (let i = 0; i < slides.length; i += 1) { - slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment(); - } - } - - function updateSlidesProgress(translate) { - if (translate === void 0) { - translate = this && this.translate || 0; - } - const swiper = this; - const params = swiper.params; - const { - slides, - rtlTranslate: rtl, - snapGrid - } = swiper; - if (slides.length === 0) return; - if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset(); - let offsetCenter = -translate; - if (rtl) offsetCenter = translate; - - // Visible Slides - slides.forEach(slideEl => { - slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass); - }); - swiper.visibleSlidesIndexes = []; - swiper.visibleSlides = []; - let spaceBetween = params.spaceBetween; - if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) { - spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size; - } else if (typeof spaceBetween === 'string') { - spaceBetween = parseFloat(spaceBetween); - } - for (let i = 0; i < slides.length; i += 1) { - const slide = slides[i]; - let slideOffset = slide.swiperSlideOffset; - if (params.cssMode && params.centeredSlides) { - slideOffset -= slides[0].swiperSlideOffset; - } - const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween); - const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween); - const slideBefore = -(offsetCenter - slideOffset); - const slideAfter = slideBefore + swiper.slidesSizesGrid[i]; - const isFullyVisible = slideBefore >= 0 && slideBefore <= swiper.size - swiper.slidesSizesGrid[i]; - const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size; - if (isVisible) { - swiper.visibleSlides.push(slide); - swiper.visibleSlidesIndexes.push(i); - slides[i].classList.add(params.slideVisibleClass); - } - if (isFullyVisible) { - slides[i].classList.add(params.slideFullyVisibleClass); - } - slide.progress = rtl ? -slideProgress : slideProgress; - slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress; - } - } - - function updateProgress(translate) { - const swiper = this; - if (typeof translate === 'undefined') { - const multiplier = swiper.rtlTranslate ? -1 : 1; - // eslint-disable-next-line - translate = swiper && swiper.translate && swiper.translate * multiplier || 0; - } - const params = swiper.params; - const translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); - let { - progress, - isBeginning, - isEnd, - progressLoop - } = swiper; - const wasBeginning = isBeginning; - const wasEnd = isEnd; - if (translatesDiff === 0) { - progress = 0; - isBeginning = true; - isEnd = true; - } else { - progress = (translate - swiper.minTranslate()) / translatesDiff; - const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1; - const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1; - isBeginning = isBeginningRounded || progress <= 0; - isEnd = isEndRounded || progress >= 1; - if (isBeginningRounded) progress = 0; - if (isEndRounded) progress = 1; - } - if (params.loop) { - const firstSlideIndex = swiper.getSlideIndexByData(0); - const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1); - const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex]; - const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex]; - const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1]; - const translateAbs = Math.abs(translate); - if (translateAbs >= firstSlideTranslate) { - progressLoop = (translateAbs - firstSlideTranslate) / translateMax; - } else { - progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax; - } - if (progressLoop > 1) progressLoop -= 1; - } - Object.assign(swiper, { - progress, - progressLoop, - isBeginning, - isEnd - }); - if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate); - if (isBeginning && !wasBeginning) { - swiper.emit('reachBeginning toEdge'); - } - if (isEnd && !wasEnd) { - swiper.emit('reachEnd toEdge'); - } - if (wasBeginning && !isBeginning || wasEnd && !isEnd) { - swiper.emit('fromEdge'); - } - swiper.emit('progress', progress); - } - - function updateSlidesClasses() { - const swiper = this; - const { - slides, - params, - slidesEl, - activeIndex - } = swiper; - const isVirtual = swiper.virtual && params.virtual.enabled; - const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1; - const getFilteredSlide = selector => { - return elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0]; - }; - slides.forEach(slideEl => { - slideEl.classList.remove(params.slideActiveClass, params.slideNextClass, params.slidePrevClass); - }); - let activeSlide; - let prevSlide; - let nextSlide; - if (isVirtual) { - if (params.loop) { - let slideIndex = activeIndex - swiper.virtual.slidesBefore; - if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex; - if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length; - activeSlide = getFilteredSlide(`[data-swiper-slide-index="${slideIndex}"]`); - } else { - activeSlide = getFilteredSlide(`[data-swiper-slide-index="${activeIndex}"]`); - } - } else { - if (gridEnabled) { - activeSlide = slides.filter(slideEl => slideEl.column === activeIndex)[0]; - nextSlide = slides.filter(slideEl => slideEl.column === activeIndex + 1)[0]; - prevSlide = slides.filter(slideEl => slideEl.column === activeIndex - 1)[0]; - } else { - activeSlide = slides[activeIndex]; - } - } - if (activeSlide) { - // Active classes - activeSlide.classList.add(params.slideActiveClass); - if (gridEnabled) { - if (nextSlide) { - nextSlide.classList.add(params.slideNextClass); - } - if (prevSlide) { - prevSlide.classList.add(params.slidePrevClass); - } - } else { - // Next Slide - nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0]; - if (params.loop && !nextSlide) { - nextSlide = slides[0]; - } - if (nextSlide) { - nextSlide.classList.add(params.slideNextClass); - } - - // Prev Slide - prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0]; - if (params.loop && !prevSlide === 0) { - prevSlide = slides[slides.length - 1]; - } - if (prevSlide) { - prevSlide.classList.add(params.slidePrevClass); - } - } - } - swiper.emitSlidesClasses(); - } - - const processLazyPreloader = (swiper, imageEl) => { - if (!swiper || swiper.destroyed || !swiper.params) return; - const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`; - const slideEl = imageEl.closest(slideSelector()); - if (slideEl) { - let lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`); - if (!lazyEl && swiper.isElement) { - if (slideEl.shadowRoot) { - lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`); - } else { - // init later - requestAnimationFrame(() => { - if (slideEl.shadowRoot) { - lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`); - if (lazyEl) lazyEl.remove(); - } - }); - } - } - if (lazyEl) lazyEl.remove(); - } - }; - const unlazy = (swiper, index) => { - if (!swiper.slides[index]) return; - const imageEl = swiper.slides[index].querySelector('[loading="lazy"]'); - if (imageEl) imageEl.removeAttribute('loading'); - }; - const preload = swiper => { - if (!swiper || swiper.destroyed || !swiper.params) return; - let amount = swiper.params.lazyPreloadPrevNext; - const len = swiper.slides.length; - if (!len || !amount || amount < 0) return; - amount = Math.min(amount, len); - const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView); - const activeIndex = swiper.activeIndex; - if (swiper.params.grid && swiper.params.grid.rows > 1) { - const activeColumn = activeIndex; - const preloadColumns = [activeColumn - amount]; - preloadColumns.push(...Array.from({ - length: amount - }).map((_, i) => { - return activeColumn + slidesPerView + i; - })); - swiper.slides.forEach((slideEl, i) => { - if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i); - }); - return; - } - const slideIndexLastInView = activeIndex + slidesPerView - 1; - if (swiper.params.rewind || swiper.params.loop) { - for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) { - const realIndex = (i % len + len) % len; - if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex); - } - } else { - for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) { - if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) { - unlazy(swiper, i); - } - } - } - }; - - function getActiveIndexByTranslate(swiper) { - const { - slidesGrid, - params - } = swiper; - const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate; - let activeIndex; - for (let i = 0; i < slidesGrid.length; i += 1) { - if (typeof slidesGrid[i + 1] !== 'undefined') { - if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) { - activeIndex = i; - } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) { - activeIndex = i + 1; - } - } else if (translate >= slidesGrid[i]) { - activeIndex = i; - } - } - // Normalize slideIndex - if (params.normalizeSlideIndex) { - if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0; - } - return activeIndex; - } - function updateActiveIndex(newActiveIndex) { - const swiper = this; - const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate; - const { - snapGrid, - params, - activeIndex: previousIndex, - realIndex: previousRealIndex, - snapIndex: previousSnapIndex - } = swiper; - let activeIndex = newActiveIndex; - let snapIndex; - const getVirtualRealIndex = aIndex => { - let realIndex = aIndex - swiper.virtual.slidesBefore; - if (realIndex < 0) { - realIndex = swiper.virtual.slides.length + realIndex; - } - if (realIndex >= swiper.virtual.slides.length) { - realIndex -= swiper.virtual.slides.length; - } - return realIndex; - }; - if (typeof activeIndex === 'undefined') { - activeIndex = getActiveIndexByTranslate(swiper); - } - if (snapGrid.indexOf(translate) >= 0) { - snapIndex = snapGrid.indexOf(translate); - } else { - const skip = Math.min(params.slidesPerGroupSkip, activeIndex); - snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup); - } - if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1; - if (activeIndex === previousIndex && !swiper.params.loop) { - if (snapIndex !== previousSnapIndex) { - swiper.snapIndex = snapIndex; - swiper.emit('snapIndexChange'); - } - return; - } - if (activeIndex === previousIndex && swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) { - swiper.realIndex = getVirtualRealIndex(activeIndex); - return; - } - const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1; - - // Get real index - let realIndex; - if (swiper.virtual && params.virtual.enabled && params.loop) { - realIndex = getVirtualRealIndex(activeIndex); - } else if (gridEnabled) { - const firstSlideInColumn = swiper.slides.filter(slideEl => slideEl.column === activeIndex)[0]; - let activeSlideIndex = parseInt(firstSlideInColumn.getAttribute('data-swiper-slide-index'), 10); - if (Number.isNaN(activeSlideIndex)) { - activeSlideIndex = Math.max(swiper.slides.indexOf(firstSlideInColumn), 0); - } - realIndex = Math.floor(activeSlideIndex / params.grid.rows); - } else if (swiper.slides[activeIndex]) { - const slideIndex = swiper.slides[activeIndex].getAttribute('data-swiper-slide-index'); - if (slideIndex) { - realIndex = parseInt(slideIndex, 10); - } else { - realIndex = activeIndex; - } - } else { - realIndex = activeIndex; - } - Object.assign(swiper, { - previousSnapIndex, - snapIndex, - previousRealIndex, - realIndex, - previousIndex, - activeIndex - }); - if (swiper.initialized) { - preload(swiper); - } - swiper.emit('activeIndexChange'); - swiper.emit('snapIndexChange'); - if (swiper.initialized || swiper.params.runCallbacksOnInit) { - if (previousRealIndex !== realIndex) { - swiper.emit('realIndexChange'); - } - swiper.emit('slideChange'); - } - } - - function updateClickedSlide(el, path) { - const swiper = this; - const params = swiper.params; - let slide = el.closest(`.${params.slideClass}, swiper-slide`); - if (!slide && swiper.isElement && path && path.length > 1 && path.includes(el)) { - [...path.slice(path.indexOf(el) + 1, path.length)].forEach(pathEl => { - if (!slide && pathEl.matches && pathEl.matches(`.${params.slideClass}, swiper-slide`)) { - slide = pathEl; - } - }); - } - let slideFound = false; - let slideIndex; - if (slide) { - for (let i = 0; i < swiper.slides.length; i += 1) { - if (swiper.slides[i] === slide) { - slideFound = true; - slideIndex = i; - break; - } - } - } - if (slide && slideFound) { - swiper.clickedSlide = slide; - if (swiper.virtual && swiper.params.virtual.enabled) { - swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10); - } else { - swiper.clickedIndex = slideIndex; - } - } else { - swiper.clickedSlide = undefined; - swiper.clickedIndex = undefined; - return; - } - if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) { - swiper.slideToClickedSlide(); - } - } - - var update = { - updateSize, - updateSlides, - updateAutoHeight, - updateSlidesOffset, - updateSlidesProgress, - updateProgress, - updateSlidesClasses, - updateActiveIndex, - updateClickedSlide - }; - - function getSwiperTranslate(axis) { - if (axis === void 0) { - axis = this.isHorizontal() ? 'x' : 'y'; - } - const swiper = this; - const { - params, - rtlTranslate: rtl, - translate, - wrapperEl - } = swiper; - if (params.virtualTranslate) { - return rtl ? -translate : translate; - } - if (params.cssMode) { - return translate; - } - let currentTranslate = getTranslate(wrapperEl, axis); - currentTranslate += swiper.cssOverflowAdjustment(); - if (rtl) currentTranslate = -currentTranslate; - return currentTranslate || 0; - } - - function setTranslate(translate, byController) { - const swiper = this; - const { - rtlTranslate: rtl, - params, - wrapperEl, - progress - } = swiper; - let x = 0; - let y = 0; - const z = 0; - if (swiper.isHorizontal()) { - x = rtl ? -translate : translate; - } else { - y = translate; - } - if (params.roundLengths) { - x = Math.floor(x); - y = Math.floor(y); - } - swiper.previousTranslate = swiper.translate; - swiper.translate = swiper.isHorizontal() ? x : y; - if (params.cssMode) { - wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y; - } else if (!params.virtualTranslate) { - if (swiper.isHorizontal()) { - x -= swiper.cssOverflowAdjustment(); - } else { - y -= swiper.cssOverflowAdjustment(); - } - wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`; - } - - // Check if we need to update progress - let newProgress; - const translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); - if (translatesDiff === 0) { - newProgress = 0; - } else { - newProgress = (translate - swiper.minTranslate()) / translatesDiff; - } - if (newProgress !== progress) { - swiper.updateProgress(translate); - } - swiper.emit('setTranslate', swiper.translate, byController); - } - - function minTranslate() { - return -this.snapGrid[0]; - } - - function maxTranslate() { - return -this.snapGrid[this.snapGrid.length - 1]; - } - - function translateTo(translate, speed, runCallbacks, translateBounds, internal) { - if (translate === void 0) { - translate = 0; - } - if (speed === void 0) { - speed = this.params.speed; - } - if (runCallbacks === void 0) { - runCallbacks = true; - } - if (translateBounds === void 0) { - translateBounds = true; - } - const swiper = this; - const { - params, - wrapperEl - } = swiper; - if (swiper.animating && params.preventInteractionOnTransition) { - return false; - } - const minTranslate = swiper.minTranslate(); - const maxTranslate = swiper.maxTranslate(); - let newTranslate; - if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; - - // Update progress - swiper.updateProgress(newTranslate); - if (params.cssMode) { - const isH = swiper.isHorizontal(); - if (speed === 0) { - wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate; - } else { - if (!swiper.support.smoothScroll) { - animateCSSModeScroll({ - swiper, - targetPosition: -newTranslate, - side: isH ? 'left' : 'top' - }); - return true; - } - wrapperEl.scrollTo({ - [isH ? 'left' : 'top']: -newTranslate, - behavior: 'smooth' - }); - } - return true; - } - if (speed === 0) { - swiper.setTransition(0); - swiper.setTranslate(newTranslate); - if (runCallbacks) { - swiper.emit('beforeTransitionStart', speed, internal); - swiper.emit('transitionEnd'); - } - } else { - swiper.setTransition(speed); - swiper.setTranslate(newTranslate); - if (runCallbacks) { - swiper.emit('beforeTransitionStart', speed, internal); - swiper.emit('transitionStart'); - } - if (!swiper.animating) { - swiper.animating = true; - if (!swiper.onTranslateToWrapperTransitionEnd) { - swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) { - if (!swiper || swiper.destroyed) return; - if (e.target !== this) return; - swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd); - swiper.onTranslateToWrapperTransitionEnd = null; - delete swiper.onTranslateToWrapperTransitionEnd; - if (runCallbacks) { - swiper.emit('transitionEnd'); - } - }; - } - swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd); - } - } - return true; - } - - var translate = { - getTranslate: getSwiperTranslate, - setTranslate, - minTranslate, - maxTranslate, - translateTo - }; - - function setTransition(duration, byController) { - const swiper = this; - if (!swiper.params.cssMode) { - swiper.wrapperEl.style.transitionDuration = `${duration}ms`; - swiper.wrapperEl.style.transitionDelay = duration === 0 ? `0ms` : ''; - } - swiper.emit('setTransition', duration, byController); - } - - function transitionEmit(_ref) { - let { - swiper, - runCallbacks, - direction, - step - } = _ref; - const { - activeIndex, - previousIndex - } = swiper; - let dir = direction; - if (!dir) { - if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset'; - } - swiper.emit(`transition${step}`); - if (runCallbacks && activeIndex !== previousIndex) { - if (dir === 'reset') { - swiper.emit(`slideResetTransition${step}`); - return; - } - swiper.emit(`slideChangeTransition${step}`); - if (dir === 'next') { - swiper.emit(`slideNextTransition${step}`); - } else { - swiper.emit(`slidePrevTransition${step}`); - } - } - } - - function transitionStart(runCallbacks, direction) { - if (runCallbacks === void 0) { - runCallbacks = true; - } - const swiper = this; - const { - params - } = swiper; - if (params.cssMode) return; - if (params.autoHeight) { - swiper.updateAutoHeight(); - } - transitionEmit({ - swiper, - runCallbacks, - direction, - step: 'Start' - }); - } - - function transitionEnd(runCallbacks, direction) { - if (runCallbacks === void 0) { - runCallbacks = true; - } - const swiper = this; - const { - params - } = swiper; - swiper.animating = false; - if (params.cssMode) return; - swiper.setTransition(0); - transitionEmit({ - swiper, - runCallbacks, - direction, - step: 'End' - }); - } - - var transition = { - setTransition, - transitionStart, - transitionEnd - }; - - function slideTo(index, speed, runCallbacks, internal, initial) { - if (index === void 0) { - index = 0; - } - if (speed === void 0) { - speed = this.params.speed; - } - if (runCallbacks === void 0) { - runCallbacks = true; - } - if (typeof index === 'string') { - index = parseInt(index, 10); - } - const swiper = this; - let slideIndex = index; - if (slideIndex < 0) slideIndex = 0; - const { - params, - snapGrid, - slidesGrid, - previousIndex, - activeIndex, - rtlTranslate: rtl, - wrapperEl, - enabled - } = swiper; - if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) { - return false; - } - const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex); - let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup); - if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1; - const translate = -snapGrid[snapIndex]; - // Normalize slideIndex - if (params.normalizeSlideIndex) { - for (let i = 0; i < slidesGrid.length; i += 1) { - const normalizedTranslate = -Math.floor(translate * 100); - const normalizedGrid = Math.floor(slidesGrid[i] * 100); - const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100); - if (typeof slidesGrid[i + 1] !== 'undefined') { - if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) { - slideIndex = i; - } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) { - slideIndex = i + 1; - } - } else if (normalizedTranslate >= normalizedGrid) { - slideIndex = i; - } - } - } - // Directions locks - if (swiper.initialized && slideIndex !== activeIndex) { - if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) { - return false; - } - if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) { - if ((activeIndex || 0) !== slideIndex) { - return false; - } - } - } - if (slideIndex !== (previousIndex || 0) && runCallbacks) { - swiper.emit('beforeSlideChangeStart'); - } - - // Update progress - swiper.updateProgress(translate); - let direction; - if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; - - // Update Index - if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) { - swiper.updateActiveIndex(slideIndex); - // Update Height - if (params.autoHeight) { - swiper.updateAutoHeight(); - } - swiper.updateSlidesClasses(); - if (params.effect !== 'slide') { - swiper.setTranslate(translate); - } - if (direction !== 'reset') { - swiper.transitionStart(runCallbacks, direction); - swiper.transitionEnd(runCallbacks, direction); - } - return false; - } - if (params.cssMode) { - const isH = swiper.isHorizontal(); - const t = rtl ? translate : -translate; - if (speed === 0) { - const isVirtual = swiper.virtual && swiper.params.virtual.enabled; - if (isVirtual) { - swiper.wrapperEl.style.scrollSnapType = 'none'; - swiper._immediateVirtual = true; - } - if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) { - swiper._cssModeVirtualInitialSet = true; - requestAnimationFrame(() => { - wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t; - }); - } else { - wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t; - } - if (isVirtual) { - requestAnimationFrame(() => { - swiper.wrapperEl.style.scrollSnapType = ''; - swiper._immediateVirtual = false; - }); - } - } else { - if (!swiper.support.smoothScroll) { - animateCSSModeScroll({ - swiper, - targetPosition: t, - side: isH ? 'left' : 'top' - }); - return true; - } - wrapperEl.scrollTo({ - [isH ? 'left' : 'top']: t, - behavior: 'smooth' - }); - } - return true; - } - swiper.setTransition(speed); - swiper.setTranslate(translate); - swiper.updateActiveIndex(slideIndex); - swiper.updateSlidesClasses(); - swiper.emit('beforeTransitionStart', speed, internal); - swiper.transitionStart(runCallbacks, direction); - if (speed === 0) { - swiper.transitionEnd(runCallbacks, direction); - } else if (!swiper.animating) { - swiper.animating = true; - if (!swiper.onSlideToWrapperTransitionEnd) { - swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) { - if (!swiper || swiper.destroyed) return; - if (e.target !== this) return; - swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd); - swiper.onSlideToWrapperTransitionEnd = null; - delete swiper.onSlideToWrapperTransitionEnd; - swiper.transitionEnd(runCallbacks, direction); - }; - } - swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd); - } - return true; - } - - function slideToLoop(index, speed, runCallbacks, internal) { - if (index === void 0) { - index = 0; - } - if (speed === void 0) { - speed = this.params.speed; - } - if (runCallbacks === void 0) { - runCallbacks = true; - } - if (typeof index === 'string') { - const indexAsNumber = parseInt(index, 10); - index = indexAsNumber; - } - const swiper = this; - const gridEnabled = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1; - let newIndex = index; - if (swiper.params.loop) { - if (swiper.virtual && swiper.params.virtual.enabled) { - // eslint-disable-next-line - newIndex = newIndex + swiper.virtual.slidesBefore; - } else { - let targetSlideIndex; - if (gridEnabled) { - const slideIndex = newIndex * swiper.params.grid.rows; - targetSlideIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column; - } else { - targetSlideIndex = swiper.getSlideIndexByData(newIndex); - } - const cols = gridEnabled ? Math.ceil(swiper.slides.length / swiper.params.grid.rows) : swiper.slides.length; - const { - centeredSlides - } = swiper.params; - let slidesPerView = swiper.params.slidesPerView; - if (slidesPerView === 'auto') { - slidesPerView = swiper.slidesPerViewDynamic(); - } else { - slidesPerView = Math.ceil(parseFloat(swiper.params.slidesPerView, 10)); - if (centeredSlides && slidesPerView % 2 === 0) { - slidesPerView = slidesPerView + 1; - } - } - let needLoopFix = cols - targetSlideIndex < slidesPerView; - if (centeredSlides) { - needLoopFix = needLoopFix || targetSlideIndex < Math.ceil(slidesPerView / 2); - } - if (needLoopFix) { - const direction = centeredSlides ? targetSlideIndex < swiper.activeIndex ? 'prev' : 'next' : targetSlideIndex - swiper.activeIndex - 1 < swiper.params.slidesPerView ? 'next' : 'prev'; - swiper.loopFix({ - direction, - slideTo: true, - activeSlideIndex: direction === 'next' ? targetSlideIndex + 1 : targetSlideIndex - cols + 1, - slideRealIndex: direction === 'next' ? swiper.realIndex : undefined - }); - } - if (gridEnabled) { - const slideIndex = newIndex * swiper.params.grid.rows; - newIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column; - } else { - newIndex = swiper.getSlideIndexByData(newIndex); - } - } - } - requestAnimationFrame(() => { - swiper.slideTo(newIndex, speed, runCallbacks, internal); - }); - return swiper; - } - - /* eslint no-unused-vars: "off" */ - function slideNext(speed, runCallbacks, internal) { - if (speed === void 0) { - speed = this.params.speed; - } - if (runCallbacks === void 0) { - runCallbacks = true; - } - const swiper = this; - const { - enabled, - params, - animating - } = swiper; - if (!enabled) return swiper; - let perGroup = params.slidesPerGroup; - if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) { - perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1); - } - const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup; - const isVirtual = swiper.virtual && params.virtual.enabled; - if (params.loop) { - if (animating && !isVirtual && params.loopPreventsSliding) return false; - swiper.loopFix({ - direction: 'next' - }); - // eslint-disable-next-line - swiper._clientLeft = swiper.wrapperEl.clientLeft; - if (swiper.activeIndex === swiper.slides.length - 1 && params.cssMode) { - requestAnimationFrame(() => { - swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal); - }); - return true; - } - } - if (params.rewind && swiper.isEnd) { - return swiper.slideTo(0, speed, runCallbacks, internal); - } - return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal); - } - - /* eslint no-unused-vars: "off" */ - function slidePrev(speed, runCallbacks, internal) { - if (speed === void 0) { - speed = this.params.speed; - } - if (runCallbacks === void 0) { - runCallbacks = true; - } - const swiper = this; - const { - params, - snapGrid, - slidesGrid, - rtlTranslate, - enabled, - animating - } = swiper; - if (!enabled) return swiper; - const isVirtual = swiper.virtual && params.virtual.enabled; - if (params.loop) { - if (animating && !isVirtual && params.loopPreventsSliding) return false; - swiper.loopFix({ - direction: 'prev' - }); - // eslint-disable-next-line - swiper._clientLeft = swiper.wrapperEl.clientLeft; - } - const translate = rtlTranslate ? swiper.translate : -swiper.translate; - function normalize(val) { - if (val < 0) return -Math.floor(Math.abs(val)); - return Math.floor(val); - } - const normalizedTranslate = normalize(translate); - const normalizedSnapGrid = snapGrid.map(val => normalize(val)); - let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1]; - if (typeof prevSnap === 'undefined' && params.cssMode) { - let prevSnapIndex; - snapGrid.forEach((snap, snapIndex) => { - if (normalizedTranslate >= snap) { - // prevSnap = snap; - prevSnapIndex = snapIndex; - } - }); - if (typeof prevSnapIndex !== 'undefined') { - prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex]; - } - } - let prevIndex = 0; - if (typeof prevSnap !== 'undefined') { - prevIndex = slidesGrid.indexOf(prevSnap); - if (prevIndex < 0) prevIndex = swiper.activeIndex - 1; - if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) { - prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1; - prevIndex = Math.max(prevIndex, 0); - } - } - if (params.rewind && swiper.isBeginning) { - const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1; - return swiper.slideTo(lastIndex, speed, runCallbacks, internal); - } else if (params.loop && swiper.activeIndex === 0 && params.cssMode) { - requestAnimationFrame(() => { - swiper.slideTo(prevIndex, speed, runCallbacks, internal); - }); - return true; - } - return swiper.slideTo(prevIndex, speed, runCallbacks, internal); - } - - /* eslint no-unused-vars: "off" */ - function slideReset(speed, runCallbacks, internal) { - if (speed === void 0) { - speed = this.params.speed; - } - if (runCallbacks === void 0) { - runCallbacks = true; - } - const swiper = this; - return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal); - } - - /* eslint no-unused-vars: "off" */ - function slideToClosest(speed, runCallbacks, internal, threshold) { - if (speed === void 0) { - speed = this.params.speed; - } - if (runCallbacks === void 0) { - runCallbacks = true; - } - if (threshold === void 0) { - threshold = 0.5; - } - const swiper = this; - let index = swiper.activeIndex; - const skip = Math.min(swiper.params.slidesPerGroupSkip, index); - const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup); - const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate; - if (translate >= swiper.snapGrid[snapIndex]) { - // The current translate is on or after the current snap index, so the choice - // is between the current index and the one after it. - const currentSnap = swiper.snapGrid[snapIndex]; - const nextSnap = swiper.snapGrid[snapIndex + 1]; - if (translate - currentSnap > (nextSnap - currentSnap) * threshold) { - index += swiper.params.slidesPerGroup; - } - } else { - // The current translate is before the current snap index, so the choice - // is between the current index and the one before it. - const prevSnap = swiper.snapGrid[snapIndex - 1]; - const currentSnap = swiper.snapGrid[snapIndex]; - if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) { - index -= swiper.params.slidesPerGroup; - } - } - index = Math.max(index, 0); - index = Math.min(index, swiper.slidesGrid.length - 1); - return swiper.slideTo(index, speed, runCallbacks, internal); - } - - function slideToClickedSlide() { - const swiper = this; - const { - params, - slidesEl - } = swiper; - const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView; - let slideToIndex = swiper.clickedIndex; - let realIndex; - const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`; - if (params.loop) { - if (swiper.animating) return; - realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10); - if (params.centeredSlides) { - if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) { - swiper.loopFix(); - slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index="${realIndex}"]`)[0]); - nextTick(() => { - swiper.slideTo(slideToIndex); - }); - } else { - swiper.slideTo(slideToIndex); - } - } else if (slideToIndex > swiper.slides.length - slidesPerView) { - swiper.loopFix(); - slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index="${realIndex}"]`)[0]); - nextTick(() => { - swiper.slideTo(slideToIndex); - }); - } else { - swiper.slideTo(slideToIndex); - } - } else { - swiper.slideTo(slideToIndex); - } - } - - var slide = { - slideTo, - slideToLoop, - slideNext, - slidePrev, - slideReset, - slideToClosest, - slideToClickedSlide - }; - - function loopCreate(slideRealIndex) { - const swiper = this; - const { - params, - slidesEl - } = swiper; - if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return; - const initSlides = () => { - const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`); - slides.forEach((el, index) => { - el.setAttribute('data-swiper-slide-index', index); - }); - }; - const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1; - const slidesPerGroup = params.slidesPerGroup * (gridEnabled ? params.grid.rows : 1); - const shouldFillGroup = swiper.slides.length % slidesPerGroup !== 0; - const shouldFillGrid = gridEnabled && swiper.slides.length % params.grid.rows !== 0; - const addBlankSlides = amountOfSlides => { - for (let i = 0; i < amountOfSlides; i += 1) { - const slideEl = swiper.isElement ? createElement('swiper-slide', [params.slideBlankClass]) : createElement('div', [params.slideClass, params.slideBlankClass]); - swiper.slidesEl.append(slideEl); - } - }; - if (shouldFillGroup) { - if (params.loopAddBlankSlides) { - const slidesToAdd = slidesPerGroup - swiper.slides.length % slidesPerGroup; - addBlankSlides(slidesToAdd); - swiper.recalcSlides(); - swiper.updateSlides(); - } else { - showWarning('Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)'); - } - initSlides(); - } else if (shouldFillGrid) { - if (params.loopAddBlankSlides) { - const slidesToAdd = params.grid.rows - swiper.slides.length % params.grid.rows; - addBlankSlides(slidesToAdd); - swiper.recalcSlides(); - swiper.updateSlides(); - } else { - showWarning('Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)'); - } - initSlides(); - } else { - initSlides(); - } - swiper.loopFix({ - slideRealIndex, - direction: params.centeredSlides ? undefined : 'next' - }); - } - - function loopFix(_temp) { - let { - slideRealIndex, - slideTo = true, - direction, - setTranslate, - activeSlideIndex, - byController, - byMousewheel - } = _temp === void 0 ? {} : _temp; - const swiper = this; - if (!swiper.params.loop) return; - swiper.emit('beforeLoopFix'); - const { - slides, - allowSlidePrev, - allowSlideNext, - slidesEl, - params - } = swiper; - const { - centeredSlides - } = params; - swiper.allowSlidePrev = true; - swiper.allowSlideNext = true; - if (swiper.virtual && params.virtual.enabled) { - if (slideTo) { - if (!params.centeredSlides && swiper.snapIndex === 0) { - swiper.slideTo(swiper.virtual.slides.length, 0, false, true); - } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) { - swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true); - } else if (swiper.snapIndex === swiper.snapGrid.length - 1) { - swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true); - } - } - swiper.allowSlidePrev = allowSlidePrev; - swiper.allowSlideNext = allowSlideNext; - swiper.emit('loopFix'); - return; - } - let slidesPerView = params.slidesPerView; - if (slidesPerView === 'auto') { - slidesPerView = swiper.slidesPerViewDynamic(); - } else { - slidesPerView = Math.ceil(parseFloat(params.slidesPerView, 10)); - if (centeredSlides && slidesPerView % 2 === 0) { - slidesPerView = slidesPerView + 1; - } - } - const slidesPerGroup = params.slidesPerGroupAuto ? slidesPerView : params.slidesPerGroup; - let loopedSlides = slidesPerGroup; - if (loopedSlides % slidesPerGroup !== 0) { - loopedSlides += slidesPerGroup - loopedSlides % slidesPerGroup; - } - loopedSlides += params.loopAdditionalSlides; - swiper.loopedSlides = loopedSlides; - const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1; - if (slides.length < slidesPerView + loopedSlides) { - showWarning('Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled and not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters'); - } else if (gridEnabled && params.grid.fill === 'row') { - showWarning('Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`'); - } - const prependSlidesIndexes = []; - const appendSlidesIndexes = []; - let activeIndex = swiper.activeIndex; - if (typeof activeSlideIndex === 'undefined') { - activeSlideIndex = swiper.getSlideIndex(slides.filter(el => el.classList.contains(params.slideActiveClass))[0]); - } else { - activeIndex = activeSlideIndex; - } - const isNext = direction === 'next' || !direction; - const isPrev = direction === 'prev' || !direction; - let slidesPrepended = 0; - let slidesAppended = 0; - const cols = gridEnabled ? Math.ceil(slides.length / params.grid.rows) : slides.length; - const activeColIndex = gridEnabled ? slides[activeSlideIndex].column : activeSlideIndex; - const activeColIndexWithShift = activeColIndex + (centeredSlides && typeof setTranslate === 'undefined' ? -slidesPerView / 2 + 0.5 : 0); - // prepend last slides before start - if (activeColIndexWithShift < loopedSlides) { - slidesPrepended = Math.max(loopedSlides - activeColIndexWithShift, slidesPerGroup); - for (let i = 0; i < loopedSlides - activeColIndexWithShift; i += 1) { - const index = i - Math.floor(i / cols) * cols; - if (gridEnabled) { - const colIndexToPrepend = cols - index - 1; - for (let i = slides.length - 1; i >= 0; i -= 1) { - if (slides[i].column === colIndexToPrepend) prependSlidesIndexes.push(i); - } - // slides.forEach((slide, slideIndex) => { - // if (slide.column === colIndexToPrepend) prependSlidesIndexes.push(slideIndex); - // }); - } else { - prependSlidesIndexes.push(cols - index - 1); - } - } - } else if (activeColIndexWithShift + slidesPerView > cols - loopedSlides) { - slidesAppended = Math.max(activeColIndexWithShift - (cols - loopedSlides * 2), slidesPerGroup); - for (let i = 0; i < slidesAppended; i += 1) { - const index = i - Math.floor(i / cols) * cols; - if (gridEnabled) { - slides.forEach((slide, slideIndex) => { - if (slide.column === index) appendSlidesIndexes.push(slideIndex); - }); - } else { - appendSlidesIndexes.push(index); - } - } - } - swiper.__preventObserver__ = true; - requestAnimationFrame(() => { - swiper.__preventObserver__ = false; - }); - if (isPrev) { - prependSlidesIndexes.forEach(index => { - slides[index].swiperLoopMoveDOM = true; - slidesEl.prepend(slides[index]); - slides[index].swiperLoopMoveDOM = false; - }); - } - if (isNext) { - appendSlidesIndexes.forEach(index => { - slides[index].swiperLoopMoveDOM = true; - slidesEl.append(slides[index]); - slides[index].swiperLoopMoveDOM = false; - }); - } - swiper.recalcSlides(); - if (params.slidesPerView === 'auto') { - swiper.updateSlides(); - } else if (gridEnabled && (prependSlidesIndexes.length > 0 && isPrev || appendSlidesIndexes.length > 0 && isNext)) { - swiper.slides.forEach((slide, slideIndex) => { - swiper.grid.updateSlide(slideIndex, slide, swiper.slides); - }); - } - if (params.watchSlidesProgress) { - swiper.updateSlidesOffset(); - } - if (slideTo) { - if (prependSlidesIndexes.length > 0 && isPrev) { - if (typeof slideRealIndex === 'undefined') { - const currentSlideTranslate = swiper.slidesGrid[activeIndex]; - const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended]; - const diff = newSlideTranslate - currentSlideTranslate; - if (byMousewheel) { - swiper.setTranslate(swiper.translate - diff); - } else { - swiper.slideTo(activeIndex + slidesPrepended, 0, false, true); - if (setTranslate) { - swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff; - swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff; - } - } - } else { - if (setTranslate) { - const shift = gridEnabled ? prependSlidesIndexes.length / params.grid.rows : prependSlidesIndexes.length; - swiper.slideTo(swiper.activeIndex + shift, 0, false, true); - swiper.touchEventsData.currentTranslate = swiper.translate; - } - } - } else if (appendSlidesIndexes.length > 0 && isNext) { - if (typeof slideRealIndex === 'undefined') { - const currentSlideTranslate = swiper.slidesGrid[activeIndex]; - const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended]; - const diff = newSlideTranslate - currentSlideTranslate; - if (byMousewheel) { - swiper.setTranslate(swiper.translate - diff); - } else { - swiper.slideTo(activeIndex - slidesAppended, 0, false, true); - if (setTranslate) { - swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff; - swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff; - } - } - } else { - const shift = gridEnabled ? appendSlidesIndexes.length / params.grid.rows : appendSlidesIndexes.length; - swiper.slideTo(swiper.activeIndex - shift, 0, false, true); - } - } - } - swiper.allowSlidePrev = allowSlidePrev; - swiper.allowSlideNext = allowSlideNext; - if (swiper.controller && swiper.controller.control && !byController) { - const loopParams = { - slideRealIndex, - direction, - setTranslate, - activeSlideIndex, - byController: true - }; - if (Array.isArray(swiper.controller.control)) { - swiper.controller.control.forEach(c => { - if (!c.destroyed && c.params.loop) c.loopFix({ - ...loopParams, - slideTo: c.params.slidesPerView === params.slidesPerView ? slideTo : false - }); - }); - } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) { - swiper.controller.control.loopFix({ - ...loopParams, - slideTo: swiper.controller.control.params.slidesPerView === params.slidesPerView ? slideTo : false - }); - } - } - swiper.emit('loopFix'); - } - - function loopDestroy() { - const swiper = this; - const { - params, - slidesEl - } = swiper; - if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return; - swiper.recalcSlides(); - const newSlidesOrder = []; - swiper.slides.forEach(slideEl => { - const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex; - newSlidesOrder[index] = slideEl; - }); - swiper.slides.forEach(slideEl => { - slideEl.removeAttribute('data-swiper-slide-index'); - }); - newSlidesOrder.forEach(slideEl => { - slidesEl.append(slideEl); - }); - swiper.recalcSlides(); - swiper.slideTo(swiper.realIndex, 0); - } - - var loop = { - loopCreate, - loopFix, - loopDestroy - }; - - function setGrabCursor(moving) { - const swiper = this; - if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return; - const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl; - if (swiper.isElement) { - swiper.__preventObserver__ = true; - } - el.style.cursor = 'move'; - el.style.cursor = moving ? 'grabbing' : 'grab'; - if (swiper.isElement) { - requestAnimationFrame(() => { - swiper.__preventObserver__ = false; - }); - } - } - - function unsetGrabCursor() { - const swiper = this; - if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) { - return; - } - if (swiper.isElement) { - swiper.__preventObserver__ = true; - } - swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = ''; - if (swiper.isElement) { - requestAnimationFrame(() => { - swiper.__preventObserver__ = false; - }); - } - } - - var grabCursor = { - setGrabCursor, - unsetGrabCursor - }; - - // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd - function closestElement(selector, base) { - if (base === void 0) { - base = this; - } - function __closestFrom(el) { - if (!el || el === getDocument() || el === getWindow()) return null; - if (el.assignedSlot) el = el.assignedSlot; - const found = el.closest(selector); - if (!found && !el.getRootNode) { - return null; - } - return found || __closestFrom(el.getRootNode().host); - } - return __closestFrom(base); - } - function preventEdgeSwipe(swiper, event, startX) { - const window = getWindow(); - const { - params - } = swiper; - const edgeSwipeDetection = params.edgeSwipeDetection; - const edgeSwipeThreshold = params.edgeSwipeThreshold; - if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) { - if (edgeSwipeDetection === 'prevent') { - event.preventDefault(); - return true; - } - return false; - } - return true; - } - function onTouchStart(event) { - const swiper = this; - const document = getDocument(); - let e = event; - if (e.originalEvent) e = e.originalEvent; - const data = swiper.touchEventsData; - if (e.type === 'pointerdown') { - if (data.pointerId !== null && data.pointerId !== e.pointerId) { - return; - } - data.pointerId = e.pointerId; - } else if (e.type === 'touchstart' && e.targetTouches.length === 1) { - data.touchId = e.targetTouches[0].identifier; - } - if (e.type === 'touchstart') { - // don't proceed touch event - preventEdgeSwipe(swiper, e, e.targetTouches[0].pageX); - return; - } - const { - params, - touches, - enabled - } = swiper; - if (!enabled) return; - if (!params.simulateTouch && e.pointerType === 'mouse') return; - if (swiper.animating && params.preventInteractionOnTransition) { - return; - } - if (!swiper.animating && params.cssMode && params.loop) { - swiper.loopFix(); - } - let targetEl = e.target; - if (params.touchEventsTarget === 'wrapper') { - if (!swiper.wrapperEl.contains(targetEl)) return; - } - if ('which' in e && e.which === 3) return; - if ('button' in e && e.button > 0) return; - if (data.isTouched && data.isMoved) return; - - // change target el for shadow root component - const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== ''; - // eslint-disable-next-line - const eventPath = e.composedPath ? e.composedPath() : e.path; - if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) { - targetEl = eventPath[0]; - } - const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`; - const isTargetShadow = !!(e.target && e.target.shadowRoot); - - // use closestElement for shadow root element to get the actual closest for nested shadow root element - if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) { - swiper.allowClick = true; - return; - } - if (params.swipeHandler) { - if (!targetEl.closest(params.swipeHandler)) return; - } - touches.currentX = e.pageX; - touches.currentY = e.pageY; - const startX = touches.currentX; - const startY = touches.currentY; - - // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore - - if (!preventEdgeSwipe(swiper, e, startX)) { - return; - } - Object.assign(data, { - isTouched: true, - isMoved: false, - allowTouchCallbacks: true, - isScrolling: undefined, - startMoving: undefined - }); - touches.startX = startX; - touches.startY = startY; - data.touchStartTime = now(); - swiper.allowClick = true; - swiper.updateSize(); - swiper.swipeDirection = undefined; - if (params.threshold > 0) data.allowThresholdMove = false; - let preventDefault = true; - if (targetEl.matches(data.focusableElements)) { - preventDefault = false; - if (targetEl.nodeName === 'SELECT') { - data.isTouched = false; - } - } - if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl) { - document.activeElement.blur(); - } - const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault; - if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) { - e.preventDefault(); - } - if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) { - swiper.freeMode.onTouchStart(); - } - swiper.emit('touchStart', e); - } - - function onTouchMove(event) { - const document = getDocument(); - const swiper = this; - const data = swiper.touchEventsData; - const { - params, - touches, - rtlTranslate: rtl, - enabled - } = swiper; - if (!enabled) return; - if (!params.simulateTouch && event.pointerType === 'mouse') return; - let e = event; - if (e.originalEvent) e = e.originalEvent; - if (e.type === 'pointermove') { - if (data.touchId !== null) return; // return from pointer if we use touch - const id = e.pointerId; - if (id !== data.pointerId) return; - } - let targetTouch; - if (e.type === 'touchmove') { - targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0]; - if (!targetTouch || targetTouch.identifier !== data.touchId) return; - } else { - targetTouch = e; - } - if (!data.isTouched) { - if (data.startMoving && data.isScrolling) { - swiper.emit('touchMoveOpposite', e); - } - return; - } - const pageX = targetTouch.pageX; - const pageY = targetTouch.pageY; - if (e.preventedByNestedSwiper) { - touches.startX = pageX; - touches.startY = pageY; - return; - } - if (!swiper.allowTouchMove) { - if (!e.target.matches(data.focusableElements)) { - swiper.allowClick = false; - } - if (data.isTouched) { - Object.assign(touches, { - startX: pageX, - startY: pageY, - currentX: pageX, - currentY: pageY - }); - data.touchStartTime = now(); - } - return; - } - if (params.touchReleaseOnEdges && !params.loop) { - if (swiper.isVertical()) { - // Vertical - if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) { - data.isTouched = false; - data.isMoved = false; - return; - } - } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) { - return; - } - } - if (document.activeElement) { - if (e.target === document.activeElement && e.target.matches(data.focusableElements)) { - data.isMoved = true; - swiper.allowClick = false; - return; - } - } - if (data.allowTouchCallbacks) { - swiper.emit('touchMove', e); - } - touches.previousX = touches.currentX; - touches.previousY = touches.currentY; - touches.currentX = pageX; - touches.currentY = pageY; - const diffX = touches.currentX - touches.startX; - const diffY = touches.currentY - touches.startY; - if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return; - if (typeof data.isScrolling === 'undefined') { - let touchAngle; - if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) { - data.isScrolling = false; - } else { - // eslint-disable-next-line - if (diffX * diffX + diffY * diffY >= 25) { - touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI; - data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle; - } - } - } - if (data.isScrolling) { - swiper.emit('touchMoveOpposite', e); - } - if (typeof data.startMoving === 'undefined') { - if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) { - data.startMoving = true; - } - } - if (data.isScrolling) { - data.isTouched = false; - return; - } - if (!data.startMoving) { - return; - } - swiper.allowClick = false; - if (!params.cssMode && e.cancelable) { - e.preventDefault(); - } - if (params.touchMoveStopPropagation && !params.nested) { - e.stopPropagation(); - } - let diff = swiper.isHorizontal() ? diffX : diffY; - let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY; - if (params.oneWayMovement) { - diff = Math.abs(diff) * (rtl ? 1 : -1); - touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1); - } - touches.diff = diff; - diff *= params.touchRatio; - if (rtl) { - diff = -diff; - touchesDiff = -touchesDiff; - } - const prevTouchesDirection = swiper.touchesDirection; - swiper.swipeDirection = diff > 0 ? 'prev' : 'next'; - swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next'; - const isLoop = swiper.params.loop && !params.cssMode; - const allowLoopFix = swiper.touchesDirection === 'next' && swiper.allowSlideNext || swiper.touchesDirection === 'prev' && swiper.allowSlidePrev; - if (!data.isMoved) { - if (isLoop && allowLoopFix) { - swiper.loopFix({ - direction: swiper.swipeDirection - }); - } - data.startTranslate = swiper.getTranslate(); - swiper.setTransition(0); - if (swiper.animating) { - const evt = new window.CustomEvent('transitionend', { - bubbles: true, - cancelable: true - }); - swiper.wrapperEl.dispatchEvent(evt); - } - data.allowMomentumBounce = false; - // Grab Cursor - if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) { - swiper.setGrabCursor(true); - } - swiper.emit('sliderFirstMove', e); - } - let loopFixed; - new Date().getTime(); - if (data.isMoved && data.allowThresholdMove && prevTouchesDirection !== swiper.touchesDirection && isLoop && allowLoopFix && Math.abs(diff) >= 1) { - Object.assign(touches, { - startX: pageX, - startY: pageY, - currentX: pageX, - currentY: pageY, - startTranslate: data.currentTranslate - }); - data.loopSwapReset = true; - data.startTranslate = data.currentTranslate; - return; - } - swiper.emit('sliderMove', e); - data.isMoved = true; - data.currentTranslate = diff + data.startTranslate; - let disableParentSwiper = true; - let resistanceRatio = params.resistanceRatio; - if (params.touchReleaseOnEdges) { - resistanceRatio = 0; - } - if (diff > 0) { - if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.slidesSizesGrid[swiper.activeIndex + 1] : swiper.minTranslate())) { - swiper.loopFix({ - direction: 'prev', - setTranslate: true, - activeSlideIndex: 0 - }); - } - if (data.currentTranslate > swiper.minTranslate()) { - disableParentSwiper = false; - if (params.resistance) { - data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio; - } - } - } else if (diff < 0) { - if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] : swiper.maxTranslate())) { - swiper.loopFix({ - direction: 'next', - setTranslate: true, - activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10))) - }); - } - if (data.currentTranslate < swiper.maxTranslate()) { - disableParentSwiper = false; - if (params.resistance) { - data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio; - } - } - } - if (disableParentSwiper) { - e.preventedByNestedSwiper = true; - } - - // Directions locks - if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) { - data.currentTranslate = data.startTranslate; - } - if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) { - data.currentTranslate = data.startTranslate; - } - if (!swiper.allowSlidePrev && !swiper.allowSlideNext) { - data.currentTranslate = data.startTranslate; - } - - // Threshold - if (params.threshold > 0) { - if (Math.abs(diff) > params.threshold || data.allowThresholdMove) { - if (!data.allowThresholdMove) { - data.allowThresholdMove = true; - touches.startX = touches.currentX; - touches.startY = touches.currentY; - data.currentTranslate = data.startTranslate; - touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY; - return; - } - } else { - data.currentTranslate = data.startTranslate; - return; - } - } - if (!params.followFinger || params.cssMode) return; - - // Update active index in free mode - if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) { - swiper.updateActiveIndex(); - swiper.updateSlidesClasses(); - } - if (params.freeMode && params.freeMode.enabled && swiper.freeMode) { - swiper.freeMode.onTouchMove(); - } - // Update progress - swiper.updateProgress(data.currentTranslate); - // Update translate - swiper.setTranslate(data.currentTranslate); - } - - function onTouchEnd(event) { - const swiper = this; - const data = swiper.touchEventsData; - let e = event; - if (e.originalEvent) e = e.originalEvent; - let targetTouch; - const isTouchEvent = e.type === 'touchend' || e.type === 'touchcancel'; - if (!isTouchEvent) { - if (data.touchId !== null) return; // return from pointer if we use touch - if (e.pointerId !== data.pointerId) return; - targetTouch = e; - } else { - targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0]; - if (!targetTouch || targetTouch.identifier !== data.touchId) return; - } - if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(e.type)) { - const proceed = ['pointercancel', 'contextmenu'].includes(e.type) && (swiper.browser.isSafari || swiper.browser.isWebView); - if (!proceed) { - return; - } - } - data.pointerId = null; - data.touchId = null; - const { - params, - touches, - rtlTranslate: rtl, - slidesGrid, - enabled - } = swiper; - if (!enabled) return; - if (!params.simulateTouch && e.pointerType === 'mouse') return; - if (data.allowTouchCallbacks) { - swiper.emit('touchEnd', e); - } - data.allowTouchCallbacks = false; - if (!data.isTouched) { - if (data.isMoved && params.grabCursor) { - swiper.setGrabCursor(false); - } - data.isMoved = false; - data.startMoving = false; - return; - } - - // Return Grab Cursor - if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) { - swiper.setGrabCursor(false); - } - - // Time diff - const touchEndTime = now(); - const timeDiff = touchEndTime - data.touchStartTime; - - // Tap, doubleTap, Click - if (swiper.allowClick) { - const pathTree = e.path || e.composedPath && e.composedPath(); - swiper.updateClickedSlide(pathTree && pathTree[0] || e.target, pathTree); - swiper.emit('tap click', e); - if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) { - swiper.emit('doubleTap doubleClick', e); - } - } - data.lastClickTime = now(); - nextTick(() => { - if (!swiper.destroyed) swiper.allowClick = true; - }); - if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 && !data.loopSwapReset || data.currentTranslate === data.startTranslate && !data.loopSwapReset) { - data.isTouched = false; - data.isMoved = false; - data.startMoving = false; - return; - } - data.isTouched = false; - data.isMoved = false; - data.startMoving = false; - let currentPos; - if (params.followFinger) { - currentPos = rtl ? swiper.translate : -swiper.translate; - } else { - currentPos = -data.currentTranslate; - } - if (params.cssMode) { - return; - } - if (params.freeMode && params.freeMode.enabled) { - swiper.freeMode.onTouchEnd({ - currentPos - }); - return; - } - - // Find current slide - const swipeToLast = currentPos >= -swiper.maxTranslate() && !swiper.params.loop; - let stopIndex = 0; - let groupSize = swiper.slidesSizesGrid[0]; - for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) { - const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup; - if (typeof slidesGrid[i + increment] !== 'undefined') { - if (swipeToLast || currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) { - stopIndex = i; - groupSize = slidesGrid[i + increment] - slidesGrid[i]; - } - } else if (swipeToLast || currentPos >= slidesGrid[i]) { - stopIndex = i; - groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2]; - } - } - let rewindFirstIndex = null; - let rewindLastIndex = null; - if (params.rewind) { - if (swiper.isBeginning) { - rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1; - } else if (swiper.isEnd) { - rewindFirstIndex = 0; - } - } - // Find current slide size - const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize; - const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup; - if (timeDiff > params.longSwipesMs) { - // Long touches - if (!params.longSwipes) { - swiper.slideTo(swiper.activeIndex); - return; - } - if (swiper.swipeDirection === 'next') { - if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex); - } - if (swiper.swipeDirection === 'prev') { - if (ratio > 1 - params.longSwipesRatio) { - swiper.slideTo(stopIndex + increment); - } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) { - swiper.slideTo(rewindLastIndex); - } else { - swiper.slideTo(stopIndex); - } - } - } else { - // Short swipes - if (!params.shortSwipes) { - swiper.slideTo(swiper.activeIndex); - return; - } - const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl); - if (!isNavButtonTarget) { - if (swiper.swipeDirection === 'next') { - swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment); - } - if (swiper.swipeDirection === 'prev') { - swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex); - } - } else if (e.target === swiper.navigation.nextEl) { - swiper.slideTo(stopIndex + increment); - } else { - swiper.slideTo(stopIndex); - } - } - } - - function onResize() { - const swiper = this; - const { - params, - el - } = swiper; - if (el && el.offsetWidth === 0) return; - - // Breakpoints - if (params.breakpoints) { - swiper.setBreakpoint(); - } - - // Save locks - const { - allowSlideNext, - allowSlidePrev, - snapGrid - } = swiper; - const isVirtual = swiper.virtual && swiper.params.virtual.enabled; - - // Disable locks on resize - swiper.allowSlideNext = true; - swiper.allowSlidePrev = true; - swiper.updateSize(); - swiper.updateSlides(); - swiper.updateSlidesClasses(); - const isVirtualLoop = isVirtual && params.loop; - if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) { - swiper.slideTo(swiper.slides.length - 1, 0, false, true); - } else { - if (swiper.params.loop && !isVirtual) { - swiper.slideToLoop(swiper.realIndex, 0, false, true); - } else { - swiper.slideTo(swiper.activeIndex, 0, false, true); - } - } - if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) { - clearTimeout(swiper.autoplay.resizeTimeout); - swiper.autoplay.resizeTimeout = setTimeout(() => { - if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) { - swiper.autoplay.resume(); - } - }, 500); - } - // Return locks after resize - swiper.allowSlidePrev = allowSlidePrev; - swiper.allowSlideNext = allowSlideNext; - if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) { - swiper.checkOverflow(); - } - } - - function onClick(e) { - const swiper = this; - if (!swiper.enabled) return; - if (!swiper.allowClick) { - if (swiper.params.preventClicks) e.preventDefault(); - if (swiper.params.preventClicksPropagation && swiper.animating) { - e.stopPropagation(); - e.stopImmediatePropagation(); - } - } - } - - function onScroll() { - const swiper = this; - const { - wrapperEl, - rtlTranslate, - enabled - } = swiper; - if (!enabled) return; - swiper.previousTranslate = swiper.translate; - if (swiper.isHorizontal()) { - swiper.translate = -wrapperEl.scrollLeft; - } else { - swiper.translate = -wrapperEl.scrollTop; - } - // eslint-disable-next-line - if (swiper.translate === 0) swiper.translate = 0; - swiper.updateActiveIndex(); - swiper.updateSlidesClasses(); - let newProgress; - const translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); - if (translatesDiff === 0) { - newProgress = 0; - } else { - newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff; - } - if (newProgress !== swiper.progress) { - swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate); - } - swiper.emit('setTranslate', swiper.translate, false); - } - - function onLoad(e) { - const swiper = this; - processLazyPreloader(swiper, e.target); - if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) { - return; - } - swiper.update(); - } - - function onDocumentTouchStart() { - const swiper = this; - if (swiper.documentTouchHandlerProceeded) return; - swiper.documentTouchHandlerProceeded = true; - if (swiper.params.touchReleaseOnEdges) { - swiper.el.style.touchAction = 'auto'; - } - } - - const events = (swiper, method) => { - const document = getDocument(); - const { - params, - el, - wrapperEl, - device - } = swiper; - const capture = !!params.nested; - const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener'; - const swiperMethod = method; - - // Touch Events - document[domMethod]('touchstart', swiper.onDocumentTouchStart, { - passive: false, - capture - }); - el[domMethod]('touchstart', swiper.onTouchStart, { - passive: false - }); - el[domMethod]('pointerdown', swiper.onTouchStart, { - passive: false - }); - document[domMethod]('touchmove', swiper.onTouchMove, { - passive: false, - capture - }); - document[domMethod]('pointermove', swiper.onTouchMove, { - passive: false, - capture - }); - document[domMethod]('touchend', swiper.onTouchEnd, { - passive: true - }); - document[domMethod]('pointerup', swiper.onTouchEnd, { - passive: true - }); - document[domMethod]('pointercancel', swiper.onTouchEnd, { - passive: true - }); - document[domMethod]('touchcancel', swiper.onTouchEnd, { - passive: true - }); - document[domMethod]('pointerout', swiper.onTouchEnd, { - passive: true - }); - document[domMethod]('pointerleave', swiper.onTouchEnd, { - passive: true - }); - document[domMethod]('contextmenu', swiper.onTouchEnd, { - passive: true - }); - - // Prevent Links Clicks - if (params.preventClicks || params.preventClicksPropagation) { - el[domMethod]('click', swiper.onClick, true); - } - if (params.cssMode) { - wrapperEl[domMethod]('scroll', swiper.onScroll); - } - - // Resize handler - if (params.updateOnWindowResize) { - swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true); - } else { - swiper[swiperMethod]('observerUpdate', onResize, true); - } - - // Images loader - el[domMethod]('load', swiper.onLoad, { - capture: true - }); - }; - function attachEvents() { - const swiper = this; - const { - params - } = swiper; - swiper.onTouchStart = onTouchStart.bind(swiper); - swiper.onTouchMove = onTouchMove.bind(swiper); - swiper.onTouchEnd = onTouchEnd.bind(swiper); - swiper.onDocumentTouchStart = onDocumentTouchStart.bind(swiper); - if (params.cssMode) { - swiper.onScroll = onScroll.bind(swiper); - } - swiper.onClick = onClick.bind(swiper); - swiper.onLoad = onLoad.bind(swiper); - events(swiper, 'on'); - } - function detachEvents() { - const swiper = this; - events(swiper, 'off'); - } - var events$1 = { - attachEvents, - detachEvents - }; - - const isGridEnabled = (swiper, params) => { - return swiper.grid && params.grid && params.grid.rows > 1; - }; - function setBreakpoint() { - const swiper = this; - const { - realIndex, - initialized, - params, - el - } = swiper; - const breakpoints = params.breakpoints; - if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; - - // Get breakpoint for window width and update parameters - const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el); - if (!breakpoint || swiper.currentBreakpoint === breakpoint) return; - const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined; - const breakpointParams = breakpointOnlyParams || swiper.originalParams; - const wasMultiRow = isGridEnabled(swiper, params); - const isMultiRow = isGridEnabled(swiper, breakpointParams); - const wasEnabled = params.enabled; - if (wasMultiRow && !isMultiRow) { - el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`); - swiper.emitContainerClasses(); - } else if (!wasMultiRow && isMultiRow) { - el.classList.add(`${params.containerModifierClass}grid`); - if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') { - el.classList.add(`${params.containerModifierClass}grid-column`); - } - swiper.emitContainerClasses(); - } - - // Toggle navigation, pagination, scrollbar - ['navigation', 'pagination', 'scrollbar'].forEach(prop => { - if (typeof breakpointParams[prop] === 'undefined') return; - const wasModuleEnabled = params[prop] && params[prop].enabled; - const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled; - if (wasModuleEnabled && !isModuleEnabled) { - swiper[prop].disable(); - } - if (!wasModuleEnabled && isModuleEnabled) { - swiper[prop].enable(); - } - }); - const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction; - const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged); - const wasLoop = params.loop; - if (directionChanged && initialized) { - swiper.changeDirection(); - } - extend$1(swiper.params, breakpointParams); - const isEnabled = swiper.params.enabled; - const hasLoop = swiper.params.loop; - Object.assign(swiper, { - allowTouchMove: swiper.params.allowTouchMove, - allowSlideNext: swiper.params.allowSlideNext, - allowSlidePrev: swiper.params.allowSlidePrev - }); - if (wasEnabled && !isEnabled) { - swiper.disable(); - } else if (!wasEnabled && isEnabled) { - swiper.enable(); - } - swiper.currentBreakpoint = breakpoint; - swiper.emit('_beforeBreakpoint', breakpointParams); - if (initialized) { - if (needsReLoop) { - swiper.loopDestroy(); - swiper.loopCreate(realIndex); - swiper.updateSlides(); - } else if (!wasLoop && hasLoop) { - swiper.loopCreate(realIndex); - swiper.updateSlides(); - } else if (wasLoop && !hasLoop) { - swiper.loopDestroy(); - } - } - swiper.emit('breakpoint', breakpointParams); - } - - function getBreakpoint(breakpoints, base, containerEl) { - if (base === void 0) { - base = 'window'; - } - if (!breakpoints || base === 'container' && !containerEl) return undefined; - let breakpoint = false; - const window = getWindow(); - const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight; - const points = Object.keys(breakpoints).map(point => { - if (typeof point === 'string' && point.indexOf('@') === 0) { - const minRatio = parseFloat(point.substr(1)); - const value = currentHeight * minRatio; - return { - value, - point - }; - } - return { - value: point, - point - }; - }); - points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10)); - for (let i = 0; i < points.length; i += 1) { - const { - point, - value - } = points[i]; - if (base === 'window') { - if (window.matchMedia(`(min-width: ${value}px)`).matches) { - breakpoint = point; - } - } else if (value <= containerEl.clientWidth) { - breakpoint = point; - } - } - return breakpoint || 'max'; - } - - var breakpoints = { - setBreakpoint, - getBreakpoint - }; - - function prepareClasses(entries, prefix) { - const resultClasses = []; - entries.forEach(item => { - if (typeof item === 'object') { - Object.keys(item).forEach(classNames => { - if (item[classNames]) { - resultClasses.push(prefix + classNames); - } - }); - } else if (typeof item === 'string') { - resultClasses.push(prefix + item); - } - }); - return resultClasses; - } - function addClasses() { - const swiper = this; - const { - classNames, - params, - rtl, - el, - device - } = swiper; - // prettier-ignore - const suffixes = prepareClasses(['initialized', params.direction, { - 'free-mode': swiper.params.freeMode && params.freeMode.enabled - }, { - 'autoheight': params.autoHeight - }, { - 'rtl': rtl - }, { - 'grid': params.grid && params.grid.rows > 1 - }, { - 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column' - }, { - 'android': device.android - }, { - 'ios': device.ios - }, { - 'css-mode': params.cssMode - }, { - 'centered': params.cssMode && params.centeredSlides - }, { - 'watch-progress': params.watchSlidesProgress - }], params.containerModifierClass); - classNames.push(...suffixes); - el.classList.add(...classNames); - swiper.emitContainerClasses(); - } - - function removeClasses() { - const swiper = this; - const { - el, - classNames - } = swiper; - el.classList.remove(...classNames); - swiper.emitContainerClasses(); - } - - var classes = { - addClasses, - removeClasses - }; - - function checkOverflow() { - const swiper = this; - const { - isLocked: wasLocked, - params - } = swiper; - const { - slidesOffsetBefore - } = params; - if (slidesOffsetBefore) { - const lastSlideIndex = swiper.slides.length - 1; - const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2; - swiper.isLocked = swiper.size > lastSlideRightEdge; - } else { - swiper.isLocked = swiper.snapGrid.length === 1; - } - if (params.allowSlideNext === true) { - swiper.allowSlideNext = !swiper.isLocked; - } - if (params.allowSlidePrev === true) { - swiper.allowSlidePrev = !swiper.isLocked; - } - if (wasLocked && wasLocked !== swiper.isLocked) { - swiper.isEnd = false; - } - if (wasLocked !== swiper.isLocked) { - swiper.emit(swiper.isLocked ? 'lock' : 'unlock'); - } - } - var checkOverflow$1 = { - checkOverflow - }; - - var defaults = { - init: true, - direction: 'horizontal', - oneWayMovement: false, - touchEventsTarget: 'wrapper', - initialSlide: 0, - speed: 300, - cssMode: false, - updateOnWindowResize: true, - resizeObserver: true, - nested: false, - createElements: false, - eventsPrefix: 'swiper', - enabled: true, - focusableElements: 'input, select, option, textarea, button, video, label', - // Overrides - width: null, - height: null, - // - preventInteractionOnTransition: false, - // ssr - userAgent: null, - url: null, - // To support iOS's swipe-to-go-back gesture (when being used in-app). - edgeSwipeDetection: false, - edgeSwipeThreshold: 20, - // Autoheight - autoHeight: false, - // Set wrapper width - setWrapperSize: false, - // Virtual Translate - virtualTranslate: false, - // Effects - effect: 'slide', - // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip' - - // Breakpoints - breakpoints: undefined, - breakpointsBase: 'window', - // Slides grid - spaceBetween: 0, - slidesPerView: 1, - slidesPerGroup: 1, - slidesPerGroupSkip: 0, - slidesPerGroupAuto: false, - centeredSlides: false, - centeredSlidesBounds: false, - slidesOffsetBefore: 0, - // in px - slidesOffsetAfter: 0, - // in px - normalizeSlideIndex: true, - centerInsufficientSlides: false, - // Disable swiper and hide navigation when container not overflow - watchOverflow: true, - // Round length - roundLengths: false, - // Touches - touchRatio: 1, - touchAngle: 45, - simulateTouch: true, - shortSwipes: true, - longSwipes: true, - longSwipesRatio: 0.5, - longSwipesMs: 300, - followFinger: true, - allowTouchMove: true, - threshold: 5, - touchMoveStopPropagation: false, - touchStartPreventDefault: true, - touchStartForcePreventDefault: false, - touchReleaseOnEdges: false, - // Unique Navigation Elements - uniqueNavElements: true, - // Resistance - resistance: true, - resistanceRatio: 0.85, - // Progress - watchSlidesProgress: false, - // Cursor - grabCursor: false, - // Clicks - preventClicks: true, - preventClicksPropagation: true, - slideToClickedSlide: false, - // loop - loop: false, - loopAddBlankSlides: true, - loopAdditionalSlides: 0, - loopPreventsSliding: true, - // rewind - rewind: false, - // Swiping/no swiping - allowSlidePrev: true, - allowSlideNext: true, - swipeHandler: null, - // '.swipe-handler', - noSwiping: true, - noSwipingClass: 'swiper-no-swiping', - noSwipingSelector: null, - // Passive Listeners - passiveListeners: true, - maxBackfaceHiddenSlides: 10, - // NS - containerModifierClass: 'swiper-', - // NEW - slideClass: 'swiper-slide', - slideBlankClass: 'swiper-slide-blank', - slideActiveClass: 'swiper-slide-active', - slideVisibleClass: 'swiper-slide-visible', - slideFullyVisibleClass: 'swiper-slide-fully-visible', - slideNextClass: 'swiper-slide-next', - slidePrevClass: 'swiper-slide-prev', - wrapperClass: 'swiper-wrapper', - lazyPreloaderClass: 'swiper-lazy-preloader', - lazyPreloadPrevNext: 0, - // Callbacks - runCallbacksOnInit: true, - // Internals - _emitClasses: false - }; - - function moduleExtendParams(params, allModulesParams) { - return function extendParams(obj) { - if (obj === void 0) { - obj = {}; - } - const moduleParamName = Object.keys(obj)[0]; - const moduleParams = obj[moduleParamName]; - if (typeof moduleParams !== 'object' || moduleParams === null) { - extend$1(allModulesParams, obj); - return; - } - if (params[moduleParamName] === true) { - params[moduleParamName] = { - enabled: true - }; - } - if (moduleParamName === 'navigation' && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].prevEl && !params[moduleParamName].nextEl) { - params[moduleParamName].auto = true; - } - if (['pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].el) { - params[moduleParamName].auto = true; - } - if (!(moduleParamName in params && 'enabled' in moduleParams)) { - extend$1(allModulesParams, obj); - return; - } - if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) { - params[moduleParamName].enabled = true; - } - if (!params[moduleParamName]) params[moduleParamName] = { - enabled: false - }; - extend$1(allModulesParams, obj); - }; - } - - /* eslint no-param-reassign: "off" */ - const prototypes = { - eventsEmitter, - update, - translate, - transition, - slide, - loop, - grabCursor, - events: events$1, - breakpoints, - checkOverflow: checkOverflow$1, - classes - }; - const extendedDefaults = {}; - class Swiper { - constructor() { - let el; - let params; - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') { - params = args[0]; - } else { - [el, params] = args; - } - if (!params) params = {}; - params = extend$1({}, params); - if (el && !params.el) params.el = el; - const document = getDocument(); - if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) { - const swipers = []; - document.querySelectorAll(params.el).forEach(containerEl => { - const newParams = extend$1({}, params, { - el: containerEl - }); - swipers.push(new Swiper(newParams)); - }); - // eslint-disable-next-line no-constructor-return - return swipers; - } - - // Swiper Instance - const swiper = this; - swiper.__swiper__ = true; - swiper.support = getSupport(); - swiper.device = getDevice({ - userAgent: params.userAgent - }); - swiper.browser = getBrowser(); - swiper.eventsListeners = {}; - swiper.eventsAnyListeners = []; - swiper.modules = [...swiper.__modules__]; - if (params.modules && Array.isArray(params.modules)) { - swiper.modules.push(...params.modules); - } - const allModulesParams = {}; - swiper.modules.forEach(mod => { - mod({ - params, - swiper, - extendParams: moduleExtendParams(params, allModulesParams), - on: swiper.on.bind(swiper), - once: swiper.once.bind(swiper), - off: swiper.off.bind(swiper), - emit: swiper.emit.bind(swiper) - }); - }); - - // Extend defaults with modules params - const swiperParams = extend$1({}, defaults, allModulesParams); - - // Extend defaults with passed params - swiper.params = extend$1({}, swiperParams, extendedDefaults, params); - swiper.originalParams = extend$1({}, swiper.params); - swiper.passedParams = extend$1({}, params); - - // add event listeners - if (swiper.params && swiper.params.on) { - Object.keys(swiper.params.on).forEach(eventName => { - swiper.on(eventName, swiper.params.on[eventName]); - }); - } - if (swiper.params && swiper.params.onAny) { - swiper.onAny(swiper.params.onAny); - } - - // Extend Swiper - Object.assign(swiper, { - enabled: swiper.params.enabled, - el, - // Classes - classNames: [], - // Slides - slides: [], - slidesGrid: [], - snapGrid: [], - slidesSizesGrid: [], - // isDirection - isHorizontal() { - return swiper.params.direction === 'horizontal'; - }, - isVertical() { - return swiper.params.direction === 'vertical'; - }, - // Indexes - activeIndex: 0, - realIndex: 0, - // - isBeginning: true, - isEnd: false, - // Props - translate: 0, - previousTranslate: 0, - progress: 0, - velocity: 0, - animating: false, - cssOverflowAdjustment() { - // Returns 0 unless `translate` is > 2**23 - // Should be subtracted from css values to prevent overflow - return Math.trunc(this.translate / 2 ** 23) * 2 ** 23; - }, - // Locks - allowSlideNext: swiper.params.allowSlideNext, - allowSlidePrev: swiper.params.allowSlidePrev, - // Touch Events - touchEventsData: { - isTouched: undefined, - isMoved: undefined, - allowTouchCallbacks: undefined, - touchStartTime: undefined, - isScrolling: undefined, - currentTranslate: undefined, - startTranslate: undefined, - allowThresholdMove: undefined, - // Form elements to match - focusableElements: swiper.params.focusableElements, - // Last click time - lastClickTime: 0, - clickTimeout: undefined, - // Velocities - velocities: [], - allowMomentumBounce: undefined, - startMoving: undefined, - pointerId: null, - touchId: null - }, - // Clicks - allowClick: true, - // Touches - allowTouchMove: swiper.params.allowTouchMove, - touches: { - startX: 0, - startY: 0, - currentX: 0, - currentY: 0, - diff: 0 - }, - // Images - imagesToLoad: [], - imagesLoaded: 0 - }); - swiper.emit('_swiper'); - - // Init - if (swiper.params.init) { - swiper.init(); - } - - // Return app instance - // eslint-disable-next-line no-constructor-return - return swiper; - } - getDirectionLabel(property) { - if (this.isHorizontal()) { - return property; - } - // prettier-ignore - return { - 'width': 'height', - 'margin-top': 'margin-left', - 'margin-bottom ': 'margin-right', - 'margin-left': 'margin-top', - 'margin-right': 'margin-bottom', - 'padding-left': 'padding-top', - 'padding-right': 'padding-bottom', - 'marginRight': 'marginBottom' - }[property]; - } - getSlideIndex(slideEl) { - const { - slidesEl, - params - } = this; - const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`); - const firstSlideIndex = elementIndex(slides[0]); - return elementIndex(slideEl) - firstSlideIndex; - } - getSlideIndexByData(index) { - return this.getSlideIndex(this.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index)[0]); - } - recalcSlides() { - const swiper = this; - const { - slidesEl, - params - } = swiper; - swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`); - } - enable() { - const swiper = this; - if (swiper.enabled) return; - swiper.enabled = true; - if (swiper.params.grabCursor) { - swiper.setGrabCursor(); - } - swiper.emit('enable'); - } - disable() { - const swiper = this; - if (!swiper.enabled) return; - swiper.enabled = false; - if (swiper.params.grabCursor) { - swiper.unsetGrabCursor(); - } - swiper.emit('disable'); - } - setProgress(progress, speed) { - const swiper = this; - progress = Math.min(Math.max(progress, 0), 1); - const min = swiper.minTranslate(); - const max = swiper.maxTranslate(); - const current = (max - min) * progress + min; - swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed); - swiper.updateActiveIndex(); - swiper.updateSlidesClasses(); - } - emitContainerClasses() { - const swiper = this; - if (!swiper.params._emitClasses || !swiper.el) return; - const cls = swiper.el.className.split(' ').filter(className => { - return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0; - }); - swiper.emit('_containerClasses', cls.join(' ')); - } - getSlideClasses(slideEl) { - const swiper = this; - if (swiper.destroyed) return ''; - return slideEl.className.split(' ').filter(className => { - return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0; - }).join(' '); - } - emitSlidesClasses() { - const swiper = this; - if (!swiper.params._emitClasses || !swiper.el) return; - const updates = []; - swiper.slides.forEach(slideEl => { - const classNames = swiper.getSlideClasses(slideEl); - updates.push({ - slideEl, - classNames - }); - swiper.emit('_slideClass', slideEl, classNames); - }); - swiper.emit('_slideClasses', updates); - } - slidesPerViewDynamic(view, exact) { - if (view === void 0) { - view = 'current'; - } - if (exact === void 0) { - exact = false; - } - const swiper = this; - const { - params, - slides, - slidesGrid, - slidesSizesGrid, - size: swiperSize, - activeIndex - } = swiper; - let spv = 1; - if (typeof params.slidesPerView === 'number') return params.slidesPerView; - if (params.centeredSlides) { - let slideSize = slides[activeIndex] ? slides[activeIndex].swiperSlideSize : 0; - let breakLoop; - for (let i = activeIndex + 1; i < slides.length; i += 1) { - if (slides[i] && !breakLoop) { - slideSize += slides[i].swiperSlideSize; - spv += 1; - if (slideSize > swiperSize) breakLoop = true; - } - } - for (let i = activeIndex - 1; i >= 0; i -= 1) { - if (slides[i] && !breakLoop) { - slideSize += slides[i].swiperSlideSize; - spv += 1; - if (slideSize > swiperSize) breakLoop = true; - } - } - } else { - // eslint-disable-next-line - if (view === 'current') { - for (let i = activeIndex + 1; i < slides.length; i += 1) { - const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize; - if (slideInView) { - spv += 1; - } - } - } else { - // previous - for (let i = activeIndex - 1; i >= 0; i -= 1) { - const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize; - if (slideInView) { - spv += 1; - } - } - } - } - return spv; - } - update() { - const swiper = this; - if (!swiper || swiper.destroyed) return; - const { - snapGrid, - params - } = swiper; - // Breakpoints - if (params.breakpoints) { - swiper.setBreakpoint(); - } - [...swiper.el.querySelectorAll('[loading="lazy"]')].forEach(imageEl => { - if (imageEl.complete) { - processLazyPreloader(swiper, imageEl); - } - }); - swiper.updateSize(); - swiper.updateSlides(); - swiper.updateProgress(); - swiper.updateSlidesClasses(); - function setTranslate() { - const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate; - const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate()); - swiper.setTranslate(newTranslate); - swiper.updateActiveIndex(); - swiper.updateSlidesClasses(); - } - let translated; - if (params.freeMode && params.freeMode.enabled && !params.cssMode) { - setTranslate(); - if (params.autoHeight) { - swiper.updateAutoHeight(); - } - } else { - if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) { - const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides; - translated = swiper.slideTo(slides.length - 1, 0, false, true); - } else { - translated = swiper.slideTo(swiper.activeIndex, 0, false, true); - } - if (!translated) { - setTranslate(); - } - } - if (params.watchOverflow && snapGrid !== swiper.snapGrid) { - swiper.checkOverflow(); - } - swiper.emit('update'); - } - changeDirection(newDirection, needUpdate) { - if (needUpdate === void 0) { - needUpdate = true; - } - const swiper = this; - const currentDirection = swiper.params.direction; - if (!newDirection) { - // eslint-disable-next-line - newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal'; - } - if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') { - return swiper; - } - swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`); - swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`); - swiper.emitContainerClasses(); - swiper.params.direction = newDirection; - swiper.slides.forEach(slideEl => { - if (newDirection === 'vertical') { - slideEl.style.width = ''; - } else { - slideEl.style.height = ''; - } - }); - swiper.emit('changeDirection'); - if (needUpdate) swiper.update(); - return swiper; - } - changeLanguageDirection(direction) { - const swiper = this; - if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return; - swiper.rtl = direction === 'rtl'; - swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl; - if (swiper.rtl) { - swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`); - swiper.el.dir = 'rtl'; - } else { - swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`); - swiper.el.dir = 'ltr'; - } - swiper.update(); - } - mount(element) { - const swiper = this; - if (swiper.mounted) return true; - - // Find el - let el = element || swiper.params.el; - if (typeof el === 'string') { - el = document.querySelector(el); - } - if (!el) { - return false; - } - el.swiper = swiper; - if (el.parentNode && el.parentNode.host && el.parentNode.host.nodeName === 'SWIPER-CONTAINER') { - swiper.isElement = true; - } - const getWrapperSelector = () => { - return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`; - }; - const getWrapper = () => { - if (el && el.shadowRoot && el.shadowRoot.querySelector) { - const res = el.shadowRoot.querySelector(getWrapperSelector()); - // Children needs to return slot items - return res; - } - return elementChildren(el, getWrapperSelector())[0]; - }; - // Find Wrapper - let wrapperEl = getWrapper(); - if (!wrapperEl && swiper.params.createElements) { - wrapperEl = createElement('div', swiper.params.wrapperClass); - el.append(wrapperEl); - elementChildren(el, `.${swiper.params.slideClass}`).forEach(slideEl => { - wrapperEl.append(slideEl); - }); - } - Object.assign(swiper, { - el, - wrapperEl, - slidesEl: swiper.isElement && !el.parentNode.host.slideSlots ? el.parentNode.host : wrapperEl, - hostEl: swiper.isElement ? el.parentNode.host : el, - mounted: true, - // RTL - rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl', - rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'), - wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box' - }); - return true; - } - init(el) { - const swiper = this; - if (swiper.initialized) return swiper; - const mounted = swiper.mount(el); - if (mounted === false) return swiper; - swiper.emit('beforeInit'); - - // Set breakpoint - if (swiper.params.breakpoints) { - swiper.setBreakpoint(); - } - - // Add Classes - swiper.addClasses(); - - // Update size - swiper.updateSize(); - - // Update slides - swiper.updateSlides(); - if (swiper.params.watchOverflow) { - swiper.checkOverflow(); - } - - // Set Grab Cursor - if (swiper.params.grabCursor && swiper.enabled) { - swiper.setGrabCursor(); - } - - // Slide To Initial Slide - if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) { - swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true); - } else { - swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true); - } - - // Create loop - if (swiper.params.loop) { - swiper.loopCreate(); - } - - // Attach events - swiper.attachEvents(); - const lazyElements = [...swiper.el.querySelectorAll('[loading="lazy"]')]; - if (swiper.isElement) { - lazyElements.push(...swiper.hostEl.querySelectorAll('[loading="lazy"]')); - } - lazyElements.forEach(imageEl => { - if (imageEl.complete) { - processLazyPreloader(swiper, imageEl); - } else { - imageEl.addEventListener('load', e => { - processLazyPreloader(swiper, e.target); - }); - } - }); - preload(swiper); - - // Init Flag - swiper.initialized = true; - preload(swiper); - - // Emit - swiper.emit('init'); - swiper.emit('afterInit'); - return swiper; - } - destroy(deleteInstance, cleanStyles) { - if (deleteInstance === void 0) { - deleteInstance = true; - } - if (cleanStyles === void 0) { - cleanStyles = true; - } - const swiper = this; - const { - params, - el, - wrapperEl, - slides - } = swiper; - if (typeof swiper.params === 'undefined' || swiper.destroyed) { - return null; - } - swiper.emit('beforeDestroy'); - - // Init Flag - swiper.initialized = false; - - // Detach events - swiper.detachEvents(); - - // Destroy loop - if (params.loop) { - swiper.loopDestroy(); - } - - // Cleanup styles - if (cleanStyles) { - swiper.removeClasses(); - el.removeAttribute('style'); - wrapperEl.removeAttribute('style'); - if (slides && slides.length) { - slides.forEach(slideEl => { - slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass); - slideEl.removeAttribute('style'); - slideEl.removeAttribute('data-swiper-slide-index'); - }); - } - } - swiper.emit('destroy'); - - // Detach emitter events - Object.keys(swiper.eventsListeners).forEach(eventName => { - swiper.off(eventName); - }); - if (deleteInstance !== false) { - swiper.el.swiper = null; - deleteProps(swiper); - } - swiper.destroyed = true; - return null; - } - static extendDefaults(newDefaults) { - extend$1(extendedDefaults, newDefaults); - } - static get extendedDefaults() { - return extendedDefaults; - } - static get defaults() { - return defaults; - } - static installModule(mod) { - if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = []; - const modules = Swiper.prototype.__modules__; - if (typeof mod === 'function' && modules.indexOf(mod) < 0) { - modules.push(mod); - } - } - static use(module) { - if (Array.isArray(module)) { - module.forEach(m => Swiper.installModule(m)); - return Swiper; - } - Swiper.installModule(module); - return Swiper; - } - } - Object.keys(prototypes).forEach(prototypeGroup => { - Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => { - Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod]; - }); - }); - Swiper.use([Resize, Observer]); - - /* underscore in name -> watch for changes */ - const paramsList = ['eventsPrefix', 'injectStyles', 'injectStylesUrls', 'modules', 'init', '_direction', 'oneWayMovement', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', 'focusableElements', '_enabled', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', 'breakpointsBase', '_spaceBetween', '_slidesPerView', 'maxBackfaceHiddenSlides', '_grid', '_slidesPerGroup', '_slidesPerGroupSkip', '_slidesPerGroupAuto', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_loop', 'loopAdditionalSlides', 'loopAddBlankSlides', 'loopPreventsSliding', '_rewind', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideActiveClass', 'slideVisibleClass', 'slideFullyVisibleClass', 'slideNextClass', 'slidePrevClass', 'slideBlankClass', 'wrapperClass', 'lazyPreloaderClass', 'lazyPreloadPrevNext', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren', - // modules - 'a11y', '_autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'creativeEffect', 'cardsEffect', 'hashNavigation', 'history', 'keyboard', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom', 'control']; - - function isObject(o) { - return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object' && !o.__swiper__; - } - function extend(target, src) { - const noExtend = ['__proto__', 'constructor', 'prototype']; - Object.keys(src).filter(key => noExtend.indexOf(key) < 0).forEach(key => { - if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) { - if (src[key].__swiper__) target[key] = src[key];else extend(target[key], src[key]); - } else { - target[key] = src[key]; - } - }); - } - function needsNavigation(params) { - if (params === void 0) { - params = {}; - } - return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined'; - } - function needsPagination(params) { - if (params === void 0) { - params = {}; - } - return params.pagination && typeof params.pagination.el === 'undefined'; - } - function needsScrollbar(params) { - if (params === void 0) { - params = {}; - } - return params.scrollbar && typeof params.scrollbar.el === 'undefined'; - } - function attrToProp(attrName) { - if (attrName === void 0) { - attrName = ''; - } - return attrName.replace(/-[a-z]/g, l => l.toUpperCase().replace('-', '')); - } - - function updateSwiper(_ref) { - let { - swiper, - slides, - passedParams, - changedParams, - nextEl, - prevEl, - scrollbarEl, - paginationEl - } = _ref; - const updateParams = changedParams.filter(key => key !== 'children' && key !== 'direction' && key !== 'wrapperClass'); - const { - params: currentParams, - pagination, - navigation, - scrollbar, - virtual, - thumbs - } = swiper; - let needThumbsInit; - let needControllerInit; - let needPaginationInit; - let needScrollbarInit; - let needNavigationInit; - let loopNeedDestroy; - let loopNeedEnable; - let loopNeedReloop; - if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && currentParams.thumbs && !currentParams.thumbs.swiper) { - needThumbsInit = true; - } - if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) { - needControllerInit = true; - } - if (changedParams.includes('pagination') && passedParams.pagination && (passedParams.pagination.el || paginationEl) && (currentParams.pagination || currentParams.pagination === false) && pagination && !pagination.el) { - needPaginationInit = true; - } - if (changedParams.includes('scrollbar') && passedParams.scrollbar && (passedParams.scrollbar.el || scrollbarEl) && (currentParams.scrollbar || currentParams.scrollbar === false) && scrollbar && !scrollbar.el) { - needScrollbarInit = true; - } - if (changedParams.includes('navigation') && passedParams.navigation && (passedParams.navigation.prevEl || prevEl) && (passedParams.navigation.nextEl || nextEl) && (currentParams.navigation || currentParams.navigation === false) && navigation && !navigation.prevEl && !navigation.nextEl) { - needNavigationInit = true; - } - const destroyModule = mod => { - if (!swiper[mod]) return; - swiper[mod].destroy(); - if (mod === 'navigation') { - if (swiper.isElement) { - swiper[mod].prevEl.remove(); - swiper[mod].nextEl.remove(); - } - currentParams[mod].prevEl = undefined; - currentParams[mod].nextEl = undefined; - swiper[mod].prevEl = undefined; - swiper[mod].nextEl = undefined; - } else { - if (swiper.isElement) { - swiper[mod].el.remove(); - } - currentParams[mod].el = undefined; - swiper[mod].el = undefined; - } - }; - if (changedParams.includes('loop') && swiper.isElement) { - if (currentParams.loop && !passedParams.loop) { - loopNeedDestroy = true; - } else if (!currentParams.loop && passedParams.loop) { - loopNeedEnable = true; - } else { - loopNeedReloop = true; - } - } - updateParams.forEach(key => { - if (isObject(currentParams[key]) && isObject(passedParams[key])) { - Object.assign(currentParams[key], passedParams[key]); - if ((key === 'navigation' || key === 'pagination' || key === 'scrollbar') && 'enabled' in passedParams[key] && !passedParams[key].enabled) { - destroyModule(key); - } - } else { - const newValue = passedParams[key]; - if ((newValue === true || newValue === false) && (key === 'navigation' || key === 'pagination' || key === 'scrollbar')) { - if (newValue === false) { - destroyModule(key); - } - } else { - currentParams[key] = passedParams[key]; - } - } - }); - if (updateParams.includes('controller') && !needControllerInit && swiper.controller && swiper.controller.control && currentParams.controller && currentParams.controller.control) { - swiper.controller.control = currentParams.controller.control; - } - if (changedParams.includes('children') && slides && virtual && currentParams.virtual.enabled) { - virtual.slides = slides; - virtual.update(true); - } else if (changedParams.includes('virtual') && virtual && currentParams.virtual.enabled) { - if (slides) virtual.slides = slides; - virtual.update(true); - } - if (changedParams.includes('children') && slides && currentParams.loop) { - loopNeedReloop = true; - } - if (needThumbsInit) { - const initialized = thumbs.init(); - if (initialized) thumbs.update(true); - } - if (needControllerInit) { - swiper.controller.control = currentParams.controller.control; - } - if (needPaginationInit) { - if (swiper.isElement && (!paginationEl || typeof paginationEl === 'string')) { - paginationEl = document.createElement('div'); - paginationEl.classList.add('swiper-pagination'); - paginationEl.part.add('pagination'); - swiper.el.appendChild(paginationEl); - } - if (paginationEl) currentParams.pagination.el = paginationEl; - pagination.init(); - pagination.render(); - pagination.update(); - } - if (needScrollbarInit) { - if (swiper.isElement && (!scrollbarEl || typeof scrollbarEl === 'string')) { - scrollbarEl = document.createElement('div'); - scrollbarEl.classList.add('swiper-scrollbar'); - scrollbarEl.part.add('scrollbar'); - swiper.el.appendChild(scrollbarEl); - } - if (scrollbarEl) currentParams.scrollbar.el = scrollbarEl; - scrollbar.init(); - scrollbar.updateSize(); - scrollbar.setTranslate(); - } - if (needNavigationInit) { - if (swiper.isElement) { - if (!nextEl || typeof nextEl === 'string') { - nextEl = document.createElement('div'); - nextEl.classList.add('swiper-button-next'); - nextEl.innerHTML = swiper.hostEl.constructor.nextButtonSvg; - nextEl.part.add('button-next'); - swiper.el.appendChild(nextEl); - } - if (!prevEl || typeof prevEl === 'string') { - prevEl = document.createElement('div'); - prevEl.classList.add('swiper-button-prev'); - prevEl.innerHTML = swiper.hostEl.constructor.prevButtonSvg; - prevEl.part.add('button-prev'); - swiper.el.appendChild(prevEl); - } - } - if (nextEl) currentParams.navigation.nextEl = nextEl; - if (prevEl) currentParams.navigation.prevEl = prevEl; - navigation.init(); - navigation.update(); - } - if (changedParams.includes('allowSlideNext')) { - swiper.allowSlideNext = passedParams.allowSlideNext; - } - if (changedParams.includes('allowSlidePrev')) { - swiper.allowSlidePrev = passedParams.allowSlidePrev; - } - if (changedParams.includes('direction')) { - swiper.changeDirection(passedParams.direction, false); - } - if (loopNeedDestroy || loopNeedReloop) { - swiper.loopDestroy(); - } - if (loopNeedEnable || loopNeedReloop) { - swiper.loopCreate(); - } - swiper.update(); - } - - const formatValue = val => { - if (parseFloat(val) === Number(val)) return Number(val); - if (val === 'true') return true; - if (val === '') return true; - if (val === 'false') return false; - if (val === 'null') return null; - if (val === 'undefined') return undefined; - if (typeof val === 'string' && val.includes('{') && val.includes('}') && val.includes('"')) { - let v; - try { - v = JSON.parse(val); - } catch (err) { - v = val; - } - return v; - } - return val; - }; - const modulesParamsList = ['a11y', 'autoplay', 'controller', 'cards-effect', 'coverflow-effect', 'creative-effect', 'cube-effect', 'fade-effect', 'flip-effect', 'free-mode', 'grid', 'hash-navigation', 'history', 'keyboard', 'mousewheel', 'navigation', 'pagination', 'parallax', 'scrollbar', 'thumbs', 'virtual', 'zoom']; - function getParams(element, propName, propValue) { - const params = {}; - const passedParams = {}; - extend(params, defaults); - const localParamsList = [...paramsList, 'on']; - const allowedParams = localParamsList.map(key => key.replace(/_/, '')); - - // First check props - localParamsList.forEach(paramName => { - paramName = paramName.replace('_', ''); - if (typeof element[paramName] !== 'undefined') { - passedParams[paramName] = element[paramName]; - } - }); - - // Attributes - const attrsList = [...element.attributes]; - if (typeof propName === 'string' && typeof propValue !== 'undefined') { - attrsList.push({ - name: propName, - value: isObject(propValue) ? { - ...propValue - } : propValue - }); - } - attrsList.forEach(attr => { - const moduleParam = modulesParamsList.filter(mParam => attr.name.indexOf(`${mParam}-`) === 0)[0]; - if (moduleParam) { - const parentObjName = attrToProp(moduleParam); - const subObjName = attrToProp(attr.name.split(`${moduleParam}-`)[1]); - if (typeof passedParams[parentObjName] === 'undefined') passedParams[parentObjName] = {}; - if (passedParams[parentObjName] === true) { - passedParams[parentObjName] = { - enabled: true - }; - } - passedParams[parentObjName][subObjName] = formatValue(attr.value); - } else { - const name = attrToProp(attr.name); - if (!allowedParams.includes(name)) return; - const value = formatValue(attr.value); - if (passedParams[name] && modulesParamsList.includes(attr.name) && !isObject(value)) { - if (passedParams[name].constructor !== Object) { - passedParams[name] = {}; - } - passedParams[name].enabled = !!value; - } else { - passedParams[name] = value; - } - } - }); - extend(params, passedParams); - if (params.navigation) { - params.navigation = { - prevEl: '.swiper-button-prev', - nextEl: '.swiper-button-next', - ...(params.navigation !== true ? params.navigation : {}) - }; - } else if (params.navigation === false) { - delete params.navigation; - } - if (params.scrollbar) { - params.scrollbar = { - el: '.swiper-scrollbar', - ...(params.scrollbar !== true ? params.scrollbar : {}) - }; - } else if (params.scrollbar === false) { - delete params.scrollbar; - } - if (params.pagination) { - params.pagination = { - el: '.swiper-pagination', - ...(params.pagination !== true ? params.pagination : {}) - }; - } else if (params.pagination === false) { - delete params.pagination; - } - return { - params, - passedParams - }; - } - - /** - * Swiper Custom Element 11.0.5 - * 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: November 22, 2023 - */ - - - /* eslint-disable spaced-comment */ - - const SwiperCSS = `:host{--swiper-theme-color:#007aff}:host{position:relative;display:block;margin-left:auto;margin-right:auto;z-index:1}.swiper{width:100%;height:100%;margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);box-sizing:content-box}.swiper-android ::slotted(swiper-slide),.swiper-ios ::slotted(swiper-slide),.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}::slotted(swiper-slide){flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}::slotted(.swiper-slide-invisible-blank){visibility:hidden}.swiper-autoheight,.swiper-autoheight ::slotted(swiper-slide){height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden ::slotted(swiper-slide){transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d ::slotted(swiper-slide){transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode ::slotted(swiper-slide){scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode ::slotted(swiper-slide){scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered ::slotted(swiper-slide){scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal ::slotted(swiper-slide):first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical ::slotted(swiper-slide):first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}`; - const SwiperSlideCSS = `::slotted(.swiper-slide-shadow),::slotted(.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-top){position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}::slotted(.swiper-slide-shadow){background:rgba(0,0,0,.15)}::slotted(.swiper-slide-shadow-left){background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-slide-shadow-right){background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-slide-shadow-top){background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-slide-shadow-bottom){background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear;width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-top){z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-top){z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}::slotted(.swiper-zoom-container){width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}::slotted(.swiper-zoom-container)>canvas,::slotted(.swiper-zoom-container)>img,::slotted(.swiper-zoom-container)>svg{max-width:100%;max-height:100%;object-fit:contain}`; - - class DummyHTMLElement {} - const ClassToExtend = typeof window === 'undefined' || typeof HTMLElement === 'undefined' ? DummyHTMLElement : HTMLElement; - const arrowSvg = ` - `; - const addStyle = (shadowRoot, styles) => { - if (typeof CSSStyleSheet !== 'undefined' && shadowRoot.adoptedStyleSheets) { - const styleSheet = new CSSStyleSheet(); - styleSheet.replaceSync(styles); - shadowRoot.adoptedStyleSheets = [styleSheet]; - } else { - const style = document.createElement('style'); - style.rel = 'stylesheet'; - style.textContent = styles; - shadowRoot.appendChild(style); - } - }; - class SwiperContainer extends ClassToExtend { - constructor() { - super(); - this.attachShadow({ - mode: 'open' - }); - } - static get nextButtonSvg() { - return arrowSvg; - } - static get prevButtonSvg() { - return arrowSvg.replace('/>', ' transform-origin="center" transform="rotate(180)"/>'); - } - cssStyles() { - return [SwiperCSS, - // eslint-disable-line - ...(this.injectStyles && Array.isArray(this.injectStyles) ? this.injectStyles : [])].join('\n'); - } - cssLinks() { - return this.injectStylesUrls || []; - } - calcSlideSlots() { - const currentSideSlots = this.slideSlots || 0; - // slide slots - const slideSlotChildren = [...this.querySelectorAll(`[slot^=slide-]`)].map(child => { - return parseInt(child.getAttribute('slot').split('slide-')[1], 10); - }); - this.slideSlots = slideSlotChildren.length ? Math.max(...slideSlotChildren) + 1 : 0; - if (!this.rendered) return; - if (this.slideSlots > currentSideSlots) { - for (let i = currentSideSlots; i < this.slideSlots; i += 1) { - const slideEl = document.createElement('swiper-slide'); - slideEl.setAttribute('part', `slide slide-${i + 1}`); - const slotEl = document.createElement('slot'); - slotEl.setAttribute('name', `slide-${i + 1}`); - slideEl.appendChild(slotEl); - this.shadowRoot.querySelector('.swiper-wrapper').appendChild(slideEl); - } - } else if (this.slideSlots < currentSideSlots) { - const slides = this.swiper.slides; - for (let i = slides.length - 1; i >= 0; i -= 1) { - if (i > this.slideSlots) { - slides[i].remove(); - } - } - } - } - render() { - if (this.rendered) return; - this.calcSlideSlots(); - - // local styles - let localStyles = this.cssStyles(); - if (this.slideSlots > 0) { - localStyles = localStyles.replace(/::slotted\(([a-z-0-9.]*)\)/g, '$1'); - } - if (localStyles.length) { - addStyle(this.shadowRoot, localStyles); - } - this.cssLinks().forEach(url => { - const linkExists = this.shadowRoot.querySelector(`link[href="${url}"]`); - if (linkExists) return; - const linkEl = document.createElement('link'); - linkEl.rel = 'stylesheet'; - linkEl.href = url; - this.shadowRoot.appendChild(linkEl); - }); - // prettier-ignore - const el = document.createElement('div'); - el.classList.add('swiper'); - el.part = 'container'; - - // prettier-ignore - el.innerHTML = ` - -
    - - ${Array.from({ - length: this.slideSlots - }).map((_, index) => ` - - - - `).join('')} -
    - - ${needsNavigation(this.passedParams) ? ` -
    ${this.constructor.prevButtonSvg}
    -
    ${this.constructor.nextButtonSvg}
    - ` : ''} - ${needsPagination(this.passedParams) ? ` -
    - ` : ''} - ${needsScrollbar(this.passedParams) ? ` -
    - ` : ''} - `; - this.shadowRoot.appendChild(el); - this.rendered = true; - } - initialize() { - var _this = this; - if (this.initialized) return; - this.initialized = true; - const { - params: swiperParams, - passedParams - } = getParams(this); - this.swiperParams = swiperParams; - this.passedParams = passedParams; - delete this.swiperParams.init; - this.render(); - - // eslint-disable-next-line - this.swiper = new Swiper(this.shadowRoot.querySelector('.swiper'), { - ...(swiperParams.virtual ? {} : { - observer: true, - observeSlideChildren: this.slideSlots > 0 - }), - ...swiperParams, - touchEventsTarget: 'container', - onAny: function (name) { - if (name === 'observerUpdate') { - _this.calcSlideSlots(); - } - const eventName = swiperParams.eventsPrefix ? `${swiperParams.eventsPrefix}${name.toLowerCase()}` : name.toLowerCase(); - for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - const event = new CustomEvent(eventName, { - detail: args, - bubbles: name !== 'hashChange', - cancelable: true - }); - _this.dispatchEvent(event); - } - }); - } - connectedCallback() { - if (this.initialized && this.nested && this.closest('swiper-slide') && this.closest('swiper-slide').swiperLoopMoveDOM) { - return; - } - if (this.init === false || this.getAttribute('init') === 'false') { - return; - } - this.initialize(); - } - disconnectedCallback() { - if (this.nested && this.closest('swiper-slide') && this.closest('swiper-slide').swiperLoopMoveDOM) { - return; - } - if (this.swiper && this.swiper.destroy) { - this.swiper.destroy(); - } - this.initialized = false; - } - updateSwiperOnPropChange(propName, propValue) { - const { - params: swiperParams, - passedParams - } = getParams(this, propName, propValue); - this.passedParams = passedParams; - this.swiperParams = swiperParams; - if (this.swiper && this.swiper.params[propName] === propValue) { - return; - } - updateSwiper({ - swiper: this.swiper, - passedParams: this.passedParams, - changedParams: [attrToProp(propName)], - ...(propName === 'navigation' && passedParams[propName] ? { - prevEl: '.swiper-button-prev', - nextEl: '.swiper-button-next' - } : {}), - ...(propName === 'pagination' && passedParams[propName] ? { - paginationEl: '.swiper-pagination' - } : {}), - ...(propName === 'scrollbar' && passedParams[propName] ? { - scrollbarEl: '.swiper-scrollbar' - } : {}) - }); - } - attributeChangedCallback(attr, prevValue, newValue) { - if (!this.initialized) return; - if (prevValue === 'true' && newValue === null) { - newValue = false; - } - this.updateSwiperOnPropChange(attr, newValue); - } - static get observedAttributes() { - const attrs = paramsList.filter(param => param.includes('_')).map(param => param.replace(/[A-Z]/g, v => `-${v}`).replace('_', '').toLowerCase()); - return attrs; - } - } - paramsList.forEach(paramName => { - if (paramName === 'init') return; - paramName = paramName.replace('_', ''); - Object.defineProperty(SwiperContainer.prototype, paramName, { - configurable: true, - get() { - return (this.passedParams || {})[paramName]; - }, - set(value) { - if (!this.passedParams) this.passedParams = {}; - this.passedParams[paramName] = value; - if (!this.initialized) return; - this.updateSwiperOnPropChange(paramName, value); - } - }); - }); - class SwiperSlide extends ClassToExtend { - constructor() { - super(); - this.attachShadow({ - mode: 'open' - }); - } - render() { - const lazy = this.lazy || this.getAttribute('lazy') === '' || this.getAttribute('lazy') === 'true'; - addStyle(this.shadowRoot, SwiperSlideCSS); - this.shadowRoot.appendChild(document.createElement('slot')); - if (lazy) { - const lazyDiv = document.createElement('div'); - lazyDiv.classList.add('swiper-lazy-preloader'); - lazyDiv.part.add('preloader'); - this.shadowRoot.appendChild(lazyDiv); - } - } - initialize() { - this.render(); - } - connectedCallback() { - this.initialize(); - } - } - - // eslint-disable-next-line - const register = () => { - if (typeof window === 'undefined') return; - if (!window.customElements.get('swiper-container')) window.customElements.define('swiper-container', SwiperContainer); - if (!window.customElements.get('swiper-slide')) window.customElements.define('swiper-slide', SwiperSlide); - }; - if (typeof window !== 'undefined') { - window.SwiperElementRegisterParams = params => { - paramsList.push(...params); - }; - } - - register(); - -})(); diff --git a/build/assets/js/vendor/swiper/swiper-element.min.js b/build/assets/js/vendor/swiper/swiper-element.min.js deleted file mode 100644 index 6e94f56..0000000 --- a/build/assets/js/vendor/swiper/swiper-element.min.js +++ /dev/null @@ -1,14 +0,0 @@ -/** - * Swiper Custom Element 11.0.5 - * 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: November 22, 2023 - */ - -!function(){"use strict";function e(e){return null!==e&&"object"==typeof e&&"constructor"in e&&e.constructor===Object}function t(s,i){void 0===s&&(s={}),void 0===i&&(i={}),Object.keys(i).forEach((r=>{void 0===s[r]?s[r]=i[r]:e(i[r])&&e(s[r])&&Object.keys(i[r]).length>0&&t(s[r],i[r])}))}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 i(){const e="undefined"!=typeof document?document:{};return t(e,s),e}const r={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 n(){const e="undefined"!=typeof window?window:{};return t(e,r),e}function a(e,t){return void 0===t&&(t=0),setTimeout(e,t)}function o(){return Date.now()}function l(e,t){void 0===t&&(t="x");const s=n();let i,r,a;const o=function(e){const t=n();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?(r=o.transform||o.webkitTransform,r.split(",").length>6&&(r=r.split(", ").map((e=>e.replace(",","."))).join(", ")),a=new s.WebKitCSSMatrix("none"===r?"":r)):(a=o.MozTransform||o.OTransform||o.MsTransform||o.msTransform||o.transform||o.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),i=a.toString().split(",")),"x"===t&&(r=s.WebKitCSSMatrix?a.m41:16===i.length?parseFloat(i[12]):parseFloat(i[4])),"y"===t&&(r=s.WebKitCSSMatrix?a.m42:16===i.length?parseFloat(i[13]):parseFloat(i[5])),r||0}function d(e){return"object"==typeof e&&null!==e&&e.constructor&&"Object"===Object.prototype.toString.call(e).slice(8,-1)}function c(){const e=Object(arguments.length<=0?void 0:arguments[0]),t=["__proto__","constructor","prototype"];for(let i=1;it.indexOf(e)<0));for(let t=0,i=s.length;ta?"next":"prev",p=(e,t)=>"next"===c&&e>=t||"prev"===c&&e<=t,u=()=>{o=(new Date).getTime(),null===l&&(l=o);const e=Math.max(Math.min((o-l)/d,1),0),n=.5-Math.cos(e*Math.PI)/2;let c=a+n*(s-a);if(p(c,s)&&(c=s),t.wrapperEl.scrollTo({[i]:c}),p(c,s))return t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.scrollSnapType="",setTimeout((()=>{t.wrapperEl.style.overflow="",t.wrapperEl.scrollTo({[i]:c})})),void r.cancelAnimationFrame(t.cssModeFrameID);t.cssModeFrameID=r.requestAnimationFrame(u)};u()}function h(e,t){return void 0===t&&(t=""),[...e.children].filter((e=>e.matches(t)))}function f(e){try{return void console.warn(e)}catch(e){}}function m(e,t){void 0===t&&(t=[]);const s=document.createElement(e);return s.classList.add(...Array.isArray(t)?t:function(e){return void 0===e&&(e=""),e.trim().split(" ").filter((e=>!!e.trim()))}(t)),s}function v(e,t){return n().getComputedStyle(e,null).getPropertyValue(t)}function g(e){let t,s=e;if(s){for(t=0;null!==(s=s.previousSibling);)1===s.nodeType&&(t+=1);return t}}function w(e,t,s){const i=n();return s?e["width"===t?"offsetWidth":"offsetHeight"]+parseFloat(i.getComputedStyle(e,null).getPropertyValue("width"===t?"margin-right":"margin-top"))+parseFloat(i.getComputedStyle(e,null).getPropertyValue("width"===t?"margin-left":"margin-bottom")):e.offsetWidth}let b,S,T;function y(){return b||(b=function(){const e=n(),t=i();return{smoothScroll:t.documentElement&&t.documentElement.style&&"scrollBehavior"in t.documentElement.style,touch:!!("ontouchstart"in e||e.DocumentTouch&&t instanceof e.DocumentTouch)}}()),b}function x(e){return void 0===e&&(e={}),S||(S=function(e){let{userAgent:t}=void 0===e?{}:e;const s=y(),i=n(),r=i.navigator.platform,a=t||i.navigator.userAgent,o={ios:!1,android:!1},l=i.screen.width,d=i.screen.height,c=a.match(/(Android);?[\s\/]+([\d.]+)?/);let p=a.match(/(iPad).*OS\s([\d_]+)/);const u=a.match(/(iPod)(.*OS\s([\d_]+))?/),h=!p&&a.match(/(iPhone\sOS|iOS)\s([\d_]+)/),f="Win32"===r;let m="MacIntel"===r;return!p&&m&&s.touch&&["1024x1366","1366x1024","834x1194","1194x834","834x1112","1112x834","768x1024","1024x768","820x1180","1180x820","810x1080","1080x810"].indexOf(`${l}x${d}`)>=0&&(p=a.match(/(Version)\/([\d.]+)/),p||(p=[0,1,"13_0_0"]),m=!1),c&&!f&&(o.os="android",o.android=!0),(p||h||u)&&(o.os="ios",o.ios=!0),o}(e)),S}function E(){return T||(T=function(){const e=n();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,i]=s.split("Version/")[1].split(" ")[0].split(".").map((e=>Number(e)));t=e<16||16===e&&i<2}}return{isSafari:t||s(),needPerspectiveFix:t,isWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(e.navigator.userAgent)}}()),T}var C={on(e,t,s){const i=this;if(!i.eventsListeners||i.destroyed)return i;if("function"!=typeof t)return i;const r=s?"unshift":"push";return e.split(" ").forEach((e=>{i.eventsListeners[e]||(i.eventsListeners[e]=[]),i.eventsListeners[e][r](t)})),i},once(e,t,s){const i=this;if(!i.eventsListeners||i.destroyed)return i;if("function"!=typeof t)return i;function r(){i.off(e,r),r.__emitterProxy&&delete r.__emitterProxy;for(var s=arguments.length,n=new Array(s),a=0;a=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(((i,r)=>{(i===t||i.__emitterProxy&&i.__emitterProxy===t)&&s.eventsListeners[e].splice(r,1)}))})),s):s},emit(){const e=this;if(!e.eventsListeners||e.destroyed)return e;if(!e.eventsListeners)return e;let t,s,i;for(var r=arguments.length,n=new Array(r),a=0;a{e.eventsAnyListeners&&e.eventsAnyListeners.length&&e.eventsAnyListeners.forEach((e=>{e.apply(i,[t,...s])})),e.eventsListeners&&e.eventsListeners[t]&&e.eventsListeners[t].forEach((e=>{e.apply(i,s)}))})),e}};const P=(e,t)=>{if(!e||e.destroyed||!e.params)return;const s=t.closest(e.isElement?"swiper-slide":`.${e.params.slideClass}`);if(s){let t=s.querySelector(`.${e.params.lazyPreloaderClass}`);!t&&e.isElement&&(s.shadowRoot?t=s.shadowRoot.querySelector(`.${e.params.lazyPreloaderClass}`):requestAnimationFrame((()=>{s.shadowRoot&&(t=s.shadowRoot.querySelector(`.${e.params.lazyPreloaderClass}`),t&&t.remove())}))),t&&t.remove()}},M=(e,t)=>{if(!e.slides[t])return;const s=e.slides[t].querySelector('[loading="lazy"]');s&&s.removeAttribute("loading")},k=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 i="auto"===e.params.slidesPerView?e.slidesPerViewDynamic():Math.ceil(e.params.slidesPerView),r=e.activeIndex;if(e.params.grid&&e.params.grid.rows>1){const s=r,n=[s-t];return n.push(...Array.from({length:t}).map(((e,t)=>s+i+t))),void e.slides.forEach(((t,s)=>{n.includes(t.column)&&M(e,s)}))}const n=r+i-1;if(e.params.rewind||e.params.loop)for(let i=r-t;i<=n+t;i+=1){const t=(i%s+s)%s;(tn)&&M(e,t)}else for(let i=Math.max(r-t,0);i<=Math.min(n+t,s-1);i+=1)i!==r&&(i>n||i=0?x=parseFloat(x.replace("%",""))/100*n:"string"==typeof x&&(x=parseFloat(x)),e.virtualSize=-x,c.forEach((e=>{a?e.style.marginLeft="":e.style.marginRight="",e.style.marginBottom="",e.style.marginTop=""})),s.centeredSlides&&s.cssMode&&(p(i,"--swiper-centered-offset-before",""),p(i,"--swiper-centered-offset-after",""));const M=s.grid&&s.grid.rows>1&&e.grid;let k;M?e.grid.initSlides(c):e.grid&&e.grid.unsetSlides();const L="auto"===s.slidesPerView&&s.breakpoints&&Object.keys(s.breakpoints).filter((e=>void 0!==s.breakpoints[e].slidesPerView)).length>0;for(let i=0;i1&&f.push(e.virtualSize-n)}if(l&&s.loop){const t=g[0]+x;if(s.slidesPerGroup>1){const i=Math.ceil((e.virtual.slidesBefore+e.virtual.slidesAfter)/s.slidesPerGroup),r=t*s.slidesPerGroup;for(let e=0;e!(s.cssMode&&!s.loop)||t!==c.length-1)).forEach((e=>{e.style[t]=`${x}px`}))}if(s.centeredSlides&&s.centeredSlidesBounds){let e=0;g.forEach((t=>{e+=t+(x||0)})),e-=x;const t=e-n;f=f.map((e=>e<=0?-b:e>t?t+S:e))}if(s.centerInsufficientSlides){let e=0;if(g.forEach((t=>{e+=t+(x||0)})),e-=x,e{f[s]=e-t})),m.forEach(((e,s)=>{m[s]=e+t}))}}if(Object.assign(e,{slides:c,snapGrid:f,slidesGrid:m,slidesSizesGrid:g}),s.centeredSlides&&s.cssMode&&!s.centeredSlidesBounds){p(i,"--swiper-centered-offset-before",-f[0]+"px"),p(i,"--swiper-centered-offset-after",e.size/2-g[g.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(u!==d&&e.emit("slidesLengthChange"),f.length!==T&&(e.params.watchOverflow&&e.checkOverflow(),e.emit("snapGridLengthChange")),m.length!==y&&e.emit("slidesGridLengthChange"),s.watchSlidesProgress&&e.updateSlidesOffset(),e.emit("slidesUpdated"),!(l||s.cssMode||"slide"!==s.effect&&"fade"!==s.effect)){const t=`${s.containerModifierClass}backface-hidden`,i=e.el.classList.contains(t);u<=s.maxBackfaceHiddenSlides?i||e.el.classList.add(t):i&&e.el.classList.remove(t)}},updateAutoHeight:function(e){const t=this,s=[],i=t.virtual&&t.params.virtual.enabled;let r,n=0;"number"==typeof e?t.setTransition(e):!0===e&&t.setTransition(t.params.speed);const a=e=>i?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(r=0;rt.slides.length&&!i)break;s.push(a(e))}else s.push(a(t.activeIndex));for(r=0;rn?e:n}(n||0===n)&&(t.wrapperEl.style.height=`${n}px`)},updateSlidesOffset:function(){const e=this,t=e.slides,s=e.isElement?e.isHorizontal()?e.wrapperEl.offsetLeft:e.wrapperEl.offsetTop:0;for(let i=0;i{e.classList.remove(s.slideVisibleClass,s.slideFullyVisibleClass)})),t.visibleSlidesIndexes=[],t.visibleSlides=[];let o=s.spaceBetween;"string"==typeof o&&o.indexOf("%")>=0?o=parseFloat(o.replace("%",""))/100*t.size:"string"==typeof o&&(o=parseFloat(o));for(let e=0;e=0&&u<=t.size-t.slidesSizesGrid[e];(u>=0&&u1&&h<=t.size||u<=0&&h>=t.size)&&(t.visibleSlides.push(l),t.visibleSlidesIndexes.push(e),i[e].classList.add(s.slideVisibleClass)),f&&i[e].classList.add(s.slideFullyVisibleClass),l.progress=r?-c:c,l.originalProgress=r?-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,i=t.maxTranslate()-t.minTranslate();let{progress:r,isBeginning:n,isEnd:a,progressLoop:o}=t;const l=n,d=a;if(0===i)r=0,n=!0,a=!0;else{r=(e-t.minTranslate())/i;const s=Math.abs(e-t.minTranslate())<1,o=Math.abs(e-t.maxTranslate())<1;n=s||r<=0,a=o||r>=1,s&&(r=0),o&&(r=1)}if(s.loop){const s=t.getSlideIndexByData(0),i=t.getSlideIndexByData(t.slides.length-1),r=t.slidesGrid[s],n=t.slidesGrid[i],a=t.slidesGrid[t.slidesGrid.length-1],l=Math.abs(e);o=l>=r?(l-r)/a:(l+a-n)/a,o>1&&(o-=1)}Object.assign(t,{progress:r,progressLoop:o,isBeginning:n,isEnd:a}),(s.watchSlidesProgress||s.centeredSlides&&s.autoHeight)&&t.updateSlidesProgress(e),n&&!l&&t.emit("reachBeginning toEdge"),a&&!d&&t.emit("reachEnd toEdge"),(l&&!n||d&&!a)&&t.emit("fromEdge"),t.emit("progress",r)},updateSlidesClasses:function(){const e=this,{slides:t,params:s,slidesEl:i,activeIndex:r}=e,n=e.virtual&&s.virtual.enabled,a=e.grid&&s.grid&&s.grid.rows>1,o=e=>h(i,`.${s.slideClass}${e}, swiper-slide${e}`)[0];let l,d,c;if(t.forEach((e=>{e.classList.remove(s.slideActiveClass,s.slideNextClass,s.slidePrevClass)})),n)if(s.loop){let t=r-e.virtual.slidesBefore;t<0&&(t=e.virtual.slides.length+t),t>=e.virtual.slides.length&&(t-=e.virtual.slides.length),l=o(`[data-swiper-slide-index="${t}"]`)}else l=o(`[data-swiper-slide-index="${r}"]`);else a?(l=t.filter((e=>e.column===r))[0],c=t.filter((e=>e.column===r+1))[0],d=t.filter((e=>e.column===r-1))[0]):l=t[r];l&&(l.classList.add(s.slideActiveClass),a?(c&&c.classList.add(s.slideNextClass),d&&d.classList.add(s.slidePrevClass)):(c=function(e,t){const s=[];for(;e.nextElementSibling;){const i=e.nextElementSibling;t?i.matches(t)&&s.push(i):s.push(i),e=i}return s}(l,`.${s.slideClass}, swiper-slide`)[0],s.loop&&!c&&(c=t[0]),c&&c.classList.add(s.slideNextClass),d=function(e,t){const s=[];for(;e.previousElementSibling;){const i=e.previousElementSibling;t?i.matches(t)&&s.push(i):s.push(i),e=i}return s}(l,`.${s.slideClass}, swiper-slide`)[0],s.loop&&0===!d&&(d=t[t.length-1]),d&&d.classList.add(s.slidePrevClass))),e.emitSlidesClasses()},updateActiveIndex:function(e){const t=this,s=t.rtlTranslate?t.translate:-t.translate,{snapGrid:i,params:r,activeIndex:n,realIndex:a,snapIndex:o}=t;let l,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,i=e.rtlTranslate?e.translate:-e.translate;let r;for(let e=0;e=t[e]&&i=t[e]&&i=t[e]&&(r=e);return s.normalizeSlideIndex&&(r<0||void 0===r)&&(r=0),r}(t)),i.indexOf(s)>=0)l=i.indexOf(s);else{const e=Math.min(r.slidesPerGroupSkip,d);l=e+Math.floor((d-e)/r.slidesPerGroup)}if(l>=i.length&&(l=i.length-1),d===n&&!t.params.loop)return void(l!==o&&(t.snapIndex=l,t.emit("snapIndexChange")));if(d===n&&t.params.loop&&t.virtual&&t.params.virtual.enabled)return void(t.realIndex=c(d));const p=t.grid&&r.grid&&r.grid.rows>1;let u;if(t.virtual&&r.virtual.enabled&&r.loop)u=c(d);else if(p){const e=t.slides.filter((e=>e.column===d))[0];let s=parseInt(e.getAttribute("data-swiper-slide-index"),10);Number.isNaN(s)&&(s=Math.max(t.slides.indexOf(e),0)),u=Math.floor(s/r.grid.rows)}else if(t.slides[d]){const e=t.slides[d].getAttribute("data-swiper-slide-index");u=e?parseInt(e,10):d}else u=d;Object.assign(t,{previousSnapIndex:o,snapIndex:l,previousRealIndex:a,realIndex:u,previousIndex:n,activeIndex:d}),t.initialized&&k(t),t.emit("activeIndexChange"),t.emit("snapIndexChange"),(t.initialized||t.params.runCallbacksOnInit)&&(a!==u&&t.emit("realIndexChange"),t.emit("slideChange"))},updateClickedSlide:function(e,t){const s=this,i=s.params;let r=e.closest(`.${i.slideClass}, swiper-slide`);!r&&s.isElement&&t&&t.length>1&&t.includes(e)&&[...t.slice(t.indexOf(e)+1,t.length)].forEach((e=>{!r&&e.matches&&e.matches(`.${i.slideClass}, swiper-slide`)&&(r=e)}));let n,a=!1;if(r)for(let e=0;el?l:i&&ea?"next":n=l.length&&(g=l.length-1);const w=-l[g];if(o.normalizeSlideIndex)for(let e=0;e=s&&t=s&&t=s&&(a=e)}if(n.initialized&&a!==p){if(!n.allowSlideNext&&(h?w>n.translate&&w>n.minTranslate():wn.translate&&w>n.maxTranslate()&&(p||0)!==a)return!1}let b;if(a!==(c||0)&&s&&n.emit("beforeSlideChangeStart"),n.updateProgress(w),b=a>p?"next":a0?(n._cssModeVirtualInitialSet=!0,requestAnimationFrame((()=>{f[e?"scrollLeft":"scrollTop"]=s}))):f[e?"scrollLeft":"scrollTop"]=s,t&&requestAnimationFrame((()=>{n.wrapperEl.style.scrollSnapType="",n._immediateVirtual=!1}))}else{if(!n.support.smoothScroll)return u({swiper:n,targetPosition:s,side:e?"left":"top"}),!0;f.scrollTo({[e?"left":"top"]:s,behavior:"smooth"})}return!0}return n.setTransition(t),n.setTranslate(w),n.updateActiveIndex(a),n.updateSlidesClasses(),n.emit("beforeTransitionStart",t,i),n.transitionStart(s,b),0===t?n.transitionEnd(s,b):n.animating||(n.animating=!0,n.onSlideToWrapperTransitionEnd||(n.onSlideToWrapperTransitionEnd=function(e){n&&!n.destroyed&&e.target===this&&(n.wrapperEl.removeEventListener("transitionend",n.onSlideToWrapperTransitionEnd),n.onSlideToWrapperTransitionEnd=null,delete n.onSlideToWrapperTransitionEnd,n.transitionEnd(s,b))}),n.wrapperEl.addEventListener("transitionend",n.onSlideToWrapperTransitionEnd)),!0},slideToLoop:function(e,t,s,i){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 r=this,n=r.grid&&r.params.grid&&r.params.grid.rows>1;let a=e;if(r.params.loop)if(r.virtual&&r.params.virtual.enabled)a+=r.virtual.slidesBefore;else{let e;if(n){const t=a*r.params.grid.rows;e=r.slides.filter((e=>1*e.getAttribute("data-swiper-slide-index")===t))[0].column}else e=r.getSlideIndexByData(a);const t=n?Math.ceil(r.slides.length/r.params.grid.rows):r.slides.length,{centeredSlides:s}=r.params;let i=r.params.slidesPerView;"auto"===i?i=r.slidesPerViewDynamic():(i=Math.ceil(parseFloat(r.params.slidesPerView,10)),s&&i%2==0&&(i+=1));let o=t-e1*t.getAttribute("data-swiper-slide-index")===e))[0].column}else a=r.getSlideIndexByData(a)}return requestAnimationFrame((()=>{r.slideTo(a,t,s,i)})),r},slideNext:function(e,t,s){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);const i=this,{enabled:r,params:n,animating:a}=i;if(!r)return i;let o=n.slidesPerGroup;"auto"===n.slidesPerView&&1===n.slidesPerGroup&&n.slidesPerGroupAuto&&(o=Math.max(i.slidesPerViewDynamic("current",!0),1));const l=i.activeIndex{i.slideTo(i.activeIndex+l,e,t,s)})),!0}return n.rewind&&i.isEnd?i.slideTo(0,e,t,s):i.slideTo(i.activeIndex+l,e,t,s)},slidePrev:function(e,t,s){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);const i=this,{params:r,snapGrid:n,slidesGrid:a,rtlTranslate:o,enabled:l,animating:d}=i;if(!l)return i;const c=i.virtual&&r.virtual.enabled;if(r.loop){if(d&&!c&&r.loopPreventsSliding)return!1;i.loopFix({direction:"prev"}),i._clientLeft=i.wrapperEl.clientLeft}function p(e){return e<0?-Math.floor(Math.abs(e)):Math.floor(e)}const u=p(o?i.translate:-i.translate),h=n.map((e=>p(e)));let f=n[h.indexOf(u)-1];if(void 0===f&&r.cssMode){let e;n.forEach(((t,s)=>{u>=t&&(e=s)})),void 0!==e&&(f=n[e>0?e-1:e])}let m=0;if(void 0!==f&&(m=a.indexOf(f),m<0&&(m=i.activeIndex-1),"auto"===r.slidesPerView&&1===r.slidesPerGroup&&r.slidesPerGroupAuto&&(m=m-i.slidesPerViewDynamic("previous",!0)+1,m=Math.max(m,0))),r.rewind&&i.isBeginning){const r=i.params.virtual&&i.params.virtual.enabled&&i.virtual?i.virtual.slides.length-1:i.slides.length-1;return i.slideTo(r,e,t,s)}return r.loop&&0===i.activeIndex&&r.cssMode?(requestAnimationFrame((()=>{i.slideTo(m,e,t,s)})),!0):i.slideTo(m,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,i){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0),void 0===i&&(i=.5);const r=this;let n=r.activeIndex;const a=Math.min(r.params.slidesPerGroupSkip,n),o=a+Math.floor((n-a)/r.params.slidesPerGroup),l=r.rtlTranslate?r.translate:-r.translate;if(l>=r.snapGrid[o]){const e=r.snapGrid[o];l-e>(r.snapGrid[o+1]-e)*i&&(n+=r.params.slidesPerGroup)}else{const e=r.snapGrid[o-1];l-e<=(r.snapGrid[o]-e)*i&&(n-=r.params.slidesPerGroup)}return n=Math.max(n,0),n=Math.min(n,r.slidesGrid.length-1),r.slideTo(n,e,t,s)},slideToClickedSlide:function(){const e=this,{params:t,slidesEl:s}=e,i="auto"===t.slidesPerView?e.slidesPerViewDynamic():t.slidesPerView;let r,n=e.clickedIndex;const o=e.isElement?"swiper-slide":`.${t.slideClass}`;if(t.loop){if(e.animating)return;r=parseInt(e.clickedSlide.getAttribute("data-swiper-slide-index"),10),t.centeredSlides?ne.slides.length-e.loopedSlides+i/2?(e.loopFix(),n=e.getSlideIndex(h(s,`${o}[data-swiper-slide-index="${r}"]`)[0]),a((()=>{e.slideTo(n)}))):e.slideTo(n):n>e.slides.length-i?(e.loopFix(),n=e.getSlideIndex(h(s,`${o}[data-swiper-slide-index="${r}"]`)[0]),a((()=>{e.slideTo(n)}))):e.slideTo(n)}else e.slideTo(n)}};var _={loopCreate:function(e){const t=this,{params:s,slidesEl:i}=t;if(!s.loop||t.virtual&&t.params.virtual.enabled)return;const r=()=>{h(i,`.${s.slideClass}, swiper-slide`).forEach(((e,t)=>{e.setAttribute("data-swiper-slide-index",t)}))},n=t.grid&&s.grid&&s.grid.rows>1,a=s.slidesPerGroup*(n?s.grid.rows:1),o=t.slides.length%a!=0,l=n&&t.slides.length%s.grid.rows!=0,d=e=>{for(let i=0;i1;d.lengthe.classList.contains(h.slideActiveClass)))[0]):y=n;const x="next"===i||!i,E="prev"===i||!i;let C=0,P=0;const M=b?Math.ceil(d.length/h.grid.rows):d.length,k=(b?d[n].column:n)+(m&&void 0===r?-v/2+.5:0);if(k=0;t-=1)d[t].column===e&&S.push(t)}else S.push(M-t-1)}}else if(k+v>M-w){P=Math.max(k-(M-2*w),g);for(let e=0;e{e.column===t&&T.push(s)})):T.push(t)}}if(l.__preventObserver__=!0,requestAnimationFrame((()=>{l.__preventObserver__=!1})),E&&S.forEach((e=>{d[e].swiperLoopMoveDOM=!0,u.prepend(d[e]),d[e].swiperLoopMoveDOM=!1})),x&&T.forEach((e=>{d[e].swiperLoopMoveDOM=!0,u.append(d[e]),d[e].swiperLoopMoveDOM=!1})),l.recalcSlides(),"auto"===h.slidesPerView?l.updateSlides():b&&(S.length>0&&E||T.length>0&&x)&&l.slides.forEach(((e,t)=>{l.grid.updateSlide(t,e,l.slides)})),h.watchSlidesProgress&&l.updateSlidesOffset(),s)if(S.length>0&&E){if(void 0===t){const e=l.slidesGrid[y],t=l.slidesGrid[y+C]-e;o?l.setTranslate(l.translate-t):(l.slideTo(y+C,0,!1,!0),r&&(l.touchEventsData.startTranslate=l.touchEventsData.startTranslate-t,l.touchEventsData.currentTranslate=l.touchEventsData.currentTranslate-t))}else if(r){const e=b?S.length/h.grid.rows:S.length;l.slideTo(l.activeIndex+e,0,!1,!0),l.touchEventsData.currentTranslate=l.translate}}else if(T.length>0&&x)if(void 0===t){const e=l.slidesGrid[y],t=l.slidesGrid[y-P]-e;o?l.setTranslate(l.translate-t):(l.slideTo(y-P,0,!1,!0),r&&(l.touchEventsData.startTranslate=l.touchEventsData.startTranslate-t,l.touchEventsData.currentTranslate=l.touchEventsData.currentTranslate-t))}else{const e=b?T.length/h.grid.rows:T.length;l.slideTo(l.activeIndex-e,0,!1,!0)}if(l.allowSlidePrev=c,l.allowSlideNext=p,l.controller&&l.controller.control&&!a){const e={slideRealIndex:t,direction:i,setTranslate:r,activeSlideIndex:n,byController:!0};Array.isArray(l.controller.control)?l.controller.control.forEach((t=>{!t.destroyed&&t.params.loop&&t.loopFix({...e,slideTo:t.params.slidesPerView===h.slidesPerView&&s})})):l.controller.control instanceof l.constructor&&l.controller.control.params.loop&&l.controller.control.loopFix({...e,slideTo:l.controller.control.params.slidesPerView===h.slidesPerView&&s})}l.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 i=[];e.slides.forEach((e=>{const t=void 0===e.swiperSlideIndex?1*e.getAttribute("data-swiper-slide-index"):e.swiperSlideIndex;i[t]=e})),e.slides.forEach((e=>{e.removeAttribute("data-swiper-slide-index")})),i.forEach((e=>{s.append(e)})),e.recalcSlides(),e.slideTo(e.realIndex,0)}};function A(e,t,s){const i=n(),{params:r}=e,a=r.edgeSwipeDetection,o=r.edgeSwipeThreshold;return!a||!(s<=o||s>=i.innerWidth-o)||"prevent"===a&&(t.preventDefault(),!0)}function G(e){const t=this,s=i();let r=e;r.originalEvent&&(r=r.originalEvent);const a=t.touchEventsData;if("pointerdown"===r.type){if(null!==a.pointerId&&a.pointerId!==r.pointerId)return;a.pointerId=r.pointerId}else"touchstart"===r.type&&1===r.targetTouches.length&&(a.touchId=r.targetTouches[0].identifier);if("touchstart"===r.type)return void A(t,r,r.targetTouches[0].pageX);const{params:l,touches:d,enabled:c}=t;if(!c)return;if(!l.simulateTouch&&"mouse"===r.pointerType)return;if(t.animating&&l.preventInteractionOnTransition)return;!t.animating&&l.cssMode&&l.loop&&t.loopFix();let p=r.target;if("wrapper"===l.touchEventsTarget&&!t.wrapperEl.contains(p))return;if("which"in r&&3===r.which)return;if("button"in r&&r.button>0)return;if(a.isTouched&&a.isMoved)return;const u=!!l.noSwipingClass&&""!==l.noSwipingClass,h=r.composedPath?r.composedPath():r.path;u&&r.target&&r.target.shadowRoot&&h&&(p=h[0]);const f=l.noSwipingSelector?l.noSwipingSelector:`.${l.noSwipingClass}`,m=!(!r.target||!r.target.shadowRoot);if(l.noSwiping&&(m?function(e,t){return void 0===t&&(t=this),function t(s){if(!s||s===i()||s===n())return null;s.assignedSlot&&(s=s.assignedSlot);const r=s.closest(e);return r||s.getRootNode?r||t(s.getRootNode().host):null}(t)}(f,p):p.closest(f)))return void(t.allowClick=!0);if(l.swipeHandler&&!p.closest(l.swipeHandler))return;d.currentX=r.pageX,d.currentY=r.pageY;const v=d.currentX,g=d.currentY;if(!A(t,r,v))return;Object.assign(a,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),d.startX=v,d.startY=g,a.touchStartTime=o(),t.allowClick=!0,t.updateSize(),t.swipeDirection=void 0,l.threshold>0&&(a.allowThresholdMove=!1);let w=!0;p.matches(a.focusableElements)&&(w=!1,"SELECT"===p.nodeName&&(a.isTouched=!1)),s.activeElement&&s.activeElement.matches(a.focusableElements)&&s.activeElement!==p&&s.activeElement.blur();const b=w&&t.allowTouchMove&&l.touchStartPreventDefault;!l.touchStartForcePreventDefault&&!b||p.isContentEditable||r.preventDefault(),l.freeMode&&l.freeMode.enabled&&t.freeMode&&t.animating&&!l.cssMode&&t.freeMode.onTouchStart(),t.emit("touchStart",r)}function D(e){const t=i(),s=this,r=s.touchEventsData,{params:n,touches:a,rtlTranslate:l,enabled:d}=s;if(!d)return;if(!n.simulateTouch&&"mouse"===e.pointerType)return;let c,p=e;if(p.originalEvent&&(p=p.originalEvent),"pointermove"===p.type){if(null!==r.touchId)return;if(p.pointerId!==r.pointerId)return}if("touchmove"===p.type){if(c=[...p.changedTouches].filter((e=>e.identifier===r.touchId))[0],!c||c.identifier!==r.touchId)return}else c=p;if(!r.isTouched)return void(r.startMoving&&r.isScrolling&&s.emit("touchMoveOpposite",p));const u=c.pageX,h=c.pageY;if(p.preventedByNestedSwiper)return a.startX=u,void(a.startY=h);if(!s.allowTouchMove)return p.target.matches(r.focusableElements)||(s.allowClick=!1),void(r.isTouched&&(Object.assign(a,{startX:u,startY:h,currentX:u,currentY:h}),r.touchStartTime=o()));if(n.touchReleaseOnEdges&&!n.loop)if(s.isVertical()){if(ha.startY&&s.translate>=s.minTranslate())return r.isTouched=!1,void(r.isMoved=!1)}else if(ua.startX&&s.translate>=s.minTranslate())return;if(t.activeElement&&p.target===t.activeElement&&p.target.matches(r.focusableElements))return r.isMoved=!0,void(s.allowClick=!1);r.allowTouchCallbacks&&s.emit("touchMove",p),a.previousX=a.currentX,a.previousY=a.currentY,a.currentX=u,a.currentY=h;const f=a.currentX-a.startX,m=a.currentY-a.startY;if(s.params.threshold&&Math.sqrt(f**2+m**2)=25&&(e=180*Math.atan2(Math.abs(m),Math.abs(f))/Math.PI,r.isScrolling=s.isHorizontal()?e>n.touchAngle:90-e>n.touchAngle)}if(r.isScrolling&&s.emit("touchMoveOpposite",p),void 0===r.startMoving&&(a.currentX===a.startX&&a.currentY===a.startY||(r.startMoving=!0)),r.isScrolling)return void(r.isTouched=!1);if(!r.startMoving)return;s.allowClick=!1,!n.cssMode&&p.cancelable&&p.preventDefault(),n.touchMoveStopPropagation&&!n.nested&&p.stopPropagation();let v=s.isHorizontal()?f:m,g=s.isHorizontal()?a.currentX-a.previousX:a.currentY-a.previousY;n.oneWayMovement&&(v=Math.abs(v)*(l?1:-1),g=Math.abs(g)*(l?1:-1)),a.diff=v,v*=n.touchRatio,l&&(v=-v,g=-g);const w=s.touchesDirection;s.swipeDirection=v>0?"prev":"next",s.touchesDirection=g>0?"prev":"next";const b=s.params.loop&&!n.cssMode,S="next"===s.touchesDirection&&s.allowSlideNext||"prev"===s.touchesDirection&&s.allowSlidePrev;if(!r.isMoved){if(b&&S&&s.loopFix({direction:s.swipeDirection}),r.startTranslate=s.getTranslate(),s.setTransition(0),s.animating){const e=new window.CustomEvent("transitionend",{bubbles:!0,cancelable:!0});s.wrapperEl.dispatchEvent(e)}r.allowMomentumBounce=!1,!n.grabCursor||!0!==s.allowSlideNext&&!0!==s.allowSlidePrev||s.setGrabCursor(!0),s.emit("sliderFirstMove",p)}if((new Date).getTime(),r.isMoved&&r.allowThresholdMove&&w!==s.touchesDirection&&b&&S&&Math.abs(v)>=1)return Object.assign(a,{startX:u,startY:h,currentX:u,currentY:h,startTranslate:r.currentTranslate}),r.loopSwapReset=!0,void(r.startTranslate=r.currentTranslate);s.emit("sliderMove",p),r.isMoved=!0,r.currentTranslate=v+r.startTranslate;let T=!0,y=n.resistanceRatio;if(n.touchReleaseOnEdges&&(y=0),v>0?(b&&S&&r.allowThresholdMove&&r.currentTranslate>(n.centeredSlides?s.minTranslate()-s.slidesSizesGrid[s.activeIndex+1]:s.minTranslate())&&s.loopFix({direction:"prev",setTranslate:!0,activeSlideIndex:0}),r.currentTranslate>s.minTranslate()&&(T=!1,n.resistance&&(r.currentTranslate=s.minTranslate()-1+(-s.minTranslate()+r.startTranslate+v)**y))):v<0&&(b&&S&&r.allowThresholdMove&&r.currentTranslate<(n.centeredSlides?s.maxTranslate()+s.slidesSizesGrid[s.slidesSizesGrid.length-1]:s.maxTranslate())&&s.loopFix({direction:"next",setTranslate:!0,activeSlideIndex:s.slides.length-("auto"===n.slidesPerView?s.slidesPerViewDynamic():Math.ceil(parseFloat(n.slidesPerView,10)))}),r.currentTranslater.startTranslate&&(r.currentTranslate=r.startTranslate),s.allowSlidePrev||s.allowSlideNext||(r.currentTranslate=r.startTranslate),n.threshold>0){if(!(Math.abs(v)>n.threshold||r.allowThresholdMove))return void(r.currentTranslate=r.startTranslate);if(!r.allowThresholdMove)return r.allowThresholdMove=!0,a.startX=a.currentX,a.startY=a.currentY,r.currentTranslate=r.startTranslate,void(a.diff=s.isHorizontal()?a.currentX-a.startX:a.currentY-a.startY)}n.followFinger&&!n.cssMode&&((n.freeMode&&n.freeMode.enabled&&s.freeMode||n.watchSlidesProgress)&&(s.updateActiveIndex(),s.updateSlidesClasses()),n.freeMode&&n.freeMode.enabled&&s.freeMode&&s.freeMode.onTouchMove(),s.updateProgress(r.currentTranslate),s.setTranslate(r.currentTranslate))}function V(e){const t=this,s=t.touchEventsData;let i,r=e;r.originalEvent&&(r=r.originalEvent);if("touchend"===r.type||"touchcancel"===r.type){if(i=[...r.changedTouches].filter((e=>e.identifier===s.touchId))[0],!i||i.identifier!==s.touchId)return}else{if(null!==s.touchId)return;if(r.pointerId!==s.pointerId)return;i=r}if(["pointercancel","pointerout","pointerleave","contextmenu"].includes(r.type)){if(!(["pointercancel","contextmenu"].includes(r.type)&&(t.browser.isSafari||t.browser.isWebView)))return}s.pointerId=null,s.touchId=null;const{params:n,touches:l,rtlTranslate:d,slidesGrid:c,enabled:p}=t;if(!p)return;if(!n.simulateTouch&&"mouse"===r.pointerType)return;if(s.allowTouchCallbacks&&t.emit("touchEnd",r),s.allowTouchCallbacks=!1,!s.isTouched)return s.isMoved&&n.grabCursor&&t.setGrabCursor(!1),s.isMoved=!1,void(s.startMoving=!1);n.grabCursor&&s.isMoved&&s.isTouched&&(!0===t.allowSlideNext||!0===t.allowSlidePrev)&&t.setGrabCursor(!1);const u=o(),h=u-s.touchStartTime;if(t.allowClick){const e=r.path||r.composedPath&&r.composedPath();t.updateClickedSlide(e&&e[0]||r.target,e),t.emit("tap click",r),h<300&&u-s.lastClickTime<300&&t.emit("doubleTap doubleClick",r)}if(s.lastClickTime=o(),a((()=>{t.destroyed||(t.allowClick=!0)})),!s.isTouched||!s.isMoved||!t.swipeDirection||0===l.diff&&!s.loopSwapReset||s.currentTranslate===s.startTranslate&&!s.loopSwapReset)return s.isTouched=!1,s.isMoved=!1,void(s.startMoving=!1);let f;if(s.isTouched=!1,s.isMoved=!1,s.startMoving=!1,f=n.followFinger?d?t.translate:-t.translate:-s.currentTranslate,n.cssMode)return;if(n.freeMode&&n.freeMode.enabled)return void t.freeMode.onTouchEnd({currentPos:f});const m=f>=-t.maxTranslate()&&!t.params.loop;let v=0,g=t.slidesSizesGrid[0];for(let e=0;e=c[e]&&f=c[e])&&(v=e,g=c[c.length-1]-c[c.length-2])}let w=null,b=null;n.rewind&&(t.isBeginning?b=n.virtual&&n.virtual.enabled&&t.virtual?t.virtual.slides.length-1:t.slides.length-1:t.isEnd&&(w=0));const S=(f-c[v])/g,T=vn.longSwipesMs){if(!n.longSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&(S>=n.longSwipesRatio?t.slideTo(n.rewind&&t.isEnd?w:v+T):t.slideTo(v)),"prev"===t.swipeDirection&&(S>1-n.longSwipesRatio?t.slideTo(v+T):null!==b&&S<0&&Math.abs(S)>n.longSwipesRatio?t.slideTo(b):t.slideTo(v))}else{if(!n.shortSwipes)return void t.slideTo(t.activeIndex);t.navigation&&(r.target===t.navigation.nextEl||r.target===t.navigation.prevEl)?r.target===t.navigation.nextEl?t.slideTo(v+T):t.slideTo(v):("next"===t.swipeDirection&&t.slideTo(null!==w?w:v+T),"prev"===t.swipeDirection&&t.slideTo(null!==b?b:v))}}function N(){const e=this,{params:t,el:s}=e;if(s&&0===s.offsetWidth)return;t.breakpoints&&e.setBreakpoint();const{allowSlideNext:i,allowSlidePrev:r,snapGrid:n}=e,a=e.virtual&&e.params.virtual.enabled;e.allowSlideNext=!0,e.allowSlidePrev=!0,e.updateSize(),e.updateSlides(),e.updateSlidesClasses();const o=a&&t.loop;!("auto"===t.slidesPerView||t.slidesPerView>1)||!e.isEnd||e.isBeginning||e.params.centeredSlides||o?e.params.loop&&!a?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=r,e.allowSlideNext=i,e.params.watchOverflow&&n!==e.snapGrid&&e.checkOverflow()}function B(e){const t=this;t.enabled&&(t.allowClick||(t.params.preventClicks&&e.preventDefault(),t.params.preventClicksPropagation&&t.animating&&(e.stopPropagation(),e.stopImmediatePropagation())))}function $(){const e=this,{wrapperEl:t,rtlTranslate:s,enabled:i}=e;if(!i)return;let r;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 n=e.maxTranslate()-e.minTranslate();r=0===n?0:(e.translate-e.minTranslate())/n,r!==e.progress&&e.updateProgress(s?-e.translate:e.translate),e.emit("setTranslate",e.translate,!1)}function F(e){const t=this;P(t,e.target),t.params.cssMode||"auto"!==t.params.slidesPerView&&!t.params.autoHeight||t.update()}function j(){const e=this;e.documentTouchHandlerProceeded||(e.documentTouchHandlerProceeded=!0,e.params.touchReleaseOnEdges&&(e.el.style.touchAction="auto"))}const R=(e,t)=>{const s=i(),{params:r,el:n,wrapperEl:a,device:o}=e,l=!!r.nested,d="on"===t?"addEventListener":"removeEventListener",c=t;s[d]("touchstart",e.onDocumentTouchStart,{passive:!1,capture:l}),n[d]("touchstart",e.onTouchStart,{passive:!1}),n[d]("pointerdown",e.onTouchStart,{passive:!1}),s[d]("touchmove",e.onTouchMove,{passive:!1,capture:l}),s[d]("pointermove",e.onTouchMove,{passive:!1,capture:l}),s[d]("touchend",e.onTouchEnd,{passive:!0}),s[d]("pointerup",e.onTouchEnd,{passive:!0}),s[d]("pointercancel",e.onTouchEnd,{passive:!0}),s[d]("touchcancel",e.onTouchEnd,{passive:!0}),s[d]("pointerout",e.onTouchEnd,{passive:!0}),s[d]("pointerleave",e.onTouchEnd,{passive:!0}),s[d]("contextmenu",e.onTouchEnd,{passive:!0}),(r.preventClicks||r.preventClicksPropagation)&&n[d]("click",e.onClick,!0),r.cssMode&&a[d]("scroll",e.onScroll),r.updateOnWindowResize?e[c](o.ios||o.android?"resize orientationchange observerUpdate":"resize observerUpdate",N,!0):e[c]("observerUpdate",N,!0),n[d]("load",e.onLoad,{capture:!0})};const H=(e,t)=>e.grid&&t.grid&&t.grid.rows>1;var W={init:!0,direction:"horizontal",oneWayMovement:!1,touchEventsTarget:"wrapper",initialSlide:0,speed:300,cssMode:!1,updateOnWindowResize:!0,resizeObserver:!0,nested:!1,createElements:!1,eventsPrefix:"swiper",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,loopAddBlankSlides:!0,loopAdditionalSlides:0,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",slideBlankClass:"swiper-slide-blank",slideActiveClass:"swiper-slide-active",slideVisibleClass:"swiper-slide-visible",slideFullyVisibleClass:"swiper-slide-fully-visible",slideNextClass:"swiper-slide-next",slidePrevClass:"swiper-slide-prev",wrapperClass:"swiper-wrapper",lazyPreloaderClass:"swiper-lazy-preloader",lazyPreloadPrevNext:0,runCallbacksOnInit:!0,_emitClasses:!1};function q(e,t){return function(s){void 0===s&&(s={});const i=Object.keys(s)[0],r=s[i];"object"==typeof r&&null!==r?(!0===e[i]&&(e[i]={enabled:!0}),"navigation"===i&&e[i]&&e[i].enabled&&!e[i].prevEl&&!e[i].nextEl&&(e[i].auto=!0),["pagination","scrollbar"].indexOf(i)>=0&&e[i]&&e[i].enabled&&!e[i].el&&(e[i].auto=!0),i in e&&"enabled"in r?("object"!=typeof e[i]||"enabled"in e[i]||(e[i].enabled=!0),e[i]||(e[i]={enabled:!1}),c(t,s)):c(t,s)):c(t,s)}}const Y={eventsEmitter:C,update:L,translate:z,transition:{setTransition:function(e,t){const s=this;s.params.cssMode||(s.wrapperEl.style.transitionDuration=`${e}ms`,s.wrapperEl.style.transitionDelay=0===e?"0ms":""),s.emit("setTransition",e,t)},transitionStart:function(e,t){void 0===e&&(e=!0);const s=this,{params:i}=s;i.cssMode||(i.autoHeight&&s.updateAutoHeight(),I({swiper:s,runCallbacks:e,direction:t,step:"Start"}))},transitionEnd:function(e,t){void 0===e&&(e=!0);const s=this,{params:i}=s;s.animating=!1,i.cssMode||(s.setTransition(0),I({swiper:s,runCallbacks:e,direction:t,step:"End"}))}},slide:O,loop:_,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,{params:t}=e;e.onTouchStart=G.bind(e),e.onTouchMove=D.bind(e),e.onTouchEnd=V.bind(e),e.onDocumentTouchStart=j.bind(e),t.cssMode&&(e.onScroll=$.bind(e)),e.onClick=B.bind(e),e.onLoad=F.bind(e),R(e,"on")},detachEvents:function(){R(this,"off")}},breakpoints:{setBreakpoint:function(){const e=this,{realIndex:t,initialized:s,params:i,el:r}=e,n=i.breakpoints;if(!n||n&&0===Object.keys(n).length)return;const a=e.getBreakpoint(n,e.params.breakpointsBase,e.el);if(!a||e.currentBreakpoint===a)return;const o=(a in n?n[a]:void 0)||e.originalParams,l=H(e,i),d=H(e,o),p=i.enabled;l&&!d?(r.classList.remove(`${i.containerModifierClass}grid`,`${i.containerModifierClass}grid-column`),e.emitContainerClasses()):!l&&d&&(r.classList.add(`${i.containerModifierClass}grid`),(o.grid.fill&&"column"===o.grid.fill||!o.grid.fill&&"column"===i.grid.fill)&&r.classList.add(`${i.containerModifierClass}grid-column`),e.emitContainerClasses()),["navigation","pagination","scrollbar"].forEach((t=>{if(void 0===o[t])return;const s=i[t]&&i[t].enabled,r=o[t]&&o[t].enabled;s&&!r&&e[t].disable(),!s&&r&&e[t].enable()}));const u=o.direction&&o.direction!==i.direction,h=i.loop&&(o.slidesPerView!==i.slidesPerView||u),f=i.loop;u&&s&&e.changeDirection(),c(e.params,o);const m=e.params.enabled,v=e.params.loop;Object.assign(e,{allowTouchMove:e.params.allowTouchMove,allowSlideNext:e.params.allowSlideNext,allowSlidePrev:e.params.allowSlidePrev}),p&&!m?e.disable():!p&&m&&e.enable(),e.currentBreakpoint=a,e.emit("_beforeBreakpoint",o),s&&(h?(e.loopDestroy(),e.loopCreate(t),e.updateSlides()):!f&&v?(e.loopCreate(t),e.updateSlides()):f&&!v&&e.loopDestroy()),e.emit("breakpoint",o)},getBreakpoint:function(e,t,s){if(void 0===t&&(t="window"),!e||"container"===t&&!s)return;let i=!1;const r=n(),a="window"===t?r.innerHeight:s.clientHeight,o=Object.keys(e).map((e=>{if("string"==typeof e&&0===e.indexOf("@")){const t=parseFloat(e.substr(1));return{value:a*t,point:e}}return{value:e,point:e}}));o.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:i,el:r,device:n}=e,a=function(e,t){const s=[];return e.forEach((e=>{"object"==typeof e?Object.keys(e).forEach((i=>{e[i]&&s.push(t+i)})):"string"==typeof e&&s.push(t+e)})),s}(["initialized",s.direction,{"free-mode":e.params.freeMode&&s.freeMode.enabled},{autoheight:s.autoHeight},{rtl:i},{grid:s.grid&&s.grid.rows>1},{"grid-column":s.grid&&s.grid.rows>1&&"column"===s.grid.fill},{android:n.android},{ios:n.ios},{"css-mode":s.cssMode},{centered:s.cssMode&&s.centeredSlides},{"watch-progress":s.watchSlidesProgress}],s.containerModifierClass);t.push(...a),r.classList.add(...t),e.emitContainerClasses()},removeClasses:function(){const{el:e,classNames:t}=this;e.classList.remove(...t),this.emitContainerClasses()}}},X={};class U{constructor(){let e,t;for(var s=arguments.length,r=new Array(s),n=0;n1){const e=[];return a.querySelectorAll(t.el).forEach((s=>{const i=c({},t,{el:s});e.push(new U(i))})),e}const o=this;o.__swiper__=!0,o.support=y(),o.device=x({userAgent:t.userAgent}),o.browser=E(),o.eventsListeners={},o.eventsAnyListeners=[],o.modules=[...o.__modules__],t.modules&&Array.isArray(t.modules)&&o.modules.push(...t.modules);const l={};o.modules.forEach((e=>{e({params:t,swiper:o,extendParams:q(t,l),on:o.on.bind(o),once:o.once.bind(o),off:o.off.bind(o),emit:o.emit.bind(o)})}));const d=c({},W,l);return o.params=c({},d,X,t),o.originalParams=c({},o.params),o.passedParams=c({},t),o.params&&o.params.on&&Object.keys(o.params.on).forEach((e=>{o.on(e,o.params.on[e])})),o.params&&o.params.onAny&&o.onAny(o.params.onAny),Object.assign(o,{enabled:o.params.enabled,el:e,classNames:[],slides:[],slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal:()=>"horizontal"===o.params.direction,isVertical:()=>"vertical"===o.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:o.params.allowSlideNext,allowSlidePrev:o.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:o.params.focusableElements,lastClickTime:0,clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,startMoving:void 0,pointerId:null,touchId:null},allowClick:!0,allowTouchMove:o.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),o.emit("_swiper"),o.params.init&&o.init(),o}getDirectionLabel(e){return this.isHorizontal()?e:{width:"height","margin-top":"margin-left","margin-bottom ":"margin-right","margin-left":"margin-top","margin-right":"margin-bottom","padding-left":"padding-top","padding-right":"padding-bottom",marginRight:"marginBottom"}[e]}getSlideIndex(e){const{slidesEl:t,params:s}=this,i=g(h(t,`.${s.slideClass}, swiper-slide`)[0]);return g(e)-i}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=h(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 i=s.minTranslate(),r=(s.maxTranslate()-i)*e+i;s.translateTo(r,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 i=e.getSlideClasses(s);t.push({slideEl:s,classNames:i}),e.emit("_slideClass",s,i)})),e.emit("_slideClasses",t)}slidesPerViewDynamic(e,t){void 0===e&&(e="current"),void 0===t&&(t=!1);const{params:s,slides:i,slidesGrid:r,slidesSizesGrid:n,size:a,activeIndex:o}=this;let l=1;if("number"==typeof s.slidesPerView)return s.slidesPerView;if(s.centeredSlides){let e,t=i[o]?i[o].swiperSlideSize:0;for(let s=o+1;sa&&(e=!0));for(let s=o-1;s>=0;s-=1)i[s]&&!e&&(t+=i[s].swiperSlideSize,l+=1,t>a&&(e=!0))}else if("current"===e)for(let e=o+1;e=0;e-=1){r[o]-r[e]{t.complete&&P(e,t)})),e.updateSize(),e.updateSlides(),e.updateProgress(),e.updateSlidesClasses(),s.freeMode&&s.freeMode.enabled&&!s.cssMode)i(),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;r=e.slideTo(t.length-1,0,!1,!0)}else r=e.slideTo(e.activeIndex,0,!1,!0);r||i()}s.watchOverflow&&t!==e.snapGrid&&e.checkOverflow(),e.emit("update")}changeDirection(e,t){void 0===t&&(t=!0);const s=this,i=s.params.direction;return e||(e="horizontal"===i?"vertical":"horizontal"),e===i||"horizontal"!==e&&"vertical"!==e||(s.el.classList.remove(`${s.params.containerModifierClass}${i}`),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.parentNode&&s.parentNode.host&&"SWIPER-CONTAINER"===s.parentNode.host.nodeName&&(t.isElement=!0);const i=()=>`.${(t.params.wrapperClass||"").trim().split(" ").join(".")}`;let r=(()=>{if(s&&s.shadowRoot&&s.shadowRoot.querySelector){return s.shadowRoot.querySelector(i())}return h(s,i())[0]})();return!r&&t.params.createElements&&(r=m("div",t.params.wrapperClass),s.append(r),h(s,`.${t.params.slideClass}`).forEach((e=>{r.append(e)}))),Object.assign(t,{el:s,wrapperEl:r,slidesEl:t.isElement&&!s.parentNode.host.slideSlots?s.parentNode.host:r,hostEl:t.isElement?s.parentNode.host:s,mounted:!0,rtl:"rtl"===s.dir.toLowerCase()||"rtl"===v(s,"direction"),rtlTranslate:"horizontal"===t.params.direction&&("rtl"===s.dir.toLowerCase()||"rtl"===v(s,"direction")),wrongRTL:"-webkit-box"===v(r,"display")}),!0}init(e){const t=this;if(t.initialized)return t;if(!1===t.mount(e))return t;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();const s=[...t.el.querySelectorAll('[loading="lazy"]')];return t.isElement&&s.push(...t.hostEl.querySelectorAll('[loading="lazy"]')),s.forEach((e=>{e.complete?P(t,e):e.addEventListener("load",(e=>{P(t,e.target)}))})),k(t),t.initialized=!0,k(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:i,el:r,wrapperEl:n,slides:a}=s;return void 0===s.params||s.destroyed||(s.emit("beforeDestroy"),s.initialized=!1,s.detachEvents(),i.loop&&s.loopDestroy(),t&&(s.removeClasses(),r.removeAttribute("style"),n.removeAttribute("style"),a&&a.length&&a.forEach((e=>{e.classList.remove(i.slideVisibleClass,i.slideFullyVisibleClass,i.slideActiveClass,i.slideNextClass,i.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){c(X,e)}static get extendedDefaults(){return X}static get defaults(){return W}static installModule(e){U.prototype.__modules__||(U.prototype.__modules__=[]);const t=U.prototype.__modules__;"function"==typeof e&&t.indexOf(e)<0&&t.push(e)}static use(e){return Array.isArray(e)?(e.forEach((e=>U.installModule(e))),U):(U.installModule(e),U)}}Object.keys(Y).forEach((e=>{Object.keys(Y[e]).forEach((t=>{U.prototype[t]=Y[e][t]}))})),U.use([function(e){let{swiper:t,on:s,emit:i}=e;const r=n();let a=null,o=null;const l=()=>{t&&!t.destroyed&&t.initialized&&(i("beforeResize"),i("resize"))},d=()=>{t&&!t.destroyed&&t.initialized&&i("orientationchange")};s("init",(()=>{t.params.resizeObserver&&void 0!==r.ResizeObserver?t&&!t.destroyed&&t.initialized&&(a=new ResizeObserver((e=>{o=r.requestAnimationFrame((()=>{const{width:s,height:i}=t;let r=s,n=i;e.forEach((e=>{let{contentBoxSize:s,contentRect:i,target:a}=e;a&&a!==t.el||(r=i?i.width:(s[0]||s).inlineSize,n=i?i.height:(s[0]||s).blockSize)})),r===s&&n===i||l()}))})),a.observe(t.el)):(r.addEventListener("resize",l),r.addEventListener("orientationchange",d))})),s("destroy",(()=>{o&&r.cancelAnimationFrame(o),a&&a.unobserve&&t.el&&(a.unobserve(t.el),a=null),r.removeEventListener("resize",l),r.removeEventListener("orientationchange",d)}))},function(e){let{swiper:t,extendParams:s,on:i,emit:r}=e;const a=[],o=n(),l=function(e,s){void 0===s&&(s={});const i=new(o.MutationObserver||o.WebkitMutationObserver)((e=>{if(t.__preventObserver__)return;if(1===e.length)return void r("observerUpdate",e[0]);const s=function(){r("observerUpdate",e[0])};o.requestAnimationFrame?o.requestAnimationFrame(s):o.setTimeout(s,0)}));i.observe(e,{attributes:void 0===s.attributes||s.attributes,childList:void 0===s.childList||s.childList,characterData:void 0===s.characterData||s.characterData}),a.push(i)};s({observer:!1,observeParents:!1,observeSlideChildren:!1}),i("init",(()=>{if(t.params.observer){if(t.params.observeParents){const e=function(e,t){const s=[];let i=e.parentElement;for(;i;)t?i.matches(t)&&s.push(i):s.push(i),i=i.parentElement;return s}(t.hostEl);for(let t=0;t{a.forEach((e=>{e.disconnect()})),a.splice(0,a.length)}))}]);const K=["eventsPrefix","injectStyles","injectStylesUrls","modules","init","_direction","oneWayMovement","touchEventsTarget","initialSlide","_speed","cssMode","updateOnWindowResize","resizeObserver","nested","focusableElements","_enabled","_width","_height","preventInteractionOnTransition","userAgent","url","_edgeSwipeDetection","_edgeSwipeThreshold","_freeMode","_autoHeight","setWrapperSize","virtualTranslate","_effect","breakpoints","breakpointsBase","_spaceBetween","_slidesPerView","maxBackfaceHiddenSlides","_grid","_slidesPerGroup","_slidesPerGroupSkip","_slidesPerGroupAuto","_centeredSlides","_centeredSlidesBounds","_slidesOffsetBefore","_slidesOffsetAfter","normalizeSlideIndex","_centerInsufficientSlides","_watchOverflow","roundLengths","touchRatio","touchAngle","simulateTouch","_shortSwipes","_longSwipes","longSwipesRatio","longSwipesMs","_followFinger","allowTouchMove","_threshold","touchMoveStopPropagation","touchStartPreventDefault","touchStartForcePreventDefault","touchReleaseOnEdges","uniqueNavElements","_resistance","_resistanceRatio","_watchSlidesProgress","_grabCursor","preventClicks","preventClicksPropagation","_slideToClickedSlide","_loop","loopAdditionalSlides","loopAddBlankSlides","loopPreventsSliding","_rewind","_allowSlidePrev","_allowSlideNext","_swipeHandler","_noSwiping","noSwipingClass","noSwipingSelector","passiveListeners","containerModifierClass","slideClass","slideActiveClass","slideVisibleClass","slideFullyVisibleClass","slideNextClass","slidePrevClass","slideBlankClass","wrapperClass","lazyPreloaderClass","lazyPreloadPrevNext","runCallbacksOnInit","observer","observeParents","observeSlideChildren","a11y","_autoplay","_controller","coverflowEffect","cubeEffect","fadeEffect","flipEffect","creativeEffect","cardsEffect","hashNavigation","history","keyboard","mousewheel","_navigation","_pagination","parallax","_scrollbar","_thumbs","virtual","zoom","control"];function Z(e){return"object"==typeof e&&null!==e&&e.constructor&&"Object"===Object.prototype.toString.call(e).slice(8,-1)&&!e.__swiper__}function J(e,t){const s=["__proto__","constructor","prototype"];Object.keys(t).filter((e=>s.indexOf(e)<0)).forEach((s=>{void 0===e[s]?e[s]=t[s]:Z(t[s])&&Z(e[s])&&Object.keys(t[s]).length>0?t[s].__swiper__?e[s]=t[s]:J(e[s],t[s]):e[s]=t[s]}))}function Q(e){return void 0===e&&(e=""),e.replace(/-[a-z]/g,(e=>e.toUpperCase().replace("-","")))}const ee=e=>{if(parseFloat(e)===Number(e))return Number(e);if("true"===e)return!0;if(""===e)return!0;if("false"===e)return!1;if("null"===e)return null;if("undefined"!==e){if("string"==typeof e&&e.includes("{")&&e.includes("}")&&e.includes('"')){let t;try{t=JSON.parse(e)}catch(s){t=e}return t}return e}},te=["a11y","autoplay","controller","cards-effect","coverflow-effect","creative-effect","cube-effect","fade-effect","flip-effect","free-mode","grid","hash-navigation","history","keyboard","mousewheel","navigation","pagination","parallax","scrollbar","thumbs","virtual","zoom"];function se(e,t,s){const i={},r={};J(i,W);const n=[...K,"on"],a=n.map((e=>e.replace(/_/,"")));n.forEach((t=>{t=t.replace("_",""),void 0!==e[t]&&(r[t]=e[t])}));const o=[...e.attributes];return"string"==typeof t&&void 0!==s&&o.push({name:t,value:Z(s)?{...s}:s}),o.forEach((e=>{const t=te.filter((t=>0===e.name.indexOf(`${t}-`)))[0];if(t){const s=Q(t),i=Q(e.name.split(`${t}-`)[1]);void 0===r[s]&&(r[s]={}),!0===r[s]&&(r[s]={enabled:!0}),r[s][i]=ee(e.value)}else{const t=Q(e.name);if(!a.includes(t))return;const s=ee(e.value);r[t]&&te.includes(e.name)&&!Z(s)?(r[t].constructor!==Object&&(r[t]={}),r[t].enabled=!!s):r[t]=s}})),J(i,r),i.navigation?i.navigation={prevEl:".swiper-button-prev",nextEl:".swiper-button-next",...!0!==i.navigation?i.navigation:{}}:!1===i.navigation&&delete i.navigation,i.scrollbar?i.scrollbar={el:".swiper-scrollbar",...!0!==i.scrollbar?i.scrollbar:{}}:!1===i.scrollbar&&delete i.scrollbar,i.pagination?i.pagination={el:".swiper-pagination",...!0!==i.pagination?i.pagination:{}}:!1===i.pagination&&delete i.pagination,{params:i,passedParams:r}}const ie=":host{--swiper-theme-color:#007aff}:host{position:relative;display:block;margin-left:auto;margin-right:auto;z-index:1}.swiper{width:100%;height:100%;margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);box-sizing:content-box}.swiper-android ::slotted(swiper-slide),.swiper-ios ::slotted(swiper-slide),.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}::slotted(swiper-slide){flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}::slotted(.swiper-slide-invisible-blank){visibility:hidden}.swiper-autoheight,.swiper-autoheight ::slotted(swiper-slide){height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden ::slotted(swiper-slide){transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d ::slotted(swiper-slide){transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode ::slotted(swiper-slide){scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode ::slotted(swiper-slide){scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered ::slotted(swiper-slide){scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal ::slotted(swiper-slide):first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical ::slotted(swiper-slide):first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}";const re="undefined"==typeof window||"undefined"==typeof HTMLElement?class{}:HTMLElement,ne='\n ',ae=(e,t)=>{if("undefined"!=typeof CSSStyleSheet&&e.adoptedStyleSheets){const s=new CSSStyleSheet;s.replaceSync(t),e.adoptedStyleSheets=[s]}else{const s=document.createElement("style");s.rel="stylesheet",s.textContent=t,e.appendChild(s)}};class oe extends re{constructor(){super(),this.attachShadow({mode:"open"})}static get nextButtonSvg(){return ne}static get prevButtonSvg(){return ne.replace("/>",' transform-origin="center" transform="rotate(180)"/>')}cssStyles(){return[ie,...this.injectStyles&&Array.isArray(this.injectStyles)?this.injectStyles:[]].join("\n")}cssLinks(){return this.injectStylesUrls||[]}calcSlideSlots(){const e=this.slideSlots||0,t=[...this.querySelectorAll("[slot^=slide-]")].map((e=>parseInt(e.getAttribute("slot").split("slide-")[1],10)));if(this.slideSlots=t.length?Math.max(...t)+1:0,this.rendered)if(this.slideSlots>e)for(let t=e;t=0;t-=1)t>this.slideSlots&&e[t].remove()}}render(){if(this.rendered)return;this.calcSlideSlots();let e=this.cssStyles();this.slideSlots>0&&(e=e.replace(/::slotted\(([a-z-0-9.]*)\)/g,"$1")),e.length&&ae(this.shadowRoot,e),this.cssLinks().forEach((e=>{if(this.shadowRoot.querySelector(`link[href="${e}"]`))return;const t=document.createElement("link");t.rel="stylesheet",t.href=e,this.shadowRoot.appendChild(t)}));const t=document.createElement("div");var s;t.classList.add("swiper"),t.part="container",t.innerHTML=`\n \n
    \n \n ${Array.from({length:this.slideSlots}).map(((e,t)=>`\n \n \n \n `)).join("")}\n
    \n \n ${s=this.passedParams,void 0===s&&(s={}),s.navigation&&void 0===s.navigation.nextEl&&void 0===s.navigation.prevEl?`\n
    ${this.constructor.prevButtonSvg}
    \n
    ${this.constructor.nextButtonSvg}
    \n `:""}\n ${function(e){return void 0===e&&(e={}),e.pagination&&void 0===e.pagination.el}(this.passedParams)?'\n
    \n ':""}\n ${function(e){return void 0===e&&(e={}),e.scrollbar&&void 0===e.scrollbar.el}(this.passedParams)?'\n
    \n ':""}\n `,this.shadowRoot.appendChild(t),this.rendered=!0}initialize(){var e=this;if(this.initialized)return;this.initialized=!0;const{params:t,passedParams:s}=se(this);this.swiperParams=t,this.passedParams=s,delete this.swiperParams.init,this.render(),this.swiper=new U(this.shadowRoot.querySelector(".swiper"),{...t.virtual?{}:{observer:!0,observeSlideChildren:this.slideSlots>0},...t,touchEventsTarget:"container",onAny:function(s){"observerUpdate"===s&&e.calcSlideSlots();const i=t.eventsPrefix?`${t.eventsPrefix}${s.toLowerCase()}`:s.toLowerCase();for(var r=arguments.length,n=new Array(r>1?r-1:0),a=1;a"children"!==e&&"direction"!==e&&"wrapperClass"!==e)),{params:c,pagination:p,navigation:u,scrollbar:h,virtual:f,thumbs:m}=t;let v,g,w,b,S,T,y,x;r.includes("thumbs")&&i.thumbs&&i.thumbs.swiper&&c.thumbs&&!c.thumbs.swiper&&(v=!0),r.includes("controller")&&i.controller&&i.controller.control&&c.controller&&!c.controller.control&&(g=!0),r.includes("pagination")&&i.pagination&&(i.pagination.el||l)&&(c.pagination||!1===c.pagination)&&p&&!p.el&&(w=!0),r.includes("scrollbar")&&i.scrollbar&&(i.scrollbar.el||o)&&(c.scrollbar||!1===c.scrollbar)&&h&&!h.el&&(b=!0),r.includes("navigation")&&i.navigation&&(i.navigation.prevEl||a)&&(i.navigation.nextEl||n)&&(c.navigation||!1===c.navigation)&&u&&!u.prevEl&&!u.nextEl&&(S=!0);const E=e=>{t[e]&&(t[e].destroy(),"navigation"===e?(t.isElement&&(t[e].prevEl.remove(),t[e].nextEl.remove()),c[e].prevEl=void 0,c[e].nextEl=void 0,t[e].prevEl=void 0,t[e].nextEl=void 0):(t.isElement&&t[e].el.remove(),c[e].el=void 0,t[e].el=void 0))};r.includes("loop")&&t.isElement&&(c.loop&&!i.loop?T=!0:!c.loop&&i.loop?y=!0:x=!0),d.forEach((e=>{if(Z(c[e])&&Z(i[e]))Object.assign(c[e],i[e]),"navigation"!==e&&"pagination"!==e&&"scrollbar"!==e||!("enabled"in i[e])||i[e].enabled||E(e);else{const t=i[e];!0!==t&&!1!==t||"navigation"!==e&&"pagination"!==e&&"scrollbar"!==e?c[e]=i[e]:!1===t&&E(e)}})),d.includes("controller")&&!g&&t.controller&&t.controller.control&&c.controller&&c.controller.control&&(t.controller.control=c.controller.control),r.includes("children")&&s&&f&&c.virtual.enabled?(f.slides=s,f.update(!0)):r.includes("virtual")&&f&&c.virtual.enabled&&(s&&(f.slides=s),f.update(!0)),r.includes("children")&&s&&c.loop&&(x=!0),v&&m.init()&&m.update(!0);g&&(t.controller.control=c.controller.control),w&&(!t.isElement||l&&"string"!=typeof l||(l=document.createElement("div"),l.classList.add("swiper-pagination"),l.part.add("pagination"),t.el.appendChild(l)),l&&(c.pagination.el=l),p.init(),p.render(),p.update()),b&&(!t.isElement||o&&"string"!=typeof o||(o=document.createElement("div"),o.classList.add("swiper-scrollbar"),o.part.add("scrollbar"),t.el.appendChild(o)),o&&(c.scrollbar.el=o),h.init(),h.updateSize(),h.setTranslate()),S&&(t.isElement&&(n&&"string"!=typeof n||(n=document.createElement("div"),n.classList.add("swiper-button-next"),n.innerHTML=t.hostEl.constructor.nextButtonSvg,n.part.add("button-next"),t.el.appendChild(n)),a&&"string"!=typeof a||(a=document.createElement("div"),a.classList.add("swiper-button-prev"),a.innerHTML=t.hostEl.constructor.prevButtonSvg,a.part.add("button-prev"),t.el.appendChild(a))),n&&(c.navigation.nextEl=n),a&&(c.navigation.prevEl=a),u.init(),u.update()),r.includes("allowSlideNext")&&(t.allowSlideNext=i.allowSlideNext),r.includes("allowSlidePrev")&&(t.allowSlidePrev=i.allowSlidePrev),r.includes("direction")&&t.changeDirection(i.direction,!1),(T||x)&&t.loopDestroy(),(y||x)&&t.loopCreate(),t.update()}({swiper:this.swiper,passedParams:this.passedParams,changedParams:[Q(e)],..."navigation"===e&&i[e]?{prevEl:".swiper-button-prev",nextEl:".swiper-button-next"}:{},..."pagination"===e&&i[e]?{paginationEl:".swiper-pagination"}:{},..."scrollbar"===e&&i[e]?{scrollbarEl:".swiper-scrollbar"}:{}})}attributeChangedCallback(e,t,s){this.initialized&&("true"===t&&null===s&&(s=!1),this.updateSwiperOnPropChange(e,s))}static get observedAttributes(){return K.filter((e=>e.includes("_"))).map((e=>e.replace(/[A-Z]/g,(e=>`-${e}`)).replace("_","").toLowerCase()))}}K.forEach((e=>{"init"!==e&&(e=e.replace("_",""),Object.defineProperty(oe.prototype,e,{configurable:!0,get(){return(this.passedParams||{})[e]},set(t){this.passedParams||(this.passedParams={}),this.passedParams[e]=t,this.initialized&&this.updateSwiperOnPropChange(e,t)}}))}));class le extends re{constructor(){super(),this.attachShadow({mode:"open"})}render(){const e=this.lazy||""===this.getAttribute("lazy")||"true"===this.getAttribute("lazy");if(ae(this.shadowRoot,"::slotted(.swiper-slide-shadow),::slotted(.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-top){position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}::slotted(.swiper-slide-shadow){background:rgba(0,0,0,.15)}::slotted(.swiper-slide-shadow-left){background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-slide-shadow-right){background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-slide-shadow-top){background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-slide-shadow-bottom){background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear;width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-top){z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-top){z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}::slotted(.swiper-zoom-container){width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}::slotted(.swiper-zoom-container)>canvas,::slotted(.swiper-zoom-container)>img,::slotted(.swiper-zoom-container)>svg{max-width:100%;max-height:100%;object-fit:contain}"),this.shadowRoot.appendChild(document.createElement("slot")),e){const e=document.createElement("div");e.classList.add("swiper-lazy-preloader"),e.part.add("preloader"),this.shadowRoot.appendChild(e)}}initialize(){this.render()}connectedCallback(){this.initialize()}}"undefined"!=typeof window&&(window.SwiperElementRegisterParams=e=>{K.push(...e)}),"undefined"!=typeof window&&(window.customElements.get("swiper-container")||window.customElements.define("swiper-container",oe),window.customElements.get("swiper-slide")||window.customElements.define("swiper-slide",le))}(); -//# sourceMappingURL=swiper-element.min.js.map \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/swiper-element.min.js.map b/build/assets/js/vendor/swiper/swiper-element.min.js.map deleted file mode 100644 index 74b7cda..0000000 --- a/build/assets/js/vendor/swiper/swiper-element.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"swiper-element.js.js","names":["isObject$2","obj","constructor","Object","extend$2","target","src","keys","forEach","key","length","ssrDocument","body","addEventListener","removeEventListener","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","createElement","children","childNodes","style","setAttribute","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","getDocument","doc","document","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","this","getComputedStyle","getPropertyValue","Image","Date","screen","setTimeout","clearTimeout","matchMedia","requestAnimationFrame","callback","cancelAnimationFrame","id","getWindow","win","window","nextTick","delay","now","getTranslate","el","axis","matrix","curTransform","transformMatrix","curStyle","currentStyle","getComputedStyle$1","WebKitCSSMatrix","transform","webkitTransform","split","map","a","replace","join","MozTransform","OTransform","MsTransform","msTransform","toString","m41","parseFloat","m42","isObject$1","o","prototype","call","slice","extend$1","to","arguments","undefined","noExtend","i","nextSource","node","HTMLElement","nodeType","keysArray","filter","indexOf","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","enumerable","__swiper__","setCSSProperty","varName","varValue","setProperty","animateCSSModeScroll","_ref","swiper","targetPosition","side","startPosition","translate","time","startTime","duration","params","speed","wrapperEl","scrollSnapType","cssModeFrameID","dir","isOutOfBound","current","animate","getTime","progress","Math","max","min","easeProgress","cos","PI","currentPosition","scrollTo","overflow","elementChildren","element","selector","matches","showWarning","text","console","warn","err","tag","classes","classList","add","Array","isArray","trim","c","classesToTokens","elementStyle","prop","elementIndex","child","previousSibling","elementOuterSize","size","includeMargins","offsetWidth","support","deviceCached","browser","getSupport","smoothScroll","documentElement","touch","DocumentTouch","calcSupport","getDevice","overrides","_temp","platform","ua","device","ios","android","screenWidth","width","screenHeight","height","match","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","needPerspectiveFix","isSafari","toLowerCase","String","includes","major","minor","num","Number","isWebView","test","calcBrowser","eventsEmitter","on","events","handler","priority","self","eventsListeners","destroyed","method","event","once","onceHandler","off","__emitterProxy","_len","args","_key","apply","onAny","eventsAnyListeners","offAny","index","splice","eventHandler","emit","data","context","_len2","_key2","unshift","processLazyPreloader","imageEl","slideEl","closest","isElement","slideClass","lazyEl","lazyPreloaderClass","shadowRoot","remove","unlazy","slides","removeAttribute","preload","amount","lazyPreloadPrevNext","slidesPerView","slidesPerViewDynamic","ceil","activeIndex","grid","rows","activeColumn","preloadColumns","push","from","_","column","slideIndexLastInView","rewind","loop","realIndex","update","updateSize","clientWidth","clientHeight","isHorizontal","isVertical","parseInt","isNaN","assign","updateSlides","getDirectionPropertyValue","label","getDirectionLabel","slidesEl","swiperSize","rtlTranslate","rtl","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginRight","marginBottom","marginTop","centeredSlides","cssMode","gridEnabled","slideSize","initSlides","unsetSlides","shouldResetSlideSize","breakpoints","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","floor","swiperSlideSize","abs","slidesPerGroup","slidesPerGroupSkip","effect","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","groups","slidesBefore","slidesAfter","groupSize","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","v","watchOverflow","checkOverflow","watchSlidesProgress","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","contains","maxBackfaceHiddenSlides","updateAutoHeight","activeSlides","newHeight","setTransition","getSlideByIndex","getSlideIndexByData","visibleSlides","offsetHeight","minusOffset","offsetLeft","offsetTop","swiperSlideOffset","cssOverflowAdjustment","updateSlidesProgress","offsetCenter","slideVisibleClass","slideFullyVisibleClass","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","isFullyVisible","originalProgress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","progressLoop","wasBeginning","wasEnd","isBeginningRounded","isEndRounded","firstSlideIndex","lastSlideIndex","firstSlideTranslate","lastSlideTranslate","translateMax","translateAbs","autoHeight","updateSlidesClasses","getFilteredSlide","activeSlide","prevSlide","nextSlide","slideActiveClass","slideNextClass","slidePrevClass","nextEls","nextElementSibling","next","elementNextAll","prevEls","previousElementSibling","prev","elementPrevAll","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","getVirtualRealIndex","aIndex","normalizeSlideIndex","getActiveIndexByTranslate","skip","firstSlideInColumn","activeSlideIndex","getAttribute","initialized","runCallbacksOnInit","updateClickedSlide","path","pathEl","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","virtualTranslate","currentTranslate","setTranslate","byController","newProgress","x","y","previousTranslate","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","isH","behavior","onTranslateToWrapperTransitionEnd","e","transitionEmit","direction","step","slideTo","initial","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","transitionStart","transitionEnd","t","_immediateVirtual","_cssModeVirtualInitialSet","initialSlide","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","targetSlideIndex","cols","needLoopFix","loopFix","slideRealIndex","slideNext","perGroup","slidesPerGroupAuto","increment","loopPreventsSliding","_clientLeft","clientLeft","slidePrev","normalize","val","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","lastIndex","slideReset","slideToClosest","threshold","currentSnap","slideToIndex","slideSelector","loopedSlides","getSlideIndex","loopCreate","shouldFillGroup","shouldFillGrid","addBlankSlides","amountOfSlides","slideBlankClass","append","loopAddBlankSlides","recalcSlides","byMousewheel","loopAdditionalSlides","fill","prependSlidesIndexes","appendSlidesIndexes","isNext","isPrev","slidesPrepended","slidesAppended","activeColIndexWithShift","colIndexToPrepend","__preventObserver__","swiperLoopMoveDOM","prepend","currentSlideTranslate","diff","touchEventsData","startTranslate","shift","controller","control","loopParams","loopDestroy","newSlidesOrder","swiperSlideIndex","preventEdgeSwipe","startX","edgeSwipeDetection","edgeSwipeThreshold","innerWidth","preventDefault","onTouchStart","originalEvent","type","pointerId","targetTouches","touchId","identifier","pageX","touches","simulateTouch","pointerType","targetEl","touchEventsTarget","which","button","isTouched","isMoved","swipingClassHasValue","noSwipingClass","eventPath","composedPath","noSwipingSelector","isTargetShadow","noSwiping","base","__closestFrom","assignedSlot","found","getRootNode","closestElement","allowClick","swipeHandler","currentX","currentY","pageY","startY","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","freeMode","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","previousX","previousY","diffX","diffY","sqrt","touchAngle","atan2","cancelable","touchMoveStopPropagation","nested","stopPropagation","touchesDiff","oneWayMovement","touchRatio","prevTouchesDirection","touchesDirection","isLoop","allowLoopFix","evt","bubbles","dispatchEvent","allowMomentumBounce","grabCursor","setGrabCursor","loopSwapReset","disableParentSwiper","resistanceRatio","resistance","followFinger","onTouchEnd","touchEndTime","timeDiff","pathTree","lastClickTime","currentPos","swipeToLast","stopIndex","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","setBreakpoint","isVirtualLoop","autoplay","running","paused","resizeTimeout","resume","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","scrollLeft","scrollTop","onLoad","onDocumentTouchStart","documentTouchHandlerProceeded","touchAction","capture","domMethod","swiperMethod","passive","updateOnWindowResize","isGridEnabled","defaults","init","resizeObserver","createElements","eventsPrefix","url","breakpointsBase","uniqueNavElements","passiveListeners","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","transition","transitionDuration","transitionDelay","moving","isLocked","cursor","unsetGrabCursor","attachEvents","bind","detachEvents","breakpoint","getBreakpoint","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","wasModuleEnabled","isModuleEnabled","disable","enable","directionChanged","needsReLoop","wasLoop","changeDirection","isEnabled","hasLoop","containerEl","currentHeight","innerHeight","points","point","minRatio","substr","value","sort","b","wasLocked","lastSlideRightEdge","addClasses","classNames","suffixes","entries","prefix","resultClasses","item","prepareClasses","autoheight","centered","removeClasses","extendedDefaults","Swiper","swipers","newParams","modules","__modules__","mod","extendParams","swiperParams","passedParams","eventName","velocity","trunc","clickTimeout","velocities","imagesToLoad","imagesLoaded","property","setProgress","cls","className","getSlideClasses","updates","view","exact","spv","breakLoop","translateValue","translated","complete","newDirection","needUpdate","currentDirection","changeLanguageDirection","mount","mounted","parentNode","getWrapperSelector","getWrapper","slideSlots","hostEl","lazyElements","destroy","deleteInstance","cleanStyles","object","deleteProps","extendDefaults","newDefaults","installModule","use","module","m","prototypeGroup","protoMethod","observer","animationFrame","resizeHandler","orientationChangeHandler","ResizeObserver","newWidth","_ref2","contentBoxSize","contentRect","inlineSize","blockSize","observe","unobserve","observers","attach","options","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","observeParents","observeSlideChildren","containerParents","parents","parent","parentElement","elementParents","disconnect","paramsList","isObject","extend","attrToProp","attrName","l","toUpperCase","formatValue","JSON","parse","modulesParamsList","getParams","propName","propValue","localParamsList","allowedParams","paramName","attrsList","name","attr","moduleParam","mParam","parentObjName","subObjName","scrollbar","pagination","SwiperCSS","ClassToExtend","arrowSvg","addStyle","styles","CSSStyleSheet","adoptedStyleSheets","styleSheet","replaceSync","rel","textContent","appendChild","SwiperContainer","super","attachShadow","mode","nextButtonSvg","prevButtonSvg","cssStyles","injectStyles","cssLinks","injectStylesUrls","calcSlideSlots","currentSideSlots","slideSlotChildren","rendered","slotEl","render","localStyles","linkEl","part","innerHTML","needsPagination","needsScrollbar","initialize","_this","detail","connectedCallback","disconnectedCallback","updateSwiperOnPropChange","changedParams","scrollbarEl","paginationEl","updateParams","currentParams","thumbs","needThumbsInit","needControllerInit","needPaginationInit","needScrollbarInit","needNavigationInit","loopNeedDestroy","loopNeedEnable","loopNeedReloop","destroyModule","newValue","updateSwiper","attributeChangedCallback","prevValue","observedAttributes","param","defineProperty","configurable","get","set","SwiperSlide","lazy","lazyDiv","SwiperElementRegisterParams","customElements","define"],"sources":["0"],"mappings":"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"} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/swiper-element.min.mjs b/build/assets/js/vendor/swiper/swiper-element.min.mjs deleted file mode 100644 index 45d547a..0000000 --- a/build/assets/js/vendor/swiper/swiper-element.min.mjs +++ /dev/null @@ -1,14 +0,0 @@ -/** - * Swiper Custom Element 11.0.5 - * 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: November 22, 2023 - */ - -import{S as Swiper}from"./shared/swiper-core.min.mjs";import{p as paramsList,n as needsNavigation,a as needsPagination,b as needsScrollbar,u as updateSwiper,c as attrToProp}from"./shared/update-swiper.min.mjs";import{g as getParams}from"./shared/get-element-params.min.mjs";const SwiperCSS=":host{--swiper-theme-color:#007aff}:host{position:relative;display:block;margin-left:auto;margin-right:auto;z-index:1}.swiper{width:100%;height:100%;margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);box-sizing:content-box}.swiper-android ::slotted(swiper-slide),.swiper-ios ::slotted(swiper-slide),.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}::slotted(swiper-slide){flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}::slotted(.swiper-slide-invisible-blank){visibility:hidden}.swiper-autoheight,.swiper-autoheight ::slotted(swiper-slide){height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden ::slotted(swiper-slide){transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d ::slotted(swiper-slide){transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode ::slotted(swiper-slide){scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode ::slotted(swiper-slide){scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered ::slotted(swiper-slide){scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal ::slotted(swiper-slide):first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical ::slotted(swiper-slide):first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}",SwiperSlideCSS="::slotted(.swiper-slide-shadow),::slotted(.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-top){position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}::slotted(.swiper-slide-shadow){background:rgba(0,0,0,.15)}::slotted(.swiper-slide-shadow-left){background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-slide-shadow-right){background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-slide-shadow-top){background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-slide-shadow-bottom){background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear;width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-top){z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-top){z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}::slotted(.swiper-zoom-container){width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}::slotted(.swiper-zoom-container)>canvas,::slotted(.swiper-zoom-container)>img,::slotted(.swiper-zoom-container)>svg{max-width:100%;max-height:100%;object-fit:contain}";class DummyHTMLElement{}const ClassToExtend="undefined"==typeof window||"undefined"==typeof HTMLElement?DummyHTMLElement:HTMLElement,arrowSvg='\n ',addStyle=(e,s)=>{if("undefined"!=typeof CSSStyleSheet&&e.adoptedStyleSheets){const t=new CSSStyleSheet;t.replaceSync(s),e.adoptedStyleSheets=[t]}else{const t=document.createElement("style");t.rel="stylesheet",t.textContent=s,e.appendChild(t)}};class SwiperContainer extends ClassToExtend{constructor(){super(),this.attachShadow({mode:"open"})}static get nextButtonSvg(){return arrowSvg}static get prevButtonSvg(){return arrowSvg.replace("/>",' transform-origin="center" transform="rotate(180)"/>')}cssStyles(){return[SwiperCSS,...this.injectStyles&&Array.isArray(this.injectStyles)?this.injectStyles:[]].join("\n")}cssLinks(){return this.injectStylesUrls||[]}calcSlideSlots(){const e=this.slideSlots||0,s=[...this.querySelectorAll("[slot^=slide-]")].map((e=>parseInt(e.getAttribute("slot").split("slide-")[1],10)));if(this.slideSlots=s.length?Math.max(...s)+1:0,this.rendered)if(this.slideSlots>e)for(let s=e;s=0;s-=1)s>this.slideSlots&&e[s].remove()}}render(){if(this.rendered)return;this.calcSlideSlots();let e=this.cssStyles();this.slideSlots>0&&(e=e.replace(/::slotted\(([a-z-0-9.]*)\)/g,"$1")),e.length&&addStyle(this.shadowRoot,e),this.cssLinks().forEach((e=>{if(this.shadowRoot.querySelector(`link[href="${e}"]`))return;const s=document.createElement("link");s.rel="stylesheet",s.href=e,this.shadowRoot.appendChild(s)}));const s=document.createElement("div");s.classList.add("swiper"),s.part="container",s.innerHTML=`\n \n
    \n \n ${Array.from({length:this.slideSlots}).map(((e,s)=>`\n \n \n \n `)).join("")}\n
    \n \n ${needsNavigation(this.passedParams)?`\n
    ${this.constructor.prevButtonSvg}
    \n
    ${this.constructor.nextButtonSvg}
    \n `:""}\n ${needsPagination(this.passedParams)?'\n
    \n ':""}\n ${needsScrollbar(this.passedParams)?'\n
    \n ':""}\n `,this.shadowRoot.appendChild(s),this.rendered=!0}initialize(){var e=this;if(this.initialized)return;this.initialized=!0;const{params:s,passedParams:t}=getParams(this);this.swiperParams=s,this.passedParams=t,delete this.swiperParams.init,this.render(),this.swiper=new Swiper(this.shadowRoot.querySelector(".swiper"),{...s.virtual?{}:{observer:!0,observeSlideChildren:this.slideSlots>0},...s,touchEventsTarget:"container",onAny:function(t){"observerUpdate"===t&&e.calcSlideSlots();const i=s.eventsPrefix?`${s.eventsPrefix}${t.toLowerCase()}`:t.toLowerCase();for(var r=arguments.length,a=new Array(r>1?r-1:0),o=1;oe.includes("_"))).map((e=>e.replace(/[A-Z]/g,(e=>`-${e}`)).replace("_","").toLowerCase()))}}paramsList.forEach((e=>{"init"!==e&&(e=e.replace("_",""),Object.defineProperty(SwiperContainer.prototype,e,{configurable:!0,get(){return(this.passedParams||{})[e]},set(s){this.passedParams||(this.passedParams={}),this.passedParams[e]=s,this.initialized&&this.updateSwiperOnPropChange(e,s)}}))}));class SwiperSlide extends ClassToExtend{constructor(){super(),this.attachShadow({mode:"open"})}render(){const e=this.lazy||""===this.getAttribute("lazy")||"true"===this.getAttribute("lazy");if(addStyle(this.shadowRoot,SwiperSlideCSS),this.shadowRoot.appendChild(document.createElement("slot")),e){const e=document.createElement("div");e.classList.add("swiper-lazy-preloader"),e.part.add("preloader"),this.shadowRoot.appendChild(e)}}initialize(){this.render()}connectedCallback(){this.initialize()}}const register=()=>{"undefined"!=typeof window&&(window.customElements.get("swiper-container")||window.customElements.define("swiper-container",SwiperContainer),window.customElements.get("swiper-slide")||window.customElements.define("swiper-slide",SwiperSlide))};"undefined"!=typeof window&&(window.SwiperElementRegisterParams=e=>{paramsList.push(...e)});export{SwiperContainer,SwiperSlide,register}; -//# sourceMappingURL=swiper-element.min.mjs.map \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/swiper-element.min.mjs.map b/build/assets/js/vendor/swiper/swiper-element.min.mjs.map deleted file mode 100644 index b4913bc..0000000 --- a/build/assets/js/vendor/swiper/swiper-element.min.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"swiper-element.mjs.mjs","names":["Swiper","paramsList","needsNavigation","needsPagination","needsScrollbar","updateSwiper","attrToProp","getParams","SwiperCSS","SwiperSlideCSS","DummyHTMLElement","ClassToExtend","window","HTMLElement","arrowSvg","addStyle","shadowRoot","styles","CSSStyleSheet","adoptedStyleSheets","styleSheet","replaceSync","style","document","createElement","rel","textContent","appendChild","SwiperContainer","constructor","super","this","attachShadow","mode","nextButtonSvg","prevButtonSvg","replace","cssStyles","injectStyles","Array","isArray","join","cssLinks","injectStylesUrls","calcSlideSlots","currentSideSlots","slideSlots","slideSlotChildren","querySelectorAll","map","child","parseInt","getAttribute","split","length","Math","max","rendered","i","slideEl","setAttribute","slotEl","querySelector","slides","swiper","remove","render","localStyles","forEach","url","linkEl","href","el","classList","add","part","innerHTML","from","_","index","passedParams","initialize","_this","initialized","params","swiperParams","init","virtual","observer","observeSlideChildren","touchEventsTarget","onAny","name","eventName","eventsPrefix","toLowerCase","_len","arguments","args","_key","event","CustomEvent","detail","bubbles","cancelable","dispatchEvent","connectedCallback","nested","closest","swiperLoopMoveDOM","disconnectedCallback","destroy","updateSwiperOnPropChange","propName","propValue","changedParams","prevEl","nextEl","paginationEl","scrollbarEl","attributeChangedCallback","attr","prevValue","newValue","observedAttributes","filter","param","includes","v","paramName","Object","defineProperty","prototype","configurable","get","set","value","SwiperSlide","lazy","lazyDiv","register","customElements","define","SwiperElementRegisterParams","push"],"sources":["0"],"mappings":"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"} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/swiper-element.mjs b/build/assets/js/vendor/swiper/swiper-element.mjs deleted file mode 100644 index caa3d8f..0000000 --- a/build/assets/js/vendor/swiper/swiper-element.mjs +++ /dev/null @@ -1,286 +0,0 @@ -/** - * Swiper Custom Element 11.0.5 - * 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: November 22, 2023 - */ - -import { S as Swiper } from './shared/swiper-core.mjs'; -import { p as paramsList, n as needsNavigation, a as needsPagination, b as needsScrollbar, u as updateSwiper, c as attrToProp } from './shared/update-swiper.mjs'; -import { g as getParams } from './shared/get-element-params.mjs'; - -/* eslint-disable spaced-comment */ - -const SwiperCSS = `:host{--swiper-theme-color:#007aff}:host{position:relative;display:block;margin-left:auto;margin-right:auto;z-index:1}.swiper{width:100%;height:100%;margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);box-sizing:content-box}.swiper-android ::slotted(swiper-slide),.swiper-ios ::slotted(swiper-slide),.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}::slotted(swiper-slide){flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}::slotted(.swiper-slide-invisible-blank){visibility:hidden}.swiper-autoheight,.swiper-autoheight ::slotted(swiper-slide){height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden ::slotted(swiper-slide){transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d ::slotted(swiper-slide){transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode ::slotted(swiper-slide){scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode ::slotted(swiper-slide){scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered ::slotted(swiper-slide){scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal ::slotted(swiper-slide):first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical ::slotted(swiper-slide):first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}` -const SwiperSlideCSS = `::slotted(.swiper-slide-shadow),::slotted(.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-top){position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}::slotted(.swiper-slide-shadow){background:rgba(0,0,0,.15)}::slotted(.swiper-slide-shadow-left){background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-slide-shadow-right){background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-slide-shadow-top){background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}::slotted(.swiper-slide-shadow-bottom){background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear;width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-cube.swiper-slide-shadow-top){z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-bottom),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-left),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-right),::slotted(.swiper-slide-shadow-flip.swiper-slide-shadow-top){z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}::slotted(.swiper-zoom-container){width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}::slotted(.swiper-zoom-container)>canvas,::slotted(.swiper-zoom-container)>img,::slotted(.swiper-zoom-container)>svg{max-width:100%;max-height:100%;object-fit:contain}` - -class DummyHTMLElement {} -const ClassToExtend = typeof window === 'undefined' || typeof HTMLElement === 'undefined' ? DummyHTMLElement : HTMLElement; -const arrowSvg = ` - `; -const addStyle = (shadowRoot, styles) => { - if (typeof CSSStyleSheet !== 'undefined' && shadowRoot.adoptedStyleSheets) { - const styleSheet = new CSSStyleSheet(); - styleSheet.replaceSync(styles); - shadowRoot.adoptedStyleSheets = [styleSheet]; - } else { - const style = document.createElement('style'); - style.rel = 'stylesheet'; - style.textContent = styles; - shadowRoot.appendChild(style); - } -}; -class SwiperContainer extends ClassToExtend { - constructor() { - super(); - this.attachShadow({ - mode: 'open' - }); - } - static get nextButtonSvg() { - return arrowSvg; - } - static get prevButtonSvg() { - return arrowSvg.replace('/>', ' transform-origin="center" transform="rotate(180)"/>'); - } - cssStyles() { - return [SwiperCSS, - // eslint-disable-line - ...(this.injectStyles && Array.isArray(this.injectStyles) ? this.injectStyles : [])].join('\n'); - } - cssLinks() { - return this.injectStylesUrls || []; - } - calcSlideSlots() { - const currentSideSlots = this.slideSlots || 0; - // slide slots - const slideSlotChildren = [...this.querySelectorAll(`[slot^=slide-]`)].map(child => { - return parseInt(child.getAttribute('slot').split('slide-')[1], 10); - }); - this.slideSlots = slideSlotChildren.length ? Math.max(...slideSlotChildren) + 1 : 0; - if (!this.rendered) return; - if (this.slideSlots > currentSideSlots) { - for (let i = currentSideSlots; i < this.slideSlots; i += 1) { - const slideEl = document.createElement('swiper-slide'); - slideEl.setAttribute('part', `slide slide-${i + 1}`); - const slotEl = document.createElement('slot'); - slotEl.setAttribute('name', `slide-${i + 1}`); - slideEl.appendChild(slotEl); - this.shadowRoot.querySelector('.swiper-wrapper').appendChild(slideEl); - } - } else if (this.slideSlots < currentSideSlots) { - const slides = this.swiper.slides; - for (let i = slides.length - 1; i >= 0; i -= 1) { - if (i > this.slideSlots) { - slides[i].remove(); - } - } - } - } - render() { - if (this.rendered) return; - this.calcSlideSlots(); - - // local styles - let localStyles = this.cssStyles(); - if (this.slideSlots > 0) { - localStyles = localStyles.replace(/::slotted\(([a-z-0-9.]*)\)/g, '$1'); - } - if (localStyles.length) { - addStyle(this.shadowRoot, localStyles); - } - this.cssLinks().forEach(url => { - const linkExists = this.shadowRoot.querySelector(`link[href="${url}"]`); - if (linkExists) return; - const linkEl = document.createElement('link'); - linkEl.rel = 'stylesheet'; - linkEl.href = url; - this.shadowRoot.appendChild(linkEl); - }); - // prettier-ignore - const el = document.createElement('div'); - el.classList.add('swiper'); - el.part = 'container'; - - // prettier-ignore - el.innerHTML = ` - -
    - - ${Array.from({ - length: this.slideSlots - }).map((_, index) => ` - - - - `).join('')} -
    - - ${needsNavigation(this.passedParams) ? ` -
    ${this.constructor.prevButtonSvg}
    -
    ${this.constructor.nextButtonSvg}
    - ` : ''} - ${needsPagination(this.passedParams) ? ` -
    - ` : ''} - ${needsScrollbar(this.passedParams) ? ` -
    - ` : ''} - `; - this.shadowRoot.appendChild(el); - this.rendered = true; - } - initialize() { - var _this = this; - if (this.initialized) return; - this.initialized = true; - const { - params: swiperParams, - passedParams - } = getParams(this); - this.swiperParams = swiperParams; - this.passedParams = passedParams; - delete this.swiperParams.init; - this.render(); - - // eslint-disable-next-line - this.swiper = new Swiper(this.shadowRoot.querySelector('.swiper'), { - ...(swiperParams.virtual ? {} : { - observer: true, - observeSlideChildren: this.slideSlots > 0 - }), - ...swiperParams, - touchEventsTarget: 'container', - onAny: function (name) { - if (name === 'observerUpdate') { - _this.calcSlideSlots(); - } - const eventName = swiperParams.eventsPrefix ? `${swiperParams.eventsPrefix}${name.toLowerCase()}` : name.toLowerCase(); - for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - const event = new CustomEvent(eventName, { - detail: args, - bubbles: name !== 'hashChange', - cancelable: true - }); - _this.dispatchEvent(event); - } - }); - } - connectedCallback() { - if (this.initialized && this.nested && this.closest('swiper-slide') && this.closest('swiper-slide').swiperLoopMoveDOM) { - return; - } - if (this.init === false || this.getAttribute('init') === 'false') { - return; - } - this.initialize(); - } - disconnectedCallback() { - if (this.nested && this.closest('swiper-slide') && this.closest('swiper-slide').swiperLoopMoveDOM) { - return; - } - if (this.swiper && this.swiper.destroy) { - this.swiper.destroy(); - } - this.initialized = false; - } - updateSwiperOnPropChange(propName, propValue) { - const { - params: swiperParams, - passedParams - } = getParams(this, propName, propValue); - this.passedParams = passedParams; - this.swiperParams = swiperParams; - if (this.swiper && this.swiper.params[propName] === propValue) { - return; - } - updateSwiper({ - swiper: this.swiper, - passedParams: this.passedParams, - changedParams: [attrToProp(propName)], - ...(propName === 'navigation' && passedParams[propName] ? { - prevEl: '.swiper-button-prev', - nextEl: '.swiper-button-next' - } : {}), - ...(propName === 'pagination' && passedParams[propName] ? { - paginationEl: '.swiper-pagination' - } : {}), - ...(propName === 'scrollbar' && passedParams[propName] ? { - scrollbarEl: '.swiper-scrollbar' - } : {}) - }); - } - attributeChangedCallback(attr, prevValue, newValue) { - if (!this.initialized) return; - if (prevValue === 'true' && newValue === null) { - newValue = false; - } - this.updateSwiperOnPropChange(attr, newValue); - } - static get observedAttributes() { - const attrs = paramsList.filter(param => param.includes('_')).map(param => param.replace(/[A-Z]/g, v => `-${v}`).replace('_', '').toLowerCase()); - return attrs; - } -} -paramsList.forEach(paramName => { - if (paramName === 'init') return; - paramName = paramName.replace('_', ''); - Object.defineProperty(SwiperContainer.prototype, paramName, { - configurable: true, - get() { - return (this.passedParams || {})[paramName]; - }, - set(value) { - if (!this.passedParams) this.passedParams = {}; - this.passedParams[paramName] = value; - if (!this.initialized) return; - this.updateSwiperOnPropChange(paramName, value); - } - }); -}); -class SwiperSlide extends ClassToExtend { - constructor() { - super(); - this.attachShadow({ - mode: 'open' - }); - } - render() { - const lazy = this.lazy || this.getAttribute('lazy') === '' || this.getAttribute('lazy') === 'true'; - addStyle(this.shadowRoot, SwiperSlideCSS); - this.shadowRoot.appendChild(document.createElement('slot')); - if (lazy) { - const lazyDiv = document.createElement('div'); - lazyDiv.classList.add('swiper-lazy-preloader'); - lazyDiv.part.add('preloader'); - this.shadowRoot.appendChild(lazyDiv); - } - } - initialize() { - this.render(); - } - connectedCallback() { - this.initialize(); - } -} - -// eslint-disable-next-line -const register = () => { - if (typeof window === 'undefined') return; - if (!window.customElements.get('swiper-container')) window.customElements.define('swiper-container', SwiperContainer); - if (!window.customElements.get('swiper-slide')) window.customElements.define('swiper-slide', SwiperSlide); -}; -if (typeof window !== 'undefined') { - window.SwiperElementRegisterParams = params => { - paramsList.push(...params); - }; -} - -export { SwiperContainer, SwiperSlide, register }; diff --git a/build/assets/js/vendor/swiper/swiper-react.d.ts b/build/assets/js/vendor/swiper/swiper-react.d.ts deleted file mode 100644 index 002d8de..0000000 --- a/build/assets/js/vendor/swiper/swiper-react.d.ts +++ /dev/null @@ -1,501 +0,0 @@ -import * as React from 'react'; - -import type { SwiperOptions, Swiper as SwiperClass } from './types/index.d.ts'; - -type SwiperProps = Omit< - React.HTMLAttributes, - | 'onProgress' - | 'onClick' - | 'onTouchEnd' - | 'onTouchMove' - | 'onTouchStart' - | 'onTransitionEnd' - | 'onKeyPress' - | 'onDoubleClick' - | 'onScroll' - | 'onResize' -> & - SwiperOptions & { - /** - * Swiper container tag - * - * @default 'div' - */ - tag?: string; - - /** - * Swiper wrapper tag - * - * @default 'div' - */ - wrapperTag?: string; - - /** - * Get Swiper instance - */ - onSwiper?: (swiper: SwiperClass) => void; - - /** - * Event will be fired in when autoplay started - */ - onAutoplayStart?: (swiper: SwiperClass) => void; - /** - * Event will be fired when autoplay stopped - */ - onAutoplayStop?: (swiper: SwiperClass) => void; - /** - * Event will be fired on autoplay pause - */ - onAutoplayPause?: (swiper: SwiperClass) => void; - /** - * Event will be fired on autoplay resume - */ - onAutoplayResume?: (swiper: SwiperClass) => void; - /** - * Event triggers continuously while autoplay is enabled. It contains time left (in ms) before transition to next slide and percentage of that time related to autoplay delay - */ - onAutoplayTimeLeft?: (swiper: SwiperClass, timeLeft: number, percentage: number) => void; - /** - * Event will be fired when slide changed with autoplay - */ - onAutoplay?: (swiper: SwiperClass) => void;/** - * Event will be fired on window hash change - */ - onHashChange?: (swiper: SwiperClass) => void; - /** - * Event will be fired when swiper updates the hash - */ - onHashSet?: (swiper: SwiperClass) => void;/** - * Event will be fired on key press - */ - onKeyPress?: (swiper: SwiperClass, keyCode: string) => void;/** - * Event will be fired on mousewheel scroll - */ - onScroll?: (swiper: SwiperClass, event: WheelEvent) => void;/** - * Event will be fired on navigation hide - */ - onNavigationHide?: (swiper: SwiperClass) => void; - /** - * Event will be fired on navigation show - */ - onNavigationShow?: (swiper: SwiperClass) => void; - /** - * Event will be fired on navigation prev button click - */ - onNavigationPrev?: (swiper: SwiperClass) => void; - /** - * Event will be fired on navigation next button click - */ - onNavigationNext?: (swiper: SwiperClass) => void;/** - * Event will be fired after pagination rendered - */ - onPaginationRender?: (swiper: SwiperClass, paginationEl: HTMLElement) => void; - - /** - * Event will be fired when pagination updated - */ - onPaginationUpdate?: (swiper: SwiperClass, paginationEl: HTMLElement) => void; - - /** - * Event will be fired on pagination hide - */ - onPaginationHide?: (swiper: SwiperClass) => void; - - /** - * Event will be fired on pagination show - */ - onPaginationShow?: (swiper: SwiperClass) => void;/** - * Event will be fired on draggable scrollbar drag start - */ - onScrollbarDragStart?: (swiper: SwiperClass, event: MouseEvent | TouchEvent | PointerEvent) => void; - - /** - * Event will be fired on draggable scrollbar drag move - */ - onScrollbarDragMove?: (swiper: SwiperClass, event: MouseEvent | TouchEvent | PointerEvent) => void; - - /** - * Event will be fired on draggable scrollbar drag end - */ - onScrollbarDragEnd?: (swiper: SwiperClass, event: MouseEvent | TouchEvent | PointerEvent) => void;/** - * Event will be fired on zoom change - */ - onZoomChange?: (swiper: SwiperClass, scale: number, imageEl: HTMLElement, slideEl: HTMLElement) => void; - - /** - * Fired right after Swiper initialization. - * @note Note that with `swiper.on('init')` syntax it will - * work only in case you set `init: false` parameter. - * - * @example - * ```js - * const swiper = new Swiper('.swiper', { - * init: false, - * // other parameters - * }); - * swiper.on('init', function() { - * // do something - * }); - * // init Swiper - * swiper.init(); - * ``` - * - * @example - * ```js - * // Otherwise use it as the parameter: - * const swiper = new Swiper('.swiper', { - * // other parameters - * on: { - * init: function () { - * // do something - * }, - * } - * }); - * ``` - */ - onInit?: (swiper: SwiperClass) => any; - - /** - * Event will be fired right before Swiper destroyed - */ - onBeforeDestroy?: (swiper: SwiperClass) => void; - - /** - * Event will be fired after slides and their sizes are calculated and updated - */ - onSlidesUpdated?: (swiper: SwiperClass) => void; - /** - * Event will be fired when currently active slide is changed - */ - onSlideChange?: (swiper: SwiperClass) => void; - - /** - * Event will be fired in the beginning of animation to other slide (next or previous). - */ - onSlideChangeTransitionStart?: (swiper: SwiperClass) => void; - - /** - * Event will be fired after animation to other slide (next or previous). - */ - onSlideChangeTransitionEnd?: (swiper: SwiperClass) => void; - - /** - * Same as "slideChangeTransitionStart" but for "forward" direction only - */ - onSlideNextTransitionStart?: (swiper: SwiperClass) => void; - - /** - * Same as "slideChangeTransitionEnd" but for "forward" direction only - */ - onSlideNextTransitionEnd?: (swiper: SwiperClass) => void; - - /** - * Same as "slideChangeTransitionStart" but for "backward" direction only - */ - onSlidePrevTransitionStart?: (swiper: SwiperClass) => void; - - /** - * Same as "slideChangeTransitionEnd" but for "backward" direction only - */ - onSlidePrevTransitionEnd?: (swiper: SwiperClass) => void; - - /** - * Event will be fired in the beginning of transition. - */ - onTransitionStart?: (swiper: SwiperClass) => void; - - /** - * Event will be fired after transition. - */ - onTransitionEnd?: (swiper: SwiperClass) => void; - - /** - * Event will be fired when user touch Swiper. Receives `pointerdown` event as an arguments. - */ - onTouchStart?: (swiper: SwiperClass, event: MouseEvent | TouchEvent | PointerEvent) => void; - - /** - * Event will be fired when user touch and move finger over Swiper. Receives `pointermove` event as an arguments. - */ - onTouchMove?: (swiper: SwiperClass, event: MouseEvent | TouchEvent | PointerEvent) => void; - - /** - * Event will be fired when user touch and move finger over Swiper in direction opposite to direction parameter. Receives `pointermove` event as an arguments. - */ - onTouchMoveOpposite?: (swiper: SwiperClass, event: MouseEvent | TouchEvent | PointerEvent) => void; - - /** - * Event will be fired when user touch and move finger over Swiper and move it. Receives `pointermove` event as an arguments. - */ - onSliderMove?: (swiper: SwiperClass, event: MouseEvent | TouchEvent | PointerEvent) => void; - - /** - * Event will be fired when user release Swiper. Receives `pointerup` event as an arguments. - */ - onTouchEnd?: (swiper: SwiperClass, event: MouseEvent | TouchEvent | PointerEvent) => void; - - /** - * Event will be fired when user click/tap on Swiper. Receives `pointerup` event as an arguments. - */ - onClick?: (swiper: SwiperClass, event: MouseEvent | TouchEvent | PointerEvent) => void; - - /** - * Event will be fired when user click/tap on Swiper. Receives `pointerup` event as an arguments. - */ - onTap?: (swiper: SwiperClass, event: MouseEvent | TouchEvent | PointerEvent) => void; - - /** - * Event will be fired when user double tap on Swiper's container. Receives `pointerup` event as an arguments - */ - onDoubleTap?: (swiper: SwiperClass, event: MouseEvent | TouchEvent | PointerEvent) => void; - - /** - * Event will be fired when Swiper progress is changed, as an arguments it receives progress that is always from 0 to 1 - */ - onProgress?: (swiper: SwiperClass, progress: number) => void; - - /** - * Event will be fired when Swiper reach its beginning (initial position) - */ - onReachBeginning?: (swiper: SwiperClass) => void; - - /** - * Event will be fired when Swiper reach last slide - */ - onReachEnd?: (swiper: SwiperClass) => void; - - /** - * Event will be fired when Swiper goes to beginning or end position - */ - onToEdge?: (swiper: SwiperClass) => void; - - /** - * Event will be fired when Swiper goes from beginning or end position - */ - onFromEdge?: (swiper: SwiperClass) => void; - - /** - * Event will be fired when swiper's wrapper change its position. Receives current translate value as an arguments - */ - onSetTranslate?: (swiper: SwiperClass, translate: number) => void; - - /** - * Event will be fired everytime when swiper starts animation. Receives current transition duration (in ms) as an arguments - */ - onSetTransition?: (swiper: SwiperClass, transition: number) => void; - - /** - * Event will be fired on window resize right before swiper's onresize manipulation - */ - onResize?: (swiper: SwiperClass) => void; - - /** - * Event will be fired if observer is enabled and it detects DOM mutations - */ - onObserverUpdate?: (swiper: SwiperClass) => void; - - /** - * Event will be fired right before "loop fix" - */ - onBeforeLoopFix?: (swiper: SwiperClass) => void; - - /** - * Event will be fired after "loop fix" - */ - onLoopFix?: (swiper: SwiperClass) => void; - - /** - * Event will be fired on breakpoint change - */ - onBreakpoint?: (swiper: SwiperClass, breakpointParams: SwiperOptions) => void; - - /** - * !INTERNAL: Event will fired right before breakpoint change - */ - _beforeBreakpoint?: (swiper: SwiperClass, breakpointParams: SwiperOptions) => void; - - /** - * !INTERNAL: Event will fired after setting CSS classes on swiper container element - */ - _containerClasses?: (swiper: SwiperClass, classNames: string) => void; - - /** - * !INTERNAL: Event will fired after setting CSS classes on swiper slide element - */ - _slideClass?: (swiper: SwiperClass, slideEl: HTMLElement, classNames: string) => void; - - /** - * !INTERNAL: Event will fired after setting CSS classes on all swiper slides - */ - _slideClasses?: ( - swiper: SwiperClass, - slides: { slideEl: HTMLElement; classNames: string; index: number }[], - ) => void; - - /** - * !INTERNAL: Event will fired as soon as swiper instance available (before init) - */ - _swiper?: (swiper: SwiperClass) => void; - - /** - * !INTERNAL: Event will be fired on free mode touch end (release) and there will no be momentum - */ - _freeModeNoMomentumRelease?: (swiper: SwiperClass) => void; - - /** - * Event will fired on active index change - */ - onActiveIndexChange?: (swiper: SwiperClass) => void; - /** - * Event will fired on snap index change - */ - onSnapIndexChange?: (swiper: SwiperClass) => void; - /** - * Event will fired on real index change - */ - onRealIndexChange?: (swiper: SwiperClass) => void; - /** - * Event will fired right after initialization - */ - onAfterInit?: (swiper: SwiperClass) => void; - /** - * Event will fired right before initialization - */ - onBeforeInit?: (swiper: SwiperClass) => void; - /** - * Event will fired before resize handler - */ - onBeforeResize?: (swiper: SwiperClass) => void; - /** - * Event will fired before slide change transition start - */ - onBeforeSlideChangeStart?: (swiper: SwiperClass) => void; - /** - * Event will fired before transition start - */ - onBeforeTransitionStart?: (swiper: SwiperClass, speed: number, internal: any) => void; // what is internal? - /** - * Event will fired on direction change - */ - onChangeDirection?: (swiper: SwiperClass) => void; - /** - * Event will be fired when user double click/tap on Swiper - */ - onDoubleClick?: (swiper: SwiperClass, event: MouseEvent | TouchEvent | PointerEvent) => void; - /** - * Event will be fired on swiper destroy - */ - onDestroy?: (swiper: SwiperClass) => void; - /** - * Event will be fired on momentum bounce - */ - onMomentumBounce?: (swiper: SwiperClass) => void; - /** - * Event will be fired on orientation change (e.g. landscape -> portrait) - */ - onOrientationchange?: (swiper: SwiperClass) => void; - /** - * Event will be fired in the beginning of animation of resetting slide to current one - */ - onSlideResetTransitionStart?: (swiper: SwiperClass) => void; - /** - * Event will be fired in the end of animation of resetting slide to current one - */ - onSlideResetTransitionEnd?: (swiper: SwiperClass) => void; - /** - * Event will be fired with first touch/drag move - */ - onSliderFirstMove?: (swiper: SwiperClass, event: TouchEvent) => void; - /** - * Event will be fired when number of slides has changed - */ - onSlidesLengthChange?: (swiper: SwiperClass) => void; - /** - * Event will be fired when slides grid has changed - */ - onSlidesGridLengthChange?: (swiper: SwiperClass) => void; - /** - * Event will be fired when snap grid has changed - */ - onSnapGridLengthChange?: (swiper: SwiperClass) => void; - /** - * Event will be fired after swiper.update() call - */ - onUpdate?: (swiper: SwiperClass) => void; - /** - * Event will be fired when swiper is locked (when `watchOverflow` enabled) - */ - onLock?: (swiper: SwiperClass) => void; - /** - * Event will be fired when swiper is unlocked (when `watchOverflow` enabled) - */ - onUnlock?: (swiper: SwiperClass) => void; - - }; - -interface SlideData { - isActive: boolean; - isVisible: boolean; - isPrev: boolean; - isNext: boolean; -} - -type SwiperSlideProps = Omit, 'children'> & { - /** - * Slide tag - * - * @default 'div' - */ - tag?: string; - - /** - * Enables additional wrapper required for zoom mode - * - * @default false - */ - zoom?: boolean; - - /** - * Adds lazy preloader to the slide - * - * @default false - */ - lazy?: boolean; - - /** - * Slide's index in slides array/collection - * - * @default false - */ - virtualIndex?: number; - - /** - * Slide's child element or render function - * - * @default undefined - */ - children?: React.ReactNode | ((slideData: SlideData) => React.ReactNode); -}; - -interface SwiperRef extends React.HTMLAttributes { - swiper: SwiperClass; -} - -declare const Swiper: React.FunctionComponent< - React.RefAttributes & React.PropsWithChildren ->; -declare const SwiperSlide: React.FunctionComponent; - -declare const useSwiper: () => SwiperClass; -declare const useSwiperSlide: () => SlideData; - -export { - Swiper, - SwiperSlide, - SwiperProps, - SwiperSlideProps, - SwiperRef, - useSwiper, - useSwiperSlide, - SwiperClass, -}; diff --git a/build/assets/js/vendor/swiper/swiper-react.mjs b/build/assets/js/vendor/swiper/swiper-react.mjs deleted file mode 100644 index 5f5e395..0000000 --- a/build/assets/js/vendor/swiper/swiper-react.mjs +++ /dev/null @@ -1,394 +0,0 @@ -/** - * Swiper React 11.0.5 - * 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: November 22, 2023 - */ - -import React, { useEffect, useLayoutEffect, useContext, createContext, forwardRef, useState, useRef } from 'react'; -import { S as Swiper$1 } from './shared/swiper-core.mjs'; -import { g as getParams, m as mountSwiper, a as getChangedParams, u as updateOnVirtualData } from './shared/update-on-virtual-data.mjs'; -import { d as uniqueClasses, w as wrapperClass, n as needsNavigation, b as needsScrollbar, a as needsPagination, e as extend, u as updateSwiper } from './shared/update-swiper.mjs'; - -function _extends() { - _extends = Object.assign ? Object.assign.bind() : function (target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } - } - return target; - }; - return _extends.apply(this, arguments); -} - -function isChildSwiperSlide(child) { - return child.type && child.type.displayName && child.type.displayName.includes('SwiperSlide'); -} -function processChildren(c) { - const slides = []; - React.Children.toArray(c).forEach(child => { - if (isChildSwiperSlide(child)) { - slides.push(child); - } else if (child.props && child.props.children) { - processChildren(child.props.children).forEach(slide => slides.push(slide)); - } - }); - return slides; -} -function getChildren(c) { - const slides = []; - const slots = { - 'container-start': [], - 'container-end': [], - 'wrapper-start': [], - 'wrapper-end': [] - }; - React.Children.toArray(c).forEach(child => { - if (isChildSwiperSlide(child)) { - slides.push(child); - } else if (child.props && child.props.slot && slots[child.props.slot]) { - slots[child.props.slot].push(child); - } else if (child.props && child.props.children) { - const foundSlides = processChildren(child.props.children); - if (foundSlides.length > 0) { - foundSlides.forEach(slide => slides.push(slide)); - } else { - slots['container-end'].push(child); - } - } else { - slots['container-end'].push(child); - } - }); - return { - slides, - slots - }; -} - -function renderVirtual(swiper, slides, virtualData) { - if (!virtualData) return null; - const getSlideIndex = index => { - let slideIndex = index; - if (index < 0) { - slideIndex = slides.length + index; - } else if (slideIndex >= slides.length) { - // eslint-disable-next-line - slideIndex = slideIndex - slides.length; - } - return slideIndex; - }; - const style = swiper.isHorizontal() ? { - [swiper.rtlTranslate ? 'right' : 'left']: `${virtualData.offset}px` - } : { - top: `${virtualData.offset}px` - }; - const { - from, - to - } = virtualData; - const loopFrom = swiper.params.loop ? -slides.length : 0; - const loopTo = swiper.params.loop ? slides.length * 2 : slides.length; - const slidesToRender = []; - for (let i = loopFrom; i < loopTo; i += 1) { - if (i >= from && i <= to) { - slidesToRender.push(slides[getSlideIndex(i)]); - } - } - return slidesToRender.map((child, index) => { - return /*#__PURE__*/React.cloneElement(child, { - swiper, - style, - key: `slide-${index}` - }); - }); -} - -function useIsomorphicLayoutEffect(callback, deps) { - // eslint-disable-next-line - if (typeof window === 'undefined') return useEffect(callback, deps); - return useLayoutEffect(callback, deps); -} - -const SwiperSlideContext = /*#__PURE__*/createContext(null); -const useSwiperSlide = () => { - return useContext(SwiperSlideContext); -}; -const SwiperContext = /*#__PURE__*/createContext(null); -const useSwiper = () => { - return useContext(SwiperContext); -}; - -const Swiper = /*#__PURE__*/forwardRef(function (_temp, externalElRef) { - let { - className, - tag: Tag = 'div', - wrapperTag: WrapperTag = 'div', - children, - onSwiper, - ...rest - } = _temp === void 0 ? {} : _temp; - let eventsAssigned = false; - const [containerClasses, setContainerClasses] = useState('swiper'); - const [virtualData, setVirtualData] = useState(null); - const [breakpointChanged, setBreakpointChanged] = useState(false); - const initializedRef = useRef(false); - const swiperElRef = useRef(null); - const swiperRef = useRef(null); - const oldPassedParamsRef = useRef(null); - const oldSlides = useRef(null); - const nextElRef = useRef(null); - const prevElRef = useRef(null); - const paginationElRef = useRef(null); - const scrollbarElRef = useRef(null); - const { - params: swiperParams, - passedParams, - rest: restProps, - events - } = getParams(rest); - const { - slides, - slots - } = getChildren(children); - const onBeforeBreakpoint = () => { - setBreakpointChanged(!breakpointChanged); - }; - Object.assign(swiperParams.on, { - _containerClasses(swiper, classes) { - setContainerClasses(classes); - } - }); - const initSwiper = () => { - // init swiper - Object.assign(swiperParams.on, events); - eventsAssigned = true; - const passParams = { - ...swiperParams - }; - delete passParams.wrapperClass; - swiperRef.current = new Swiper$1(passParams); - if (swiperRef.current.virtual && swiperRef.current.params.virtual.enabled) { - swiperRef.current.virtual.slides = slides; - const extendWith = { - cache: false, - slides, - renderExternal: setVirtualData, - renderExternalUpdate: false - }; - extend(swiperRef.current.params.virtual, extendWith); - extend(swiperRef.current.originalParams.virtual, extendWith); - } - }; - if (!swiperElRef.current) { - initSwiper(); - } - - // Listen for breakpoints change - if (swiperRef.current) { - swiperRef.current.on('_beforeBreakpoint', onBeforeBreakpoint); - } - const attachEvents = () => { - if (eventsAssigned || !events || !swiperRef.current) return; - Object.keys(events).forEach(eventName => { - swiperRef.current.on(eventName, events[eventName]); - }); - }; - const detachEvents = () => { - if (!events || !swiperRef.current) return; - Object.keys(events).forEach(eventName => { - swiperRef.current.off(eventName, events[eventName]); - }); - }; - useEffect(() => { - return () => { - if (swiperRef.current) swiperRef.current.off('_beforeBreakpoint', onBeforeBreakpoint); - }; - }); - - // set initialized flag - useEffect(() => { - if (!initializedRef.current && swiperRef.current) { - swiperRef.current.emitSlidesClasses(); - initializedRef.current = true; - } - }); - - // mount swiper - useIsomorphicLayoutEffect(() => { - if (externalElRef) { - externalElRef.current = swiperElRef.current; - } - if (!swiperElRef.current) return; - if (swiperRef.current.destroyed) { - initSwiper(); - } - mountSwiper({ - el: swiperElRef.current, - nextEl: nextElRef.current, - prevEl: prevElRef.current, - paginationEl: paginationElRef.current, - scrollbarEl: scrollbarElRef.current, - swiper: swiperRef.current - }, swiperParams); - if (onSwiper) onSwiper(swiperRef.current); - // eslint-disable-next-line - return () => { - if (swiperRef.current && !swiperRef.current.destroyed) { - swiperRef.current.destroy(true, false); - } - }; - }, []); - - // watch for params change - useIsomorphicLayoutEffect(() => { - attachEvents(); - const changedParams = getChangedParams(passedParams, oldPassedParamsRef.current, slides, oldSlides.current, c => c.key); - oldPassedParamsRef.current = passedParams; - oldSlides.current = slides; - if (changedParams.length && swiperRef.current && !swiperRef.current.destroyed) { - updateSwiper({ - swiper: swiperRef.current, - slides, - passedParams, - changedParams, - nextEl: nextElRef.current, - prevEl: prevElRef.current, - scrollbarEl: scrollbarElRef.current, - paginationEl: paginationElRef.current - }); - } - return () => { - detachEvents(); - }; - }); - - // update on virtual update - useIsomorphicLayoutEffect(() => { - updateOnVirtualData(swiperRef.current); - }, [virtualData]); - - // bypass swiper instance to slides - function renderSlides() { - if (swiperParams.virtual) { - return renderVirtual(swiperRef.current, slides, virtualData); - } - return slides.map((child, index) => { - return /*#__PURE__*/React.cloneElement(child, { - swiper: swiperRef.current, - swiperSlideIndex: index - }); - }); - } - return /*#__PURE__*/React.createElement(Tag, _extends({ - ref: swiperElRef, - className: uniqueClasses(`${containerClasses}${className ? ` ${className}` : ''}`) - }, restProps), /*#__PURE__*/React.createElement(SwiperContext.Provider, { - value: swiperRef.current - }, slots['container-start'], /*#__PURE__*/React.createElement(WrapperTag, { - className: wrapperClass(swiperParams.wrapperClass) - }, slots['wrapper-start'], renderSlides(), slots['wrapper-end']), needsNavigation(swiperParams) && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", { - ref: prevElRef, - className: "swiper-button-prev" - }), /*#__PURE__*/React.createElement("div", { - ref: nextElRef, - className: "swiper-button-next" - })), needsScrollbar(swiperParams) && /*#__PURE__*/React.createElement("div", { - ref: scrollbarElRef, - className: "swiper-scrollbar" - }), needsPagination(swiperParams) && /*#__PURE__*/React.createElement("div", { - ref: paginationElRef, - className: "swiper-pagination" - }), slots['container-end'])); -}); -Swiper.displayName = 'Swiper'; - -const SwiperSlide = /*#__PURE__*/forwardRef(function (_temp, externalRef) { - let { - tag: Tag = 'div', - children, - className = '', - swiper, - zoom, - lazy, - virtualIndex, - swiperSlideIndex, - ...rest - } = _temp === void 0 ? {} : _temp; - const slideElRef = useRef(null); - const [slideClasses, setSlideClasses] = useState('swiper-slide'); - const [lazyLoaded, setLazyLoaded] = useState(false); - function updateClasses(_s, el, classNames) { - if (el === slideElRef.current) { - setSlideClasses(classNames); - } - } - useIsomorphicLayoutEffect(() => { - if (typeof swiperSlideIndex !== 'undefined') { - slideElRef.current.swiperSlideIndex = swiperSlideIndex; - } - if (externalRef) { - externalRef.current = slideElRef.current; - } - if (!slideElRef.current || !swiper) { - return; - } - if (swiper.destroyed) { - if (slideClasses !== 'swiper-slide') { - setSlideClasses('swiper-slide'); - } - return; - } - swiper.on('_slideClass', updateClasses); - // eslint-disable-next-line - return () => { - if (!swiper) return; - swiper.off('_slideClass', updateClasses); - }; - }); - useIsomorphicLayoutEffect(() => { - if (swiper && slideElRef.current && !swiper.destroyed) { - setSlideClasses(swiper.getSlideClasses(slideElRef.current)); - } - }, [swiper]); - const slideData = { - isActive: slideClasses.indexOf('swiper-slide-active') >= 0, - isVisible: slideClasses.indexOf('swiper-slide-visible') >= 0, - isPrev: slideClasses.indexOf('swiper-slide-prev') >= 0, - isNext: slideClasses.indexOf('swiper-slide-next') >= 0 - }; - const renderChildren = () => { - return typeof children === 'function' ? children(slideData) : children; - }; - const onLoad = () => { - setLazyLoaded(true); - }; - return /*#__PURE__*/React.createElement(Tag, _extends({ - ref: slideElRef, - className: uniqueClasses(`${slideClasses}${className ? ` ${className}` : ''}`), - "data-swiper-slide-index": virtualIndex, - onLoad: onLoad - }, rest), zoom && /*#__PURE__*/React.createElement(SwiperSlideContext.Provider, { - value: slideData - }, /*#__PURE__*/React.createElement("div", { - className: "swiper-zoom-container", - "data-swiper-zoom": typeof zoom === 'number' ? zoom : undefined - }, renderChildren(), lazy && !lazyLoaded && /*#__PURE__*/React.createElement("div", { - className: "swiper-lazy-preloader" - }))), !zoom && /*#__PURE__*/React.createElement(SwiperSlideContext.Provider, { - value: slideData - }, renderChildren(), lazy && !lazyLoaded && /*#__PURE__*/React.createElement("div", { - className: "swiper-lazy-preloader" - }))); -}); -SwiperSlide.displayName = 'SwiperSlide'; - -export { Swiper, SwiperSlide, useSwiper, useSwiperSlide }; diff --git a/build/assets/js/vendor/swiper/swiper-vars.less b/build/assets/js/vendor/swiper/swiper-vars.less deleted file mode 100644 index a068f6d..0000000 --- a/build/assets/js/vendor/swiper/swiper-vars.less +++ /dev/null @@ -1 +0,0 @@ -@themeColor: #007aff; diff --git a/build/assets/js/vendor/swiper/swiper-vars.scss b/build/assets/js/vendor/swiper/swiper-vars.scss deleted file mode 100644 index 819dec4..0000000 --- a/build/assets/js/vendor/swiper/swiper-vars.scss +++ /dev/null @@ -1 +0,0 @@ -$themeColor: #007aff !default; diff --git a/build/assets/js/vendor/swiper/swiper-vue.d.ts b/build/assets/js/vendor/swiper/swiper-vue.d.ts deleted file mode 100644 index a55dcbd..0000000 --- a/build/assets/js/vendor/swiper/swiper-vue.d.ts +++ /dev/null @@ -1,862 +0,0 @@ -import type { - A11yOptions, - AutoplayOptions, - ControllerOptions, - CoverflowEffectOptions, - CubeEffectOptions, - FadeEffectOptions, - FlipEffectOptions, - CreativeEffectOptions, - CardsEffectOptions, - HashNavigationOptions, - HistoryOptions, - KeyboardOptions, - MousewheelOptions, - NavigationOptions, - PaginationOptions, - ParallaxOptions, - ScrollbarOptions, - ThumbsOptions, - VirtualOptions, - ZoomOptions, - FreeModeOptions, - GridOptions, -} from './types/index.d.ts'; -import { ComponentOptionsMixin, DefineComponent, PropType, Ref } from 'vue'; -import type { SwiperOptions, Swiper as SwiperClass } from './types/index.d.ts'; - -declare const Swiper: DefineComponent< - { - tag: { - type: StringConstructor; - default: string; - }; - wrapperTag: { - type: StringConstructor; - default: string; - }; - modules: { - type: ArrayConstructor; - default: undefined; - }; - init: { - type: BooleanConstructor; - default: undefined; - }; - direction: { - type: PropType; - default: SwiperOptions['direction']; - }; - oneWayMovement: { - type: PropType; - default: SwiperOptions['oneWayMovement']; - }; - touchEventsTarget: { - type: PropType; - default: undefined; - }; - initialSlide: { - type: NumberConstructor; - default: undefined; - }; - speed: { type: NumberConstructor; default: undefined }; - cssMode: { type: BooleanConstructor; default: undefined }; - updateOnWindowResize: { - type: BooleanConstructor; - default: undefined; - }; - resizeObserver: { - type: BooleanConstructor; - default: undefined; - }; - nested: { type: BooleanConstructor; default: undefined }; - focusableElements: { - type: StringConstructor; - default: undefined; - }; - width: { type: NumberConstructor; default: undefined }; - height: { type: NumberConstructor; default: undefined }; - preventInteractionOnTransition: { - type: BooleanConstructor; - default: undefined; - }; - userAgent: { type: StringConstructor; default: undefined }; - url: { type: StringConstructor; default: undefined }; - edgeSwipeDetection: { - type: BooleanConstructor | StringConstructor; - default: undefined; - }; - edgeSwipeThreshold: { - type: NumberConstructor; - default: undefined; - }; - autoHeight: { - type: BooleanConstructor; - default: undefined; - }; - setWrapperSize: { - type: BooleanConstructor; - default: undefined; - }; - virtualTranslate: { - type: BooleanConstructor; - default: undefined; - }; - effect: { - type: PropType; - default: undefined; - }; - breakpoints: { - type: PropType; - default: undefined; - }; - spaceBetween: { - type: PropType; - default: undefined; - }; - slidesPerView: { - type: PropType; - default: undefined; - }; - maxBackfaceHiddenSlides: { - type: NumberConstructor; - default: undefined; - }; - slidesPerGroup: { - type: NumberConstructor; - default: undefined; - }; - slidesPerGroupSkip: { - type: NumberConstructor; - default: undefined; - }; - slidesPerGroupAuto: { - type: BooleanConstructor; - default: undefined; - }; - centeredSlides: { - type: BooleanConstructor; - default: undefined; - }; - centeredSlidesBounds: { - type: BooleanConstructor; - default: undefined; - }; - slidesOffsetBefore: { - type: NumberConstructor; - default: undefined; - }; - slidesOffsetAfter: { - type: NumberConstructor; - default: undefined; - }; - normalizeSlideIndex: { - type: BooleanConstructor; - default: undefined; - }; - centerInsufficientSlides: { - type: BooleanConstructor; - default: undefined; - }; - watchOverflow: { - type: BooleanConstructor; - default: undefined; - }; - roundLengths: { - type: BooleanConstructor; - default: undefined; - }; - touchRatio: { - type: NumberConstructor; - default: undefined; - }; - touchAngle: { - type: NumberConstructor; - default: undefined; - }; - simulateTouch: { - type: BooleanConstructor; - default: undefined; - }; - shortSwipes: { - type: BooleanConstructor; - default: undefined; - }; - longSwipes: { - type: BooleanConstructor; - default: undefined; - }; - longSwipesRatio: { - type: NumberConstructor; - default: undefined; - }; - longSwipesMs: { - type: NumberConstructor; - default: undefined; - }; - followFinger: { - type: BooleanConstructor; - default: undefined; - }; - allowTouchMove: { - type: BooleanConstructor; - default: undefined; - }; - threshold: { type: NumberConstructor; default: undefined }; - touchMoveStopPropagation: { - type: BooleanConstructor; - default: undefined; - }; - touchStartPreventDefault: { - type: BooleanConstructor; - default: undefined; - }; - touchStartForcePreventDefault: { - type: BooleanConstructor; - default: undefined; - }; - touchReleaseOnEdges: { - type: BooleanConstructor; - default: undefined; - }; - uniqueNavElements: { - type: BooleanConstructor; - default: undefined; - }; - resistance: { - type: BooleanConstructor; - default: undefined; - }; - resistanceRatio: { - type: NumberConstructor; - default: undefined; - }; - watchSlidesProgress: { - type: BooleanConstructor; - default: undefined; - }; - grabCursor: { - type: BooleanConstructor; - default: undefined; - }; - preventClicks: { - type: BooleanConstructor; - default: undefined; - }; - preventClicksPropagation: { - type: BooleanConstructor; - default: undefined; - }; - slideToClickedSlide: { - type: BooleanConstructor; - default: undefined; - }; - loop: { type: BooleanConstructor; default: undefined }; - loopAddBlankSlides: { type: BooleanConstructor; default: undefined }; - loopAdditionalSlides: { - type: NumberConstructor; - default: undefined; - }; - loopPreventsSliding: { type: BooleanConstructor; default: undefined }; - rewind: { type: BooleanConstructor; default: undefined }; - allowSlidePrev: { - type: BooleanConstructor; - default: undefined; - }; - allowSlideNext: { - type: BooleanConstructor; - default: undefined; - }; - swipeHandler: { - type: BooleanConstructor; - default: undefined; - }; - noSwiping: { - type: BooleanConstructor; - default: undefined; - }; - noSwipingClass: { - type: StringConstructor; - default: undefined; - }; - noSwipingSelector: { - type: StringConstructor; - default: undefined; - }; - passiveListeners: { - type: BooleanConstructor; - default: undefined; - }; - containerModifierClass: { - type: StringConstructor; - default: undefined; - }; - slideClass: { - type: StringConstructor; - default: undefined; - }; - slideActiveClass: { - type: StringConstructor; - default: undefined; - }; - slideVisibleClass: { - type: StringConstructor; - default: undefined; - }; - slideFullyVisibleClass: { - type: StringConstructor; - default: undefined; - }; - slideBlankClass: { - type: StringConstructor; - default: undefined; - }; - slideNextClass: { - type: StringConstructor; - default: undefined; - }; - slidePrevClass: { - type: StringConstructor; - default: undefined; - }; - wrapperClass: { - type: StringConstructor; - default: undefined; - }; - lazyPreloaderClass: { - type: StringConstructor; - default: undefined; - }; - lazyPreloadPrevNext: { - type: NumberConstructor; - default: undefined; - }; - runCallbacksOnInit: { - type: BooleanConstructor; - default: undefined; - }; - observer: { type: BooleanConstructor; default: undefined }; - observeParents: { - type: BooleanConstructor; - default: undefined; - }; - observeSlideChildren: { - type: BooleanConstructor; - default: undefined; - }; - a11y: { - type: PropType; - default: undefined; - }; - autoplay: { - type: PropType; - default: undefined; - }; - controller: { - type: PropType; - default: undefined; - }; - coverflowEffect: { - type: PropType; - default: undefined; - }; - cubeEffect: { - type: PropType; - default: undefined; - }; - fadeEffect: { - type: PropType; - default: undefined; - }; - flipEffect: { - type: PropType; - default: undefined; - }; - creativeEffect: { - type: PropType; - default: undefined; - }; - cardsEffect: { - type: PropType; - default: undefined; - }; - hashNavigation: { - type: PropType; - default: undefined; - }; - history: { - type: PropType; - default: undefined; - }; - keyboard: { - type: PropType; - default: undefined; - }; - mousewheel: { - type: PropType; - default: undefined; - }; - navigation: { - type: PropType; - default: undefined; - }; - pagination: { - type: PropType; - default: undefined; - }; - parallax: { - type: PropType; - default: undefined; - }; - scrollbar: { - type: PropType; - default: undefined; - }; - thumbs: { type: PropType; default: undefined }; - virtual: { - type: PropType; - default: undefined; - }; - zoom: { - type: PropType; - default: undefined; - }; - freeMode: { - type: PropType; - default: undefined; - }; - grid: { - type: PropType; - default: undefined; - }; - }, - () => JSX.Element, - unknown, - {}, - {}, - ComponentOptionsMixin, - ComponentOptionsMixin, - { - swiper: (swiper: SwiperClass) => void; - /** - * Event will be fired in when autoplay started - */ - autoplayStart: (swiper: SwiperClass) => void; - /** - * Event will be fired when autoplay stopped - */ - autoplayStop: (swiper: SwiperClass) => void; - /** - * Event will be fired on autoplay pause - */ - autoplayPause: (swiper: SwiperClass) => void; - /** - * Event will be fired on autoplay resume - */ - autoplayResume: (swiper: SwiperClass) => void; - /** - * Event triggers continuously while autoplay is enabled. It contains time left (in ms) before transition to next slide and percentage of that time related to autoplay delay - */ - autoplayTimeLeft: (swiper: SwiperClass, timeLeft: number, percentage: number) => void; - /** - * Event will be fired when slide changed with autoplay - */ - autoplay: (swiper: SwiperClass) => void;/** - * Event will be fired on window hash change - */ - hashChange: (swiper: SwiperClass) => void; - /** - * Event will be fired when swiper updates the hash - */ - hashSet: (swiper: SwiperClass) => void;/** - * Event will be fired on key press - */ - keyPress: (swiper: SwiperClass, keyCode: string) => void;/** - * Event will be fired on mousewheel scroll - */ - scroll: (swiper: SwiperClass, event: WheelEvent) => void;/** - * Event will be fired on navigation hide - */ - navigationHide: (swiper: SwiperClass) => void; - /** - * Event will be fired on navigation show - */ - navigationShow: (swiper: SwiperClass) => void; - /** - * Event will be fired on navigation prev button click - */ - navigationPrev: (swiper: SwiperClass) => void; - /** - * Event will be fired on navigation next button click - */ - navigationNext: (swiper: SwiperClass) => void;/** - * Event will be fired after pagination rendered - */ - paginationRender: (swiper: SwiperClass, paginationEl: HTMLElement) => void; - - /** - * Event will be fired when pagination updated - */ - paginationUpdate: (swiper: SwiperClass, paginationEl: HTMLElement) => void; - - /** - * Event will be fired on pagination hide - */ - paginationHide: (swiper: SwiperClass) => void; - - /** - * Event will be fired on pagination show - */ - paginationShow: (swiper: SwiperClass) => void;/** - * Event will be fired on draggable scrollbar drag start - */ - scrollbarDragStart: (swiper: SwiperClass, event: MouseEvent | TouchEvent | PointerEvent) => void; - - /** - * Event will be fired on draggable scrollbar drag move - */ - scrollbarDragMove: (swiper: SwiperClass, event: MouseEvent | TouchEvent | PointerEvent) => void; - - /** - * Event will be fired on draggable scrollbar drag end - */ - scrollbarDragEnd: (swiper: SwiperClass, event: MouseEvent | TouchEvent | PointerEvent) => void;/** - * Event will be fired on zoom change - */ - zoomChange: (swiper: SwiperClass, scale: number, imageEl: HTMLElement, slideEl: HTMLElement) => void; - - /** - * Fired right after Swiper initialization. - * @note Note that with `swiper.on('init')` syntax it will - * work only in case you set `init: false` parameter. - * - * @example - * ```js - * const swiper = new Swiper('.swiper', { - * init: false, - * // other parameters - * }); - * swiper.on('init', function() { - * // do something - * }); - * // init Swiper - * swiper.init(); - * ``` - * - * @example - * ```js - * // Otherwise use it as the parameter: - * const swiper = new Swiper('.swiper', { - * // other parameters - * on: { - * init: function () { - * // do something - * }, - * } - * }); - * ``` - */ - init: (swiper: SwiperClass) => any; - - /** - * Event will be fired right before Swiper destroyed - */ - beforeDestroy: (swiper: SwiperClass) => void; - - /** - * Event will be fired after slides and their sizes are calculated and updated - */ - slidesUpdated: (swiper: SwiperClass) => void; - /** - * Event will be fired when currently active slide is changed - */ - slideChange: (swiper: SwiperClass) => void; - - /** - * Event will be fired in the beginning of animation to other slide (next or previous). - */ - slideChangeTransitionStart: (swiper: SwiperClass) => void; - - /** - * Event will be fired after animation to other slide (next or previous). - */ - slideChangeTransitionEnd: (swiper: SwiperClass) => void; - - /** - * Same as "slideChangeTransitionStart" but for "forward" direction only - */ - slideNextTransitionStart: (swiper: SwiperClass) => void; - - /** - * Same as "slideChangeTransitionEnd" but for "forward" direction only - */ - slideNextTransitionEnd: (swiper: SwiperClass) => void; - - /** - * Same as "slideChangeTransitionStart" but for "backward" direction only - */ - slidePrevTransitionStart: (swiper: SwiperClass) => void; - - /** - * Same as "slideChangeTransitionEnd" but for "backward" direction only - */ - slidePrevTransitionEnd: (swiper: SwiperClass) => void; - - /** - * Event will be fired in the beginning of transition. - */ - transitionStart: (swiper: SwiperClass) => void; - - /** - * Event will be fired after transition. - */ - transitionEnd: (swiper: SwiperClass) => void; - - /** - * Event will be fired when user touch Swiper. Receives `pointerdown` event as an arguments. - */ - touchStart: (swiper: SwiperClass, event: MouseEvent | TouchEvent | PointerEvent) => void; - - /** - * Event will be fired when user touch and move finger over Swiper. Receives `pointermove` event as an arguments. - */ - touchMove: (swiper: SwiperClass, event: MouseEvent | TouchEvent | PointerEvent) => void; - - /** - * Event will be fired when user touch and move finger over Swiper in direction opposite to direction parameter. Receives `pointermove` event as an arguments. - */ - touchMoveOpposite: (swiper: SwiperClass, event: MouseEvent | TouchEvent | PointerEvent) => void; - - /** - * Event will be fired when user touch and move finger over Swiper and move it. Receives `pointermove` event as an arguments. - */ - sliderMove: (swiper: SwiperClass, event: MouseEvent | TouchEvent | PointerEvent) => void; - - /** - * Event will be fired when user release Swiper. Receives `pointerup` event as an arguments. - */ - touchEnd: (swiper: SwiperClass, event: MouseEvent | TouchEvent | PointerEvent) => void; - - /** - * Event will be fired when user click/tap on Swiper. Receives `pointerup` event as an arguments. - */ - click: (swiper: SwiperClass, event: MouseEvent | TouchEvent | PointerEvent) => void; - - /** - * Event will be fired when user click/tap on Swiper. Receives `pointerup` event as an arguments. - */ - tap: (swiper: SwiperClass, event: MouseEvent | TouchEvent | PointerEvent) => void; - - /** - * Event will be fired when user double tap on Swiper's container. Receives `pointerup` event as an arguments - */ - doubleTap: (swiper: SwiperClass, event: MouseEvent | TouchEvent | PointerEvent) => void; - - /** - * Event will be fired when Swiper progress is changed, as an arguments it receives progress that is always from 0 to 1 - */ - progress: (swiper: SwiperClass, progress: number) => void; - - /** - * Event will be fired when Swiper reach its beginning (initial position) - */ - reachBeginning: (swiper: SwiperClass) => void; - - /** - * Event will be fired when Swiper reach last slide - */ - reachEnd: (swiper: SwiperClass) => void; - - /** - * Event will be fired when Swiper goes to beginning or end position - */ - toEdge: (swiper: SwiperClass) => void; - - /** - * Event will be fired when Swiper goes from beginning or end position - */ - fromEdge: (swiper: SwiperClass) => void; - - /** - * Event will be fired when swiper's wrapper change its position. Receives current translate value as an arguments - */ - setTranslate: (swiper: SwiperClass, translate: number) => void; - - /** - * Event will be fired everytime when swiper starts animation. Receives current transition duration (in ms) as an arguments - */ - setTransition: (swiper: SwiperClass, transition: number) => void; - - /** - * Event will be fired on window resize right before swiper's onresize manipulation - */ - resize: (swiper: SwiperClass) => void; - - /** - * Event will be fired if observer is enabled and it detects DOM mutations - */ - observerUpdate: (swiper: SwiperClass) => void; - - /** - * Event will be fired right before "loop fix" - */ - beforeLoopFix: (swiper: SwiperClass) => void; - - /** - * Event will be fired after "loop fix" - */ - loopFix: (swiper: SwiperClass) => void; - - /** - * Event will be fired on breakpoint change - */ - breakpoint: (swiper: SwiperClass, breakpointParams: SwiperOptions) => void; - - /** - * !INTERNAL: Event will fired right before breakpoint change - */ - _beforeBreakpoint: (swiper: SwiperClass, breakpointParams: SwiperOptions) => void; - - /** - * !INTERNAL: Event will fired after setting CSS classes on swiper container element - */ - _containerClasses: (swiper: SwiperClass, classNames: string) => void; - - /** - * !INTERNAL: Event will fired after setting CSS classes on swiper slide element - */ - _slideClass: (swiper: SwiperClass, slideEl: HTMLElement, classNames: string) => void; - - /** - * !INTERNAL: Event will fired after setting CSS classes on all swiper slides - */ - _slideClasses: ( - swiper: SwiperClass, - slides: { slideEl: HTMLElement; classNames: string; index: number }[], - ) => void; - - /** - * !INTERNAL: Event will fired as soon as swiper instance available (before init) - */ - _swiper: (swiper: SwiperClass) => void; - - /** - * !INTERNAL: Event will be fired on free mode touch end (release) and there will no be momentum - */ - _freeModeNoMomentumRelease: (swiper: SwiperClass) => void; - - /** - * Event will fired on active index change - */ - activeIndexChange: (swiper: SwiperClass) => void; - /** - * Event will fired on snap index change - */ - snapIndexChange: (swiper: SwiperClass) => void; - /** - * Event will fired on real index change - */ - realIndexChange: (swiper: SwiperClass) => void; - /** - * Event will fired right after initialization - */ - afterInit: (swiper: SwiperClass) => void; - /** - * Event will fired right before initialization - */ - beforeInit: (swiper: SwiperClass) => void; - /** - * Event will fired before resize handler - */ - beforeResize: (swiper: SwiperClass) => void; - /** - * Event will fired before slide change transition start - */ - beforeSlideChangeStart: (swiper: SwiperClass) => void; - /** - * Event will fired before transition start - */ - beforeTransitionStart: (swiper: SwiperClass, speed: number, internal: any) => void; // what is internal? - /** - * Event will fired on direction change - */ - changeDirection: (swiper: SwiperClass) => void; - /** - * Event will be fired when user double click/tap on Swiper - */ - doubleClick: (swiper: SwiperClass, event: MouseEvent | TouchEvent | PointerEvent) => void; - /** - * Event will be fired on swiper destroy - */ - destroy: (swiper: SwiperClass) => void; - /** - * Event will be fired on momentum bounce - */ - momentumBounce: (swiper: SwiperClass) => void; - /** - * Event will be fired on orientation change (e.g. landscape -> portrait) - */ - orientationchange: (swiper: SwiperClass) => void; - /** - * Event will be fired in the beginning of animation of resetting slide to current one - */ - slideResetTransitionStart: (swiper: SwiperClass) => void; - /** - * Event will be fired in the end of animation of resetting slide to current one - */ - slideResetTransitionEnd: (swiper: SwiperClass) => void; - /** - * Event will be fired with first touch/drag move - */ - sliderFirstMove: (swiper: SwiperClass, event: TouchEvent) => void; - /** - * Event will be fired when number of slides has changed - */ - slidesLengthChange: (swiper: SwiperClass) => void; - /** - * Event will be fired when slides grid has changed - */ - slidesGridLengthChange: (swiper: SwiperClass) => void; - /** - * Event will be fired when snap grid has changed - */ - snapGridLengthChange: (swiper: SwiperClass) => void; - /** - * Event will be fired after swiper.update() call - */ - update: (swiper: SwiperClass) => void; - /** - * Event will be fired when swiper is locked (when `watchOverflow` enabled) - */ - lock: (swiper: SwiperClass) => void; - /** - * Event will be fired when swiper is unlocked (when `watchOverflow` enabled) - */ - unlock: (swiper: SwiperClass) => void; - - } ->; - -declare const SwiperSlide: DefineComponent<{ - tag: { - type: StringConstructor; - default: string; - }; - swiperRef: { type: PropType; required: false }; - lazy: { type: BooleanConstructor; default: false }; - zoom: { type: BooleanConstructor; default: undefined }; - virtualIndex: { - type: StringConstructor | NumberConstructor; - default: undefined; - }; -}>; - -declare const useSwiper: () => Ref; -declare const useSwiperSlide: () => Ref<{ - isActive: boolean; - isVisible: boolean; - isPrev: boolean; - isNext: boolean; -}>; - -export { Swiper, SwiperSlide, useSwiper, useSwiperSlide }; diff --git a/build/assets/js/vendor/swiper/swiper-vue.mjs b/build/assets/js/vendor/swiper/swiper-vue.mjs deleted file mode 100644 index 3a95b34..0000000 --- a/build/assets/js/vendor/swiper/swiper-vue.mjs +++ /dev/null @@ -1,816 +0,0 @@ -/** - * Swiper Vue 11.0.5 - * 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: November 22, 2023 - */ - -import { h, ref, onUpdated, provide, watch, nextTick, onMounted, onBeforeUnmount, onBeforeUpdate, computed, inject } from 'vue'; -import { S as Swiper$1 } from './shared/swiper-core.mjs'; -import { g as getParams, a as getChangedParams, u as updateOnVirtualData, m as mountSwiper } from './shared/update-on-virtual-data.mjs'; -import { e as extend, u as updateSwiper, d as uniqueClasses, w as wrapperClass, n as needsNavigation, b as needsScrollbar, a as needsPagination } from './shared/update-swiper.mjs'; - -function getChildren(originalSlots, slidesRef, oldSlidesRef) { - if (originalSlots === void 0) { - originalSlots = {}; - } - const slides = []; - const slots = { - 'container-start': [], - 'container-end': [], - 'wrapper-start': [], - 'wrapper-end': [] - }; - const getSlidesFromElements = (els, slotName) => { - if (!Array.isArray(els)) { - return; - } - els.forEach(vnode => { - const isFragment = typeof vnode.type === 'symbol'; - if (slotName === 'default') slotName = 'container-end'; - if (isFragment && vnode.children) { - getSlidesFromElements(vnode.children, slotName); - } else if (vnode.type && (vnode.type.name === 'SwiperSlide' || vnode.type.name === 'AsyncComponentWrapper')) { - slides.push(vnode); - } else if (slots[slotName]) { - slots[slotName].push(vnode); - } - }); - }; - Object.keys(originalSlots).forEach(slotName => { - if (typeof originalSlots[slotName] !== 'function') return; - const els = originalSlots[slotName](); - getSlidesFromElements(els, slotName); - }); - oldSlidesRef.value = slidesRef.value; - slidesRef.value = slides; - return { - slides, - slots - }; -} - -function renderVirtual(swiperRef, slides, virtualData) { - if (!virtualData) return null; - const getSlideIndex = index => { - let slideIndex = index; - if (index < 0) { - slideIndex = slides.length + index; - } else if (slideIndex >= slides.length) { - // eslint-disable-next-line - slideIndex = slideIndex - slides.length; - } - return slideIndex; - }; - const style = swiperRef.value.isHorizontal() ? { - [swiperRef.value.rtlTranslate ? 'right' : 'left']: `${virtualData.offset}px` - } : { - top: `${virtualData.offset}px` - }; - const { - from, - to - } = virtualData; - const loopFrom = swiperRef.value.params.loop ? -slides.length : 0; - const loopTo = swiperRef.value.params.loop ? slides.length * 2 : slides.length; - const slidesToRender = []; - for (let i = loopFrom; i < loopTo; i += 1) { - if (i >= from && i <= to) { - slidesToRender.push(slides[getSlideIndex(i)]); - } - } - return slidesToRender.map(slide => { - if (!slide.props) slide.props = {}; - if (!slide.props.style) slide.props.style = {}; - slide.props.swiperRef = swiperRef; - slide.props.style = style; - return h(slide.type, { - ...slide.props - }, slide.children); - }); -} - -const Swiper = { - name: 'Swiper', - props: { - tag: { - type: String, - default: 'div' - }, - wrapperTag: { - type: String, - default: 'div' - }, - modules: { - type: Array, - default: undefined - }, - init: { - type: Boolean, - default: undefined - }, - direction: { - type: String, - default: undefined - }, - oneWayMovement: { - type: Boolean, - default: undefined - }, - touchEventsTarget: { - type: String, - default: undefined - }, - initialSlide: { - type: Number, - default: undefined - }, - speed: { - type: Number, - default: undefined - }, - cssMode: { - type: Boolean, - default: undefined - }, - updateOnWindowResize: { - type: Boolean, - default: undefined - }, - resizeObserver: { - type: Boolean, - default: undefined - }, - nested: { - type: Boolean, - default: undefined - }, - focusableElements: { - type: String, - default: undefined - }, - width: { - type: Number, - default: undefined - }, - height: { - type: Number, - default: undefined - }, - preventInteractionOnTransition: { - type: Boolean, - default: undefined - }, - userAgent: { - type: String, - default: undefined - }, - url: { - type: String, - default: undefined - }, - edgeSwipeDetection: { - type: [Boolean, String], - default: undefined - }, - edgeSwipeThreshold: { - type: Number, - default: undefined - }, - autoHeight: { - type: Boolean, - default: undefined - }, - setWrapperSize: { - type: Boolean, - default: undefined - }, - virtualTranslate: { - type: Boolean, - default: undefined - }, - effect: { - type: String, - default: undefined - }, - breakpoints: { - type: Object, - default: undefined - }, - spaceBetween: { - type: [Number, String], - default: undefined - }, - slidesPerView: { - type: [Number, String], - default: undefined - }, - maxBackfaceHiddenSlides: { - type: Number, - default: undefined - }, - slidesPerGroup: { - type: Number, - default: undefined - }, - slidesPerGroupSkip: { - type: Number, - default: undefined - }, - slidesPerGroupAuto: { - type: Boolean, - default: undefined - }, - centeredSlides: { - type: Boolean, - default: undefined - }, - centeredSlidesBounds: { - type: Boolean, - default: undefined - }, - slidesOffsetBefore: { - type: Number, - default: undefined - }, - slidesOffsetAfter: { - type: Number, - default: undefined - }, - normalizeSlideIndex: { - type: Boolean, - default: undefined - }, - centerInsufficientSlides: { - type: Boolean, - default: undefined - }, - watchOverflow: { - type: Boolean, - default: undefined - }, - roundLengths: { - type: Boolean, - default: undefined - }, - touchRatio: { - type: Number, - default: undefined - }, - touchAngle: { - type: Number, - default: undefined - }, - simulateTouch: { - type: Boolean, - default: undefined - }, - shortSwipes: { - type: Boolean, - default: undefined - }, - longSwipes: { - type: Boolean, - default: undefined - }, - longSwipesRatio: { - type: Number, - default: undefined - }, - longSwipesMs: { - type: Number, - default: undefined - }, - followFinger: { - type: Boolean, - default: undefined - }, - allowTouchMove: { - type: Boolean, - default: undefined - }, - threshold: { - type: Number, - default: undefined - }, - touchMoveStopPropagation: { - type: Boolean, - default: undefined - }, - touchStartPreventDefault: { - type: Boolean, - default: undefined - }, - touchStartForcePreventDefault: { - type: Boolean, - default: undefined - }, - touchReleaseOnEdges: { - type: Boolean, - default: undefined - }, - uniqueNavElements: { - type: Boolean, - default: undefined - }, - resistance: { - type: Boolean, - default: undefined - }, - resistanceRatio: { - type: Number, - default: undefined - }, - watchSlidesProgress: { - type: Boolean, - default: undefined - }, - grabCursor: { - type: Boolean, - default: undefined - }, - preventClicks: { - type: Boolean, - default: undefined - }, - preventClicksPropagation: { - type: Boolean, - default: undefined - }, - slideToClickedSlide: { - type: Boolean, - default: undefined - }, - loop: { - type: Boolean, - default: undefined - }, - loopedSlides: { - type: Number, - default: undefined - }, - loopPreventsSliding: { - type: Boolean, - default: undefined - }, - rewind: { - type: Boolean, - default: undefined - }, - allowSlidePrev: { - type: Boolean, - default: undefined - }, - allowSlideNext: { - type: Boolean, - default: undefined - }, - swipeHandler: { - type: Boolean, - default: undefined - }, - noSwiping: { - type: Boolean, - default: undefined - }, - noSwipingClass: { - type: String, - default: undefined - }, - noSwipingSelector: { - type: String, - default: undefined - }, - passiveListeners: { - type: Boolean, - default: undefined - }, - containerModifierClass: { - type: String, - default: undefined - }, - slideClass: { - type: String, - default: undefined - }, - slideActiveClass: { - type: String, - default: undefined - }, - slideVisibleClass: { - type: String, - default: undefined - }, - slideFullyVisibleClass: { - type: String, - default: undefined - }, - slideBlankClass: { - type: String, - default: undefined - }, - slideNextClass: { - type: String, - default: undefined - }, - slidePrevClass: { - type: String, - default: undefined - }, - wrapperClass: { - type: String, - default: undefined - }, - lazyPreloaderClass: { - type: String, - default: undefined - }, - lazyPreloadPrevNext: { - type: Number, - default: undefined - }, - runCallbacksOnInit: { - type: Boolean, - default: undefined - }, - observer: { - type: Boolean, - default: undefined - }, - observeParents: { - type: Boolean, - default: undefined - }, - observeSlideChildren: { - type: Boolean, - default: undefined - }, - a11y: { - type: [Boolean, Object], - default: undefined - }, - autoplay: { - type: [Boolean, Object], - default: undefined - }, - controller: { - type: Object, - default: undefined - }, - coverflowEffect: { - type: Object, - default: undefined - }, - cubeEffect: { - type: Object, - default: undefined - }, - fadeEffect: { - type: Object, - default: undefined - }, - flipEffect: { - type: Object, - default: undefined - }, - creativeEffect: { - type: Object, - default: undefined - }, - cardsEffect: { - type: Object, - default: undefined - }, - hashNavigation: { - type: [Boolean, Object], - default: undefined - }, - history: { - type: [Boolean, Object], - default: undefined - }, - keyboard: { - type: [Boolean, Object], - default: undefined - }, - mousewheel: { - type: [Boolean, Object], - default: undefined - }, - navigation: { - type: [Boolean, Object], - default: undefined - }, - pagination: { - type: [Boolean, Object], - default: undefined - }, - parallax: { - type: [Boolean, Object], - default: undefined - }, - scrollbar: { - type: [Boolean, Object], - default: undefined - }, - thumbs: { - type: Object, - default: undefined - }, - virtual: { - type: [Boolean, Object], - default: undefined - }, - zoom: { - type: [Boolean, Object], - default: undefined - }, - grid: { - type: [Object], - default: undefined - }, - freeMode: { - type: [Boolean, Object], - default: undefined - }, - enabled: { - type: Boolean, - default: undefined - } - }, - emits: ['_beforeBreakpoint', '_containerClasses', '_slideClass', '_slideClasses', '_swiper', '_freeModeNoMomentumRelease', 'activeIndexChange', 'afterInit', 'autoplay', 'autoplayStart', 'autoplayStop', 'autoplayPause', 'autoplayResume', 'autoplayTimeLeft', 'beforeDestroy', 'beforeInit', 'beforeLoopFix', 'beforeResize', 'beforeSlideChangeStart', 'beforeTransitionStart', 'breakpoint', 'breakpointsBase', 'changeDirection', 'click', 'disable', 'doubleTap', 'doubleClick', 'destroy', 'enable', 'fromEdge', 'hashChange', 'hashSet', 'init', 'keyPress', 'lock', 'loopFix', 'momentumBounce', 'navigationHide', 'navigationShow', 'navigationPrev', 'navigationNext', 'observerUpdate', 'orientationchange', 'paginationHide', 'paginationRender', 'paginationShow', 'paginationUpdate', 'progress', 'reachBeginning', 'reachEnd', 'realIndexChange', 'resize', 'scroll', 'scrollbarDragEnd', 'scrollbarDragMove', 'scrollbarDragStart', 'setTransition', 'setTranslate', 'slidesUpdated', 'slideChange', 'slideChangeTransitionEnd', 'slideChangeTransitionStart', 'slideNextTransitionEnd', 'slideNextTransitionStart', 'slidePrevTransitionEnd', 'slidePrevTransitionStart', 'slideResetTransitionStart', 'slideResetTransitionEnd', 'sliderMove', 'sliderFirstMove', 'slidesLengthChange', 'slidesGridLengthChange', 'snapGridLengthChange', 'snapIndexChange', 'swiper', 'tap', 'toEdge', 'touchEnd', 'touchMove', 'touchMoveOpposite', 'touchStart', 'transitionEnd', 'transitionStart', 'unlock', 'update', 'virtualUpdate', 'zoomChange'], - setup(props, _ref) { - let { - slots: originalSlots, - emit - } = _ref; - const { - tag: Tag, - wrapperTag: WrapperTag - } = props; - const containerClasses = ref('swiper'); - const virtualData = ref(null); - const breakpointChanged = ref(false); - const initializedRef = ref(false); - const swiperElRef = ref(null); - const swiperRef = ref(null); - const oldPassedParamsRef = ref(null); - const slidesRef = { - value: [] - }; - const oldSlidesRef = { - value: [] - }; - const nextElRef = ref(null); - const prevElRef = ref(null); - const paginationElRef = ref(null); - const scrollbarElRef = ref(null); - const { - params: swiperParams, - passedParams - } = getParams(props, false); - getChildren(originalSlots, slidesRef, oldSlidesRef); - oldPassedParamsRef.value = passedParams; - oldSlidesRef.value = slidesRef.value; - const onBeforeBreakpoint = () => { - getChildren(originalSlots, slidesRef, oldSlidesRef); - breakpointChanged.value = true; - }; - swiperParams.onAny = function (event) { - for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - emit(event, ...args); - }; - Object.assign(swiperParams.on, { - _beforeBreakpoint: onBeforeBreakpoint, - _containerClasses(swiper, classes) { - containerClasses.value = classes; - } - }); - - // init Swiper - const passParams = { - ...swiperParams - }; - delete passParams.wrapperClass; - swiperRef.value = new Swiper$1(passParams); - if (swiperRef.value.virtual && swiperRef.value.params.virtual.enabled) { - swiperRef.value.virtual.slides = slidesRef.value; - const extendWith = { - cache: false, - slides: slidesRef.value, - renderExternal: data => { - virtualData.value = data; - }, - renderExternalUpdate: false - }; - extend(swiperRef.value.params.virtual, extendWith); - extend(swiperRef.value.originalParams.virtual, extendWith); - } - onUpdated(() => { - // set initialized flag - if (!initializedRef.value && swiperRef.value) { - swiperRef.value.emitSlidesClasses(); - initializedRef.value = true; - } - // watch for params change - const { - passedParams: newPassedParams - } = getParams(props, false); - const changedParams = getChangedParams(newPassedParams, oldPassedParamsRef.value, slidesRef.value, oldSlidesRef.value, c => c.props && c.props.key); - oldPassedParamsRef.value = newPassedParams; - if ((changedParams.length || breakpointChanged.value) && swiperRef.value && !swiperRef.value.destroyed) { - updateSwiper({ - swiper: swiperRef.value, - slides: slidesRef.value, - passedParams: newPassedParams, - changedParams, - nextEl: nextElRef.value, - prevEl: prevElRef.value, - scrollbarEl: scrollbarElRef.value, - paginationEl: paginationElRef.value - }); - } - breakpointChanged.value = false; - }); - provide('swiper', swiperRef); - - // update on virtual update - watch(virtualData, () => { - nextTick(() => { - updateOnVirtualData(swiperRef.value); - }); - }); - - // mount swiper - onMounted(() => { - if (!swiperElRef.value) return; - mountSwiper({ - el: swiperElRef.value, - nextEl: nextElRef.value, - prevEl: prevElRef.value, - paginationEl: paginationElRef.value, - scrollbarEl: scrollbarElRef.value, - swiper: swiperRef.value - }, swiperParams); - emit('swiper', swiperRef.value); - }); - onBeforeUnmount(() => { - if (swiperRef.value && !swiperRef.value.destroyed) { - swiperRef.value.destroy(true, false); - } - }); - - // bypass swiper instance to slides - function renderSlides(slides) { - if (swiperParams.virtual) { - return renderVirtual(swiperRef, slides, virtualData.value); - } - slides.forEach((slide, index) => { - if (!slide.props) slide.props = {}; - slide.props.swiperRef = swiperRef; - slide.props.swiperSlideIndex = index; - }); - return slides; - } - return () => { - const { - slides, - slots - } = getChildren(originalSlots, slidesRef, oldSlidesRef); - return h(Tag, { - ref: swiperElRef, - class: uniqueClasses(containerClasses.value) - }, [slots['container-start'], h(WrapperTag, { - class: wrapperClass(swiperParams.wrapperClass) - }, [slots['wrapper-start'], renderSlides(slides), slots['wrapper-end']]), needsNavigation(props) && [h('div', { - ref: prevElRef, - class: 'swiper-button-prev' - }), h('div', { - ref: nextElRef, - class: 'swiper-button-next' - })], needsScrollbar(props) && h('div', { - ref: scrollbarElRef, - class: 'swiper-scrollbar' - }), needsPagination(props) && h('div', { - ref: paginationElRef, - class: 'swiper-pagination' - }), slots['container-end']]); - }; - } -}; - -const SwiperSlide = { - name: 'SwiperSlide', - props: { - tag: { - type: String, - default: 'div' - }, - swiperRef: { - type: Object, - required: false - }, - swiperSlideIndex: { - type: Number, - default: undefined, - required: false - }, - zoom: { - type: Boolean, - default: undefined, - required: false - }, - lazy: { - type: Boolean, - default: false, - required: false - }, - virtualIndex: { - type: [String, Number], - default: undefined - } - }, - setup(props, _ref) { - let { - slots - } = _ref; - let eventAttached = false; - const { - swiperRef - } = props; - const slideElRef = ref(null); - const slideClasses = ref('swiper-slide'); - const lazyLoaded = ref(false); - function updateClasses(swiper, el, classNames) { - if (el === slideElRef.value) { - slideClasses.value = classNames; - } - } - onMounted(() => { - if (!swiperRef || !swiperRef.value) return; - swiperRef.value.on('_slideClass', updateClasses); - eventAttached = true; - }); - onBeforeUpdate(() => { - if (eventAttached || !swiperRef || !swiperRef.value) return; - swiperRef.value.on('_slideClass', updateClasses); - eventAttached = true; - }); - onUpdated(() => { - if (!slideElRef.value || !swiperRef || !swiperRef.value) return; - if (typeof props.swiperSlideIndex !== 'undefined') { - slideElRef.value.swiperSlideIndex = props.swiperSlideIndex; - } - if (swiperRef.value.destroyed) { - if (slideClasses.value !== 'swiper-slide') { - slideClasses.value = 'swiper-slide'; - } - } - }); - onBeforeUnmount(() => { - if (!swiperRef || !swiperRef.value) return; - swiperRef.value.off('_slideClass', updateClasses); - }); - const slideData = computed(() => ({ - isActive: slideClasses.value.indexOf('swiper-slide-active') >= 0, - isVisible: slideClasses.value.indexOf('swiper-slide-visible') >= 0, - isPrev: slideClasses.value.indexOf('swiper-slide-prev') >= 0, - isNext: slideClasses.value.indexOf('swiper-slide-next') >= 0 - })); - provide('swiperSlide', slideData); - const onLoad = () => { - lazyLoaded.value = true; - }; - return () => { - return h(props.tag, { - class: uniqueClasses(`${slideClasses.value}`), - ref: slideElRef, - 'data-swiper-slide-index': typeof props.virtualIndex === 'undefined' && swiperRef && swiperRef.value && swiperRef.value.params.loop ? props.swiperSlideIndex : props.virtualIndex, - onLoadCapture: onLoad - }, props.zoom ? h('div', { - class: 'swiper-zoom-container', - 'data-swiper-zoom': typeof props.zoom === 'number' ? props.zoom : undefined - }, [slots.default && slots.default(slideData.value), props.lazy && !lazyLoaded.value && h('div', { - class: 'swiper-lazy-preloader' - })]) : [slots.default && slots.default(slideData.value), props.lazy && !lazyLoaded.value && h('div', { - class: 'swiper-lazy-preloader' - })]); - }; - } -}; - -const useSwiperSlide = () => { - return inject('swiperSlide'); -}; -const useSwiper = () => { - return inject('swiper'); -}; - -export { Swiper, SwiperSlide, useSwiper, useSwiperSlide }; diff --git a/build/assets/js/vendor/swiper/swiper.css b/build/assets/js/vendor/swiper/swiper.css deleted file mode 100644 index 3f74534..0000000 --- a/build/assets/js/vendor/swiper/swiper.css +++ /dev/null @@ -1,228 +0,0 @@ -/** - * Swiper 11.0.5 - * 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: November 22, 2023 - */ - -/* FONT_START */ -@font-face { - font-family: 'swiper-icons'; - src: url('data:application/font-woff;charset=utf-8;base64, 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'); - font-weight: 400; - font-style: normal; -} -/* FONT_END */ -:root { - --swiper-theme-color: #007aff; - /* - --swiper-preloader-color: var(--swiper-theme-color); - --swiper-wrapper-transition-timing-function: initial; - */ -} -:host { - position: relative; - display: block; - margin-left: auto; - margin-right: auto; - z-index: 1; -} -.swiper { - margin-left: auto; - margin-right: auto; - position: relative; - overflow: hidden; - list-style: none; - padding: 0; - /* Fix of Webkit flickering */ - z-index: 1; - display: block; -} -.swiper-vertical > .swiper-wrapper { - flex-direction: column; -} -.swiper-wrapper { - position: relative; - width: 100%; - height: 100%; - z-index: 1; - display: flex; - transition-property: transform; - transition-timing-function: var(--swiper-wrapper-transition-timing-function, initial); - box-sizing: content-box; -} -.swiper-android .swiper-slide, -.swiper-ios .swiper-slide, -.swiper-wrapper { - transform: translate3d(0px, 0, 0); -} -.swiper-horizontal { - touch-action: pan-y; -} -.swiper-vertical { - touch-action: pan-x; -} -.swiper-slide { - flex-shrink: 0; - width: 100%; - height: 100%; - position: relative; - transition-property: transform; - display: block; -} -.swiper-slide-invisible-blank { - visibility: hidden; -} -/* Auto Height */ -.swiper-autoheight, -.swiper-autoheight .swiper-slide { - height: auto; -} -.swiper-autoheight .swiper-wrapper { - align-items: flex-start; - transition-property: transform, height; -} -.swiper-backface-hidden .swiper-slide { - transform: translateZ(0); - -webkit-backface-visibility: hidden; - backface-visibility: hidden; -} -/* 3D Effects */ -.swiper-3d.swiper-css-mode .swiper-wrapper { - perspective: 1200px; -} -.swiper-3d .swiper-wrapper { - transform-style: preserve-3d; -} -.swiper-3d { - perspective: 1200px; -} -.swiper-3d .swiper-slide, -.swiper-3d .swiper-cube-shadow { - transform-style: preserve-3d; -} -/* CSS Mode */ -.swiper-css-mode > .swiper-wrapper { - overflow: auto; - scrollbar-width: none; - /* For Firefox */ - -ms-overflow-style: none; - /* For Internet Explorer and Edge */ -} -.swiper-css-mode > .swiper-wrapper::-webkit-scrollbar { - display: none; -} -.swiper-css-mode > .swiper-wrapper > .swiper-slide { - scroll-snap-align: start start; -} -.swiper-css-mode.swiper-horizontal > .swiper-wrapper { - scroll-snap-type: x mandatory; -} -.swiper-css-mode.swiper-vertical > .swiper-wrapper { - scroll-snap-type: y mandatory; -} -.swiper-css-mode.swiper-free-mode > .swiper-wrapper { - scroll-snap-type: none; -} -.swiper-css-mode.swiper-free-mode > .swiper-wrapper > .swiper-slide { - scroll-snap-align: none; -} -.swiper-css-mode.swiper-centered > .swiper-wrapper::before { - content: ''; - flex-shrink: 0; - order: 9999; -} -.swiper-css-mode.swiper-centered > .swiper-wrapper > .swiper-slide { - scroll-snap-align: center center; - scroll-snap-stop: always; -} -.swiper-css-mode.swiper-centered.swiper-horizontal > .swiper-wrapper > .swiper-slide:first-child { - margin-inline-start: var(--swiper-centered-offset-before); -} -.swiper-css-mode.swiper-centered.swiper-horizontal > .swiper-wrapper::before { - height: 100%; - min-height: 1px; - width: var(--swiper-centered-offset-after); -} -.swiper-css-mode.swiper-centered.swiper-vertical > .swiper-wrapper > .swiper-slide:first-child { - margin-block-start: var(--swiper-centered-offset-before); -} -.swiper-css-mode.swiper-centered.swiper-vertical > .swiper-wrapper::before { - width: 100%; - min-width: 1px; - height: var(--swiper-centered-offset-after); -} -/* Slide styles start */ -/* 3D Shadows */ -.swiper-3d .swiper-slide-shadow, -.swiper-3d .swiper-slide-shadow-left, -.swiper-3d .swiper-slide-shadow-right, -.swiper-3d .swiper-slide-shadow-top, -.swiper-3d .swiper-slide-shadow-bottom, -.swiper-3d .swiper-slide-shadow, -.swiper-3d .swiper-slide-shadow-left, -.swiper-3d .swiper-slide-shadow-right, -.swiper-3d .swiper-slide-shadow-top, -.swiper-3d .swiper-slide-shadow-bottom { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - pointer-events: none; - z-index: 10; -} -.swiper-3d .swiper-slide-shadow { - background: rgba(0, 0, 0, 0.15); -} -.swiper-3d .swiper-slide-shadow-left { - background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); -} -.swiper-3d .swiper-slide-shadow-right { - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); -} -.swiper-3d .swiper-slide-shadow-top { - background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); -} -.swiper-3d .swiper-slide-shadow-bottom { - background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); -} -.swiper-lazy-preloader { - width: 42px; - height: 42px; - position: absolute; - left: 50%; - top: 50%; - margin-left: -21px; - margin-top: -21px; - z-index: 10; - transform-origin: 50%; - box-sizing: border-box; - border: 4px solid var(--swiper-preloader-color, var(--swiper-theme-color)); - border-radius: 50%; - border-top-color: transparent; -} -.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader, -.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader { - animation: swiper-preloader-spin 1s infinite linear; -} -.swiper-lazy-preloader-white { - --swiper-preloader-color: #fff; -} -.swiper-lazy-preloader-black { - --swiper-preloader-color: #000; -} -@keyframes swiper-preloader-spin { - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(360deg); - } -} -/* Slide styles end */ diff --git a/build/assets/js/vendor/swiper/swiper.d.ts b/build/assets/js/vendor/swiper/swiper.d.ts deleted file mode 100644 index 07e4e50..0000000 --- a/build/assets/js/vendor/swiper/swiper.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -// @ts-ignore -import Swiper from './types/swiper-class.d.ts'; - -export default Swiper; -export { Swiper }; diff --git a/build/assets/js/vendor/swiper/swiper.js b/build/assets/js/vendor/swiper/swiper.js deleted file mode 100644 index faaec5a..0000000 --- a/build/assets/js/vendor/swiper/swiper.js +++ /dev/null @@ -1,4297 +0,0 @@ -/** - * Swiper 11.0.5 - * 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: November 22, 2023 - */ - -var Swiper = (function () { - 'use strict'; - - /** - * SSR Window 4.0.2 - * Better handling for window object in SSR environment - * https://github.com/nolimits4web/ssr-window - * - * Copyright 2021, Vladimir Kharlampidi - * - * Licensed under MIT - * - * Released on: December 13, 2021 - */ - /* eslint-disable no-param-reassign */ - function isObject$1(obj) { - return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object; - } - function extend$1(target, src) { - if (target === void 0) { - target = {}; - } - if (src === void 0) { - src = {}; - } - Object.keys(src).forEach(key => { - if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject$1(src[key]) && isObject$1(target[key]) && Object.keys(src[key]).length > 0) { - extend$1(target[key], src[key]); - } - }); - } - const ssrDocument = { - body: {}, - addEventListener() {}, - removeEventListener() {}, - activeElement: { - blur() {}, - nodeName: '' - }, - querySelector() { - return null; - }, - querySelectorAll() { - return []; - }, - getElementById() { - return null; - }, - createEvent() { - return { - initEvent() {} - }; - }, - createElement() { - return { - children: [], - childNodes: [], - style: {}, - setAttribute() {}, - getElementsByTagName() { - return []; - } - }; - }, - createElementNS() { - return {}; - }, - importNode() { - return null; - }, - location: { - hash: '', - host: '', - hostname: '', - href: '', - origin: '', - pathname: '', - protocol: '', - search: '' - } - }; - function getDocument() { - const doc = typeof document !== 'undefined' ? document : {}; - extend$1(doc, ssrDocument); - return doc; - } - const ssrWindow = { - document: ssrDocument, - navigator: { - userAgent: '' - }, - location: { - hash: '', - host: '', - hostname: '', - href: '', - origin: '', - pathname: '', - protocol: '', - search: '' - }, - history: { - replaceState() {}, - pushState() {}, - go() {}, - back() {} - }, - CustomEvent: function CustomEvent() { - return this; - }, - addEventListener() {}, - removeEventListener() {}, - getComputedStyle() { - return { - getPropertyValue() { - return ''; - } - }; - }, - Image() {}, - Date() {}, - screen: {}, - setTimeout() {}, - clearTimeout() {}, - matchMedia() { - return {}; - }, - requestAnimationFrame(callback) { - if (typeof setTimeout === 'undefined') { - callback(); - return null; - } - return setTimeout(callback, 0); - }, - cancelAnimationFrame(id) { - if (typeof setTimeout === 'undefined') { - return; - } - clearTimeout(id); - } - }; - function getWindow() { - const win = typeof window !== 'undefined' ? window : {}; - extend$1(win, ssrWindow); - return win; - } - - function classesToTokens(classes) { - if (classes === void 0) { - classes = ''; - } - return classes.trim().split(' ').filter(c => !!c.trim()); - } - - function deleteProps(obj) { - const object = obj; - Object.keys(object).forEach(key => { - try { - object[key] = null; - } catch (e) { - // no getter for object - } - try { - delete object[key]; - } catch (e) { - // something got wrong - } - }); - } - function nextTick(callback, delay) { - if (delay === void 0) { - delay = 0; - } - return setTimeout(callback, delay); - } - function now() { - return Date.now(); - } - function getComputedStyle$1(el) { - const window = getWindow(); - let style; - if (window.getComputedStyle) { - style = window.getComputedStyle(el, null); - } - if (!style && el.currentStyle) { - style = el.currentStyle; - } - if (!style) { - style = el.style; - } - return style; - } - function getTranslate(el, axis) { - if (axis === void 0) { - axis = 'x'; - } - const window = getWindow(); - let matrix; - let curTransform; - let transformMatrix; - const curStyle = getComputedStyle$1(el); - if (window.WebKitCSSMatrix) { - curTransform = curStyle.transform || curStyle.webkitTransform; - if (curTransform.split(',').length > 6) { - curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', '); - } - // Some old versions of Webkit choke when 'none' is passed; pass - // empty string instead in this case - transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform); - } else { - transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,'); - matrix = transformMatrix.toString().split(','); - } - if (axis === 'x') { - // Latest Chrome and webkits Fix - if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; - // Crazy IE10 Matrix - else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); - // Normal Browsers - else curTransform = parseFloat(matrix[4]); - } - if (axis === 'y') { - // Latest Chrome and webkits Fix - if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; - // Crazy IE10 Matrix - else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); - // Normal Browsers - else curTransform = parseFloat(matrix[5]); - } - return curTransform || 0; - } - function isObject(o) { - return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object'; - } - function isNode(node) { - // eslint-disable-next-line - if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') { - return node instanceof HTMLElement; - } - return node && (node.nodeType === 1 || node.nodeType === 11); - } - function extend() { - const to = Object(arguments.length <= 0 ? undefined : arguments[0]); - const noExtend = ['__proto__', 'constructor', 'prototype']; - for (let i = 1; i < arguments.length; i += 1) { - const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i]; - if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) { - const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0); - for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) { - const nextKey = keysArray[nextIndex]; - const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey); - if (desc !== undefined && desc.enumerable) { - if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) { - if (nextSource[nextKey].__swiper__) { - to[nextKey] = nextSource[nextKey]; - } else { - extend(to[nextKey], nextSource[nextKey]); - } - } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) { - to[nextKey] = {}; - if (nextSource[nextKey].__swiper__) { - to[nextKey] = nextSource[nextKey]; - } else { - extend(to[nextKey], nextSource[nextKey]); - } - } else { - to[nextKey] = nextSource[nextKey]; - } - } - } - } - } - return to; - } - function setCSSProperty(el, varName, varValue) { - el.style.setProperty(varName, varValue); - } - function animateCSSModeScroll(_ref) { - let { - swiper, - targetPosition, - side - } = _ref; - const window = getWindow(); - const startPosition = -swiper.translate; - let startTime = null; - let time; - const duration = swiper.params.speed; - swiper.wrapperEl.style.scrollSnapType = 'none'; - window.cancelAnimationFrame(swiper.cssModeFrameID); - const dir = targetPosition > startPosition ? 'next' : 'prev'; - const isOutOfBound = (current, target) => { - return dir === 'next' && current >= target || dir === 'prev' && current <= target; - }; - const animate = () => { - time = new Date().getTime(); - if (startTime === null) { - startTime = time; - } - const progress = Math.max(Math.min((time - startTime) / duration, 1), 0); - const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2; - let currentPosition = startPosition + easeProgress * (targetPosition - startPosition); - if (isOutOfBound(currentPosition, targetPosition)) { - currentPosition = targetPosition; - } - swiper.wrapperEl.scrollTo({ - [side]: currentPosition - }); - if (isOutOfBound(currentPosition, targetPosition)) { - swiper.wrapperEl.style.overflow = 'hidden'; - swiper.wrapperEl.style.scrollSnapType = ''; - setTimeout(() => { - swiper.wrapperEl.style.overflow = ''; - swiper.wrapperEl.scrollTo({ - [side]: currentPosition - }); - }); - window.cancelAnimationFrame(swiper.cssModeFrameID); - return; - } - swiper.cssModeFrameID = window.requestAnimationFrame(animate); - }; - animate(); - } - function elementChildren(element, selector) { - if (selector === void 0) { - selector = ''; - } - return [...element.children].filter(el => el.matches(selector)); - } - function showWarning(text) { - try { - console.warn(text); - return; - } catch (err) { - // err - } - } - function createElement(tag, classes) { - if (classes === void 0) { - classes = []; - } - const el = document.createElement(tag); - el.classList.add(...(Array.isArray(classes) ? classes : classesToTokens(classes))); - return el; - } - function elementPrevAll(el, selector) { - const prevEls = []; - while (el.previousElementSibling) { - const prev = el.previousElementSibling; // eslint-disable-line - if (selector) { - if (prev.matches(selector)) prevEls.push(prev); - } else prevEls.push(prev); - el = prev; - } - return prevEls; - } - function elementNextAll(el, selector) { - const nextEls = []; - while (el.nextElementSibling) { - const next = el.nextElementSibling; // eslint-disable-line - if (selector) { - if (next.matches(selector)) nextEls.push(next); - } else nextEls.push(next); - el = next; - } - return nextEls; - } - function elementStyle(el, prop) { - const window = getWindow(); - return window.getComputedStyle(el, null).getPropertyValue(prop); - } - function elementIndex(el) { - let child = el; - let i; - if (child) { - i = 0; - // eslint-disable-next-line - while ((child = child.previousSibling) !== null) { - if (child.nodeType === 1) i += 1; - } - return i; - } - return undefined; - } - function elementParents(el, selector) { - const parents = []; // eslint-disable-line - let parent = el.parentElement; // eslint-disable-line - while (parent) { - if (selector) { - if (parent.matches(selector)) parents.push(parent); - } else { - parents.push(parent); - } - parent = parent.parentElement; - } - return parents; - } - function elementOuterSize(el, size, includeMargins) { - const window = getWindow(); - if (includeMargins) { - return el[size === 'width' ? 'offsetWidth' : 'offsetHeight'] + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-right' : 'margin-top')) + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-left' : 'margin-bottom')); - } - return el.offsetWidth; - } - - let support; - function calcSupport() { - const window = getWindow(); - const document = getDocument(); - return { - smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style, - touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch) - }; - } - function getSupport() { - if (!support) { - support = calcSupport(); - } - return support; - } - - let deviceCached; - function calcDevice(_temp) { - let { - userAgent - } = _temp === void 0 ? {} : _temp; - const support = getSupport(); - const window = getWindow(); - const platform = window.navigator.platform; - const ua = userAgent || window.navigator.userAgent; - const device = { - ios: false, - android: false - }; - const screenWidth = window.screen.width; - const screenHeight = window.screen.height; - const android = ua.match(/(Android);?[\s\/]+([\d.]+)?/); // eslint-disable-line - let ipad = ua.match(/(iPad).*OS\s([\d_]+)/); - const ipod = ua.match(/(iPod)(.*OS\s([\d_]+))?/); - const iphone = !ipad && ua.match(/(iPhone\sOS|iOS)\s([\d_]+)/); - const windows = platform === 'Win32'; - let macos = platform === 'MacIntel'; - - // iPadOs 13 fix - const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810']; - if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) { - ipad = ua.match(/(Version)\/([\d.]+)/); - if (!ipad) ipad = [0, 1, '13_0_0']; - macos = false; - } - - // Android - if (android && !windows) { - device.os = 'android'; - device.android = true; - } - if (ipad || iphone || ipod) { - device.os = 'ios'; - device.ios = true; - } - - // Export object - return device; - } - function getDevice(overrides) { - if (overrides === void 0) { - overrides = {}; - } - if (!deviceCached) { - deviceCached = calcDevice(overrides); - } - return deviceCached; - } - - let browser; - function calcBrowser() { - const window = getWindow(); - let needPerspectiveFix = false; - function isSafari() { - const ua = window.navigator.userAgent.toLowerCase(); - return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0; - } - if (isSafari()) { - const ua = String(window.navigator.userAgent); - if (ua.includes('Version/')) { - const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num)); - needPerspectiveFix = major < 16 || major === 16 && minor < 2; - } - } - return { - isSafari: needPerspectiveFix || isSafari(), - needPerspectiveFix, - isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent) - }; - } - function getBrowser() { - if (!browser) { - browser = calcBrowser(); - } - return browser; - } - - function Resize(_ref) { - let { - swiper, - on, - emit - } = _ref; - const window = getWindow(); - let observer = null; - let animationFrame = null; - const resizeHandler = () => { - if (!swiper || swiper.destroyed || !swiper.initialized) return; - emit('beforeResize'); - emit('resize'); - }; - const createObserver = () => { - if (!swiper || swiper.destroyed || !swiper.initialized) return; - observer = new ResizeObserver(entries => { - animationFrame = window.requestAnimationFrame(() => { - const { - width, - height - } = swiper; - let newWidth = width; - let newHeight = height; - entries.forEach(_ref2 => { - let { - contentBoxSize, - contentRect, - target - } = _ref2; - if (target && target !== swiper.el) return; - newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize; - newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize; - }); - if (newWidth !== width || newHeight !== height) { - resizeHandler(); - } - }); - }); - observer.observe(swiper.el); - }; - const removeObserver = () => { - if (animationFrame) { - window.cancelAnimationFrame(animationFrame); - } - if (observer && observer.unobserve && swiper.el) { - observer.unobserve(swiper.el); - observer = null; - } - }; - const orientationChangeHandler = () => { - if (!swiper || swiper.destroyed || !swiper.initialized) return; - emit('orientationchange'); - }; - on('init', () => { - if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') { - createObserver(); - return; - } - window.addEventListener('resize', resizeHandler); - window.addEventListener('orientationchange', orientationChangeHandler); - }); - on('destroy', () => { - removeObserver(); - window.removeEventListener('resize', resizeHandler); - window.removeEventListener('orientationchange', orientationChangeHandler); - }); - } - - function Observer(_ref) { - let { - swiper, - extendParams, - on, - emit - } = _ref; - const observers = []; - const window = getWindow(); - const attach = function (target, options) { - if (options === void 0) { - options = {}; - } - const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver; - const observer = new ObserverFunc(mutations => { - // The observerUpdate event should only be triggered - // once despite the number of mutations. Additional - // triggers are redundant and are very costly - if (swiper.__preventObserver__) return; - if (mutations.length === 1) { - emit('observerUpdate', mutations[0]); - return; - } - const observerUpdate = function observerUpdate() { - emit('observerUpdate', mutations[0]); - }; - if (window.requestAnimationFrame) { - window.requestAnimationFrame(observerUpdate); - } else { - window.setTimeout(observerUpdate, 0); - } - }); - observer.observe(target, { - attributes: typeof options.attributes === 'undefined' ? true : options.attributes, - childList: typeof options.childList === 'undefined' ? true : options.childList, - characterData: typeof options.characterData === 'undefined' ? true : options.characterData - }); - observers.push(observer); - }; - const init = () => { - if (!swiper.params.observer) return; - if (swiper.params.observeParents) { - const containerParents = elementParents(swiper.hostEl); - for (let i = 0; i < containerParents.length; i += 1) { - attach(containerParents[i]); - } - } - // Observe container - attach(swiper.hostEl, { - childList: swiper.params.observeSlideChildren - }); - - // Observe wrapper - attach(swiper.wrapperEl, { - attributes: false - }); - }; - const destroy = () => { - observers.forEach(observer => { - observer.disconnect(); - }); - observers.splice(0, observers.length); - }; - extendParams({ - observer: false, - observeParents: false, - observeSlideChildren: false - }); - on('init', init); - on('destroy', destroy); - } - - /* eslint-disable no-underscore-dangle */ - - var eventsEmitter = { - on(events, handler, priority) { - const self = this; - if (!self.eventsListeners || self.destroyed) return self; - if (typeof handler !== 'function') return self; - const method = priority ? 'unshift' : 'push'; - events.split(' ').forEach(event => { - if (!self.eventsListeners[event]) self.eventsListeners[event] = []; - self.eventsListeners[event][method](handler); - }); - return self; - }, - once(events, handler, priority) { - const self = this; - if (!self.eventsListeners || self.destroyed) return self; - if (typeof handler !== 'function') return self; - function onceHandler() { - self.off(events, onceHandler); - if (onceHandler.__emitterProxy) { - delete onceHandler.__emitterProxy; - } - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - handler.apply(self, args); - } - onceHandler.__emitterProxy = handler; - return self.on(events, onceHandler, priority); - }, - onAny(handler, priority) { - const self = this; - if (!self.eventsListeners || self.destroyed) return self; - if (typeof handler !== 'function') return self; - const method = priority ? 'unshift' : 'push'; - if (self.eventsAnyListeners.indexOf(handler) < 0) { - self.eventsAnyListeners[method](handler); - } - return self; - }, - offAny(handler) { - const self = this; - if (!self.eventsListeners || self.destroyed) return self; - if (!self.eventsAnyListeners) return self; - const index = self.eventsAnyListeners.indexOf(handler); - if (index >= 0) { - self.eventsAnyListeners.splice(index, 1); - } - return self; - }, - off(events, handler) { - const self = this; - if (!self.eventsListeners || self.destroyed) return self; - if (!self.eventsListeners) return self; - events.split(' ').forEach(event => { - if (typeof handler === 'undefined') { - self.eventsListeners[event] = []; - } else if (self.eventsListeners[event]) { - self.eventsListeners[event].forEach((eventHandler, index) => { - if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) { - self.eventsListeners[event].splice(index, 1); - } - }); - } - }); - return self; - }, - emit() { - const self = this; - if (!self.eventsListeners || self.destroyed) return self; - if (!self.eventsListeners) return self; - let events; - let data; - let context; - for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - args[_key2] = arguments[_key2]; - } - if (typeof args[0] === 'string' || Array.isArray(args[0])) { - events = args[0]; - data = args.slice(1, args.length); - context = self; - } else { - events = args[0].events; - data = args[0].data; - context = args[0].context || self; - } - data.unshift(context); - const eventsArray = Array.isArray(events) ? events : events.split(' '); - eventsArray.forEach(event => { - if (self.eventsAnyListeners && self.eventsAnyListeners.length) { - self.eventsAnyListeners.forEach(eventHandler => { - eventHandler.apply(context, [event, ...data]); - }); - } - if (self.eventsListeners && self.eventsListeners[event]) { - self.eventsListeners[event].forEach(eventHandler => { - eventHandler.apply(context, data); - }); - } - }); - return self; - } - }; - - function updateSize() { - const swiper = this; - let width; - let height; - const el = swiper.el; - if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) { - width = swiper.params.width; - } else { - width = el.clientWidth; - } - if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) { - height = swiper.params.height; - } else { - height = el.clientHeight; - } - if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) { - return; - } - - // Subtract paddings - width = width - parseInt(elementStyle(el, 'padding-left') || 0, 10) - parseInt(elementStyle(el, 'padding-right') || 0, 10); - height = height - parseInt(elementStyle(el, 'padding-top') || 0, 10) - parseInt(elementStyle(el, 'padding-bottom') || 0, 10); - if (Number.isNaN(width)) width = 0; - if (Number.isNaN(height)) height = 0; - Object.assign(swiper, { - width, - height, - size: swiper.isHorizontal() ? width : height - }); - } - - function updateSlides() { - const swiper = this; - function getDirectionPropertyValue(node, label) { - return parseFloat(node.getPropertyValue(swiper.getDirectionLabel(label)) || 0); - } - const params = swiper.params; - const { - wrapperEl, - slidesEl, - size: swiperSize, - rtlTranslate: rtl, - wrongRTL - } = swiper; - const isVirtual = swiper.virtual && params.virtual.enabled; - const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length; - const slides = elementChildren(slidesEl, `.${swiper.params.slideClass}, swiper-slide`); - const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length; - let snapGrid = []; - const slidesGrid = []; - const slidesSizesGrid = []; - let offsetBefore = params.slidesOffsetBefore; - if (typeof offsetBefore === 'function') { - offsetBefore = params.slidesOffsetBefore.call(swiper); - } - let offsetAfter = params.slidesOffsetAfter; - if (typeof offsetAfter === 'function') { - offsetAfter = params.slidesOffsetAfter.call(swiper); - } - const previousSnapGridLength = swiper.snapGrid.length; - const previousSlidesGridLength = swiper.slidesGrid.length; - let spaceBetween = params.spaceBetween; - let slidePosition = -offsetBefore; - let prevSlideSize = 0; - let index = 0; - if (typeof swiperSize === 'undefined') { - return; - } - if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) { - spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize; - } else if (typeof spaceBetween === 'string') { - spaceBetween = parseFloat(spaceBetween); - } - swiper.virtualSize = -spaceBetween; - - // reset margins - slides.forEach(slideEl => { - if (rtl) { - slideEl.style.marginLeft = ''; - } else { - slideEl.style.marginRight = ''; - } - slideEl.style.marginBottom = ''; - slideEl.style.marginTop = ''; - }); - - // reset cssMode offsets - if (params.centeredSlides && params.cssMode) { - setCSSProperty(wrapperEl, '--swiper-centered-offset-before', ''); - setCSSProperty(wrapperEl, '--swiper-centered-offset-after', ''); - } - const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid; - if (gridEnabled) { - swiper.grid.initSlides(slides); - } else if (swiper.grid) { - swiper.grid.unsetSlides(); - } - - // Calc slides - let slideSize; - const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => { - return typeof params.breakpoints[key].slidesPerView !== 'undefined'; - }).length > 0; - for (let i = 0; i < slidesLength; i += 1) { - slideSize = 0; - let slide; - if (slides[i]) slide = slides[i]; - if (gridEnabled) { - swiper.grid.updateSlide(i, slide, slides); - } - if (slides[i] && elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line - - if (params.slidesPerView === 'auto') { - if (shouldResetSlideSize) { - slides[i].style[swiper.getDirectionLabel('width')] = ``; - } - const slideStyles = getComputedStyle(slide); - const currentTransform = slide.style.transform; - const currentWebKitTransform = slide.style.webkitTransform; - if (currentTransform) { - slide.style.transform = 'none'; - } - if (currentWebKitTransform) { - slide.style.webkitTransform = 'none'; - } - if (params.roundLengths) { - slideSize = swiper.isHorizontal() ? elementOuterSize(slide, 'width', true) : elementOuterSize(slide, 'height', true); - } else { - // eslint-disable-next-line - const width = getDirectionPropertyValue(slideStyles, 'width'); - const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left'); - const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right'); - const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left'); - const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right'); - const boxSizing = slideStyles.getPropertyValue('box-sizing'); - if (boxSizing && boxSizing === 'border-box') { - slideSize = width + marginLeft + marginRight; - } else { - const { - clientWidth, - offsetWidth - } = slide; - slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth); - } - } - if (currentTransform) { - slide.style.transform = currentTransform; - } - if (currentWebKitTransform) { - slide.style.webkitTransform = currentWebKitTransform; - } - if (params.roundLengths) slideSize = Math.floor(slideSize); - } else { - slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView; - if (params.roundLengths) slideSize = Math.floor(slideSize); - if (slides[i]) { - slides[i].style[swiper.getDirectionLabel('width')] = `${slideSize}px`; - } - } - if (slides[i]) { - slides[i].swiperSlideSize = slideSize; - } - slidesSizesGrid.push(slideSize); - if (params.centeredSlides) { - slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween; - if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween; - if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween; - if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0; - if (params.roundLengths) slidePosition = Math.floor(slidePosition); - if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition); - slidesGrid.push(slidePosition); - } else { - if (params.roundLengths) slidePosition = Math.floor(slidePosition); - if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition); - slidesGrid.push(slidePosition); - slidePosition = slidePosition + slideSize + spaceBetween; - } - swiper.virtualSize += slideSize + spaceBetween; - prevSlideSize = slideSize; - index += 1; - } - swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter; - if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) { - wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`; - } - if (params.setWrapperSize) { - wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`; - } - if (gridEnabled) { - swiper.grid.updateWrapperSize(slideSize, snapGrid); - } - - // Remove last grid elements depending on width - if (!params.centeredSlides) { - const newSlidesGrid = []; - for (let i = 0; i < snapGrid.length; i += 1) { - let slidesGridItem = snapGrid[i]; - if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem); - if (snapGrid[i] <= swiper.virtualSize - swiperSize) { - newSlidesGrid.push(slidesGridItem); - } - } - snapGrid = newSlidesGrid; - if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) { - snapGrid.push(swiper.virtualSize - swiperSize); - } - } - if (isVirtual && params.loop) { - const size = slidesSizesGrid[0] + spaceBetween; - if (params.slidesPerGroup > 1) { - const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup); - const groupSize = size * params.slidesPerGroup; - for (let i = 0; i < groups; i += 1) { - snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize); - } - } - for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) { - if (params.slidesPerGroup === 1) { - snapGrid.push(snapGrid[snapGrid.length - 1] + size); - } - slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size); - swiper.virtualSize += size; - } - } - if (snapGrid.length === 0) snapGrid = [0]; - if (spaceBetween !== 0) { - const key = swiper.isHorizontal() && rtl ? 'marginLeft' : swiper.getDirectionLabel('marginRight'); - slides.filter((_, slideIndex) => { - if (!params.cssMode || params.loop) return true; - if (slideIndex === slides.length - 1) { - return false; - } - return true; - }).forEach(slideEl => { - slideEl.style[key] = `${spaceBetween}px`; - }); - } - if (params.centeredSlides && params.centeredSlidesBounds) { - let allSlidesSize = 0; - slidesSizesGrid.forEach(slideSizeValue => { - allSlidesSize += slideSizeValue + (spaceBetween || 0); - }); - allSlidesSize -= spaceBetween; - const maxSnap = allSlidesSize - swiperSize; - snapGrid = snapGrid.map(snap => { - if (snap <= 0) return -offsetBefore; - if (snap > maxSnap) return maxSnap + offsetAfter; - return snap; - }); - } - if (params.centerInsufficientSlides) { - let allSlidesSize = 0; - slidesSizesGrid.forEach(slideSizeValue => { - allSlidesSize += slideSizeValue + (spaceBetween || 0); - }); - allSlidesSize -= spaceBetween; - if (allSlidesSize < swiperSize) { - const allSlidesOffset = (swiperSize - allSlidesSize) / 2; - snapGrid.forEach((snap, snapIndex) => { - snapGrid[snapIndex] = snap - allSlidesOffset; - }); - slidesGrid.forEach((snap, snapIndex) => { - slidesGrid[snapIndex] = snap + allSlidesOffset; - }); - } - } - Object.assign(swiper, { - slides, - snapGrid, - slidesGrid, - slidesSizesGrid - }); - if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) { - setCSSProperty(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`); - setCSSProperty(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`); - const addToSnapGrid = -swiper.snapGrid[0]; - const addToSlidesGrid = -swiper.slidesGrid[0]; - swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid); - swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid); - } - if (slidesLength !== previousSlidesLength) { - swiper.emit('slidesLengthChange'); - } - if (snapGrid.length !== previousSnapGridLength) { - if (swiper.params.watchOverflow) swiper.checkOverflow(); - swiper.emit('snapGridLengthChange'); - } - if (slidesGrid.length !== previousSlidesGridLength) { - swiper.emit('slidesGridLengthChange'); - } - if (params.watchSlidesProgress) { - swiper.updateSlidesOffset(); - } - swiper.emit('slidesUpdated'); - if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) { - const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`; - const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass); - if (slidesLength <= params.maxBackfaceHiddenSlides) { - if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass); - } else if (hasClassBackfaceClassAdded) { - swiper.el.classList.remove(backFaceHiddenClass); - } - } - } - - function updateAutoHeight(speed) { - const swiper = this; - const activeSlides = []; - const isVirtual = swiper.virtual && swiper.params.virtual.enabled; - let newHeight = 0; - let i; - if (typeof speed === 'number') { - swiper.setTransition(speed); - } else if (speed === true) { - swiper.setTransition(swiper.params.speed); - } - const getSlideByIndex = index => { - if (isVirtual) { - return swiper.slides[swiper.getSlideIndexByData(index)]; - } - return swiper.slides[index]; - }; - // Find slides currently in view - if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) { - if (swiper.params.centeredSlides) { - (swiper.visibleSlides || []).forEach(slide => { - activeSlides.push(slide); - }); - } else { - for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) { - const index = swiper.activeIndex + i; - if (index > swiper.slides.length && !isVirtual) break; - activeSlides.push(getSlideByIndex(index)); - } - } - } else { - activeSlides.push(getSlideByIndex(swiper.activeIndex)); - } - - // Find new height from highest slide in view - for (i = 0; i < activeSlides.length; i += 1) { - if (typeof activeSlides[i] !== 'undefined') { - const height = activeSlides[i].offsetHeight; - newHeight = height > newHeight ? height : newHeight; - } - } - - // Update Height - if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`; - } - - function updateSlidesOffset() { - const swiper = this; - const slides = swiper.slides; - // eslint-disable-next-line - const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0; - for (let i = 0; i < slides.length; i += 1) { - slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment(); - } - } - - function updateSlidesProgress(translate) { - if (translate === void 0) { - translate = this && this.translate || 0; - } - const swiper = this; - const params = swiper.params; - const { - slides, - rtlTranslate: rtl, - snapGrid - } = swiper; - if (slides.length === 0) return; - if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset(); - let offsetCenter = -translate; - if (rtl) offsetCenter = translate; - - // Visible Slides - slides.forEach(slideEl => { - slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass); - }); - swiper.visibleSlidesIndexes = []; - swiper.visibleSlides = []; - let spaceBetween = params.spaceBetween; - if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) { - spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size; - } else if (typeof spaceBetween === 'string') { - spaceBetween = parseFloat(spaceBetween); - } - for (let i = 0; i < slides.length; i += 1) { - const slide = slides[i]; - let slideOffset = slide.swiperSlideOffset; - if (params.cssMode && params.centeredSlides) { - slideOffset -= slides[0].swiperSlideOffset; - } - const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween); - const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween); - const slideBefore = -(offsetCenter - slideOffset); - const slideAfter = slideBefore + swiper.slidesSizesGrid[i]; - const isFullyVisible = slideBefore >= 0 && slideBefore <= swiper.size - swiper.slidesSizesGrid[i]; - const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size; - if (isVisible) { - swiper.visibleSlides.push(slide); - swiper.visibleSlidesIndexes.push(i); - slides[i].classList.add(params.slideVisibleClass); - } - if (isFullyVisible) { - slides[i].classList.add(params.slideFullyVisibleClass); - } - slide.progress = rtl ? -slideProgress : slideProgress; - slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress; - } - } - - function updateProgress(translate) { - const swiper = this; - if (typeof translate === 'undefined') { - const multiplier = swiper.rtlTranslate ? -1 : 1; - // eslint-disable-next-line - translate = swiper && swiper.translate && swiper.translate * multiplier || 0; - } - const params = swiper.params; - const translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); - let { - progress, - isBeginning, - isEnd, - progressLoop - } = swiper; - const wasBeginning = isBeginning; - const wasEnd = isEnd; - if (translatesDiff === 0) { - progress = 0; - isBeginning = true; - isEnd = true; - } else { - progress = (translate - swiper.minTranslate()) / translatesDiff; - const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1; - const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1; - isBeginning = isBeginningRounded || progress <= 0; - isEnd = isEndRounded || progress >= 1; - if (isBeginningRounded) progress = 0; - if (isEndRounded) progress = 1; - } - if (params.loop) { - const firstSlideIndex = swiper.getSlideIndexByData(0); - const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1); - const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex]; - const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex]; - const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1]; - const translateAbs = Math.abs(translate); - if (translateAbs >= firstSlideTranslate) { - progressLoop = (translateAbs - firstSlideTranslate) / translateMax; - } else { - progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax; - } - if (progressLoop > 1) progressLoop -= 1; - } - Object.assign(swiper, { - progress, - progressLoop, - isBeginning, - isEnd - }); - if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate); - if (isBeginning && !wasBeginning) { - swiper.emit('reachBeginning toEdge'); - } - if (isEnd && !wasEnd) { - swiper.emit('reachEnd toEdge'); - } - if (wasBeginning && !isBeginning || wasEnd && !isEnd) { - swiper.emit('fromEdge'); - } - swiper.emit('progress', progress); - } - - function updateSlidesClasses() { - const swiper = this; - const { - slides, - params, - slidesEl, - activeIndex - } = swiper; - const isVirtual = swiper.virtual && params.virtual.enabled; - const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1; - const getFilteredSlide = selector => { - return elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0]; - }; - slides.forEach(slideEl => { - slideEl.classList.remove(params.slideActiveClass, params.slideNextClass, params.slidePrevClass); - }); - let activeSlide; - let prevSlide; - let nextSlide; - if (isVirtual) { - if (params.loop) { - let slideIndex = activeIndex - swiper.virtual.slidesBefore; - if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex; - if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length; - activeSlide = getFilteredSlide(`[data-swiper-slide-index="${slideIndex}"]`); - } else { - activeSlide = getFilteredSlide(`[data-swiper-slide-index="${activeIndex}"]`); - } - } else { - if (gridEnabled) { - activeSlide = slides.filter(slideEl => slideEl.column === activeIndex)[0]; - nextSlide = slides.filter(slideEl => slideEl.column === activeIndex + 1)[0]; - prevSlide = slides.filter(slideEl => slideEl.column === activeIndex - 1)[0]; - } else { - activeSlide = slides[activeIndex]; - } - } - if (activeSlide) { - // Active classes - activeSlide.classList.add(params.slideActiveClass); - if (gridEnabled) { - if (nextSlide) { - nextSlide.classList.add(params.slideNextClass); - } - if (prevSlide) { - prevSlide.classList.add(params.slidePrevClass); - } - } else { - // Next Slide - nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0]; - if (params.loop && !nextSlide) { - nextSlide = slides[0]; - } - if (nextSlide) { - nextSlide.classList.add(params.slideNextClass); - } - - // Prev Slide - prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0]; - if (params.loop && !prevSlide === 0) { - prevSlide = slides[slides.length - 1]; - } - if (prevSlide) { - prevSlide.classList.add(params.slidePrevClass); - } - } - } - swiper.emitSlidesClasses(); - } - - const processLazyPreloader = (swiper, imageEl) => { - if (!swiper || swiper.destroyed || !swiper.params) return; - const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`; - const slideEl = imageEl.closest(slideSelector()); - if (slideEl) { - let lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`); - if (!lazyEl && swiper.isElement) { - if (slideEl.shadowRoot) { - lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`); - } else { - // init later - requestAnimationFrame(() => { - if (slideEl.shadowRoot) { - lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`); - if (lazyEl) lazyEl.remove(); - } - }); - } - } - if (lazyEl) lazyEl.remove(); - } - }; - const unlazy = (swiper, index) => { - if (!swiper.slides[index]) return; - const imageEl = swiper.slides[index].querySelector('[loading="lazy"]'); - if (imageEl) imageEl.removeAttribute('loading'); - }; - const preload = swiper => { - if (!swiper || swiper.destroyed || !swiper.params) return; - let amount = swiper.params.lazyPreloadPrevNext; - const len = swiper.slides.length; - if (!len || !amount || amount < 0) return; - amount = Math.min(amount, len); - const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView); - const activeIndex = swiper.activeIndex; - if (swiper.params.grid && swiper.params.grid.rows > 1) { - const activeColumn = activeIndex; - const preloadColumns = [activeColumn - amount]; - preloadColumns.push(...Array.from({ - length: amount - }).map((_, i) => { - return activeColumn + slidesPerView + i; - })); - swiper.slides.forEach((slideEl, i) => { - if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i); - }); - return; - } - const slideIndexLastInView = activeIndex + slidesPerView - 1; - if (swiper.params.rewind || swiper.params.loop) { - for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) { - const realIndex = (i % len + len) % len; - if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex); - } - } else { - for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) { - if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) { - unlazy(swiper, i); - } - } - } - }; - - function getActiveIndexByTranslate(swiper) { - const { - slidesGrid, - params - } = swiper; - const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate; - let activeIndex; - for (let i = 0; i < slidesGrid.length; i += 1) { - if (typeof slidesGrid[i + 1] !== 'undefined') { - if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) { - activeIndex = i; - } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) { - activeIndex = i + 1; - } - } else if (translate >= slidesGrid[i]) { - activeIndex = i; - } - } - // Normalize slideIndex - if (params.normalizeSlideIndex) { - if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0; - } - return activeIndex; - } - function updateActiveIndex(newActiveIndex) { - const swiper = this; - const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate; - const { - snapGrid, - params, - activeIndex: previousIndex, - realIndex: previousRealIndex, - snapIndex: previousSnapIndex - } = swiper; - let activeIndex = newActiveIndex; - let snapIndex; - const getVirtualRealIndex = aIndex => { - let realIndex = aIndex - swiper.virtual.slidesBefore; - if (realIndex < 0) { - realIndex = swiper.virtual.slides.length + realIndex; - } - if (realIndex >= swiper.virtual.slides.length) { - realIndex -= swiper.virtual.slides.length; - } - return realIndex; - }; - if (typeof activeIndex === 'undefined') { - activeIndex = getActiveIndexByTranslate(swiper); - } - if (snapGrid.indexOf(translate) >= 0) { - snapIndex = snapGrid.indexOf(translate); - } else { - const skip = Math.min(params.slidesPerGroupSkip, activeIndex); - snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup); - } - if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1; - if (activeIndex === previousIndex && !swiper.params.loop) { - if (snapIndex !== previousSnapIndex) { - swiper.snapIndex = snapIndex; - swiper.emit('snapIndexChange'); - } - return; - } - if (activeIndex === previousIndex && swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) { - swiper.realIndex = getVirtualRealIndex(activeIndex); - return; - } - const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1; - - // Get real index - let realIndex; - if (swiper.virtual && params.virtual.enabled && params.loop) { - realIndex = getVirtualRealIndex(activeIndex); - } else if (gridEnabled) { - const firstSlideInColumn = swiper.slides.filter(slideEl => slideEl.column === activeIndex)[0]; - let activeSlideIndex = parseInt(firstSlideInColumn.getAttribute('data-swiper-slide-index'), 10); - if (Number.isNaN(activeSlideIndex)) { - activeSlideIndex = Math.max(swiper.slides.indexOf(firstSlideInColumn), 0); - } - realIndex = Math.floor(activeSlideIndex / params.grid.rows); - } else if (swiper.slides[activeIndex]) { - const slideIndex = swiper.slides[activeIndex].getAttribute('data-swiper-slide-index'); - if (slideIndex) { - realIndex = parseInt(slideIndex, 10); - } else { - realIndex = activeIndex; - } - } else { - realIndex = activeIndex; - } - Object.assign(swiper, { - previousSnapIndex, - snapIndex, - previousRealIndex, - realIndex, - previousIndex, - activeIndex - }); - if (swiper.initialized) { - preload(swiper); - } - swiper.emit('activeIndexChange'); - swiper.emit('snapIndexChange'); - if (swiper.initialized || swiper.params.runCallbacksOnInit) { - if (previousRealIndex !== realIndex) { - swiper.emit('realIndexChange'); - } - swiper.emit('slideChange'); - } - } - - function updateClickedSlide(el, path) { - const swiper = this; - const params = swiper.params; - let slide = el.closest(`.${params.slideClass}, swiper-slide`); - if (!slide && swiper.isElement && path && path.length > 1 && path.includes(el)) { - [...path.slice(path.indexOf(el) + 1, path.length)].forEach(pathEl => { - if (!slide && pathEl.matches && pathEl.matches(`.${params.slideClass}, swiper-slide`)) { - slide = pathEl; - } - }); - } - let slideFound = false; - let slideIndex; - if (slide) { - for (let i = 0; i < swiper.slides.length; i += 1) { - if (swiper.slides[i] === slide) { - slideFound = true; - slideIndex = i; - break; - } - } - } - if (slide && slideFound) { - swiper.clickedSlide = slide; - if (swiper.virtual && swiper.params.virtual.enabled) { - swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10); - } else { - swiper.clickedIndex = slideIndex; - } - } else { - swiper.clickedSlide = undefined; - swiper.clickedIndex = undefined; - return; - } - if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) { - swiper.slideToClickedSlide(); - } - } - - var update = { - updateSize, - updateSlides, - updateAutoHeight, - updateSlidesOffset, - updateSlidesProgress, - updateProgress, - updateSlidesClasses, - updateActiveIndex, - updateClickedSlide - }; - - function getSwiperTranslate(axis) { - if (axis === void 0) { - axis = this.isHorizontal() ? 'x' : 'y'; - } - const swiper = this; - const { - params, - rtlTranslate: rtl, - translate, - wrapperEl - } = swiper; - if (params.virtualTranslate) { - return rtl ? -translate : translate; - } - if (params.cssMode) { - return translate; - } - let currentTranslate = getTranslate(wrapperEl, axis); - currentTranslate += swiper.cssOverflowAdjustment(); - if (rtl) currentTranslate = -currentTranslate; - return currentTranslate || 0; - } - - function setTranslate(translate, byController) { - const swiper = this; - const { - rtlTranslate: rtl, - params, - wrapperEl, - progress - } = swiper; - let x = 0; - let y = 0; - const z = 0; - if (swiper.isHorizontal()) { - x = rtl ? -translate : translate; - } else { - y = translate; - } - if (params.roundLengths) { - x = Math.floor(x); - y = Math.floor(y); - } - swiper.previousTranslate = swiper.translate; - swiper.translate = swiper.isHorizontal() ? x : y; - if (params.cssMode) { - wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y; - } else if (!params.virtualTranslate) { - if (swiper.isHorizontal()) { - x -= swiper.cssOverflowAdjustment(); - } else { - y -= swiper.cssOverflowAdjustment(); - } - wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`; - } - - // Check if we need to update progress - let newProgress; - const translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); - if (translatesDiff === 0) { - newProgress = 0; - } else { - newProgress = (translate - swiper.minTranslate()) / translatesDiff; - } - if (newProgress !== progress) { - swiper.updateProgress(translate); - } - swiper.emit('setTranslate', swiper.translate, byController); - } - - function minTranslate() { - return -this.snapGrid[0]; - } - - function maxTranslate() { - return -this.snapGrid[this.snapGrid.length - 1]; - } - - function translateTo(translate, speed, runCallbacks, translateBounds, internal) { - if (translate === void 0) { - translate = 0; - } - if (speed === void 0) { - speed = this.params.speed; - } - if (runCallbacks === void 0) { - runCallbacks = true; - } - if (translateBounds === void 0) { - translateBounds = true; - } - const swiper = this; - const { - params, - wrapperEl - } = swiper; - if (swiper.animating && params.preventInteractionOnTransition) { - return false; - } - const minTranslate = swiper.minTranslate(); - const maxTranslate = swiper.maxTranslate(); - let newTranslate; - if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; - - // Update progress - swiper.updateProgress(newTranslate); - if (params.cssMode) { - const isH = swiper.isHorizontal(); - if (speed === 0) { - wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate; - } else { - if (!swiper.support.smoothScroll) { - animateCSSModeScroll({ - swiper, - targetPosition: -newTranslate, - side: isH ? 'left' : 'top' - }); - return true; - } - wrapperEl.scrollTo({ - [isH ? 'left' : 'top']: -newTranslate, - behavior: 'smooth' - }); - } - return true; - } - if (speed === 0) { - swiper.setTransition(0); - swiper.setTranslate(newTranslate); - if (runCallbacks) { - swiper.emit('beforeTransitionStart', speed, internal); - swiper.emit('transitionEnd'); - } - } else { - swiper.setTransition(speed); - swiper.setTranslate(newTranslate); - if (runCallbacks) { - swiper.emit('beforeTransitionStart', speed, internal); - swiper.emit('transitionStart'); - } - if (!swiper.animating) { - swiper.animating = true; - if (!swiper.onTranslateToWrapperTransitionEnd) { - swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) { - if (!swiper || swiper.destroyed) return; - if (e.target !== this) return; - swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd); - swiper.onTranslateToWrapperTransitionEnd = null; - delete swiper.onTranslateToWrapperTransitionEnd; - if (runCallbacks) { - swiper.emit('transitionEnd'); - } - }; - } - swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd); - } - } - return true; - } - - var translate = { - getTranslate: getSwiperTranslate, - setTranslate, - minTranslate, - maxTranslate, - translateTo - }; - - function setTransition(duration, byController) { - const swiper = this; - if (!swiper.params.cssMode) { - swiper.wrapperEl.style.transitionDuration = `${duration}ms`; - swiper.wrapperEl.style.transitionDelay = duration === 0 ? `0ms` : ''; - } - swiper.emit('setTransition', duration, byController); - } - - function transitionEmit(_ref) { - let { - swiper, - runCallbacks, - direction, - step - } = _ref; - const { - activeIndex, - previousIndex - } = swiper; - let dir = direction; - if (!dir) { - if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset'; - } - swiper.emit(`transition${step}`); - if (runCallbacks && activeIndex !== previousIndex) { - if (dir === 'reset') { - swiper.emit(`slideResetTransition${step}`); - return; - } - swiper.emit(`slideChangeTransition${step}`); - if (dir === 'next') { - swiper.emit(`slideNextTransition${step}`); - } else { - swiper.emit(`slidePrevTransition${step}`); - } - } - } - - function transitionStart(runCallbacks, direction) { - if (runCallbacks === void 0) { - runCallbacks = true; - } - const swiper = this; - const { - params - } = swiper; - if (params.cssMode) return; - if (params.autoHeight) { - swiper.updateAutoHeight(); - } - transitionEmit({ - swiper, - runCallbacks, - direction, - step: 'Start' - }); - } - - function transitionEnd(runCallbacks, direction) { - if (runCallbacks === void 0) { - runCallbacks = true; - } - const swiper = this; - const { - params - } = swiper; - swiper.animating = false; - if (params.cssMode) return; - swiper.setTransition(0); - transitionEmit({ - swiper, - runCallbacks, - direction, - step: 'End' - }); - } - - var transition = { - setTransition, - transitionStart, - transitionEnd - }; - - function slideTo(index, speed, runCallbacks, internal, initial) { - if (index === void 0) { - index = 0; - } - if (speed === void 0) { - speed = this.params.speed; - } - if (runCallbacks === void 0) { - runCallbacks = true; - } - if (typeof index === 'string') { - index = parseInt(index, 10); - } - const swiper = this; - let slideIndex = index; - if (slideIndex < 0) slideIndex = 0; - const { - params, - snapGrid, - slidesGrid, - previousIndex, - activeIndex, - rtlTranslate: rtl, - wrapperEl, - enabled - } = swiper; - if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) { - return false; - } - const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex); - let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup); - if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1; - const translate = -snapGrid[snapIndex]; - // Normalize slideIndex - if (params.normalizeSlideIndex) { - for (let i = 0; i < slidesGrid.length; i += 1) { - const normalizedTranslate = -Math.floor(translate * 100); - const normalizedGrid = Math.floor(slidesGrid[i] * 100); - const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100); - if (typeof slidesGrid[i + 1] !== 'undefined') { - if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) { - slideIndex = i; - } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) { - slideIndex = i + 1; - } - } else if (normalizedTranslate >= normalizedGrid) { - slideIndex = i; - } - } - } - // Directions locks - if (swiper.initialized && slideIndex !== activeIndex) { - if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) { - return false; - } - if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) { - if ((activeIndex || 0) !== slideIndex) { - return false; - } - } - } - if (slideIndex !== (previousIndex || 0) && runCallbacks) { - swiper.emit('beforeSlideChangeStart'); - } - - // Update progress - swiper.updateProgress(translate); - let direction; - if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; - - // Update Index - if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) { - swiper.updateActiveIndex(slideIndex); - // Update Height - if (params.autoHeight) { - swiper.updateAutoHeight(); - } - swiper.updateSlidesClasses(); - if (params.effect !== 'slide') { - swiper.setTranslate(translate); - } - if (direction !== 'reset') { - swiper.transitionStart(runCallbacks, direction); - swiper.transitionEnd(runCallbacks, direction); - } - return false; - } - if (params.cssMode) { - const isH = swiper.isHorizontal(); - const t = rtl ? translate : -translate; - if (speed === 0) { - const isVirtual = swiper.virtual && swiper.params.virtual.enabled; - if (isVirtual) { - swiper.wrapperEl.style.scrollSnapType = 'none'; - swiper._immediateVirtual = true; - } - if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) { - swiper._cssModeVirtualInitialSet = true; - requestAnimationFrame(() => { - wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t; - }); - } else { - wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t; - } - if (isVirtual) { - requestAnimationFrame(() => { - swiper.wrapperEl.style.scrollSnapType = ''; - swiper._immediateVirtual = false; - }); - } - } else { - if (!swiper.support.smoothScroll) { - animateCSSModeScroll({ - swiper, - targetPosition: t, - side: isH ? 'left' : 'top' - }); - return true; - } - wrapperEl.scrollTo({ - [isH ? 'left' : 'top']: t, - behavior: 'smooth' - }); - } - return true; - } - swiper.setTransition(speed); - swiper.setTranslate(translate); - swiper.updateActiveIndex(slideIndex); - swiper.updateSlidesClasses(); - swiper.emit('beforeTransitionStart', speed, internal); - swiper.transitionStart(runCallbacks, direction); - if (speed === 0) { - swiper.transitionEnd(runCallbacks, direction); - } else if (!swiper.animating) { - swiper.animating = true; - if (!swiper.onSlideToWrapperTransitionEnd) { - swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) { - if (!swiper || swiper.destroyed) return; - if (e.target !== this) return; - swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd); - swiper.onSlideToWrapperTransitionEnd = null; - delete swiper.onSlideToWrapperTransitionEnd; - swiper.transitionEnd(runCallbacks, direction); - }; - } - swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd); - } - return true; - } - - function slideToLoop(index, speed, runCallbacks, internal) { - if (index === void 0) { - index = 0; - } - if (speed === void 0) { - speed = this.params.speed; - } - if (runCallbacks === void 0) { - runCallbacks = true; - } - if (typeof index === 'string') { - const indexAsNumber = parseInt(index, 10); - index = indexAsNumber; - } - const swiper = this; - const gridEnabled = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1; - let newIndex = index; - if (swiper.params.loop) { - if (swiper.virtual && swiper.params.virtual.enabled) { - // eslint-disable-next-line - newIndex = newIndex + swiper.virtual.slidesBefore; - } else { - let targetSlideIndex; - if (gridEnabled) { - const slideIndex = newIndex * swiper.params.grid.rows; - targetSlideIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column; - } else { - targetSlideIndex = swiper.getSlideIndexByData(newIndex); - } - const cols = gridEnabled ? Math.ceil(swiper.slides.length / swiper.params.grid.rows) : swiper.slides.length; - const { - centeredSlides - } = swiper.params; - let slidesPerView = swiper.params.slidesPerView; - if (slidesPerView === 'auto') { - slidesPerView = swiper.slidesPerViewDynamic(); - } else { - slidesPerView = Math.ceil(parseFloat(swiper.params.slidesPerView, 10)); - if (centeredSlides && slidesPerView % 2 === 0) { - slidesPerView = slidesPerView + 1; - } - } - let needLoopFix = cols - targetSlideIndex < slidesPerView; - if (centeredSlides) { - needLoopFix = needLoopFix || targetSlideIndex < Math.ceil(slidesPerView / 2); - } - if (needLoopFix) { - const direction = centeredSlides ? targetSlideIndex < swiper.activeIndex ? 'prev' : 'next' : targetSlideIndex - swiper.activeIndex - 1 < swiper.params.slidesPerView ? 'next' : 'prev'; - swiper.loopFix({ - direction, - slideTo: true, - activeSlideIndex: direction === 'next' ? targetSlideIndex + 1 : targetSlideIndex - cols + 1, - slideRealIndex: direction === 'next' ? swiper.realIndex : undefined - }); - } - if (gridEnabled) { - const slideIndex = newIndex * swiper.params.grid.rows; - newIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column; - } else { - newIndex = swiper.getSlideIndexByData(newIndex); - } - } - } - requestAnimationFrame(() => { - swiper.slideTo(newIndex, speed, runCallbacks, internal); - }); - return swiper; - } - - /* eslint no-unused-vars: "off" */ - function slideNext(speed, runCallbacks, internal) { - if (speed === void 0) { - speed = this.params.speed; - } - if (runCallbacks === void 0) { - runCallbacks = true; - } - const swiper = this; - const { - enabled, - params, - animating - } = swiper; - if (!enabled) return swiper; - let perGroup = params.slidesPerGroup; - if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) { - perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1); - } - const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup; - const isVirtual = swiper.virtual && params.virtual.enabled; - if (params.loop) { - if (animating && !isVirtual && params.loopPreventsSliding) return false; - swiper.loopFix({ - direction: 'next' - }); - // eslint-disable-next-line - swiper._clientLeft = swiper.wrapperEl.clientLeft; - if (swiper.activeIndex === swiper.slides.length - 1 && params.cssMode) { - requestAnimationFrame(() => { - swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal); - }); - return true; - } - } - if (params.rewind && swiper.isEnd) { - return swiper.slideTo(0, speed, runCallbacks, internal); - } - return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal); - } - - /* eslint no-unused-vars: "off" */ - function slidePrev(speed, runCallbacks, internal) { - if (speed === void 0) { - speed = this.params.speed; - } - if (runCallbacks === void 0) { - runCallbacks = true; - } - const swiper = this; - const { - params, - snapGrid, - slidesGrid, - rtlTranslate, - enabled, - animating - } = swiper; - if (!enabled) return swiper; - const isVirtual = swiper.virtual && params.virtual.enabled; - if (params.loop) { - if (animating && !isVirtual && params.loopPreventsSliding) return false; - swiper.loopFix({ - direction: 'prev' - }); - // eslint-disable-next-line - swiper._clientLeft = swiper.wrapperEl.clientLeft; - } - const translate = rtlTranslate ? swiper.translate : -swiper.translate; - function normalize(val) { - if (val < 0) return -Math.floor(Math.abs(val)); - return Math.floor(val); - } - const normalizedTranslate = normalize(translate); - const normalizedSnapGrid = snapGrid.map(val => normalize(val)); - let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1]; - if (typeof prevSnap === 'undefined' && params.cssMode) { - let prevSnapIndex; - snapGrid.forEach((snap, snapIndex) => { - if (normalizedTranslate >= snap) { - // prevSnap = snap; - prevSnapIndex = snapIndex; - } - }); - if (typeof prevSnapIndex !== 'undefined') { - prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex]; - } - } - let prevIndex = 0; - if (typeof prevSnap !== 'undefined') { - prevIndex = slidesGrid.indexOf(prevSnap); - if (prevIndex < 0) prevIndex = swiper.activeIndex - 1; - if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) { - prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1; - prevIndex = Math.max(prevIndex, 0); - } - } - if (params.rewind && swiper.isBeginning) { - const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1; - return swiper.slideTo(lastIndex, speed, runCallbacks, internal); - } else if (params.loop && swiper.activeIndex === 0 && params.cssMode) { - requestAnimationFrame(() => { - swiper.slideTo(prevIndex, speed, runCallbacks, internal); - }); - return true; - } - return swiper.slideTo(prevIndex, speed, runCallbacks, internal); - } - - /* eslint no-unused-vars: "off" */ - function slideReset(speed, runCallbacks, internal) { - if (speed === void 0) { - speed = this.params.speed; - } - if (runCallbacks === void 0) { - runCallbacks = true; - } - const swiper = this; - return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal); - } - - /* eslint no-unused-vars: "off" */ - function slideToClosest(speed, runCallbacks, internal, threshold) { - if (speed === void 0) { - speed = this.params.speed; - } - if (runCallbacks === void 0) { - runCallbacks = true; - } - if (threshold === void 0) { - threshold = 0.5; - } - const swiper = this; - let index = swiper.activeIndex; - const skip = Math.min(swiper.params.slidesPerGroupSkip, index); - const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup); - const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate; - if (translate >= swiper.snapGrid[snapIndex]) { - // The current translate is on or after the current snap index, so the choice - // is between the current index and the one after it. - const currentSnap = swiper.snapGrid[snapIndex]; - const nextSnap = swiper.snapGrid[snapIndex + 1]; - if (translate - currentSnap > (nextSnap - currentSnap) * threshold) { - index += swiper.params.slidesPerGroup; - } - } else { - // The current translate is before the current snap index, so the choice - // is between the current index and the one before it. - const prevSnap = swiper.snapGrid[snapIndex - 1]; - const currentSnap = swiper.snapGrid[snapIndex]; - if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) { - index -= swiper.params.slidesPerGroup; - } - } - index = Math.max(index, 0); - index = Math.min(index, swiper.slidesGrid.length - 1); - return swiper.slideTo(index, speed, runCallbacks, internal); - } - - function slideToClickedSlide() { - const swiper = this; - const { - params, - slidesEl - } = swiper; - const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView; - let slideToIndex = swiper.clickedIndex; - let realIndex; - const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`; - if (params.loop) { - if (swiper.animating) return; - realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10); - if (params.centeredSlides) { - if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) { - swiper.loopFix(); - slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index="${realIndex}"]`)[0]); - nextTick(() => { - swiper.slideTo(slideToIndex); - }); - } else { - swiper.slideTo(slideToIndex); - } - } else if (slideToIndex > swiper.slides.length - slidesPerView) { - swiper.loopFix(); - slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index="${realIndex}"]`)[0]); - nextTick(() => { - swiper.slideTo(slideToIndex); - }); - } else { - swiper.slideTo(slideToIndex); - } - } else { - swiper.slideTo(slideToIndex); - } - } - - var slide = { - slideTo, - slideToLoop, - slideNext, - slidePrev, - slideReset, - slideToClosest, - slideToClickedSlide - }; - - function loopCreate(slideRealIndex) { - const swiper = this; - const { - params, - slidesEl - } = swiper; - if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return; - const initSlides = () => { - const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`); - slides.forEach((el, index) => { - el.setAttribute('data-swiper-slide-index', index); - }); - }; - const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1; - const slidesPerGroup = params.slidesPerGroup * (gridEnabled ? params.grid.rows : 1); - const shouldFillGroup = swiper.slides.length % slidesPerGroup !== 0; - const shouldFillGrid = gridEnabled && swiper.slides.length % params.grid.rows !== 0; - const addBlankSlides = amountOfSlides => { - for (let i = 0; i < amountOfSlides; i += 1) { - const slideEl = swiper.isElement ? createElement('swiper-slide', [params.slideBlankClass]) : createElement('div', [params.slideClass, params.slideBlankClass]); - swiper.slidesEl.append(slideEl); - } - }; - if (shouldFillGroup) { - if (params.loopAddBlankSlides) { - const slidesToAdd = slidesPerGroup - swiper.slides.length % slidesPerGroup; - addBlankSlides(slidesToAdd); - swiper.recalcSlides(); - swiper.updateSlides(); - } else { - showWarning('Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)'); - } - initSlides(); - } else if (shouldFillGrid) { - if (params.loopAddBlankSlides) { - const slidesToAdd = params.grid.rows - swiper.slides.length % params.grid.rows; - addBlankSlides(slidesToAdd); - swiper.recalcSlides(); - swiper.updateSlides(); - } else { - showWarning('Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)'); - } - initSlides(); - } else { - initSlides(); - } - swiper.loopFix({ - slideRealIndex, - direction: params.centeredSlides ? undefined : 'next' - }); - } - - function loopFix(_temp) { - let { - slideRealIndex, - slideTo = true, - direction, - setTranslate, - activeSlideIndex, - byController, - byMousewheel - } = _temp === void 0 ? {} : _temp; - const swiper = this; - if (!swiper.params.loop) return; - swiper.emit('beforeLoopFix'); - const { - slides, - allowSlidePrev, - allowSlideNext, - slidesEl, - params - } = swiper; - const { - centeredSlides - } = params; - swiper.allowSlidePrev = true; - swiper.allowSlideNext = true; - if (swiper.virtual && params.virtual.enabled) { - if (slideTo) { - if (!params.centeredSlides && swiper.snapIndex === 0) { - swiper.slideTo(swiper.virtual.slides.length, 0, false, true); - } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) { - swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true); - } else if (swiper.snapIndex === swiper.snapGrid.length - 1) { - swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true); - } - } - swiper.allowSlidePrev = allowSlidePrev; - swiper.allowSlideNext = allowSlideNext; - swiper.emit('loopFix'); - return; - } - let slidesPerView = params.slidesPerView; - if (slidesPerView === 'auto') { - slidesPerView = swiper.slidesPerViewDynamic(); - } else { - slidesPerView = Math.ceil(parseFloat(params.slidesPerView, 10)); - if (centeredSlides && slidesPerView % 2 === 0) { - slidesPerView = slidesPerView + 1; - } - } - const slidesPerGroup = params.slidesPerGroupAuto ? slidesPerView : params.slidesPerGroup; - let loopedSlides = slidesPerGroup; - if (loopedSlides % slidesPerGroup !== 0) { - loopedSlides += slidesPerGroup - loopedSlides % slidesPerGroup; - } - loopedSlides += params.loopAdditionalSlides; - swiper.loopedSlides = loopedSlides; - const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1; - if (slides.length < slidesPerView + loopedSlides) { - showWarning('Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled and not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters'); - } else if (gridEnabled && params.grid.fill === 'row') { - showWarning('Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`'); - } - const prependSlidesIndexes = []; - const appendSlidesIndexes = []; - let activeIndex = swiper.activeIndex; - if (typeof activeSlideIndex === 'undefined') { - activeSlideIndex = swiper.getSlideIndex(slides.filter(el => el.classList.contains(params.slideActiveClass))[0]); - } else { - activeIndex = activeSlideIndex; - } - const isNext = direction === 'next' || !direction; - const isPrev = direction === 'prev' || !direction; - let slidesPrepended = 0; - let slidesAppended = 0; - const cols = gridEnabled ? Math.ceil(slides.length / params.grid.rows) : slides.length; - const activeColIndex = gridEnabled ? slides[activeSlideIndex].column : activeSlideIndex; - const activeColIndexWithShift = activeColIndex + (centeredSlides && typeof setTranslate === 'undefined' ? -slidesPerView / 2 + 0.5 : 0); - // prepend last slides before start - if (activeColIndexWithShift < loopedSlides) { - slidesPrepended = Math.max(loopedSlides - activeColIndexWithShift, slidesPerGroup); - for (let i = 0; i < loopedSlides - activeColIndexWithShift; i += 1) { - const index = i - Math.floor(i / cols) * cols; - if (gridEnabled) { - const colIndexToPrepend = cols - index - 1; - for (let i = slides.length - 1; i >= 0; i -= 1) { - if (slides[i].column === colIndexToPrepend) prependSlidesIndexes.push(i); - } - // slides.forEach((slide, slideIndex) => { - // if (slide.column === colIndexToPrepend) prependSlidesIndexes.push(slideIndex); - // }); - } else { - prependSlidesIndexes.push(cols - index - 1); - } - } - } else if (activeColIndexWithShift + slidesPerView > cols - loopedSlides) { - slidesAppended = Math.max(activeColIndexWithShift - (cols - loopedSlides * 2), slidesPerGroup); - for (let i = 0; i < slidesAppended; i += 1) { - const index = i - Math.floor(i / cols) * cols; - if (gridEnabled) { - slides.forEach((slide, slideIndex) => { - if (slide.column === index) appendSlidesIndexes.push(slideIndex); - }); - } else { - appendSlidesIndexes.push(index); - } - } - } - swiper.__preventObserver__ = true; - requestAnimationFrame(() => { - swiper.__preventObserver__ = false; - }); - if (isPrev) { - prependSlidesIndexes.forEach(index => { - slides[index].swiperLoopMoveDOM = true; - slidesEl.prepend(slides[index]); - slides[index].swiperLoopMoveDOM = false; - }); - } - if (isNext) { - appendSlidesIndexes.forEach(index => { - slides[index].swiperLoopMoveDOM = true; - slidesEl.append(slides[index]); - slides[index].swiperLoopMoveDOM = false; - }); - } - swiper.recalcSlides(); - if (params.slidesPerView === 'auto') { - swiper.updateSlides(); - } else if (gridEnabled && (prependSlidesIndexes.length > 0 && isPrev || appendSlidesIndexes.length > 0 && isNext)) { - swiper.slides.forEach((slide, slideIndex) => { - swiper.grid.updateSlide(slideIndex, slide, swiper.slides); - }); - } - if (params.watchSlidesProgress) { - swiper.updateSlidesOffset(); - } - if (slideTo) { - if (prependSlidesIndexes.length > 0 && isPrev) { - if (typeof slideRealIndex === 'undefined') { - const currentSlideTranslate = swiper.slidesGrid[activeIndex]; - const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended]; - const diff = newSlideTranslate - currentSlideTranslate; - if (byMousewheel) { - swiper.setTranslate(swiper.translate - diff); - } else { - swiper.slideTo(activeIndex + slidesPrepended, 0, false, true); - if (setTranslate) { - swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff; - swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff; - } - } - } else { - if (setTranslate) { - const shift = gridEnabled ? prependSlidesIndexes.length / params.grid.rows : prependSlidesIndexes.length; - swiper.slideTo(swiper.activeIndex + shift, 0, false, true); - swiper.touchEventsData.currentTranslate = swiper.translate; - } - } - } else if (appendSlidesIndexes.length > 0 && isNext) { - if (typeof slideRealIndex === 'undefined') { - const currentSlideTranslate = swiper.slidesGrid[activeIndex]; - const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended]; - const diff = newSlideTranslate - currentSlideTranslate; - if (byMousewheel) { - swiper.setTranslate(swiper.translate - diff); - } else { - swiper.slideTo(activeIndex - slidesAppended, 0, false, true); - if (setTranslate) { - swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff; - swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff; - } - } - } else { - const shift = gridEnabled ? appendSlidesIndexes.length / params.grid.rows : appendSlidesIndexes.length; - swiper.slideTo(swiper.activeIndex - shift, 0, false, true); - } - } - } - swiper.allowSlidePrev = allowSlidePrev; - swiper.allowSlideNext = allowSlideNext; - if (swiper.controller && swiper.controller.control && !byController) { - const loopParams = { - slideRealIndex, - direction, - setTranslate, - activeSlideIndex, - byController: true - }; - if (Array.isArray(swiper.controller.control)) { - swiper.controller.control.forEach(c => { - if (!c.destroyed && c.params.loop) c.loopFix({ - ...loopParams, - slideTo: c.params.slidesPerView === params.slidesPerView ? slideTo : false - }); - }); - } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) { - swiper.controller.control.loopFix({ - ...loopParams, - slideTo: swiper.controller.control.params.slidesPerView === params.slidesPerView ? slideTo : false - }); - } - } - swiper.emit('loopFix'); - } - - function loopDestroy() { - const swiper = this; - const { - params, - slidesEl - } = swiper; - if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return; - swiper.recalcSlides(); - const newSlidesOrder = []; - swiper.slides.forEach(slideEl => { - const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex; - newSlidesOrder[index] = slideEl; - }); - swiper.slides.forEach(slideEl => { - slideEl.removeAttribute('data-swiper-slide-index'); - }); - newSlidesOrder.forEach(slideEl => { - slidesEl.append(slideEl); - }); - swiper.recalcSlides(); - swiper.slideTo(swiper.realIndex, 0); - } - - var loop = { - loopCreate, - loopFix, - loopDestroy - }; - - function setGrabCursor(moving) { - const swiper = this; - if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return; - const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl; - if (swiper.isElement) { - swiper.__preventObserver__ = true; - } - el.style.cursor = 'move'; - el.style.cursor = moving ? 'grabbing' : 'grab'; - if (swiper.isElement) { - requestAnimationFrame(() => { - swiper.__preventObserver__ = false; - }); - } - } - - function unsetGrabCursor() { - const swiper = this; - if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) { - return; - } - if (swiper.isElement) { - swiper.__preventObserver__ = true; - } - swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = ''; - if (swiper.isElement) { - requestAnimationFrame(() => { - swiper.__preventObserver__ = false; - }); - } - } - - var grabCursor = { - setGrabCursor, - unsetGrabCursor - }; - - // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd - function closestElement(selector, base) { - if (base === void 0) { - base = this; - } - function __closestFrom(el) { - if (!el || el === getDocument() || el === getWindow()) return null; - if (el.assignedSlot) el = el.assignedSlot; - const found = el.closest(selector); - if (!found && !el.getRootNode) { - return null; - } - return found || __closestFrom(el.getRootNode().host); - } - return __closestFrom(base); - } - function preventEdgeSwipe(swiper, event, startX) { - const window = getWindow(); - const { - params - } = swiper; - const edgeSwipeDetection = params.edgeSwipeDetection; - const edgeSwipeThreshold = params.edgeSwipeThreshold; - if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) { - if (edgeSwipeDetection === 'prevent') { - event.preventDefault(); - return true; - } - return false; - } - return true; - } - function onTouchStart(event) { - const swiper = this; - const document = getDocument(); - let e = event; - if (e.originalEvent) e = e.originalEvent; - const data = swiper.touchEventsData; - if (e.type === 'pointerdown') { - if (data.pointerId !== null && data.pointerId !== e.pointerId) { - return; - } - data.pointerId = e.pointerId; - } else if (e.type === 'touchstart' && e.targetTouches.length === 1) { - data.touchId = e.targetTouches[0].identifier; - } - if (e.type === 'touchstart') { - // don't proceed touch event - preventEdgeSwipe(swiper, e, e.targetTouches[0].pageX); - return; - } - const { - params, - touches, - enabled - } = swiper; - if (!enabled) return; - if (!params.simulateTouch && e.pointerType === 'mouse') return; - if (swiper.animating && params.preventInteractionOnTransition) { - return; - } - if (!swiper.animating && params.cssMode && params.loop) { - swiper.loopFix(); - } - let targetEl = e.target; - if (params.touchEventsTarget === 'wrapper') { - if (!swiper.wrapperEl.contains(targetEl)) return; - } - if ('which' in e && e.which === 3) return; - if ('button' in e && e.button > 0) return; - if (data.isTouched && data.isMoved) return; - - // change target el for shadow root component - const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== ''; - // eslint-disable-next-line - const eventPath = e.composedPath ? e.composedPath() : e.path; - if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) { - targetEl = eventPath[0]; - } - const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`; - const isTargetShadow = !!(e.target && e.target.shadowRoot); - - // use closestElement for shadow root element to get the actual closest for nested shadow root element - if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) { - swiper.allowClick = true; - return; - } - if (params.swipeHandler) { - if (!targetEl.closest(params.swipeHandler)) return; - } - touches.currentX = e.pageX; - touches.currentY = e.pageY; - const startX = touches.currentX; - const startY = touches.currentY; - - // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore - - if (!preventEdgeSwipe(swiper, e, startX)) { - return; - } - Object.assign(data, { - isTouched: true, - isMoved: false, - allowTouchCallbacks: true, - isScrolling: undefined, - startMoving: undefined - }); - touches.startX = startX; - touches.startY = startY; - data.touchStartTime = now(); - swiper.allowClick = true; - swiper.updateSize(); - swiper.swipeDirection = undefined; - if (params.threshold > 0) data.allowThresholdMove = false; - let preventDefault = true; - if (targetEl.matches(data.focusableElements)) { - preventDefault = false; - if (targetEl.nodeName === 'SELECT') { - data.isTouched = false; - } - } - if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl) { - document.activeElement.blur(); - } - const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault; - if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) { - e.preventDefault(); - } - if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) { - swiper.freeMode.onTouchStart(); - } - swiper.emit('touchStart', e); - } - - function onTouchMove(event) { - const document = getDocument(); - const swiper = this; - const data = swiper.touchEventsData; - const { - params, - touches, - rtlTranslate: rtl, - enabled - } = swiper; - if (!enabled) return; - if (!params.simulateTouch && event.pointerType === 'mouse') return; - let e = event; - if (e.originalEvent) e = e.originalEvent; - if (e.type === 'pointermove') { - if (data.touchId !== null) return; // return from pointer if we use touch - const id = e.pointerId; - if (id !== data.pointerId) return; - } - let targetTouch; - if (e.type === 'touchmove') { - targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0]; - if (!targetTouch || targetTouch.identifier !== data.touchId) return; - } else { - targetTouch = e; - } - if (!data.isTouched) { - if (data.startMoving && data.isScrolling) { - swiper.emit('touchMoveOpposite', e); - } - return; - } - const pageX = targetTouch.pageX; - const pageY = targetTouch.pageY; - if (e.preventedByNestedSwiper) { - touches.startX = pageX; - touches.startY = pageY; - return; - } - if (!swiper.allowTouchMove) { - if (!e.target.matches(data.focusableElements)) { - swiper.allowClick = false; - } - if (data.isTouched) { - Object.assign(touches, { - startX: pageX, - startY: pageY, - currentX: pageX, - currentY: pageY - }); - data.touchStartTime = now(); - } - return; - } - if (params.touchReleaseOnEdges && !params.loop) { - if (swiper.isVertical()) { - // Vertical - if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) { - data.isTouched = false; - data.isMoved = false; - return; - } - } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) { - return; - } - } - if (document.activeElement) { - if (e.target === document.activeElement && e.target.matches(data.focusableElements)) { - data.isMoved = true; - swiper.allowClick = false; - return; - } - } - if (data.allowTouchCallbacks) { - swiper.emit('touchMove', e); - } - touches.previousX = touches.currentX; - touches.previousY = touches.currentY; - touches.currentX = pageX; - touches.currentY = pageY; - const diffX = touches.currentX - touches.startX; - const diffY = touches.currentY - touches.startY; - if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return; - if (typeof data.isScrolling === 'undefined') { - let touchAngle; - if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) { - data.isScrolling = false; - } else { - // eslint-disable-next-line - if (diffX * diffX + diffY * diffY >= 25) { - touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI; - data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle; - } - } - } - if (data.isScrolling) { - swiper.emit('touchMoveOpposite', e); - } - if (typeof data.startMoving === 'undefined') { - if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) { - data.startMoving = true; - } - } - if (data.isScrolling) { - data.isTouched = false; - return; - } - if (!data.startMoving) { - return; - } - swiper.allowClick = false; - if (!params.cssMode && e.cancelable) { - e.preventDefault(); - } - if (params.touchMoveStopPropagation && !params.nested) { - e.stopPropagation(); - } - let diff = swiper.isHorizontal() ? diffX : diffY; - let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY; - if (params.oneWayMovement) { - diff = Math.abs(diff) * (rtl ? 1 : -1); - touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1); - } - touches.diff = diff; - diff *= params.touchRatio; - if (rtl) { - diff = -diff; - touchesDiff = -touchesDiff; - } - const prevTouchesDirection = swiper.touchesDirection; - swiper.swipeDirection = diff > 0 ? 'prev' : 'next'; - swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next'; - const isLoop = swiper.params.loop && !params.cssMode; - const allowLoopFix = swiper.touchesDirection === 'next' && swiper.allowSlideNext || swiper.touchesDirection === 'prev' && swiper.allowSlidePrev; - if (!data.isMoved) { - if (isLoop && allowLoopFix) { - swiper.loopFix({ - direction: swiper.swipeDirection - }); - } - data.startTranslate = swiper.getTranslate(); - swiper.setTransition(0); - if (swiper.animating) { - const evt = new window.CustomEvent('transitionend', { - bubbles: true, - cancelable: true - }); - swiper.wrapperEl.dispatchEvent(evt); - } - data.allowMomentumBounce = false; - // Grab Cursor - if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) { - swiper.setGrabCursor(true); - } - swiper.emit('sliderFirstMove', e); - } - let loopFixed; - new Date().getTime(); - if (data.isMoved && data.allowThresholdMove && prevTouchesDirection !== swiper.touchesDirection && isLoop && allowLoopFix && Math.abs(diff) >= 1) { - Object.assign(touches, { - startX: pageX, - startY: pageY, - currentX: pageX, - currentY: pageY, - startTranslate: data.currentTranslate - }); - data.loopSwapReset = true; - data.startTranslate = data.currentTranslate; - return; - } - swiper.emit('sliderMove', e); - data.isMoved = true; - data.currentTranslate = diff + data.startTranslate; - let disableParentSwiper = true; - let resistanceRatio = params.resistanceRatio; - if (params.touchReleaseOnEdges) { - resistanceRatio = 0; - } - if (diff > 0) { - if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.slidesSizesGrid[swiper.activeIndex + 1] : swiper.minTranslate())) { - swiper.loopFix({ - direction: 'prev', - setTranslate: true, - activeSlideIndex: 0 - }); - } - if (data.currentTranslate > swiper.minTranslate()) { - disableParentSwiper = false; - if (params.resistance) { - data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio; - } - } - } else if (diff < 0) { - if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] : swiper.maxTranslate())) { - swiper.loopFix({ - direction: 'next', - setTranslate: true, - activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10))) - }); - } - if (data.currentTranslate < swiper.maxTranslate()) { - disableParentSwiper = false; - if (params.resistance) { - data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio; - } - } - } - if (disableParentSwiper) { - e.preventedByNestedSwiper = true; - } - - // Directions locks - if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) { - data.currentTranslate = data.startTranslate; - } - if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) { - data.currentTranslate = data.startTranslate; - } - if (!swiper.allowSlidePrev && !swiper.allowSlideNext) { - data.currentTranslate = data.startTranslate; - } - - // Threshold - if (params.threshold > 0) { - if (Math.abs(diff) > params.threshold || data.allowThresholdMove) { - if (!data.allowThresholdMove) { - data.allowThresholdMove = true; - touches.startX = touches.currentX; - touches.startY = touches.currentY; - data.currentTranslate = data.startTranslate; - touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY; - return; - } - } else { - data.currentTranslate = data.startTranslate; - return; - } - } - if (!params.followFinger || params.cssMode) return; - - // Update active index in free mode - if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) { - swiper.updateActiveIndex(); - swiper.updateSlidesClasses(); - } - if (params.freeMode && params.freeMode.enabled && swiper.freeMode) { - swiper.freeMode.onTouchMove(); - } - // Update progress - swiper.updateProgress(data.currentTranslate); - // Update translate - swiper.setTranslate(data.currentTranslate); - } - - function onTouchEnd(event) { - const swiper = this; - const data = swiper.touchEventsData; - let e = event; - if (e.originalEvent) e = e.originalEvent; - let targetTouch; - const isTouchEvent = e.type === 'touchend' || e.type === 'touchcancel'; - if (!isTouchEvent) { - if (data.touchId !== null) return; // return from pointer if we use touch - if (e.pointerId !== data.pointerId) return; - targetTouch = e; - } else { - targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0]; - if (!targetTouch || targetTouch.identifier !== data.touchId) return; - } - if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(e.type)) { - const proceed = ['pointercancel', 'contextmenu'].includes(e.type) && (swiper.browser.isSafari || swiper.browser.isWebView); - if (!proceed) { - return; - } - } - data.pointerId = null; - data.touchId = null; - const { - params, - touches, - rtlTranslate: rtl, - slidesGrid, - enabled - } = swiper; - if (!enabled) return; - if (!params.simulateTouch && e.pointerType === 'mouse') return; - if (data.allowTouchCallbacks) { - swiper.emit('touchEnd', e); - } - data.allowTouchCallbacks = false; - if (!data.isTouched) { - if (data.isMoved && params.grabCursor) { - swiper.setGrabCursor(false); - } - data.isMoved = false; - data.startMoving = false; - return; - } - - // Return Grab Cursor - if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) { - swiper.setGrabCursor(false); - } - - // Time diff - const touchEndTime = now(); - const timeDiff = touchEndTime - data.touchStartTime; - - // Tap, doubleTap, Click - if (swiper.allowClick) { - const pathTree = e.path || e.composedPath && e.composedPath(); - swiper.updateClickedSlide(pathTree && pathTree[0] || e.target, pathTree); - swiper.emit('tap click', e); - if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) { - swiper.emit('doubleTap doubleClick', e); - } - } - data.lastClickTime = now(); - nextTick(() => { - if (!swiper.destroyed) swiper.allowClick = true; - }); - if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 && !data.loopSwapReset || data.currentTranslate === data.startTranslate && !data.loopSwapReset) { - data.isTouched = false; - data.isMoved = false; - data.startMoving = false; - return; - } - data.isTouched = false; - data.isMoved = false; - data.startMoving = false; - let currentPos; - if (params.followFinger) { - currentPos = rtl ? swiper.translate : -swiper.translate; - } else { - currentPos = -data.currentTranslate; - } - if (params.cssMode) { - return; - } - if (params.freeMode && params.freeMode.enabled) { - swiper.freeMode.onTouchEnd({ - currentPos - }); - return; - } - - // Find current slide - const swipeToLast = currentPos >= -swiper.maxTranslate() && !swiper.params.loop; - let stopIndex = 0; - let groupSize = swiper.slidesSizesGrid[0]; - for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) { - const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup; - if (typeof slidesGrid[i + increment] !== 'undefined') { - if (swipeToLast || currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) { - stopIndex = i; - groupSize = slidesGrid[i + increment] - slidesGrid[i]; - } - } else if (swipeToLast || currentPos >= slidesGrid[i]) { - stopIndex = i; - groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2]; - } - } - let rewindFirstIndex = null; - let rewindLastIndex = null; - if (params.rewind) { - if (swiper.isBeginning) { - rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1; - } else if (swiper.isEnd) { - rewindFirstIndex = 0; - } - } - // Find current slide size - const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize; - const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup; - if (timeDiff > params.longSwipesMs) { - // Long touches - if (!params.longSwipes) { - swiper.slideTo(swiper.activeIndex); - return; - } - if (swiper.swipeDirection === 'next') { - if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex); - } - if (swiper.swipeDirection === 'prev') { - if (ratio > 1 - params.longSwipesRatio) { - swiper.slideTo(stopIndex + increment); - } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) { - swiper.slideTo(rewindLastIndex); - } else { - swiper.slideTo(stopIndex); - } - } - } else { - // Short swipes - if (!params.shortSwipes) { - swiper.slideTo(swiper.activeIndex); - return; - } - const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl); - if (!isNavButtonTarget) { - if (swiper.swipeDirection === 'next') { - swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment); - } - if (swiper.swipeDirection === 'prev') { - swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex); - } - } else if (e.target === swiper.navigation.nextEl) { - swiper.slideTo(stopIndex + increment); - } else { - swiper.slideTo(stopIndex); - } - } - } - - function onResize() { - const swiper = this; - const { - params, - el - } = swiper; - if (el && el.offsetWidth === 0) return; - - // Breakpoints - if (params.breakpoints) { - swiper.setBreakpoint(); - } - - // Save locks - const { - allowSlideNext, - allowSlidePrev, - snapGrid - } = swiper; - const isVirtual = swiper.virtual && swiper.params.virtual.enabled; - - // Disable locks on resize - swiper.allowSlideNext = true; - swiper.allowSlidePrev = true; - swiper.updateSize(); - swiper.updateSlides(); - swiper.updateSlidesClasses(); - const isVirtualLoop = isVirtual && params.loop; - if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) { - swiper.slideTo(swiper.slides.length - 1, 0, false, true); - } else { - if (swiper.params.loop && !isVirtual) { - swiper.slideToLoop(swiper.realIndex, 0, false, true); - } else { - swiper.slideTo(swiper.activeIndex, 0, false, true); - } - } - if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) { - clearTimeout(swiper.autoplay.resizeTimeout); - swiper.autoplay.resizeTimeout = setTimeout(() => { - if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) { - swiper.autoplay.resume(); - } - }, 500); - } - // Return locks after resize - swiper.allowSlidePrev = allowSlidePrev; - swiper.allowSlideNext = allowSlideNext; - if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) { - swiper.checkOverflow(); - } - } - - function onClick(e) { - const swiper = this; - if (!swiper.enabled) return; - if (!swiper.allowClick) { - if (swiper.params.preventClicks) e.preventDefault(); - if (swiper.params.preventClicksPropagation && swiper.animating) { - e.stopPropagation(); - e.stopImmediatePropagation(); - } - } - } - - function onScroll() { - const swiper = this; - const { - wrapperEl, - rtlTranslate, - enabled - } = swiper; - if (!enabled) return; - swiper.previousTranslate = swiper.translate; - if (swiper.isHorizontal()) { - swiper.translate = -wrapperEl.scrollLeft; - } else { - swiper.translate = -wrapperEl.scrollTop; - } - // eslint-disable-next-line - if (swiper.translate === 0) swiper.translate = 0; - swiper.updateActiveIndex(); - swiper.updateSlidesClasses(); - let newProgress; - const translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); - if (translatesDiff === 0) { - newProgress = 0; - } else { - newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff; - } - if (newProgress !== swiper.progress) { - swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate); - } - swiper.emit('setTranslate', swiper.translate, false); - } - - function onLoad(e) { - const swiper = this; - processLazyPreloader(swiper, e.target); - if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) { - return; - } - swiper.update(); - } - - function onDocumentTouchStart() { - const swiper = this; - if (swiper.documentTouchHandlerProceeded) return; - swiper.documentTouchHandlerProceeded = true; - if (swiper.params.touchReleaseOnEdges) { - swiper.el.style.touchAction = 'auto'; - } - } - - const events = (swiper, method) => { - const document = getDocument(); - const { - params, - el, - wrapperEl, - device - } = swiper; - const capture = !!params.nested; - const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener'; - const swiperMethod = method; - - // Touch Events - document[domMethod]('touchstart', swiper.onDocumentTouchStart, { - passive: false, - capture - }); - el[domMethod]('touchstart', swiper.onTouchStart, { - passive: false - }); - el[domMethod]('pointerdown', swiper.onTouchStart, { - passive: false - }); - document[domMethod]('touchmove', swiper.onTouchMove, { - passive: false, - capture - }); - document[domMethod]('pointermove', swiper.onTouchMove, { - passive: false, - capture - }); - document[domMethod]('touchend', swiper.onTouchEnd, { - passive: true - }); - document[domMethod]('pointerup', swiper.onTouchEnd, { - passive: true - }); - document[domMethod]('pointercancel', swiper.onTouchEnd, { - passive: true - }); - document[domMethod]('touchcancel', swiper.onTouchEnd, { - passive: true - }); - document[domMethod]('pointerout', swiper.onTouchEnd, { - passive: true - }); - document[domMethod]('pointerleave', swiper.onTouchEnd, { - passive: true - }); - document[domMethod]('contextmenu', swiper.onTouchEnd, { - passive: true - }); - - // Prevent Links Clicks - if (params.preventClicks || params.preventClicksPropagation) { - el[domMethod]('click', swiper.onClick, true); - } - if (params.cssMode) { - wrapperEl[domMethod]('scroll', swiper.onScroll); - } - - // Resize handler - if (params.updateOnWindowResize) { - swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true); - } else { - swiper[swiperMethod]('observerUpdate', onResize, true); - } - - // Images loader - el[domMethod]('load', swiper.onLoad, { - capture: true - }); - }; - function attachEvents() { - const swiper = this; - const { - params - } = swiper; - swiper.onTouchStart = onTouchStart.bind(swiper); - swiper.onTouchMove = onTouchMove.bind(swiper); - swiper.onTouchEnd = onTouchEnd.bind(swiper); - swiper.onDocumentTouchStart = onDocumentTouchStart.bind(swiper); - if (params.cssMode) { - swiper.onScroll = onScroll.bind(swiper); - } - swiper.onClick = onClick.bind(swiper); - swiper.onLoad = onLoad.bind(swiper); - events(swiper, 'on'); - } - function detachEvents() { - const swiper = this; - events(swiper, 'off'); - } - var events$1 = { - attachEvents, - detachEvents - }; - - const isGridEnabled = (swiper, params) => { - return swiper.grid && params.grid && params.grid.rows > 1; - }; - function setBreakpoint() { - const swiper = this; - const { - realIndex, - initialized, - params, - el - } = swiper; - const breakpoints = params.breakpoints; - if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; - - // Get breakpoint for window width and update parameters - const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el); - if (!breakpoint || swiper.currentBreakpoint === breakpoint) return; - const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined; - const breakpointParams = breakpointOnlyParams || swiper.originalParams; - const wasMultiRow = isGridEnabled(swiper, params); - const isMultiRow = isGridEnabled(swiper, breakpointParams); - const wasEnabled = params.enabled; - if (wasMultiRow && !isMultiRow) { - el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`); - swiper.emitContainerClasses(); - } else if (!wasMultiRow && isMultiRow) { - el.classList.add(`${params.containerModifierClass}grid`); - if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') { - el.classList.add(`${params.containerModifierClass}grid-column`); - } - swiper.emitContainerClasses(); - } - - // Toggle navigation, pagination, scrollbar - ['navigation', 'pagination', 'scrollbar'].forEach(prop => { - if (typeof breakpointParams[prop] === 'undefined') return; - const wasModuleEnabled = params[prop] && params[prop].enabled; - const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled; - if (wasModuleEnabled && !isModuleEnabled) { - swiper[prop].disable(); - } - if (!wasModuleEnabled && isModuleEnabled) { - swiper[prop].enable(); - } - }); - const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction; - const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged); - const wasLoop = params.loop; - if (directionChanged && initialized) { - swiper.changeDirection(); - } - extend(swiper.params, breakpointParams); - const isEnabled = swiper.params.enabled; - const hasLoop = swiper.params.loop; - Object.assign(swiper, { - allowTouchMove: swiper.params.allowTouchMove, - allowSlideNext: swiper.params.allowSlideNext, - allowSlidePrev: swiper.params.allowSlidePrev - }); - if (wasEnabled && !isEnabled) { - swiper.disable(); - } else if (!wasEnabled && isEnabled) { - swiper.enable(); - } - swiper.currentBreakpoint = breakpoint; - swiper.emit('_beforeBreakpoint', breakpointParams); - if (initialized) { - if (needsReLoop) { - swiper.loopDestroy(); - swiper.loopCreate(realIndex); - swiper.updateSlides(); - } else if (!wasLoop && hasLoop) { - swiper.loopCreate(realIndex); - swiper.updateSlides(); - } else if (wasLoop && !hasLoop) { - swiper.loopDestroy(); - } - } - swiper.emit('breakpoint', breakpointParams); - } - - function getBreakpoint(breakpoints, base, containerEl) { - if (base === void 0) { - base = 'window'; - } - if (!breakpoints || base === 'container' && !containerEl) return undefined; - let breakpoint = false; - const window = getWindow(); - const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight; - const points = Object.keys(breakpoints).map(point => { - if (typeof point === 'string' && point.indexOf('@') === 0) { - const minRatio = parseFloat(point.substr(1)); - const value = currentHeight * minRatio; - return { - value, - point - }; - } - return { - value: point, - point - }; - }); - points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10)); - for (let i = 0; i < points.length; i += 1) { - const { - point, - value - } = points[i]; - if (base === 'window') { - if (window.matchMedia(`(min-width: ${value}px)`).matches) { - breakpoint = point; - } - } else if (value <= containerEl.clientWidth) { - breakpoint = point; - } - } - return breakpoint || 'max'; - } - - var breakpoints = { - setBreakpoint, - getBreakpoint - }; - - function prepareClasses(entries, prefix) { - const resultClasses = []; - entries.forEach(item => { - if (typeof item === 'object') { - Object.keys(item).forEach(classNames => { - if (item[classNames]) { - resultClasses.push(prefix + classNames); - } - }); - } else if (typeof item === 'string') { - resultClasses.push(prefix + item); - } - }); - return resultClasses; - } - function addClasses() { - const swiper = this; - const { - classNames, - params, - rtl, - el, - device - } = swiper; - // prettier-ignore - const suffixes = prepareClasses(['initialized', params.direction, { - 'free-mode': swiper.params.freeMode && params.freeMode.enabled - }, { - 'autoheight': params.autoHeight - }, { - 'rtl': rtl - }, { - 'grid': params.grid && params.grid.rows > 1 - }, { - 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column' - }, { - 'android': device.android - }, { - 'ios': device.ios - }, { - 'css-mode': params.cssMode - }, { - 'centered': params.cssMode && params.centeredSlides - }, { - 'watch-progress': params.watchSlidesProgress - }], params.containerModifierClass); - classNames.push(...suffixes); - el.classList.add(...classNames); - swiper.emitContainerClasses(); - } - - function removeClasses() { - const swiper = this; - const { - el, - classNames - } = swiper; - el.classList.remove(...classNames); - swiper.emitContainerClasses(); - } - - var classes = { - addClasses, - removeClasses - }; - - function checkOverflow() { - const swiper = this; - const { - isLocked: wasLocked, - params - } = swiper; - const { - slidesOffsetBefore - } = params; - if (slidesOffsetBefore) { - const lastSlideIndex = swiper.slides.length - 1; - const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2; - swiper.isLocked = swiper.size > lastSlideRightEdge; - } else { - swiper.isLocked = swiper.snapGrid.length === 1; - } - if (params.allowSlideNext === true) { - swiper.allowSlideNext = !swiper.isLocked; - } - if (params.allowSlidePrev === true) { - swiper.allowSlidePrev = !swiper.isLocked; - } - if (wasLocked && wasLocked !== swiper.isLocked) { - swiper.isEnd = false; - } - if (wasLocked !== swiper.isLocked) { - swiper.emit(swiper.isLocked ? 'lock' : 'unlock'); - } - } - var checkOverflow$1 = { - checkOverflow - }; - - var defaults = { - init: true, - direction: 'horizontal', - oneWayMovement: false, - touchEventsTarget: 'wrapper', - initialSlide: 0, - speed: 300, - cssMode: false, - updateOnWindowResize: true, - resizeObserver: true, - nested: false, - createElements: false, - eventsPrefix: 'swiper', - enabled: true, - focusableElements: 'input, select, option, textarea, button, video, label', - // Overrides - width: null, - height: null, - // - preventInteractionOnTransition: false, - // ssr - userAgent: null, - url: null, - // To support iOS's swipe-to-go-back gesture (when being used in-app). - edgeSwipeDetection: false, - edgeSwipeThreshold: 20, - // Autoheight - autoHeight: false, - // Set wrapper width - setWrapperSize: false, - // Virtual Translate - virtualTranslate: false, - // Effects - effect: 'slide', - // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip' - - // Breakpoints - breakpoints: undefined, - breakpointsBase: 'window', - // Slides grid - spaceBetween: 0, - slidesPerView: 1, - slidesPerGroup: 1, - slidesPerGroupSkip: 0, - slidesPerGroupAuto: false, - centeredSlides: false, - centeredSlidesBounds: false, - slidesOffsetBefore: 0, - // in px - slidesOffsetAfter: 0, - // in px - normalizeSlideIndex: true, - centerInsufficientSlides: false, - // Disable swiper and hide navigation when container not overflow - watchOverflow: true, - // Round length - roundLengths: false, - // Touches - touchRatio: 1, - touchAngle: 45, - simulateTouch: true, - shortSwipes: true, - longSwipes: true, - longSwipesRatio: 0.5, - longSwipesMs: 300, - followFinger: true, - allowTouchMove: true, - threshold: 5, - touchMoveStopPropagation: false, - touchStartPreventDefault: true, - touchStartForcePreventDefault: false, - touchReleaseOnEdges: false, - // Unique Navigation Elements - uniqueNavElements: true, - // Resistance - resistance: true, - resistanceRatio: 0.85, - // Progress - watchSlidesProgress: false, - // Cursor - grabCursor: false, - // Clicks - preventClicks: true, - preventClicksPropagation: true, - slideToClickedSlide: false, - // loop - loop: false, - loopAddBlankSlides: true, - loopAdditionalSlides: 0, - loopPreventsSliding: true, - // rewind - rewind: false, - // Swiping/no swiping - allowSlidePrev: true, - allowSlideNext: true, - swipeHandler: null, - // '.swipe-handler', - noSwiping: true, - noSwipingClass: 'swiper-no-swiping', - noSwipingSelector: null, - // Passive Listeners - passiveListeners: true, - maxBackfaceHiddenSlides: 10, - // NS - containerModifierClass: 'swiper-', - // NEW - slideClass: 'swiper-slide', - slideBlankClass: 'swiper-slide-blank', - slideActiveClass: 'swiper-slide-active', - slideVisibleClass: 'swiper-slide-visible', - slideFullyVisibleClass: 'swiper-slide-fully-visible', - slideNextClass: 'swiper-slide-next', - slidePrevClass: 'swiper-slide-prev', - wrapperClass: 'swiper-wrapper', - lazyPreloaderClass: 'swiper-lazy-preloader', - lazyPreloadPrevNext: 0, - // Callbacks - runCallbacksOnInit: true, - // Internals - _emitClasses: false - }; - - function moduleExtendParams(params, allModulesParams) { - return function extendParams(obj) { - if (obj === void 0) { - obj = {}; - } - const moduleParamName = Object.keys(obj)[0]; - const moduleParams = obj[moduleParamName]; - if (typeof moduleParams !== 'object' || moduleParams === null) { - extend(allModulesParams, obj); - return; - } - if (params[moduleParamName] === true) { - params[moduleParamName] = { - enabled: true - }; - } - if (moduleParamName === 'navigation' && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].prevEl && !params[moduleParamName].nextEl) { - params[moduleParamName].auto = true; - } - if (['pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].el) { - params[moduleParamName].auto = true; - } - if (!(moduleParamName in params && 'enabled' in moduleParams)) { - extend(allModulesParams, obj); - return; - } - if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) { - params[moduleParamName].enabled = true; - } - if (!params[moduleParamName]) params[moduleParamName] = { - enabled: false - }; - extend(allModulesParams, obj); - }; - } - - /* eslint no-param-reassign: "off" */ - const prototypes = { - eventsEmitter, - update, - translate, - transition, - slide, - loop, - grabCursor, - events: events$1, - breakpoints, - checkOverflow: checkOverflow$1, - classes - }; - const extendedDefaults = {}; - class Swiper { - constructor() { - let el; - let params; - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') { - params = args[0]; - } else { - [el, params] = args; - } - if (!params) params = {}; - params = extend({}, params); - if (el && !params.el) params.el = el; - const document = getDocument(); - if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) { - const swipers = []; - document.querySelectorAll(params.el).forEach(containerEl => { - const newParams = extend({}, params, { - el: containerEl - }); - swipers.push(new Swiper(newParams)); - }); - // eslint-disable-next-line no-constructor-return - return swipers; - } - - // Swiper Instance - const swiper = this; - swiper.__swiper__ = true; - swiper.support = getSupport(); - swiper.device = getDevice({ - userAgent: params.userAgent - }); - swiper.browser = getBrowser(); - swiper.eventsListeners = {}; - swiper.eventsAnyListeners = []; - swiper.modules = [...swiper.__modules__]; - if (params.modules && Array.isArray(params.modules)) { - swiper.modules.push(...params.modules); - } - const allModulesParams = {}; - swiper.modules.forEach(mod => { - mod({ - params, - swiper, - extendParams: moduleExtendParams(params, allModulesParams), - on: swiper.on.bind(swiper), - once: swiper.once.bind(swiper), - off: swiper.off.bind(swiper), - emit: swiper.emit.bind(swiper) - }); - }); - - // Extend defaults with modules params - const swiperParams = extend({}, defaults, allModulesParams); - - // Extend defaults with passed params - swiper.params = extend({}, swiperParams, extendedDefaults, params); - swiper.originalParams = extend({}, swiper.params); - swiper.passedParams = extend({}, params); - - // add event listeners - if (swiper.params && swiper.params.on) { - Object.keys(swiper.params.on).forEach(eventName => { - swiper.on(eventName, swiper.params.on[eventName]); - }); - } - if (swiper.params && swiper.params.onAny) { - swiper.onAny(swiper.params.onAny); - } - - // Extend Swiper - Object.assign(swiper, { - enabled: swiper.params.enabled, - el, - // Classes - classNames: [], - // Slides - slides: [], - slidesGrid: [], - snapGrid: [], - slidesSizesGrid: [], - // isDirection - isHorizontal() { - return swiper.params.direction === 'horizontal'; - }, - isVertical() { - return swiper.params.direction === 'vertical'; - }, - // Indexes - activeIndex: 0, - realIndex: 0, - // - isBeginning: true, - isEnd: false, - // Props - translate: 0, - previousTranslate: 0, - progress: 0, - velocity: 0, - animating: false, - cssOverflowAdjustment() { - // Returns 0 unless `translate` is > 2**23 - // Should be subtracted from css values to prevent overflow - return Math.trunc(this.translate / 2 ** 23) * 2 ** 23; - }, - // Locks - allowSlideNext: swiper.params.allowSlideNext, - allowSlidePrev: swiper.params.allowSlidePrev, - // Touch Events - touchEventsData: { - isTouched: undefined, - isMoved: undefined, - allowTouchCallbacks: undefined, - touchStartTime: undefined, - isScrolling: undefined, - currentTranslate: undefined, - startTranslate: undefined, - allowThresholdMove: undefined, - // Form elements to match - focusableElements: swiper.params.focusableElements, - // Last click time - lastClickTime: 0, - clickTimeout: undefined, - // Velocities - velocities: [], - allowMomentumBounce: undefined, - startMoving: undefined, - pointerId: null, - touchId: null - }, - // Clicks - allowClick: true, - // Touches - allowTouchMove: swiper.params.allowTouchMove, - touches: { - startX: 0, - startY: 0, - currentX: 0, - currentY: 0, - diff: 0 - }, - // Images - imagesToLoad: [], - imagesLoaded: 0 - }); - swiper.emit('_swiper'); - - // Init - if (swiper.params.init) { - swiper.init(); - } - - // Return app instance - // eslint-disable-next-line no-constructor-return - return swiper; - } - getDirectionLabel(property) { - if (this.isHorizontal()) { - return property; - } - // prettier-ignore - return { - 'width': 'height', - 'margin-top': 'margin-left', - 'margin-bottom ': 'margin-right', - 'margin-left': 'margin-top', - 'margin-right': 'margin-bottom', - 'padding-left': 'padding-top', - 'padding-right': 'padding-bottom', - 'marginRight': 'marginBottom' - }[property]; - } - getSlideIndex(slideEl) { - const { - slidesEl, - params - } = this; - const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`); - const firstSlideIndex = elementIndex(slides[0]); - return elementIndex(slideEl) - firstSlideIndex; - } - getSlideIndexByData(index) { - return this.getSlideIndex(this.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index)[0]); - } - recalcSlides() { - const swiper = this; - const { - slidesEl, - params - } = swiper; - swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`); - } - enable() { - const swiper = this; - if (swiper.enabled) return; - swiper.enabled = true; - if (swiper.params.grabCursor) { - swiper.setGrabCursor(); - } - swiper.emit('enable'); - } - disable() { - const swiper = this; - if (!swiper.enabled) return; - swiper.enabled = false; - if (swiper.params.grabCursor) { - swiper.unsetGrabCursor(); - } - swiper.emit('disable'); - } - setProgress(progress, speed) { - const swiper = this; - progress = Math.min(Math.max(progress, 0), 1); - const min = swiper.minTranslate(); - const max = swiper.maxTranslate(); - const current = (max - min) * progress + min; - swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed); - swiper.updateActiveIndex(); - swiper.updateSlidesClasses(); - } - emitContainerClasses() { - const swiper = this; - if (!swiper.params._emitClasses || !swiper.el) return; - const cls = swiper.el.className.split(' ').filter(className => { - return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0; - }); - swiper.emit('_containerClasses', cls.join(' ')); - } - getSlideClasses(slideEl) { - const swiper = this; - if (swiper.destroyed) return ''; - return slideEl.className.split(' ').filter(className => { - return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0; - }).join(' '); - } - emitSlidesClasses() { - const swiper = this; - if (!swiper.params._emitClasses || !swiper.el) return; - const updates = []; - swiper.slides.forEach(slideEl => { - const classNames = swiper.getSlideClasses(slideEl); - updates.push({ - slideEl, - classNames - }); - swiper.emit('_slideClass', slideEl, classNames); - }); - swiper.emit('_slideClasses', updates); - } - slidesPerViewDynamic(view, exact) { - if (view === void 0) { - view = 'current'; - } - if (exact === void 0) { - exact = false; - } - const swiper = this; - const { - params, - slides, - slidesGrid, - slidesSizesGrid, - size: swiperSize, - activeIndex - } = swiper; - let spv = 1; - if (typeof params.slidesPerView === 'number') return params.slidesPerView; - if (params.centeredSlides) { - let slideSize = slides[activeIndex] ? slides[activeIndex].swiperSlideSize : 0; - let breakLoop; - for (let i = activeIndex + 1; i < slides.length; i += 1) { - if (slides[i] && !breakLoop) { - slideSize += slides[i].swiperSlideSize; - spv += 1; - if (slideSize > swiperSize) breakLoop = true; - } - } - for (let i = activeIndex - 1; i >= 0; i -= 1) { - if (slides[i] && !breakLoop) { - slideSize += slides[i].swiperSlideSize; - spv += 1; - if (slideSize > swiperSize) breakLoop = true; - } - } - } else { - // eslint-disable-next-line - if (view === 'current') { - for (let i = activeIndex + 1; i < slides.length; i += 1) { - const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize; - if (slideInView) { - spv += 1; - } - } - } else { - // previous - for (let i = activeIndex - 1; i >= 0; i -= 1) { - const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize; - if (slideInView) { - spv += 1; - } - } - } - } - return spv; - } - update() { - const swiper = this; - if (!swiper || swiper.destroyed) return; - const { - snapGrid, - params - } = swiper; - // Breakpoints - if (params.breakpoints) { - swiper.setBreakpoint(); - } - [...swiper.el.querySelectorAll('[loading="lazy"]')].forEach(imageEl => { - if (imageEl.complete) { - processLazyPreloader(swiper, imageEl); - } - }); - swiper.updateSize(); - swiper.updateSlides(); - swiper.updateProgress(); - swiper.updateSlidesClasses(); - function setTranslate() { - const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate; - const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate()); - swiper.setTranslate(newTranslate); - swiper.updateActiveIndex(); - swiper.updateSlidesClasses(); - } - let translated; - if (params.freeMode && params.freeMode.enabled && !params.cssMode) { - setTranslate(); - if (params.autoHeight) { - swiper.updateAutoHeight(); - } - } else { - if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) { - const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides; - translated = swiper.slideTo(slides.length - 1, 0, false, true); - } else { - translated = swiper.slideTo(swiper.activeIndex, 0, false, true); - } - if (!translated) { - setTranslate(); - } - } - if (params.watchOverflow && snapGrid !== swiper.snapGrid) { - swiper.checkOverflow(); - } - swiper.emit('update'); - } - changeDirection(newDirection, needUpdate) { - if (needUpdate === void 0) { - needUpdate = true; - } - const swiper = this; - const currentDirection = swiper.params.direction; - if (!newDirection) { - // eslint-disable-next-line - newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal'; - } - if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') { - return swiper; - } - swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`); - swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`); - swiper.emitContainerClasses(); - swiper.params.direction = newDirection; - swiper.slides.forEach(slideEl => { - if (newDirection === 'vertical') { - slideEl.style.width = ''; - } else { - slideEl.style.height = ''; - } - }); - swiper.emit('changeDirection'); - if (needUpdate) swiper.update(); - return swiper; - } - changeLanguageDirection(direction) { - const swiper = this; - if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return; - swiper.rtl = direction === 'rtl'; - swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl; - if (swiper.rtl) { - swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`); - swiper.el.dir = 'rtl'; - } else { - swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`); - swiper.el.dir = 'ltr'; - } - swiper.update(); - } - mount(element) { - const swiper = this; - if (swiper.mounted) return true; - - // Find el - let el = element || swiper.params.el; - if (typeof el === 'string') { - el = document.querySelector(el); - } - if (!el) { - return false; - } - el.swiper = swiper; - if (el.parentNode && el.parentNode.host && el.parentNode.host.nodeName === 'SWIPER-CONTAINER') { - swiper.isElement = true; - } - const getWrapperSelector = () => { - return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`; - }; - const getWrapper = () => { - if (el && el.shadowRoot && el.shadowRoot.querySelector) { - const res = el.shadowRoot.querySelector(getWrapperSelector()); - // Children needs to return slot items - return res; - } - return elementChildren(el, getWrapperSelector())[0]; - }; - // Find Wrapper - let wrapperEl = getWrapper(); - if (!wrapperEl && swiper.params.createElements) { - wrapperEl = createElement('div', swiper.params.wrapperClass); - el.append(wrapperEl); - elementChildren(el, `.${swiper.params.slideClass}`).forEach(slideEl => { - wrapperEl.append(slideEl); - }); - } - Object.assign(swiper, { - el, - wrapperEl, - slidesEl: swiper.isElement && !el.parentNode.host.slideSlots ? el.parentNode.host : wrapperEl, - hostEl: swiper.isElement ? el.parentNode.host : el, - mounted: true, - // RTL - rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl', - rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'), - wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box' - }); - return true; - } - init(el) { - const swiper = this; - if (swiper.initialized) return swiper; - const mounted = swiper.mount(el); - if (mounted === false) return swiper; - swiper.emit('beforeInit'); - - // Set breakpoint - if (swiper.params.breakpoints) { - swiper.setBreakpoint(); - } - - // Add Classes - swiper.addClasses(); - - // Update size - swiper.updateSize(); - - // Update slides - swiper.updateSlides(); - if (swiper.params.watchOverflow) { - swiper.checkOverflow(); - } - - // Set Grab Cursor - if (swiper.params.grabCursor && swiper.enabled) { - swiper.setGrabCursor(); - } - - // Slide To Initial Slide - if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) { - swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true); - } else { - swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true); - } - - // Create loop - if (swiper.params.loop) { - swiper.loopCreate(); - } - - // Attach events - swiper.attachEvents(); - const lazyElements = [...swiper.el.querySelectorAll('[loading="lazy"]')]; - if (swiper.isElement) { - lazyElements.push(...swiper.hostEl.querySelectorAll('[loading="lazy"]')); - } - lazyElements.forEach(imageEl => { - if (imageEl.complete) { - processLazyPreloader(swiper, imageEl); - } else { - imageEl.addEventListener('load', e => { - processLazyPreloader(swiper, e.target); - }); - } - }); - preload(swiper); - - // Init Flag - swiper.initialized = true; - preload(swiper); - - // Emit - swiper.emit('init'); - swiper.emit('afterInit'); - return swiper; - } - destroy(deleteInstance, cleanStyles) { - if (deleteInstance === void 0) { - deleteInstance = true; - } - if (cleanStyles === void 0) { - cleanStyles = true; - } - const swiper = this; - const { - params, - el, - wrapperEl, - slides - } = swiper; - if (typeof swiper.params === 'undefined' || swiper.destroyed) { - return null; - } - swiper.emit('beforeDestroy'); - - // Init Flag - swiper.initialized = false; - - // Detach events - swiper.detachEvents(); - - // Destroy loop - if (params.loop) { - swiper.loopDestroy(); - } - - // Cleanup styles - if (cleanStyles) { - swiper.removeClasses(); - el.removeAttribute('style'); - wrapperEl.removeAttribute('style'); - if (slides && slides.length) { - slides.forEach(slideEl => { - slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass); - slideEl.removeAttribute('style'); - slideEl.removeAttribute('data-swiper-slide-index'); - }); - } - } - swiper.emit('destroy'); - - // Detach emitter events - Object.keys(swiper.eventsListeners).forEach(eventName => { - swiper.off(eventName); - }); - if (deleteInstance !== false) { - swiper.el.swiper = null; - deleteProps(swiper); - } - swiper.destroyed = true; - return null; - } - static extendDefaults(newDefaults) { - extend(extendedDefaults, newDefaults); - } - static get extendedDefaults() { - return extendedDefaults; - } - static get defaults() { - return defaults; - } - static installModule(mod) { - if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = []; - const modules = Swiper.prototype.__modules__; - if (typeof mod === 'function' && modules.indexOf(mod) < 0) { - modules.push(mod); - } - } - static use(module) { - if (Array.isArray(module)) { - module.forEach(m => Swiper.installModule(m)); - return Swiper; - } - Swiper.installModule(module); - return Swiper; - } - } - Object.keys(prototypes).forEach(prototypeGroup => { - Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => { - Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod]; - }); - }); - Swiper.use([Resize, Observer]); - - return Swiper; - -})(); diff --git a/build/assets/js/vendor/swiper/swiper.less b/build/assets/js/vendor/swiper/swiper.less deleted file mode 100644 index 72068ac..0000000 --- a/build/assets/js/vendor/swiper/swiper.less +++ /dev/null @@ -1,251 +0,0 @@ -/** - * Swiper 11.0.5 - * 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: November 22, 2023 - */ - -@themeColor: #007aff; - -/* FONT_START */ -@font-face { - font-family: 'swiper-icons'; - src: url('data:application/font-woff;charset=utf-8;base64, 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'); - font-weight: 400; - font-style: normal; -} -/* FONT_END */ - -:root { - --swiper-theme-color: @themeColor; - /* - --swiper-preloader-color: var(--swiper-theme-color); - --swiper-wrapper-transition-timing-function: initial; - */ -} -:host { - position: relative; - display: block; - margin-left: auto; - margin-right: auto; - z-index: 1; -} -.swiper { - margin-left: auto; - margin-right: auto; - position: relative; - overflow: hidden; - list-style: none; - padding: 0; - /* Fix of Webkit flickering */ - z-index: 1; - display: block; -} -.swiper-vertical > .swiper-wrapper { - flex-direction: column; -} -.swiper-wrapper { - position: relative; - width: 100%; - height: 100%; - z-index: 1; - display: flex; - transition-property: transform; - transition-timing-function: var(--swiper-wrapper-transition-timing-function, initial); - box-sizing: content-box; -} -.swiper-android .swiper-slide, -.swiper-ios .swiper-slide, -.swiper-wrapper { - transform: translate3d(0px, 0, 0); -} -.swiper-horizontal { - touch-action: pan-y; -} -.swiper-vertical { - touch-action: pan-x; -} -.swiper-slide { - flex-shrink: 0; - width: 100%; - height: 100%; - position: relative; - transition-property: transform; - display: block; -} -.swiper-slide-invisible-blank { - visibility: hidden; -} -/* Auto Height */ -.swiper-autoheight, -.swiper-autoheight .swiper-slide { - height: auto; -} -.swiper-autoheight .swiper-wrapper { - align-items: flex-start; - transition-property: transform, height; -} -.swiper-backface-hidden .swiper-slide { - transform: translateZ(0); - backface-visibility: hidden; -} -/* 3D Effects */ -.swiper-3d.swiper-css-mode .swiper-wrapper { - perspective: 1200px; -} -.swiper-3d .swiper-wrapper { - transform-style: preserve-3d; -} -.swiper-3d { - perspective: 1200px; - .swiper-slide, - .swiper-cube-shadow { - transform-style: preserve-3d; - } -} - -/* CSS Mode */ -.swiper-css-mode { - > .swiper-wrapper { - overflow: auto; - scrollbar-width: none; /* For Firefox */ - -ms-overflow-style: none; /* For Internet Explorer and Edge */ - &::-webkit-scrollbar { - display: none; - } - } - > .swiper-wrapper > .swiper-slide { - scroll-snap-align: start start; - } - &.swiper-horizontal { - > .swiper-wrapper { - scroll-snap-type: x mandatory; - } - } - &.swiper-vertical { - > .swiper-wrapper { - scroll-snap-type: y mandatory; - } - } - &.swiper-free-mode { - > .swiper-wrapper { - scroll-snap-type: none; - } - > .swiper-wrapper > .swiper-slide { - scroll-snap-align: none; - } - } - &.swiper-centered { - > .swiper-wrapper::before { - content: ''; - flex-shrink: 0; - order: 9999; - } - > .swiper-wrapper > .swiper-slide { - scroll-snap-align: center center; - scroll-snap-stop: always; - } - } - &.swiper-centered.swiper-horizontal { - > .swiper-wrapper > .swiper-slide:first-child { - margin-inline-start: var(--swiper-centered-offset-before); - } - > .swiper-wrapper::before { - height: 100%; - min-height: 1px; - width: var(--swiper-centered-offset-after); - } - } - &.swiper-centered.swiper-vertical { - > .swiper-wrapper > .swiper-slide:first-child { - margin-block-start: var(--swiper-centered-offset-before); - } - > .swiper-wrapper::before { - width: 100%; - min-width: 1px; - height: var(--swiper-centered-offset-after); - } - } -} - -/* Slide styles start */ -/* 3D Shadows */ -.swiper-3d { - .swiper-slide-shadow, - .swiper-slide-shadow-left, - .swiper-slide-shadow-right, - .swiper-slide-shadow-top, - .swiper-slide-shadow-bottom, - .swiper-slide-shadow, - .swiper-slide-shadow-left, - .swiper-slide-shadow-right, - .swiper-slide-shadow-top, - .swiper-slide-shadow-bottom { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - pointer-events: none; - z-index: 10; - } - .swiper-slide-shadow { - background: rgba(0, 0, 0, 0.15); - } - .swiper-slide-shadow-left { - background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - } - .swiper-slide-shadow-right { - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - } - .swiper-slide-shadow-top { - background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - } - .swiper-slide-shadow-bottom { - background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - } -} -.swiper-lazy-preloader { - width: 42px; - height: 42px; - position: absolute; - left: 50%; - top: 50%; - margin-left: -21px; - margin-top: -21px; - z-index: 10; - transform-origin: 50%; - box-sizing: border-box; - border: 4px solid var(--swiper-preloader-color, var(--swiper-theme-color)); - border-radius: 50%; - border-top-color: transparent; -} -.swiper:not(.swiper-watch-progress), -.swiper-watch-progress .swiper-slide-visible { - .swiper-lazy-preloader { - animation: swiper-preloader-spin 1s infinite linear; - } -} -.swiper-lazy-preloader-white { - --swiper-preloader-color: #fff; -} -.swiper-lazy-preloader-black { - --swiper-preloader-color: #000; -} -@keyframes swiper-preloader-spin { - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(360deg); - } -} -/* Slide styles end */ - - - diff --git a/build/assets/js/vendor/swiper/swiper.min.css b/build/assets/js/vendor/swiper/swiper.min.css deleted file mode 100644 index 5fd6a93..0000000 --- a/build/assets/js/vendor/swiper/swiper.min.css +++ /dev/null @@ -1,13 +0,0 @@ -/** - * Swiper 11.0.5 - * 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: November 22, 2023 - */ - -@font-face{font-family:swiper-icons;src:url('data:application/font-woff;charset=utf-8;base64, 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');font-weight:400;font-style:normal}:root{--swiper-theme-color:#007aff}:host{position:relative;display:block;margin-left:auto;margin-right:auto;z-index:1}.swiper{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);box-sizing:content-box}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d .swiper-slide{transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:rgba(0,0,0,.15)}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader,.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/swiper.min.js b/build/assets/js/vendor/swiper/swiper.min.js deleted file mode 100644 index 0981f95..0000000 --- a/build/assets/js/vendor/swiper/swiper.min.js +++ /dev/null @@ -1,14 +0,0 @@ -/** - * Swiper 11.0.5 - * 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: November 22, 2023 - */ - -var Swiper=function(){"use strict";function e(e){return null!==e&&"object"==typeof e&&"constructor"in e&&e.constructor===Object}function t(s,i){void 0===s&&(s={}),void 0===i&&(i={}),Object.keys(i).forEach((r=>{void 0===s[r]?s[r]=i[r]:e(i[r])&&e(s[r])&&Object.keys(i[r]).length>0&&t(s[r],i[r])}))}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 i(){const e="undefined"!=typeof document?document:{};return t(e,s),e}const r={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 n(){const e="undefined"!=typeof window?window:{};return t(e,r),e}function a(e,t){return void 0===t&&(t=0),setTimeout(e,t)}function o(){return Date.now()}function l(e,t){void 0===t&&(t="x");const s=n();let i,r,a;const o=function(e){const t=n();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?(r=o.transform||o.webkitTransform,r.split(",").length>6&&(r=r.split(", ").map((e=>e.replace(",","."))).join(", ")),a=new s.WebKitCSSMatrix("none"===r?"":r)):(a=o.MozTransform||o.OTransform||o.MsTransform||o.msTransform||o.transform||o.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),i=a.toString().split(",")),"x"===t&&(r=s.WebKitCSSMatrix?a.m41:16===i.length?parseFloat(i[12]):parseFloat(i[4])),"y"===t&&(r=s.WebKitCSSMatrix?a.m42:16===i.length?parseFloat(i[13]):parseFloat(i[5])),r||0}function d(e){return"object"==typeof e&&null!==e&&e.constructor&&"Object"===Object.prototype.toString.call(e).slice(8,-1)}function c(){const e=Object(arguments.length<=0?void 0:arguments[0]),t=["__proto__","constructor","prototype"];for(let i=1;it.indexOf(e)<0));for(let t=0,i=s.length;ta?"next":"prev",p=(e,t)=>"next"===c&&e>=t||"prev"===c&&e<=t,u=()=>{o=(new Date).getTime(),null===l&&(l=o);const e=Math.max(Math.min((o-l)/d,1),0),n=.5-Math.cos(e*Math.PI)/2;let c=a+n*(s-a);if(p(c,s)&&(c=s),t.wrapperEl.scrollTo({[i]:c}),p(c,s))return t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.scrollSnapType="",setTimeout((()=>{t.wrapperEl.style.overflow="",t.wrapperEl.scrollTo({[i]:c})})),void r.cancelAnimationFrame(t.cssModeFrameID);t.cssModeFrameID=r.requestAnimationFrame(u)};u()}function h(e,t){return void 0===t&&(t=""),[...e.children].filter((e=>e.matches(t)))}function f(e){try{return void console.warn(e)}catch(e){}}function m(e,t){void 0===t&&(t=[]);const s=document.createElement(e);return s.classList.add(...Array.isArray(t)?t:function(e){return void 0===e&&(e=""),e.trim().split(" ").filter((e=>!!e.trim()))}(t)),s}function v(e,t){return n().getComputedStyle(e,null).getPropertyValue(t)}function g(e){let t,s=e;if(s){for(t=0;null!==(s=s.previousSibling);)1===s.nodeType&&(t+=1);return t}}function w(e,t,s){const i=n();return s?e["width"===t?"offsetWidth":"offsetHeight"]+parseFloat(i.getComputedStyle(e,null).getPropertyValue("width"===t?"margin-right":"margin-top"))+parseFloat(i.getComputedStyle(e,null).getPropertyValue("width"===t?"margin-left":"margin-bottom")):e.offsetWidth}let S,T,b;function x(){return S||(S=function(){const e=n(),t=i();return{smoothScroll:t.documentElement&&t.documentElement.style&&"scrollBehavior"in t.documentElement.style,touch:!!("ontouchstart"in e||e.DocumentTouch&&t instanceof e.DocumentTouch)}}()),S}function y(e){return void 0===e&&(e={}),T||(T=function(e){let{userAgent:t}=void 0===e?{}:e;const s=x(),i=n(),r=i.navigator.platform,a=t||i.navigator.userAgent,o={ios:!1,android:!1},l=i.screen.width,d=i.screen.height,c=a.match(/(Android);?[\s\/]+([\d.]+)?/);let p=a.match(/(iPad).*OS\s([\d_]+)/);const u=a.match(/(iPod)(.*OS\s([\d_]+))?/),h=!p&&a.match(/(iPhone\sOS|iOS)\s([\d_]+)/),f="Win32"===r;let m="MacIntel"===r;return!p&&m&&s.touch&&["1024x1366","1366x1024","834x1194","1194x834","834x1112","1112x834","768x1024","1024x768","820x1180","1180x820","810x1080","1080x810"].indexOf(`${l}x${d}`)>=0&&(p=a.match(/(Version)\/([\d.]+)/),p||(p=[0,1,"13_0_0"]),m=!1),c&&!f&&(o.os="android",o.android=!0),(p||h||u)&&(o.os="ios",o.ios=!0),o}(e)),T}function E(){return b||(b=function(){const e=n();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,i]=s.split("Version/")[1].split(" ")[0].split(".").map((e=>Number(e)));t=e<16||16===e&&i<2}}return{isSafari:t||s(),needPerspectiveFix:t,isWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(e.navigator.userAgent)}}()),b}var M={on(e,t,s){const i=this;if(!i.eventsListeners||i.destroyed)return i;if("function"!=typeof t)return i;const r=s?"unshift":"push";return e.split(" ").forEach((e=>{i.eventsListeners[e]||(i.eventsListeners[e]=[]),i.eventsListeners[e][r](t)})),i},once(e,t,s){const i=this;if(!i.eventsListeners||i.destroyed)return i;if("function"!=typeof t)return i;function r(){i.off(e,r),r.__emitterProxy&&delete r.__emitterProxy;for(var s=arguments.length,n=new Array(s),a=0;a=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(((i,r)=>{(i===t||i.__emitterProxy&&i.__emitterProxy===t)&&s.eventsListeners[e].splice(r,1)}))})),s):s},emit(){const e=this;if(!e.eventsListeners||e.destroyed)return e;if(!e.eventsListeners)return e;let t,s,i;for(var r=arguments.length,n=new Array(r),a=0;a{e.eventsAnyListeners&&e.eventsAnyListeners.length&&e.eventsAnyListeners.forEach((e=>{e.apply(i,[t,...s])})),e.eventsListeners&&e.eventsListeners[t]&&e.eventsListeners[t].forEach((e=>{e.apply(i,s)}))})),e}};const C=(e,t)=>{if(!e||e.destroyed||!e.params)return;const s=t.closest(e.isElement?"swiper-slide":`.${e.params.slideClass}`);if(s){let t=s.querySelector(`.${e.params.lazyPreloaderClass}`);!t&&e.isElement&&(s.shadowRoot?t=s.shadowRoot.querySelector(`.${e.params.lazyPreloaderClass}`):requestAnimationFrame((()=>{s.shadowRoot&&(t=s.shadowRoot.querySelector(`.${e.params.lazyPreloaderClass}`),t&&t.remove())}))),t&&t.remove()}},P=(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 i="auto"===e.params.slidesPerView?e.slidesPerViewDynamic():Math.ceil(e.params.slidesPerView),r=e.activeIndex;if(e.params.grid&&e.params.grid.rows>1){const s=r,n=[s-t];return n.push(...Array.from({length:t}).map(((e,t)=>s+i+t))),void e.slides.forEach(((t,s)=>{n.includes(t.column)&&P(e,s)}))}const n=r+i-1;if(e.params.rewind||e.params.loop)for(let i=r-t;i<=n+t;i+=1){const t=(i%s+s)%s;(tn)&&P(e,t)}else for(let i=Math.max(r-t,0);i<=Math.min(n+t,s-1);i+=1)i!==r&&(i>n||i=0?y=parseFloat(y.replace("%",""))/100*n:"string"==typeof y&&(y=parseFloat(y)),e.virtualSize=-y,c.forEach((e=>{a?e.style.marginLeft="":e.style.marginRight="",e.style.marginBottom="",e.style.marginTop=""})),s.centeredSlides&&s.cssMode&&(p(i,"--swiper-centered-offset-before",""),p(i,"--swiper-centered-offset-after",""));const P=s.grid&&s.grid.rows>1&&e.grid;let I;P?e.grid.initSlides(c):e.grid&&e.grid.unsetSlides();const L="auto"===s.slidesPerView&&s.breakpoints&&Object.keys(s.breakpoints).filter((e=>void 0!==s.breakpoints[e].slidesPerView)).length>0;for(let i=0;i1&&f.push(e.virtualSize-n)}if(l&&s.loop){const t=g[0]+y;if(s.slidesPerGroup>1){const i=Math.ceil((e.virtual.slidesBefore+e.virtual.slidesAfter)/s.slidesPerGroup),r=t*s.slidesPerGroup;for(let e=0;e!(s.cssMode&&!s.loop)||t!==c.length-1)).forEach((e=>{e.style[t]=`${y}px`}))}if(s.centeredSlides&&s.centeredSlidesBounds){let e=0;g.forEach((t=>{e+=t+(y||0)})),e-=y;const t=e-n;f=f.map((e=>e<=0?-S:e>t?t+T:e))}if(s.centerInsufficientSlides){let e=0;if(g.forEach((t=>{e+=t+(y||0)})),e-=y,e{f[s]=e-t})),m.forEach(((e,s)=>{m[s]=e+t}))}}if(Object.assign(e,{slides:c,snapGrid:f,slidesGrid:m,slidesSizesGrid:g}),s.centeredSlides&&s.cssMode&&!s.centeredSlidesBounds){p(i,"--swiper-centered-offset-before",-f[0]+"px"),p(i,"--swiper-centered-offset-after",e.size/2-g[g.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(u!==d&&e.emit("slidesLengthChange"),f.length!==b&&(e.params.watchOverflow&&e.checkOverflow(),e.emit("snapGridLengthChange")),m.length!==x&&e.emit("slidesGridLengthChange"),s.watchSlidesProgress&&e.updateSlidesOffset(),e.emit("slidesUpdated"),!(l||s.cssMode||"slide"!==s.effect&&"fade"!==s.effect)){const t=`${s.containerModifierClass}backface-hidden`,i=e.el.classList.contains(t);u<=s.maxBackfaceHiddenSlides?i||e.el.classList.add(t):i&&e.el.classList.remove(t)}},updateAutoHeight:function(e){const t=this,s=[],i=t.virtual&&t.params.virtual.enabled;let r,n=0;"number"==typeof e?t.setTransition(e):!0===e&&t.setTransition(t.params.speed);const a=e=>i?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(r=0;rt.slides.length&&!i)break;s.push(a(e))}else s.push(a(t.activeIndex));for(r=0;rn?e:n}(n||0===n)&&(t.wrapperEl.style.height=`${n}px`)},updateSlidesOffset:function(){const e=this,t=e.slides,s=e.isElement?e.isHorizontal()?e.wrapperEl.offsetLeft:e.wrapperEl.offsetTop:0;for(let i=0;i{e.classList.remove(s.slideVisibleClass,s.slideFullyVisibleClass)})),t.visibleSlidesIndexes=[],t.visibleSlides=[];let o=s.spaceBetween;"string"==typeof o&&o.indexOf("%")>=0?o=parseFloat(o.replace("%",""))/100*t.size:"string"==typeof o&&(o=parseFloat(o));for(let e=0;e=0&&u<=t.size-t.slidesSizesGrid[e];(u>=0&&u1&&h<=t.size||u<=0&&h>=t.size)&&(t.visibleSlides.push(l),t.visibleSlidesIndexes.push(e),i[e].classList.add(s.slideVisibleClass)),f&&i[e].classList.add(s.slideFullyVisibleClass),l.progress=r?-c:c,l.originalProgress=r?-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,i=t.maxTranslate()-t.minTranslate();let{progress:r,isBeginning:n,isEnd:a,progressLoop:o}=t;const l=n,d=a;if(0===i)r=0,n=!0,a=!0;else{r=(e-t.minTranslate())/i;const s=Math.abs(e-t.minTranslate())<1,o=Math.abs(e-t.maxTranslate())<1;n=s||r<=0,a=o||r>=1,s&&(r=0),o&&(r=1)}if(s.loop){const s=t.getSlideIndexByData(0),i=t.getSlideIndexByData(t.slides.length-1),r=t.slidesGrid[s],n=t.slidesGrid[i],a=t.slidesGrid[t.slidesGrid.length-1],l=Math.abs(e);o=l>=r?(l-r)/a:(l+a-n)/a,o>1&&(o-=1)}Object.assign(t,{progress:r,progressLoop:o,isBeginning:n,isEnd:a}),(s.watchSlidesProgress||s.centeredSlides&&s.autoHeight)&&t.updateSlidesProgress(e),n&&!l&&t.emit("reachBeginning toEdge"),a&&!d&&t.emit("reachEnd toEdge"),(l&&!n||d&&!a)&&t.emit("fromEdge"),t.emit("progress",r)},updateSlidesClasses:function(){const e=this,{slides:t,params:s,slidesEl:i,activeIndex:r}=e,n=e.virtual&&s.virtual.enabled,a=e.grid&&s.grid&&s.grid.rows>1,o=e=>h(i,`.${s.slideClass}${e}, swiper-slide${e}`)[0];let l,d,c;if(t.forEach((e=>{e.classList.remove(s.slideActiveClass,s.slideNextClass,s.slidePrevClass)})),n)if(s.loop){let t=r-e.virtual.slidesBefore;t<0&&(t=e.virtual.slides.length+t),t>=e.virtual.slides.length&&(t-=e.virtual.slides.length),l=o(`[data-swiper-slide-index="${t}"]`)}else l=o(`[data-swiper-slide-index="${r}"]`);else a?(l=t.filter((e=>e.column===r))[0],c=t.filter((e=>e.column===r+1))[0],d=t.filter((e=>e.column===r-1))[0]):l=t[r];l&&(l.classList.add(s.slideActiveClass),a?(c&&c.classList.add(s.slideNextClass),d&&d.classList.add(s.slidePrevClass)):(c=function(e,t){const s=[];for(;e.nextElementSibling;){const i=e.nextElementSibling;t?i.matches(t)&&s.push(i):s.push(i),e=i}return s}(l,`.${s.slideClass}, swiper-slide`)[0],s.loop&&!c&&(c=t[0]),c&&c.classList.add(s.slideNextClass),d=function(e,t){const s=[];for(;e.previousElementSibling;){const i=e.previousElementSibling;t?i.matches(t)&&s.push(i):s.push(i),e=i}return s}(l,`.${s.slideClass}, swiper-slide`)[0],s.loop&&0===!d&&(d=t[t.length-1]),d&&d.classList.add(s.slidePrevClass))),e.emitSlidesClasses()},updateActiveIndex:function(e){const t=this,s=t.rtlTranslate?t.translate:-t.translate,{snapGrid:i,params:r,activeIndex:n,realIndex:a,snapIndex:o}=t;let l,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,i=e.rtlTranslate?e.translate:-e.translate;let r;for(let e=0;e=t[e]&&i=t[e]&&i=t[e]&&(r=e);return s.normalizeSlideIndex&&(r<0||void 0===r)&&(r=0),r}(t)),i.indexOf(s)>=0)l=i.indexOf(s);else{const e=Math.min(r.slidesPerGroupSkip,d);l=e+Math.floor((d-e)/r.slidesPerGroup)}if(l>=i.length&&(l=i.length-1),d===n&&!t.params.loop)return void(l!==o&&(t.snapIndex=l,t.emit("snapIndexChange")));if(d===n&&t.params.loop&&t.virtual&&t.params.virtual.enabled)return void(t.realIndex=c(d));const p=t.grid&&r.grid&&r.grid.rows>1;let u;if(t.virtual&&r.virtual.enabled&&r.loop)u=c(d);else if(p){const e=t.slides.filter((e=>e.column===d))[0];let s=parseInt(e.getAttribute("data-swiper-slide-index"),10);Number.isNaN(s)&&(s=Math.max(t.slides.indexOf(e),0)),u=Math.floor(s/r.grid.rows)}else if(t.slides[d]){const e=t.slides[d].getAttribute("data-swiper-slide-index");u=e?parseInt(e,10):d}else u=d;Object.assign(t,{previousSnapIndex:o,snapIndex:l,previousRealIndex:a,realIndex:u,previousIndex:n,activeIndex:d}),t.initialized&&I(t),t.emit("activeIndexChange"),t.emit("snapIndexChange"),(t.initialized||t.params.runCallbacksOnInit)&&(a!==u&&t.emit("realIndexChange"),t.emit("slideChange"))},updateClickedSlide:function(e,t){const s=this,i=s.params;let r=e.closest(`.${i.slideClass}, swiper-slide`);!r&&s.isElement&&t&&t.length>1&&t.includes(e)&&[...t.slice(t.indexOf(e)+1,t.length)].forEach((e=>{!r&&e.matches&&e.matches(`.${i.slideClass}, swiper-slide`)&&(r=e)}));let n,a=!1;if(r)for(let e=0;el?l:i&&ea?"next":n=l.length&&(g=l.length-1);const w=-l[g];if(o.normalizeSlideIndex)for(let e=0;e=s&&t=s&&t=s&&(a=e)}if(n.initialized&&a!==p){if(!n.allowSlideNext&&(h?w>n.translate&&w>n.minTranslate():wn.translate&&w>n.maxTranslate()&&(p||0)!==a)return!1}let S;if(a!==(c||0)&&s&&n.emit("beforeSlideChangeStart"),n.updateProgress(w),S=a>p?"next":a0?(n._cssModeVirtualInitialSet=!0,requestAnimationFrame((()=>{f[e?"scrollLeft":"scrollTop"]=s}))):f[e?"scrollLeft":"scrollTop"]=s,t&&requestAnimationFrame((()=>{n.wrapperEl.style.scrollSnapType="",n._immediateVirtual=!1}))}else{if(!n.support.smoothScroll)return u({swiper:n,targetPosition:s,side:e?"left":"top"}),!0;f.scrollTo({[e?"left":"top"]:s,behavior:"smooth"})}return!0}return n.setTransition(t),n.setTranslate(w),n.updateActiveIndex(a),n.updateSlidesClasses(),n.emit("beforeTransitionStart",t,i),n.transitionStart(s,S),0===t?n.transitionEnd(s,S):n.animating||(n.animating=!0,n.onSlideToWrapperTransitionEnd||(n.onSlideToWrapperTransitionEnd=function(e){n&&!n.destroyed&&e.target===this&&(n.wrapperEl.removeEventListener("transitionend",n.onSlideToWrapperTransitionEnd),n.onSlideToWrapperTransitionEnd=null,delete n.onSlideToWrapperTransitionEnd,n.transitionEnd(s,S))}),n.wrapperEl.addEventListener("transitionend",n.onSlideToWrapperTransitionEnd)),!0},slideToLoop:function(e,t,s,i){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 r=this,n=r.grid&&r.params.grid&&r.params.grid.rows>1;let a=e;if(r.params.loop)if(r.virtual&&r.params.virtual.enabled)a+=r.virtual.slidesBefore;else{let e;if(n){const t=a*r.params.grid.rows;e=r.slides.filter((e=>1*e.getAttribute("data-swiper-slide-index")===t))[0].column}else e=r.getSlideIndexByData(a);const t=n?Math.ceil(r.slides.length/r.params.grid.rows):r.slides.length,{centeredSlides:s}=r.params;let i=r.params.slidesPerView;"auto"===i?i=r.slidesPerViewDynamic():(i=Math.ceil(parseFloat(r.params.slidesPerView,10)),s&&i%2==0&&(i+=1));let o=t-e1*t.getAttribute("data-swiper-slide-index")===e))[0].column}else a=r.getSlideIndexByData(a)}return requestAnimationFrame((()=>{r.slideTo(a,t,s,i)})),r},slideNext:function(e,t,s){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);const i=this,{enabled:r,params:n,animating:a}=i;if(!r)return i;let o=n.slidesPerGroup;"auto"===n.slidesPerView&&1===n.slidesPerGroup&&n.slidesPerGroupAuto&&(o=Math.max(i.slidesPerViewDynamic("current",!0),1));const l=i.activeIndex{i.slideTo(i.activeIndex+l,e,t,s)})),!0}return n.rewind&&i.isEnd?i.slideTo(0,e,t,s):i.slideTo(i.activeIndex+l,e,t,s)},slidePrev:function(e,t,s){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);const i=this,{params:r,snapGrid:n,slidesGrid:a,rtlTranslate:o,enabled:l,animating:d}=i;if(!l)return i;const c=i.virtual&&r.virtual.enabled;if(r.loop){if(d&&!c&&r.loopPreventsSliding)return!1;i.loopFix({direction:"prev"}),i._clientLeft=i.wrapperEl.clientLeft}function p(e){return e<0?-Math.floor(Math.abs(e)):Math.floor(e)}const u=p(o?i.translate:-i.translate),h=n.map((e=>p(e)));let f=n[h.indexOf(u)-1];if(void 0===f&&r.cssMode){let e;n.forEach(((t,s)=>{u>=t&&(e=s)})),void 0!==e&&(f=n[e>0?e-1:e])}let m=0;if(void 0!==f&&(m=a.indexOf(f),m<0&&(m=i.activeIndex-1),"auto"===r.slidesPerView&&1===r.slidesPerGroup&&r.slidesPerGroupAuto&&(m=m-i.slidesPerViewDynamic("previous",!0)+1,m=Math.max(m,0))),r.rewind&&i.isBeginning){const r=i.params.virtual&&i.params.virtual.enabled&&i.virtual?i.virtual.slides.length-1:i.slides.length-1;return i.slideTo(r,e,t,s)}return r.loop&&0===i.activeIndex&&r.cssMode?(requestAnimationFrame((()=>{i.slideTo(m,e,t,s)})),!0):i.slideTo(m,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,i){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0),void 0===i&&(i=.5);const r=this;let n=r.activeIndex;const a=Math.min(r.params.slidesPerGroupSkip,n),o=a+Math.floor((n-a)/r.params.slidesPerGroup),l=r.rtlTranslate?r.translate:-r.translate;if(l>=r.snapGrid[o]){const e=r.snapGrid[o];l-e>(r.snapGrid[o+1]-e)*i&&(n+=r.params.slidesPerGroup)}else{const e=r.snapGrid[o-1];l-e<=(r.snapGrid[o]-e)*i&&(n-=r.params.slidesPerGroup)}return n=Math.max(n,0),n=Math.min(n,r.slidesGrid.length-1),r.slideTo(n,e,t,s)},slideToClickedSlide:function(){const e=this,{params:t,slidesEl:s}=e,i="auto"===t.slidesPerView?e.slidesPerViewDynamic():t.slidesPerView;let r,n=e.clickedIndex;const o=e.isElement?"swiper-slide":`.${t.slideClass}`;if(t.loop){if(e.animating)return;r=parseInt(e.clickedSlide.getAttribute("data-swiper-slide-index"),10),t.centeredSlides?ne.slides.length-e.loopedSlides+i/2?(e.loopFix(),n=e.getSlideIndex(h(s,`${o}[data-swiper-slide-index="${r}"]`)[0]),a((()=>{e.slideTo(n)}))):e.slideTo(n):n>e.slides.length-i?(e.loopFix(),n=e.getSlideIndex(h(s,`${o}[data-swiper-slide-index="${r}"]`)[0]),a((()=>{e.slideTo(n)}))):e.slideTo(n)}else e.slideTo(n)}};var z={loopCreate:function(e){const t=this,{params:s,slidesEl:i}=t;if(!s.loop||t.virtual&&t.params.virtual.enabled)return;const r=()=>{h(i,`.${s.slideClass}, swiper-slide`).forEach(((e,t)=>{e.setAttribute("data-swiper-slide-index",t)}))},n=t.grid&&s.grid&&s.grid.rows>1,a=s.slidesPerGroup*(n?s.grid.rows:1),o=t.slides.length%a!=0,l=n&&t.slides.length%s.grid.rows!=0,d=e=>{for(let i=0;i1;d.lengthe.classList.contains(h.slideActiveClass)))[0]):x=n;const y="next"===i||!i,E="prev"===i||!i;let M=0,C=0;const P=S?Math.ceil(d.length/h.grid.rows):d.length,I=(S?d[n].column:n)+(m&&void 0===r?-v/2+.5:0);if(I=0;t-=1)d[t].column===e&&T.push(t)}else T.push(P-t-1)}}else if(I+v>P-w){C=Math.max(I-(P-2*w),g);for(let e=0;e{e.column===t&&b.push(s)})):b.push(t)}}if(l.__preventObserver__=!0,requestAnimationFrame((()=>{l.__preventObserver__=!1})),E&&T.forEach((e=>{d[e].swiperLoopMoveDOM=!0,u.prepend(d[e]),d[e].swiperLoopMoveDOM=!1})),y&&b.forEach((e=>{d[e].swiperLoopMoveDOM=!0,u.append(d[e]),d[e].swiperLoopMoveDOM=!1})),l.recalcSlides(),"auto"===h.slidesPerView?l.updateSlides():S&&(T.length>0&&E||b.length>0&&y)&&l.slides.forEach(((e,t)=>{l.grid.updateSlide(t,e,l.slides)})),h.watchSlidesProgress&&l.updateSlidesOffset(),s)if(T.length>0&&E){if(void 0===t){const e=l.slidesGrid[x],t=l.slidesGrid[x+M]-e;o?l.setTranslate(l.translate-t):(l.slideTo(x+M,0,!1,!0),r&&(l.touchEventsData.startTranslate=l.touchEventsData.startTranslate-t,l.touchEventsData.currentTranslate=l.touchEventsData.currentTranslate-t))}else if(r){const e=S?T.length/h.grid.rows:T.length;l.slideTo(l.activeIndex+e,0,!1,!0),l.touchEventsData.currentTranslate=l.translate}}else if(b.length>0&&y)if(void 0===t){const e=l.slidesGrid[x],t=l.slidesGrid[x-C]-e;o?l.setTranslate(l.translate-t):(l.slideTo(x-C,0,!1,!0),r&&(l.touchEventsData.startTranslate=l.touchEventsData.startTranslate-t,l.touchEventsData.currentTranslate=l.touchEventsData.currentTranslate-t))}else{const e=S?b.length/h.grid.rows:b.length;l.slideTo(l.activeIndex-e,0,!1,!0)}if(l.allowSlidePrev=c,l.allowSlideNext=p,l.controller&&l.controller.control&&!a){const e={slideRealIndex:t,direction:i,setTranslate:r,activeSlideIndex:n,byController:!0};Array.isArray(l.controller.control)?l.controller.control.forEach((t=>{!t.destroyed&&t.params.loop&&t.loopFix({...e,slideTo:t.params.slidesPerView===h.slidesPerView&&s})})):l.controller.control instanceof l.constructor&&l.controller.control.params.loop&&l.controller.control.loopFix({...e,slideTo:l.controller.control.params.slidesPerView===h.slidesPerView&&s})}l.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 i=[];e.slides.forEach((e=>{const t=void 0===e.swiperSlideIndex?1*e.getAttribute("data-swiper-slide-index"):e.swiperSlideIndex;i[t]=e})),e.slides.forEach((e=>{e.removeAttribute("data-swiper-slide-index")})),i.forEach((e=>{s.append(e)})),e.recalcSlides(),e.slideTo(e.realIndex,0)}};function G(e,t,s){const i=n(),{params:r}=e,a=r.edgeSwipeDetection,o=r.edgeSwipeThreshold;return!a||!(s<=o||s>=i.innerWidth-o)||"prevent"===a&&(t.preventDefault(),!0)}function D(e){const t=this,s=i();let r=e;r.originalEvent&&(r=r.originalEvent);const a=t.touchEventsData;if("pointerdown"===r.type){if(null!==a.pointerId&&a.pointerId!==r.pointerId)return;a.pointerId=r.pointerId}else"touchstart"===r.type&&1===r.targetTouches.length&&(a.touchId=r.targetTouches[0].identifier);if("touchstart"===r.type)return void G(t,r,r.targetTouches[0].pageX);const{params:l,touches:d,enabled:c}=t;if(!c)return;if(!l.simulateTouch&&"mouse"===r.pointerType)return;if(t.animating&&l.preventInteractionOnTransition)return;!t.animating&&l.cssMode&&l.loop&&t.loopFix();let p=r.target;if("wrapper"===l.touchEventsTarget&&!t.wrapperEl.contains(p))return;if("which"in r&&3===r.which)return;if("button"in r&&r.button>0)return;if(a.isTouched&&a.isMoved)return;const u=!!l.noSwipingClass&&""!==l.noSwipingClass,h=r.composedPath?r.composedPath():r.path;u&&r.target&&r.target.shadowRoot&&h&&(p=h[0]);const f=l.noSwipingSelector?l.noSwipingSelector:`.${l.noSwipingClass}`,m=!(!r.target||!r.target.shadowRoot);if(l.noSwiping&&(m?function(e,t){return void 0===t&&(t=this),function t(s){if(!s||s===i()||s===n())return null;s.assignedSlot&&(s=s.assignedSlot);const r=s.closest(e);return r||s.getRootNode?r||t(s.getRootNode().host):null}(t)}(f,p):p.closest(f)))return void(t.allowClick=!0);if(l.swipeHandler&&!p.closest(l.swipeHandler))return;d.currentX=r.pageX,d.currentY=r.pageY;const v=d.currentX,g=d.currentY;if(!G(t,r,v))return;Object.assign(a,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),d.startX=v,d.startY=g,a.touchStartTime=o(),t.allowClick=!0,t.updateSize(),t.swipeDirection=void 0,l.threshold>0&&(a.allowThresholdMove=!1);let w=!0;p.matches(a.focusableElements)&&(w=!1,"SELECT"===p.nodeName&&(a.isTouched=!1)),s.activeElement&&s.activeElement.matches(a.focusableElements)&&s.activeElement!==p&&s.activeElement.blur();const S=w&&t.allowTouchMove&&l.touchStartPreventDefault;!l.touchStartForcePreventDefault&&!S||p.isContentEditable||r.preventDefault(),l.freeMode&&l.freeMode.enabled&&t.freeMode&&t.animating&&!l.cssMode&&t.freeMode.onTouchStart(),t.emit("touchStart",r)}function _(e){const t=i(),s=this,r=s.touchEventsData,{params:n,touches:a,rtlTranslate:l,enabled:d}=s;if(!d)return;if(!n.simulateTouch&&"mouse"===e.pointerType)return;let c,p=e;if(p.originalEvent&&(p=p.originalEvent),"pointermove"===p.type){if(null!==r.touchId)return;if(p.pointerId!==r.pointerId)return}if("touchmove"===p.type){if(c=[...p.changedTouches].filter((e=>e.identifier===r.touchId))[0],!c||c.identifier!==r.touchId)return}else c=p;if(!r.isTouched)return void(r.startMoving&&r.isScrolling&&s.emit("touchMoveOpposite",p));const u=c.pageX,h=c.pageY;if(p.preventedByNestedSwiper)return a.startX=u,void(a.startY=h);if(!s.allowTouchMove)return p.target.matches(r.focusableElements)||(s.allowClick=!1),void(r.isTouched&&(Object.assign(a,{startX:u,startY:h,currentX:u,currentY:h}),r.touchStartTime=o()));if(n.touchReleaseOnEdges&&!n.loop)if(s.isVertical()){if(ha.startY&&s.translate>=s.minTranslate())return r.isTouched=!1,void(r.isMoved=!1)}else if(ua.startX&&s.translate>=s.minTranslate())return;if(t.activeElement&&p.target===t.activeElement&&p.target.matches(r.focusableElements))return r.isMoved=!0,void(s.allowClick=!1);r.allowTouchCallbacks&&s.emit("touchMove",p),a.previousX=a.currentX,a.previousY=a.currentY,a.currentX=u,a.currentY=h;const f=a.currentX-a.startX,m=a.currentY-a.startY;if(s.params.threshold&&Math.sqrt(f**2+m**2)=25&&(e=180*Math.atan2(Math.abs(m),Math.abs(f))/Math.PI,r.isScrolling=s.isHorizontal()?e>n.touchAngle:90-e>n.touchAngle)}if(r.isScrolling&&s.emit("touchMoveOpposite",p),void 0===r.startMoving&&(a.currentX===a.startX&&a.currentY===a.startY||(r.startMoving=!0)),r.isScrolling)return void(r.isTouched=!1);if(!r.startMoving)return;s.allowClick=!1,!n.cssMode&&p.cancelable&&p.preventDefault(),n.touchMoveStopPropagation&&!n.nested&&p.stopPropagation();let v=s.isHorizontal()?f:m,g=s.isHorizontal()?a.currentX-a.previousX:a.currentY-a.previousY;n.oneWayMovement&&(v=Math.abs(v)*(l?1:-1),g=Math.abs(g)*(l?1:-1)),a.diff=v,v*=n.touchRatio,l&&(v=-v,g=-g);const w=s.touchesDirection;s.swipeDirection=v>0?"prev":"next",s.touchesDirection=g>0?"prev":"next";const S=s.params.loop&&!n.cssMode,T="next"===s.touchesDirection&&s.allowSlideNext||"prev"===s.touchesDirection&&s.allowSlidePrev;if(!r.isMoved){if(S&&T&&s.loopFix({direction:s.swipeDirection}),r.startTranslate=s.getTranslate(),s.setTransition(0),s.animating){const e=new window.CustomEvent("transitionend",{bubbles:!0,cancelable:!0});s.wrapperEl.dispatchEvent(e)}r.allowMomentumBounce=!1,!n.grabCursor||!0!==s.allowSlideNext&&!0!==s.allowSlidePrev||s.setGrabCursor(!0),s.emit("sliderFirstMove",p)}if((new Date).getTime(),r.isMoved&&r.allowThresholdMove&&w!==s.touchesDirection&&S&&T&&Math.abs(v)>=1)return Object.assign(a,{startX:u,startY:h,currentX:u,currentY:h,startTranslate:r.currentTranslate}),r.loopSwapReset=!0,void(r.startTranslate=r.currentTranslate);s.emit("sliderMove",p),r.isMoved=!0,r.currentTranslate=v+r.startTranslate;let b=!0,x=n.resistanceRatio;if(n.touchReleaseOnEdges&&(x=0),v>0?(S&&T&&r.allowThresholdMove&&r.currentTranslate>(n.centeredSlides?s.minTranslate()-s.slidesSizesGrid[s.activeIndex+1]:s.minTranslate())&&s.loopFix({direction:"prev",setTranslate:!0,activeSlideIndex:0}),r.currentTranslate>s.minTranslate()&&(b=!1,n.resistance&&(r.currentTranslate=s.minTranslate()-1+(-s.minTranslate()+r.startTranslate+v)**x))):v<0&&(S&&T&&r.allowThresholdMove&&r.currentTranslate<(n.centeredSlides?s.maxTranslate()+s.slidesSizesGrid[s.slidesSizesGrid.length-1]:s.maxTranslate())&&s.loopFix({direction:"next",setTranslate:!0,activeSlideIndex:s.slides.length-("auto"===n.slidesPerView?s.slidesPerViewDynamic():Math.ceil(parseFloat(n.slidesPerView,10)))}),r.currentTranslater.startTranslate&&(r.currentTranslate=r.startTranslate),s.allowSlidePrev||s.allowSlideNext||(r.currentTranslate=r.startTranslate),n.threshold>0){if(!(Math.abs(v)>n.threshold||r.allowThresholdMove))return void(r.currentTranslate=r.startTranslate);if(!r.allowThresholdMove)return r.allowThresholdMove=!0,a.startX=a.currentX,a.startY=a.currentY,r.currentTranslate=r.startTranslate,void(a.diff=s.isHorizontal()?a.currentX-a.startX:a.currentY-a.startY)}n.followFinger&&!n.cssMode&&((n.freeMode&&n.freeMode.enabled&&s.freeMode||n.watchSlidesProgress)&&(s.updateActiveIndex(),s.updateSlidesClasses()),n.freeMode&&n.freeMode.enabled&&s.freeMode&&s.freeMode.onTouchMove(),s.updateProgress(r.currentTranslate),s.setTranslate(r.currentTranslate))}function V(e){const t=this,s=t.touchEventsData;let i,r=e;r.originalEvent&&(r=r.originalEvent);if("touchend"===r.type||"touchcancel"===r.type){if(i=[...r.changedTouches].filter((e=>e.identifier===s.touchId))[0],!i||i.identifier!==s.touchId)return}else{if(null!==s.touchId)return;if(r.pointerId!==s.pointerId)return;i=r}if(["pointercancel","pointerout","pointerleave","contextmenu"].includes(r.type)){if(!(["pointercancel","contextmenu"].includes(r.type)&&(t.browser.isSafari||t.browser.isWebView)))return}s.pointerId=null,s.touchId=null;const{params:n,touches:l,rtlTranslate:d,slidesGrid:c,enabled:p}=t;if(!p)return;if(!n.simulateTouch&&"mouse"===r.pointerType)return;if(s.allowTouchCallbacks&&t.emit("touchEnd",r),s.allowTouchCallbacks=!1,!s.isTouched)return s.isMoved&&n.grabCursor&&t.setGrabCursor(!1),s.isMoved=!1,void(s.startMoving=!1);n.grabCursor&&s.isMoved&&s.isTouched&&(!0===t.allowSlideNext||!0===t.allowSlidePrev)&&t.setGrabCursor(!1);const u=o(),h=u-s.touchStartTime;if(t.allowClick){const e=r.path||r.composedPath&&r.composedPath();t.updateClickedSlide(e&&e[0]||r.target,e),t.emit("tap click",r),h<300&&u-s.lastClickTime<300&&t.emit("doubleTap doubleClick",r)}if(s.lastClickTime=o(),a((()=>{t.destroyed||(t.allowClick=!0)})),!s.isTouched||!s.isMoved||!t.swipeDirection||0===l.diff&&!s.loopSwapReset||s.currentTranslate===s.startTranslate&&!s.loopSwapReset)return s.isTouched=!1,s.isMoved=!1,void(s.startMoving=!1);let f;if(s.isTouched=!1,s.isMoved=!1,s.startMoving=!1,f=n.followFinger?d?t.translate:-t.translate:-s.currentTranslate,n.cssMode)return;if(n.freeMode&&n.freeMode.enabled)return void t.freeMode.onTouchEnd({currentPos:f});const m=f>=-t.maxTranslate()&&!t.params.loop;let v=0,g=t.slidesSizesGrid[0];for(let e=0;e=c[e]&&f=c[e])&&(v=e,g=c[c.length-1]-c[c.length-2])}let w=null,S=null;n.rewind&&(t.isBeginning?S=n.virtual&&n.virtual.enabled&&t.virtual?t.virtual.slides.length-1:t.slides.length-1:t.isEnd&&(w=0));const T=(f-c[v])/g,b=vn.longSwipesMs){if(!n.longSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&(T>=n.longSwipesRatio?t.slideTo(n.rewind&&t.isEnd?w:v+b):t.slideTo(v)),"prev"===t.swipeDirection&&(T>1-n.longSwipesRatio?t.slideTo(v+b):null!==S&&T<0&&Math.abs(T)>n.longSwipesRatio?t.slideTo(S):t.slideTo(v))}else{if(!n.shortSwipes)return void t.slideTo(t.activeIndex);t.navigation&&(r.target===t.navigation.nextEl||r.target===t.navigation.prevEl)?r.target===t.navigation.nextEl?t.slideTo(v+b):t.slideTo(v):("next"===t.swipeDirection&&t.slideTo(null!==w?w:v+b),"prev"===t.swipeDirection&&t.slideTo(null!==S?S:v))}}function N(){const e=this,{params:t,el:s}=e;if(s&&0===s.offsetWidth)return;t.breakpoints&&e.setBreakpoint();const{allowSlideNext:i,allowSlidePrev:r,snapGrid:n}=e,a=e.virtual&&e.params.virtual.enabled;e.allowSlideNext=!0,e.allowSlidePrev=!0,e.updateSize(),e.updateSlides(),e.updateSlidesClasses();const o=a&&t.loop;!("auto"===t.slidesPerView||t.slidesPerView>1)||!e.isEnd||e.isBeginning||e.params.centeredSlides||o?e.params.loop&&!a?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=r,e.allowSlideNext=i,e.params.watchOverflow&&n!==e.snapGrid&&e.checkOverflow()}function F(e){const t=this;t.enabled&&(t.allowClick||(t.params.preventClicks&&e.preventDefault(),t.params.preventClicksPropagation&&t.animating&&(e.stopPropagation(),e.stopImmediatePropagation())))}function B(){const e=this,{wrapperEl:t,rtlTranslate:s,enabled:i}=e;if(!i)return;let r;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 n=e.maxTranslate()-e.minTranslate();r=0===n?0:(e.translate-e.minTranslate())/n,r!==e.progress&&e.updateProgress(s?-e.translate:e.translate),e.emit("setTranslate",e.translate,!1)}function $(e){const t=this;C(t,e.target),t.params.cssMode||"auto"!==t.params.slidesPerView&&!t.params.autoHeight||t.update()}function H(){const e=this;e.documentTouchHandlerProceeded||(e.documentTouchHandlerProceeded=!0,e.params.touchReleaseOnEdges&&(e.el.style.touchAction="auto"))}const R=(e,t)=>{const s=i(),{params:r,el:n,wrapperEl:a,device:o}=e,l=!!r.nested,d="on"===t?"addEventListener":"removeEventListener",c=t;s[d]("touchstart",e.onDocumentTouchStart,{passive:!1,capture:l}),n[d]("touchstart",e.onTouchStart,{passive:!1}),n[d]("pointerdown",e.onTouchStart,{passive:!1}),s[d]("touchmove",e.onTouchMove,{passive:!1,capture:l}),s[d]("pointermove",e.onTouchMove,{passive:!1,capture:l}),s[d]("touchend",e.onTouchEnd,{passive:!0}),s[d]("pointerup",e.onTouchEnd,{passive:!0}),s[d]("pointercancel",e.onTouchEnd,{passive:!0}),s[d]("touchcancel",e.onTouchEnd,{passive:!0}),s[d]("pointerout",e.onTouchEnd,{passive:!0}),s[d]("pointerleave",e.onTouchEnd,{passive:!0}),s[d]("contextmenu",e.onTouchEnd,{passive:!0}),(r.preventClicks||r.preventClicksPropagation)&&n[d]("click",e.onClick,!0),r.cssMode&&a[d]("scroll",e.onScroll),r.updateOnWindowResize?e[c](o.ios||o.android?"resize orientationchange observerUpdate":"resize observerUpdate",N,!0):e[c]("observerUpdate",N,!0),n[d]("load",e.onLoad,{capture:!0})};const j=(e,t)=>e.grid&&t.grid&&t.grid.rows>1;var W={init:!0,direction:"horizontal",oneWayMovement:!1,touchEventsTarget:"wrapper",initialSlide:0,speed:300,cssMode:!1,updateOnWindowResize:!0,resizeObserver:!0,nested:!1,createElements:!1,eventsPrefix:"swiper",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,loopAddBlankSlides:!0,loopAdditionalSlides:0,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",slideBlankClass:"swiper-slide-blank",slideActiveClass:"swiper-slide-active",slideVisibleClass:"swiper-slide-visible",slideFullyVisibleClass:"swiper-slide-fully-visible",slideNextClass:"swiper-slide-next",slidePrevClass:"swiper-slide-prev",wrapperClass:"swiper-wrapper",lazyPreloaderClass:"swiper-lazy-preloader",lazyPreloadPrevNext:0,runCallbacksOnInit:!0,_emitClasses:!1};function Y(e,t){return function(s){void 0===s&&(s={});const i=Object.keys(s)[0],r=s[i];"object"==typeof r&&null!==r?(!0===e[i]&&(e[i]={enabled:!0}),"navigation"===i&&e[i]&&e[i].enabled&&!e[i].prevEl&&!e[i].nextEl&&(e[i].auto=!0),["pagination","scrollbar"].indexOf(i)>=0&&e[i]&&e[i].enabled&&!e[i].el&&(e[i].auto=!0),i in e&&"enabled"in r?("object"!=typeof e[i]||"enabled"in e[i]||(e[i].enabled=!0),e[i]||(e[i]={enabled:!1}),c(t,s)):c(t,s)):c(t,s)}}const q={eventsEmitter:M,update:L,translate:k,transition:{setTransition:function(e,t){const s=this;s.params.cssMode||(s.wrapperEl.style.transitionDuration=`${e}ms`,s.wrapperEl.style.transitionDelay=0===e?"0ms":""),s.emit("setTransition",e,t)},transitionStart:function(e,t){void 0===e&&(e=!0);const s=this,{params:i}=s;i.cssMode||(i.autoHeight&&s.updateAutoHeight(),O({swiper:s,runCallbacks:e,direction:t,step:"Start"}))},transitionEnd:function(e,t){void 0===e&&(e=!0);const s=this,{params:i}=s;s.animating=!1,i.cssMode||(s.setTransition(0),O({swiper:s,runCallbacks:e,direction:t,step:"End"}))}},slide:A,loop:z,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,{params:t}=e;e.onTouchStart=D.bind(e),e.onTouchMove=_.bind(e),e.onTouchEnd=V.bind(e),e.onDocumentTouchStart=H.bind(e),t.cssMode&&(e.onScroll=B.bind(e)),e.onClick=F.bind(e),e.onLoad=$.bind(e),R(e,"on")},detachEvents:function(){R(this,"off")}},breakpoints:{setBreakpoint:function(){const e=this,{realIndex:t,initialized:s,params:i,el:r}=e,n=i.breakpoints;if(!n||n&&0===Object.keys(n).length)return;const a=e.getBreakpoint(n,e.params.breakpointsBase,e.el);if(!a||e.currentBreakpoint===a)return;const o=(a in n?n[a]:void 0)||e.originalParams,l=j(e,i),d=j(e,o),p=i.enabled;l&&!d?(r.classList.remove(`${i.containerModifierClass}grid`,`${i.containerModifierClass}grid-column`),e.emitContainerClasses()):!l&&d&&(r.classList.add(`${i.containerModifierClass}grid`),(o.grid.fill&&"column"===o.grid.fill||!o.grid.fill&&"column"===i.grid.fill)&&r.classList.add(`${i.containerModifierClass}grid-column`),e.emitContainerClasses()),["navigation","pagination","scrollbar"].forEach((t=>{if(void 0===o[t])return;const s=i[t]&&i[t].enabled,r=o[t]&&o[t].enabled;s&&!r&&e[t].disable(),!s&&r&&e[t].enable()}));const u=o.direction&&o.direction!==i.direction,h=i.loop&&(o.slidesPerView!==i.slidesPerView||u),f=i.loop;u&&s&&e.changeDirection(),c(e.params,o);const m=e.params.enabled,v=e.params.loop;Object.assign(e,{allowTouchMove:e.params.allowTouchMove,allowSlideNext:e.params.allowSlideNext,allowSlidePrev:e.params.allowSlidePrev}),p&&!m?e.disable():!p&&m&&e.enable(),e.currentBreakpoint=a,e.emit("_beforeBreakpoint",o),s&&(h?(e.loopDestroy(),e.loopCreate(t),e.updateSlides()):!f&&v?(e.loopCreate(t),e.updateSlides()):f&&!v&&e.loopDestroy()),e.emit("breakpoint",o)},getBreakpoint:function(e,t,s){if(void 0===t&&(t="window"),!e||"container"===t&&!s)return;let i=!1;const r=n(),a="window"===t?r.innerHeight:s.clientHeight,o=Object.keys(e).map((e=>{if("string"==typeof e&&0===e.indexOf("@")){const t=parseFloat(e.substr(1));return{value:a*t,point:e}}return{value:e,point:e}}));o.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:i,el:r,device:n}=e,a=function(e,t){const s=[];return e.forEach((e=>{"object"==typeof e?Object.keys(e).forEach((i=>{e[i]&&s.push(t+i)})):"string"==typeof e&&s.push(t+e)})),s}(["initialized",s.direction,{"free-mode":e.params.freeMode&&s.freeMode.enabled},{autoheight:s.autoHeight},{rtl:i},{grid:s.grid&&s.grid.rows>1},{"grid-column":s.grid&&s.grid.rows>1&&"column"===s.grid.fill},{android:n.android},{ios:n.ios},{"css-mode":s.cssMode},{centered:s.cssMode&&s.centeredSlides},{"watch-progress":s.watchSlidesProgress}],s.containerModifierClass);t.push(...a),r.classList.add(...t),e.emitContainerClasses()},removeClasses:function(){const{el:e,classNames:t}=this;e.classList.remove(...t),this.emitContainerClasses()}}},X={};class U{constructor(){let e,t;for(var s=arguments.length,r=new Array(s),n=0;n1){const e=[];return a.querySelectorAll(t.el).forEach((s=>{const i=c({},t,{el:s});e.push(new U(i))})),e}const o=this;o.__swiper__=!0,o.support=x(),o.device=y({userAgent:t.userAgent}),o.browser=E(),o.eventsListeners={},o.eventsAnyListeners=[],o.modules=[...o.__modules__],t.modules&&Array.isArray(t.modules)&&o.modules.push(...t.modules);const l={};o.modules.forEach((e=>{e({params:t,swiper:o,extendParams:Y(t,l),on:o.on.bind(o),once:o.once.bind(o),off:o.off.bind(o),emit:o.emit.bind(o)})}));const d=c({},W,l);return o.params=c({},d,X,t),o.originalParams=c({},o.params),o.passedParams=c({},t),o.params&&o.params.on&&Object.keys(o.params.on).forEach((e=>{o.on(e,o.params.on[e])})),o.params&&o.params.onAny&&o.onAny(o.params.onAny),Object.assign(o,{enabled:o.params.enabled,el:e,classNames:[],slides:[],slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal:()=>"horizontal"===o.params.direction,isVertical:()=>"vertical"===o.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:o.params.allowSlideNext,allowSlidePrev:o.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:o.params.focusableElements,lastClickTime:0,clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,startMoving:void 0,pointerId:null,touchId:null},allowClick:!0,allowTouchMove:o.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),o.emit("_swiper"),o.params.init&&o.init(),o}getDirectionLabel(e){return this.isHorizontal()?e:{width:"height","margin-top":"margin-left","margin-bottom ":"margin-right","margin-left":"margin-top","margin-right":"margin-bottom","padding-left":"padding-top","padding-right":"padding-bottom",marginRight:"marginBottom"}[e]}getSlideIndex(e){const{slidesEl:t,params:s}=this,i=g(h(t,`.${s.slideClass}, swiper-slide`)[0]);return g(e)-i}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=h(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 i=s.minTranslate(),r=(s.maxTranslate()-i)*e+i;s.translateTo(r,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 i=e.getSlideClasses(s);t.push({slideEl:s,classNames:i}),e.emit("_slideClass",s,i)})),e.emit("_slideClasses",t)}slidesPerViewDynamic(e,t){void 0===e&&(e="current"),void 0===t&&(t=!1);const{params:s,slides:i,slidesGrid:r,slidesSizesGrid:n,size:a,activeIndex:o}=this;let l=1;if("number"==typeof s.slidesPerView)return s.slidesPerView;if(s.centeredSlides){let e,t=i[o]?i[o].swiperSlideSize:0;for(let s=o+1;sa&&(e=!0));for(let s=o-1;s>=0;s-=1)i[s]&&!e&&(t+=i[s].swiperSlideSize,l+=1,t>a&&(e=!0))}else if("current"===e)for(let e=o+1;e=0;e-=1){r[o]-r[e]{t.complete&&C(e,t)})),e.updateSize(),e.updateSlides(),e.updateProgress(),e.updateSlidesClasses(),s.freeMode&&s.freeMode.enabled&&!s.cssMode)i(),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;r=e.slideTo(t.length-1,0,!1,!0)}else r=e.slideTo(e.activeIndex,0,!1,!0);r||i()}s.watchOverflow&&t!==e.snapGrid&&e.checkOverflow(),e.emit("update")}changeDirection(e,t){void 0===t&&(t=!0);const s=this,i=s.params.direction;return e||(e="horizontal"===i?"vertical":"horizontal"),e===i||"horizontal"!==e&&"vertical"!==e||(s.el.classList.remove(`${s.params.containerModifierClass}${i}`),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.parentNode&&s.parentNode.host&&"SWIPER-CONTAINER"===s.parentNode.host.nodeName&&(t.isElement=!0);const i=()=>`.${(t.params.wrapperClass||"").trim().split(" ").join(".")}`;let r=(()=>{if(s&&s.shadowRoot&&s.shadowRoot.querySelector){return s.shadowRoot.querySelector(i())}return h(s,i())[0]})();return!r&&t.params.createElements&&(r=m("div",t.params.wrapperClass),s.append(r),h(s,`.${t.params.slideClass}`).forEach((e=>{r.append(e)}))),Object.assign(t,{el:s,wrapperEl:r,slidesEl:t.isElement&&!s.parentNode.host.slideSlots?s.parentNode.host:r,hostEl:t.isElement?s.parentNode.host:s,mounted:!0,rtl:"rtl"===s.dir.toLowerCase()||"rtl"===v(s,"direction"),rtlTranslate:"horizontal"===t.params.direction&&("rtl"===s.dir.toLowerCase()||"rtl"===v(s,"direction")),wrongRTL:"-webkit-box"===v(r,"display")}),!0}init(e){const t=this;if(t.initialized)return t;if(!1===t.mount(e))return t;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();const s=[...t.el.querySelectorAll('[loading="lazy"]')];return t.isElement&&s.push(...t.hostEl.querySelectorAll('[loading="lazy"]')),s.forEach((e=>{e.complete?C(t,e):e.addEventListener("load",(e=>{C(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:i,el:r,wrapperEl:n,slides:a}=s;return void 0===s.params||s.destroyed||(s.emit("beforeDestroy"),s.initialized=!1,s.detachEvents(),i.loop&&s.loopDestroy(),t&&(s.removeClasses(),r.removeAttribute("style"),n.removeAttribute("style"),a&&a.length&&a.forEach((e=>{e.classList.remove(i.slideVisibleClass,i.slideFullyVisibleClass,i.slideActiveClass,i.slideNextClass,i.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){c(X,e)}static get extendedDefaults(){return X}static get defaults(){return W}static installModule(e){U.prototype.__modules__||(U.prototype.__modules__=[]);const t=U.prototype.__modules__;"function"==typeof e&&t.indexOf(e)<0&&t.push(e)}static use(e){return Array.isArray(e)?(e.forEach((e=>U.installModule(e))),U):(U.installModule(e),U)}}return Object.keys(q).forEach((e=>{Object.keys(q[e]).forEach((t=>{U.prototype[t]=q[e][t]}))})),U.use([function(e){let{swiper:t,on:s,emit:i}=e;const r=n();let a=null,o=null;const l=()=>{t&&!t.destroyed&&t.initialized&&(i("beforeResize"),i("resize"))},d=()=>{t&&!t.destroyed&&t.initialized&&i("orientationchange")};s("init",(()=>{t.params.resizeObserver&&void 0!==r.ResizeObserver?t&&!t.destroyed&&t.initialized&&(a=new ResizeObserver((e=>{o=r.requestAnimationFrame((()=>{const{width:s,height:i}=t;let r=s,n=i;e.forEach((e=>{let{contentBoxSize:s,contentRect:i,target:a}=e;a&&a!==t.el||(r=i?i.width:(s[0]||s).inlineSize,n=i?i.height:(s[0]||s).blockSize)})),r===s&&n===i||l()}))})),a.observe(t.el)):(r.addEventListener("resize",l),r.addEventListener("orientationchange",d))})),s("destroy",(()=>{o&&r.cancelAnimationFrame(o),a&&a.unobserve&&t.el&&(a.unobserve(t.el),a=null),r.removeEventListener("resize",l),r.removeEventListener("orientationchange",d)}))},function(e){let{swiper:t,extendParams:s,on:i,emit:r}=e;const a=[],o=n(),l=function(e,s){void 0===s&&(s={});const i=new(o.MutationObserver||o.WebkitMutationObserver)((e=>{if(t.__preventObserver__)return;if(1===e.length)return void r("observerUpdate",e[0]);const s=function(){r("observerUpdate",e[0])};o.requestAnimationFrame?o.requestAnimationFrame(s):o.setTimeout(s,0)}));i.observe(e,{attributes:void 0===s.attributes||s.attributes,childList:void 0===s.childList||s.childList,characterData:void 0===s.characterData||s.characterData}),a.push(i)};s({observer:!1,observeParents:!1,observeSlideChildren:!1}),i("init",(()=>{if(t.params.observer){if(t.params.observeParents){const e=function(e,t){const s=[];let i=e.parentElement;for(;i;)t?i.matches(t)&&s.push(i):s.push(i),i=i.parentElement;return s}(t.hostEl);for(let t=0;t{a.forEach((e=>{e.disconnect()})),a.splice(0,a.length)}))}]),U}(); -//# sourceMappingURL=swiper.min.js.map \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/swiper.min.js.map b/build/assets/js/vendor/swiper/swiper.min.js.map deleted file mode 100644 index c9feb51..0000000 --- a/build/assets/js/vendor/swiper/swiper.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"swiper.js.js","names":["Swiper","isObject$1","obj","constructor","Object","extend$1","target","src","keys","forEach","key","length","ssrDocument","body","addEventListener","removeEventListener","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","createElement","children","childNodes","style","setAttribute","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","getDocument","doc","document","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","this","getComputedStyle","getPropertyValue","Image","Date","screen","setTimeout","clearTimeout","matchMedia","requestAnimationFrame","callback","cancelAnimationFrame","id","getWindow","win","window","nextTick","delay","now","getTranslate","el","axis","matrix","curTransform","transformMatrix","curStyle","currentStyle","getComputedStyle$1","WebKitCSSMatrix","transform","webkitTransform","split","map","a","replace","join","MozTransform","OTransform","MsTransform","msTransform","toString","m41","parseFloat","m42","isObject","o","prototype","call","slice","extend","to","arguments","undefined","noExtend","i","nextSource","node","HTMLElement","nodeType","keysArray","filter","indexOf","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","enumerable","__swiper__","setCSSProperty","varName","varValue","setProperty","animateCSSModeScroll","_ref","swiper","targetPosition","side","startPosition","translate","time","startTime","duration","params","speed","wrapperEl","scrollSnapType","cssModeFrameID","dir","isOutOfBound","current","animate","getTime","progress","Math","max","min","easeProgress","cos","PI","currentPosition","scrollTo","overflow","elementChildren","element","selector","matches","showWarning","text","console","warn","err","tag","classes","classList","add","Array","isArray","trim","c","classesToTokens","elementStyle","prop","elementIndex","child","previousSibling","elementOuterSize","size","includeMargins","offsetWidth","support","deviceCached","browser","getSupport","smoothScroll","documentElement","touch","DocumentTouch","calcSupport","getDevice","overrides","_temp","platform","ua","device","ios","android","screenWidth","width","screenHeight","height","match","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","needPerspectiveFix","isSafari","toLowerCase","String","includes","major","minor","num","Number","isWebView","test","calcBrowser","eventsEmitter","on","events","handler","priority","self","eventsListeners","destroyed","method","event","once","onceHandler","off","__emitterProxy","_len","args","_key","apply","onAny","eventsAnyListeners","offAny","index","splice","eventHandler","emit","data","context","_len2","_key2","unshift","processLazyPreloader","imageEl","slideEl","closest","isElement","slideClass","lazyEl","lazyPreloaderClass","shadowRoot","remove","unlazy","slides","removeAttribute","preload","amount","lazyPreloadPrevNext","slidesPerView","slidesPerViewDynamic","ceil","activeIndex","grid","rows","activeColumn","preloadColumns","push","from","_","column","slideIndexLastInView","rewind","loop","realIndex","update","updateSize","clientWidth","clientHeight","isHorizontal","isVertical","parseInt","isNaN","assign","updateSlides","getDirectionPropertyValue","label","getDirectionLabel","slidesEl","swiperSize","rtlTranslate","rtl","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginRight","marginBottom","marginTop","centeredSlides","cssMode","gridEnabled","slideSize","initSlides","unsetSlides","shouldResetSlideSize","breakpoints","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","floor","swiperSlideSize","abs","slidesPerGroup","slidesPerGroupSkip","effect","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","groups","slidesBefore","slidesAfter","groupSize","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","v","watchOverflow","checkOverflow","watchSlidesProgress","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","contains","maxBackfaceHiddenSlides","updateAutoHeight","activeSlides","newHeight","setTransition","getSlideByIndex","getSlideIndexByData","visibleSlides","offsetHeight","minusOffset","offsetLeft","offsetTop","swiperSlideOffset","cssOverflowAdjustment","updateSlidesProgress","offsetCenter","slideVisibleClass","slideFullyVisibleClass","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","isFullyVisible","originalProgress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","progressLoop","wasBeginning","wasEnd","isBeginningRounded","isEndRounded","firstSlideIndex","lastSlideIndex","firstSlideTranslate","lastSlideTranslate","translateMax","translateAbs","autoHeight","updateSlidesClasses","getFilteredSlide","activeSlide","prevSlide","nextSlide","slideActiveClass","slideNextClass","slidePrevClass","nextEls","nextElementSibling","next","elementNextAll","prevEls","previousElementSibling","prev","elementPrevAll","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","getVirtualRealIndex","aIndex","normalizeSlideIndex","getActiveIndexByTranslate","skip","firstSlideInColumn","activeSlideIndex","getAttribute","initialized","runCallbacksOnInit","updateClickedSlide","path","pathEl","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","virtualTranslate","currentTranslate","setTranslate","byController","newProgress","x","y","previousTranslate","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","isH","behavior","onTranslateToWrapperTransitionEnd","e","transitionEmit","direction","step","slideTo","initial","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","transitionStart","transitionEnd","t","_immediateVirtual","_cssModeVirtualInitialSet","initialSlide","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","targetSlideIndex","cols","needLoopFix","loopFix","slideRealIndex","slideNext","perGroup","slidesPerGroupAuto","increment","loopPreventsSliding","_clientLeft","clientLeft","slidePrev","normalize","val","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","lastIndex","slideReset","slideToClosest","threshold","currentSnap","slideToIndex","slideSelector","loopedSlides","getSlideIndex","loopCreate","shouldFillGroup","shouldFillGrid","addBlankSlides","amountOfSlides","slideBlankClass","append","loopAddBlankSlides","recalcSlides","byMousewheel","loopAdditionalSlides","fill","prependSlidesIndexes","appendSlidesIndexes","isNext","isPrev","slidesPrepended","slidesAppended","activeColIndexWithShift","colIndexToPrepend","__preventObserver__","swiperLoopMoveDOM","prepend","currentSlideTranslate","diff","touchEventsData","startTranslate","shift","controller","control","loopParams","loopDestroy","newSlidesOrder","swiperSlideIndex","preventEdgeSwipe","startX","edgeSwipeDetection","edgeSwipeThreshold","innerWidth","preventDefault","onTouchStart","originalEvent","type","pointerId","targetTouches","touchId","identifier","pageX","touches","simulateTouch","pointerType","targetEl","touchEventsTarget","which","button","isTouched","isMoved","swipingClassHasValue","noSwipingClass","eventPath","composedPath","noSwipingSelector","isTargetShadow","noSwiping","base","__closestFrom","assignedSlot","found","getRootNode","closestElement","allowClick","swipeHandler","currentX","currentY","pageY","startY","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","freeMode","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","previousX","previousY","diffX","diffY","sqrt","touchAngle","atan2","cancelable","touchMoveStopPropagation","nested","stopPropagation","touchesDiff","oneWayMovement","touchRatio","prevTouchesDirection","touchesDirection","isLoop","allowLoopFix","evt","bubbles","dispatchEvent","allowMomentumBounce","grabCursor","setGrabCursor","loopSwapReset","disableParentSwiper","resistanceRatio","resistance","followFinger","onTouchEnd","touchEndTime","timeDiff","pathTree","lastClickTime","currentPos","swipeToLast","stopIndex","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","setBreakpoint","isVirtualLoop","autoplay","running","paused","resizeTimeout","resume","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","scrollLeft","scrollTop","onLoad","onDocumentTouchStart","documentTouchHandlerProceeded","touchAction","capture","domMethod","swiperMethod","passive","updateOnWindowResize","isGridEnabled","defaults","init","resizeObserver","createElements","eventsPrefix","url","breakpointsBase","uniqueNavElements","passiveListeners","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","transition","transitionDuration","transitionDelay","moving","isLocked","cursor","unsetGrabCursor","attachEvents","bind","detachEvents","breakpoint","getBreakpoint","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","wasModuleEnabled","isModuleEnabled","disable","enable","directionChanged","needsReLoop","wasLoop","changeDirection","isEnabled","hasLoop","containerEl","currentHeight","innerHeight","points","point","minRatio","substr","value","sort","b","wasLocked","lastSlideRightEdge","addClasses","classNames","suffixes","entries","prefix","resultClasses","item","prepareClasses","autoheight","centered","removeClasses","extendedDefaults","swipers","newParams","modules","__modules__","mod","extendParams","swiperParams","passedParams","eventName","velocity","trunc","clickTimeout","velocities","imagesToLoad","imagesLoaded","property","setProgress","cls","className","getSlideClasses","updates","view","exact","spv","breakLoop","translateValue","translated","complete","newDirection","needUpdate","currentDirection","changeLanguageDirection","mount","mounted","parentNode","getWrapperSelector","getWrapper","slideSlots","hostEl","lazyElements","destroy","deleteInstance","cleanStyles","object","deleteProps","extendDefaults","newDefaults","installModule","use","module","m","prototypeGroup","protoMethod","observer","animationFrame","resizeHandler","orientationChangeHandler","ResizeObserver","newWidth","_ref2","contentBoxSize","contentRect","inlineSize","blockSize","observe","unobserve","observers","attach","options","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","observeParents","observeSlideChildren","containerParents","parents","parent","parentElement","elementParents","disconnect"],"sources":["0"],"mappings":"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"} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/swiper.min.mjs b/build/assets/js/vendor/swiper/swiper.min.mjs deleted file mode 100644 index 9bbeaa6..0000000 --- a/build/assets/js/vendor/swiper/swiper.min.mjs +++ /dev/null @@ -1,14 +0,0 @@ -/** - * Swiper 11.0.5 - * 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: November 22, 2023 - */ - -export{S as Swiper,S as default}from"./shared/swiper-core.min.mjs"; -//# sourceMappingURL=swiper.min.mjs.map \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/swiper.min.mjs.map b/build/assets/js/vendor/swiper/swiper.min.mjs.map deleted file mode 100644 index 6938270..0000000 --- a/build/assets/js/vendor/swiper/swiper.min.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"swiper.mjs.mjs","names":["S"],"sources":["0"],"mappings":";;;;;;;;;;;;OAYSA,YAAaA,iBAAoB"} \ No newline at end of file diff --git a/build/assets/js/vendor/swiper/swiper.mjs b/build/assets/js/vendor/swiper/swiper.mjs deleted file mode 100644 index 39b5bc2..0000000 --- a/build/assets/js/vendor/swiper/swiper.mjs +++ /dev/null @@ -1,13 +0,0 @@ -/** - * Swiper 11.0.5 - * 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: November 22, 2023 - */ - -export { S as Swiper, S as default } from './shared/swiper-core.mjs'; diff --git a/build/assets/js/vendor/swiper/swiper.scss b/build/assets/js/vendor/swiper/swiper.scss deleted file mode 100644 index 1fd2163..0000000 --- a/build/assets/js/vendor/swiper/swiper.scss +++ /dev/null @@ -1,252 +0,0 @@ -/** - * Swiper 11.0.5 - * 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: November 22, 2023 - */ - -@import 'swiper-vars.scss'; -@at-root { - @font-face { - font-family: 'swiper-icons'; - src: url('data:application/font-woff;charset=utf-8;base64, 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') - format('woff'); - font-weight: 400; - font-style: normal; - } -} -@at-root { - :root { - --swiper-theme-color: #{$themeColor}; - /* - --swiper-preloader-color: var(--swiper-theme-color); - --swiper-wrapper-transition-timing-function: initial; - */ - } -} -:host { - position: relative; - display: block; - margin-left: auto; - margin-right: auto; - z-index: 1; -} -.swiper { - margin-left: auto; - margin-right: auto; - position: relative; - overflow: hidden; - list-style: none; - padding: 0; - /* Fix of Webkit flickering */ - z-index: 1; - display: block; -} -.swiper-vertical > .swiper-wrapper { - flex-direction: column; -} -.swiper-wrapper { - position: relative; - width: 100%; - height: 100%; - z-index: 1; - display: flex; - transition-property: transform; - transition-timing-function: var(--swiper-wrapper-transition-timing-function, initial); - box-sizing: content-box; -} -.swiper-android .swiper-slide, -.swiper-ios .swiper-slide, -.swiper-wrapper { - transform: translate3d(0px, 0, 0); -} -.swiper-horizontal { - touch-action: pan-y; -} -.swiper-vertical { - touch-action: pan-x; -} -.swiper-slide { - flex-shrink: 0; - width: 100%; - height: 100%; - position: relative; - transition-property: transform; - display: block; -} -.swiper-slide-invisible-blank { - visibility: hidden; -} -/* Auto Height */ -.swiper-autoheight, -.swiper-autoheight .swiper-slide { - height: auto; -} -.swiper-autoheight .swiper-wrapper { - align-items: flex-start; - transition-property: transform, height; -} -.swiper-backface-hidden .swiper-slide { - transform: translateZ(0); - backface-visibility: hidden; -} -/* 3D Effects */ -.swiper-3d.swiper-css-mode .swiper-wrapper { - perspective: 1200px; -} -.swiper-3d .swiper-wrapper { - transform-style: preserve-3d; -} -.swiper-3d { - perspective: 1200px; - .swiper-slide, - .swiper-cube-shadow { - transform-style: preserve-3d; - } -} - -/* CSS Mode */ -.swiper-css-mode { - > .swiper-wrapper { - overflow: auto; - scrollbar-width: none; /* For Firefox */ - -ms-overflow-style: none; /* For Internet Explorer and Edge */ - &::-webkit-scrollbar { - display: none; - } - } - > .swiper-wrapper > .swiper-slide { - scroll-snap-align: start start; - } - &.swiper-horizontal { - > .swiper-wrapper { - scroll-snap-type: x mandatory; - } - } - &.swiper-vertical { - > .swiper-wrapper { - scroll-snap-type: y mandatory; - } - } - &.swiper-free-mode { - > .swiper-wrapper { - scroll-snap-type: none; - } - > .swiper-wrapper > .swiper-slide { - scroll-snap-align: none; - } - } - &.swiper-centered { - > .swiper-wrapper::before { - content: ''; - flex-shrink: 0; - order: 9999; - } - > .swiper-wrapper > .swiper-slide { - scroll-snap-align: center center; - scroll-snap-stop: always; - } - } - &.swiper-centered.swiper-horizontal { - > .swiper-wrapper > .swiper-slide:first-child { - margin-inline-start: var(--swiper-centered-offset-before); - } - > .swiper-wrapper::before { - height: 100%; - min-height: 1px; - width: var(--swiper-centered-offset-after); - } - } - &.swiper-centered.swiper-vertical { - > .swiper-wrapper > .swiper-slide:first-child { - margin-block-start: var(--swiper-centered-offset-before); - } - > .swiper-wrapper::before { - width: 100%; - min-width: 1px; - height: var(--swiper-centered-offset-after); - } - } -} - -/* Slide styles start */ -/* 3D Shadows */ -.swiper-3d { - .swiper-slide-shadow, - .swiper-slide-shadow-left, - .swiper-slide-shadow-right, - .swiper-slide-shadow-top, - .swiper-slide-shadow-bottom, - .swiper-slide-shadow, - .swiper-slide-shadow-left, - .swiper-slide-shadow-right, - .swiper-slide-shadow-top, - .swiper-slide-shadow-bottom { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - pointer-events: none; - z-index: 10; - } - .swiper-slide-shadow { - background: rgba(0, 0, 0, 0.15); - } - .swiper-slide-shadow-left { - background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - } - .swiper-slide-shadow-right { - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - } - .swiper-slide-shadow-top { - background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - } - .swiper-slide-shadow-bottom { - background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); - } -} -.swiper-lazy-preloader { - width: 42px; - height: 42px; - position: absolute; - left: 50%; - top: 50%; - margin-left: -21px; - margin-top: -21px; - z-index: 10; - transform-origin: 50%; - box-sizing: border-box; - border: 4px solid var(--swiper-preloader-color, var(--swiper-theme-color)); - border-radius: 50%; - border-top-color: transparent; -} -.swiper:not(.swiper-watch-progress), -.swiper-watch-progress .swiper-slide-visible { - .swiper-lazy-preloader { - animation: swiper-preloader-spin 1s infinite linear; - } -} -.swiper-lazy-preloader-white { - --swiper-preloader-color: #fff; -} -.swiper-lazy-preloader-black { - --swiper-preloader-color: #000; -} -@keyframes swiper-preloader-spin { - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(360deg); - } -} -/* Slide styles end */ - - - diff --git a/build/assets/js/vendor/swiper/types/index.d.ts b/build/assets/js/vendor/swiper/types/index.d.ts deleted file mode 100644 index e6e0dc4..0000000 --- a/build/assets/js/vendor/swiper/types/index.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -// @ts-nocheck -export * from './shared.d.ts'; -export { default as Swiper } from './swiper-class.d.ts'; -export * from './swiper-events.d.ts'; -export * from './swiper-options.d.ts'; -export * from './modules/public-api.d.ts'; diff --git a/build/assets/js/vendor/swiper/types/modules/a11y.d.ts b/build/assets/js/vendor/swiper/types/modules/a11y.d.ts deleted file mode 100644 index 134f158..0000000 --- a/build/assets/js/vendor/swiper/types/modules/a11y.d.ts +++ /dev/null @@ -1,96 +0,0 @@ -export interface A11yMethods {} - -export interface A11yEvents {} - -export interface A11yOptions { - /** - * Enables A11y - * - * @default true - */ - enabled?: boolean; - - /** - * Message for screen readers for previous button - * - * @default 'Previous slide' - */ - prevSlideMessage?: string; - - /** - * Message for screen readers for next button - * - * @default 'Next slide' - */ - nextSlideMessage?: string; - - /** - * Message for screen readers for previous button when swiper is on first slide - * - * @default 'This is the first slide' - */ - firstSlideMessage?: string; - - /** - * Message for screen readers for next button when swiper is on last slide - * - * @default 'This is the last slide' - */ - lastSlideMessage?: string; - - /** - * Message for screen readers for single pagination bullet - * - * @default 'Go to slide {{index}}' - */ - paginationBulletMessage?: string; - - /** - * CSS class name of A11y notification - * - * @default 'swiper-notification' - */ - notificationClass?: string; - - /** - * Message for screen readers for outer swiper container - * - * @default null - */ - containerMessage?: string | null; - - /** - * Message for screen readers describing the role of outer swiper container - * - * @default null - */ - containerRoleDescriptionMessage?: string | null; - - /** - * Message for screen readers describing the role of slide element - * - * @default null - */ - itemRoleDescriptionMessage?: string | null; - - /** - * Message for screen readers describing the label of slide element - * - * @default '{{index}} / {{slidesLength}}' - */ - slideLabelMessage?: string; - - /** - * Value of swiper slide `role` attribute - * - * @default 'group' - */ - slideRole?: string; - - /** - * Value of `id` attribute to be set on swiper-wrapper. If `null` will be generated automatically - * - * @default null - */ - id?: string | number | null; -} diff --git a/build/assets/js/vendor/swiper/types/modules/autoplay.d.ts b/build/assets/js/vendor/swiper/types/modules/autoplay.d.ts deleted file mode 100644 index 4c87488..0000000 --- a/build/assets/js/vendor/swiper/types/modules/autoplay.d.ts +++ /dev/null @@ -1,133 +0,0 @@ -import type Swiper from '../swiper-class.d.ts'; - -export interface AutoplayMethods { - /** - * Whether autoplay enabled and running - */ - running: boolean; - - /** - * Whether autoplay is paused - */ - paused: boolean; - - /** - * If autoplay is paused, it contains time left (in ms) before transition to next slide - */ - timeLeft: number; - - /** - * Pause autoplay - */ - pause(): void; - - /** - * Resume autoplay - */ - resume(): void; - - /** - * Start autoplay - */ - start(): boolean; - - /** - * Stop autoplay - */ - stop(): boolean; -} - -export interface AutoplayEvents { - /** - * Event will be fired in when autoplay started - */ - autoplayStart: (swiper: Swiper) => void; - /** - * Event will be fired when autoplay stopped - */ - autoplayStop: (swiper: Swiper) => void; - /** - * Event will be fired on autoplay pause - */ - autoplayPause: (swiper: Swiper) => void; - /** - * Event will be fired on autoplay resume - */ - autoplayResume: (swiper: Swiper) => void; - /** - * Event triggers continuously while autoplay is enabled. It contains time left (in ms) before transition to next slide and percentage of that time related to autoplay delay - */ - autoplayTimeLeft: (swiper: Swiper, timeLeft: number, percentage: number) => void; - /** - * Event will be fired when slide changed with autoplay - */ - autoplay: (swiper: Swiper) => void; -} - -/** - * Object with autoplay parameters or boolean `true` to enable with default settings. - * - * @example - * ```js - * const swiper = new Swiper('.swiper', { - * autoplay: { - * delay: 5000, - * }, - * }); - * ``` - */ -export interface AutoplayOptions { - /** - * Delay between transitions (in ms). If this parameter is not specified, auto play will be disabled - * - * If you need to specify different delay for specific slides you can do it by using - * `data-swiper-autoplay` (in ms) attribute on slide. - * - * @example - * ```html - * - *
    - * ``` - * - * @default 3000 - */ - delay?: number; - - /** - * Enable this parameter and autoplay will be stopped when it reaches last slide (has no effect in loop mode) - * - * @default false - */ - stopOnLastSlide?: boolean; - - /** - * Set to `false` and autoplay will not be disabled after user interactions (swipes), - * it will be restarted every time after interaction - * - * @default true - */ - disableOnInteraction?: boolean; - - /** - * Enables autoplay in reverse direction - * - * @default false - */ - reverseDirection?: boolean; - - /** - * When enabled autoplay will wait for wrapper transition to continue. - * Can be disabled in case of using Virtual Translate when your - * slider may not have transition - * - * @default true - */ - waitForTransition?: boolean; - - /** - * When enabled autoplay will be paused on pointer (mouse) enter over Swiper container. - * - * @default false - */ - pauseOnMouseEnter?: boolean; -} diff --git a/build/assets/js/vendor/swiper/types/modules/controller.d.ts b/build/assets/js/vendor/swiper/types/modules/controller.d.ts deleted file mode 100644 index cf61aef..0000000 --- a/build/assets/js/vendor/swiper/types/modules/controller.d.ts +++ /dev/null @@ -1,35 +0,0 @@ -import type Swiper from '../swiper-class.d.ts'; - -export interface ControllerMethods { - /** - * Pass here another Swiper instance or array with Swiper instances that should be controlled - * by this Swiper - */ - control?: Swiper | Swiper[]; -} - -export interface ControllerEvents {} - -export interface ControllerOptions { - /** - * Pass here another Swiper instance or array with Swiper instances that should be controlled - * by this Swiper. Also accepts string with CSS selector of Swiper element, or HTMLElement of Swiper element - */ - control?: Swiper | Swiper[] | string | HTMLElement | null; - - /** - * Set to `true` and controlling will be in inverse direction - * - * @default false - */ - inverse?: boolean; - - /** - * Defines a way how to control another slider: slide by slide - * (with respect to other slider's grid) or depending on all slides/container - * (depending on total slider percentage). - * - * @default 'slide' - */ - by?: 'slide' | 'container'; -} diff --git a/build/assets/js/vendor/swiper/types/modules/effect-cards.d.ts b/build/assets/js/vendor/swiper/types/modules/effect-cards.d.ts deleted file mode 100644 index 9f688a4..0000000 --- a/build/assets/js/vendor/swiper/types/modules/effect-cards.d.ts +++ /dev/null @@ -1,33 +0,0 @@ -export interface CardsEffectMethods {} - -export interface CardsEffectEvents {} - -export interface CardsEffectOptions { - /** - * Enables slides shadows - * - * @default true - */ - slideShadows?: boolean; - - /** - * Enables cards rotation - * - * @default true - */ - rotate?: boolean; - - /** - * Rotate angle per slide (in degrees) - * - * @default 2 - */ - perSlideRotate?: number; - - /** - * Offset distance per slide (in px) - * - * @default 8 - */ - perSlideOffset?: number; -} diff --git a/build/assets/js/vendor/swiper/types/modules/effect-coverflow.d.ts b/build/assets/js/vendor/swiper/types/modules/effect-coverflow.d.ts deleted file mode 100644 index 847201f..0000000 --- a/build/assets/js/vendor/swiper/types/modules/effect-coverflow.d.ts +++ /dev/null @@ -1,42 +0,0 @@ -export interface CoverflowEffectMethods {} - -export interface CoverflowEffectEvents {} - -export interface CoverflowEffectOptions { - /** - * Enables slides shadows - * - * @default true - */ - slideShadows?: boolean; - /** - * Slide rotate in degrees - * - * @default 50 - */ - rotate?: number; - /** - * Stretch space between slides (in px) - * - * @default 0 - */ - stretch?: number; - /** - * Depth offset in px (slides translate in Z axis) - * - * @default 100 - */ - depth?: number; - /** - * Slide scale effect - * - * @default 1 - */ - scale?: number; - /** - * Effect multiplier - * - * @default 1 - */ - modifier?: number; -} diff --git a/build/assets/js/vendor/swiper/types/modules/effect-creative.d.ts b/build/assets/js/vendor/swiper/types/modules/effect-creative.d.ts deleted file mode 100644 index eba8987..0000000 --- a/build/assets/js/vendor/swiper/types/modules/effect-creative.d.ts +++ /dev/null @@ -1,86 +0,0 @@ -interface CreativeEffectTransform { - translate?: (string | number)[]; - rotate?: number[]; - opacity?: number; - scale?: number; - shadow?: boolean; - origin?: string; -} - -export interface CreativeEffectMethods {} - -export interface CreativeEffectEvents {} - -export interface CreativeEffectOptions { - /** - * Previous slide transformations. Accepts object of the following type: - * - * @example - * ```js - * { - * // Array with translate X, Y and Z values - * translate: (string | number)[]; - * // Array with rotate X, Y and Z values (in deg) - * rotate?: number[]; - * // Slide opacity - * opacity?: number; - * // Slide scale - * scale?: number; - * // Enables slide shadow - * shadow?: boolean; - * // Transform origin, e.g. `left bottom` - * origin?: string; - * } - * ``` - * - */ - prev?: CreativeEffectTransform; - /** - * Next slide transformations. - * - * @example - * ```js - * { - * // Array with translate X, Y and Z values - * translate: (string | number)[]; - * // Array with rotate X, Y and Z values (in deg) - * rotate?: number[]; - * // Slide opacity - * opacity?: number; - * // Slide scale - * scale?: number; - * // Enables slide shadow - * shadow?: boolean; - * // Transform origin, e.g. `left bottom` - * origin?: string; - * } - * ``` - * - */ - next?: CreativeEffectTransform; - - /** - * Limit progress/offset to amount of side slides. If `1`, then slides all slides after prev/next will have same state. If `2`, then all slides after 2nd before/after active will have same state, etc. - * - * @default 1 - */ - limitProgress?: number; - /** - * Splits shadow "opacity" per slide based on `limitProgress` (only if transformation shadows enabled). E.g. setting `limitProgress: 2` and enabling `shadowPerProgress`, will set shadow opacity to `0.5` and `1` on two slides next to active. With this parameter disabled, all slides beside active will have shadow with `1` opacity - * - * @default false - */ - shadowPerProgress?: boolean; - /** - * Allows to multiply slides transformations and opacity. - * - * @default 1 - */ - progressMultiplier?: number; - /** - * Enable this parameter if your custom transforms require 3D transformations (`translateZ`, `rotateX`, `rotateY` ) - * - * @default true - */ - perspective?: boolean; -} diff --git a/build/assets/js/vendor/swiper/types/modules/effect-cube.d.ts b/build/assets/js/vendor/swiper/types/modules/effect-cube.d.ts deleted file mode 100644 index c59535c..0000000 --- a/build/assets/js/vendor/swiper/types/modules/effect-cube.d.ts +++ /dev/null @@ -1,30 +0,0 @@ -export interface CubeEffectMethods {} - -export interface CubeEffectEvents {} - -export interface CubeEffectOptions { - /** - * Enables slides shadows - * - * @default true - */ - slideShadows?: boolean; - /** - * Enables main slider shadow - * - * @default true - */ - shadow?: boolean; - /** - * Main shadow offset in px - * - * @default 20 - */ - shadowOffset?: number; - /** - * Main shadow scale ratio - * - * @default 0.94 - */ - shadowScale?: number; -} diff --git a/build/assets/js/vendor/swiper/types/modules/effect-fade.d.ts b/build/assets/js/vendor/swiper/types/modules/effect-fade.d.ts deleted file mode 100644 index 1d3123c..0000000 --- a/build/assets/js/vendor/swiper/types/modules/effect-fade.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -export interface FadeEffectMethods {} - -export interface FadeEffectEvents {} - -export interface FadeEffectOptions { - /** - * Enables slides cross fade - * - * @default false - */ - crossFade?: boolean; -} diff --git a/build/assets/js/vendor/swiper/types/modules/effect-flip.d.ts b/build/assets/js/vendor/swiper/types/modules/effect-flip.d.ts deleted file mode 100644 index aa672c3..0000000 --- a/build/assets/js/vendor/swiper/types/modules/effect-flip.d.ts +++ /dev/null @@ -1,18 +0,0 @@ -export interface FlipEffectMethods {} - -export interface FlipEffectEvents {} - -export interface FlipEffectOptions { - /** - * Enables slides shadows - * - * @default true - */ - slideShadows?: boolean; - /** - * Limit edge slides rotation - * - * @default true - */ - limitRotation?: boolean; -} diff --git a/build/assets/js/vendor/swiper/types/modules/free-mode.d.ts b/build/assets/js/vendor/swiper/types/modules/free-mode.d.ts deleted file mode 100644 index 9488642..0000000 --- a/build/assets/js/vendor/swiper/types/modules/free-mode.d.ts +++ /dev/null @@ -1,64 +0,0 @@ -export interface FreeModeMethods { - onTouchMove(): void; - onTouchEnd(): void; -} - -export interface FreeModeEvents {} - -export interface FreeModeOptions { - /** - * Whether the free mode is enabled - * - * @default false - */ - enabled?: boolean; - - /** - * If enabled, then slide will keep moving for a while after you release it - * - * @default true - */ - momentum?: boolean; - - /** - * Higher value produces larger momentum distance after you release slider - * - * @default 1 - */ - momentumRatio?: number; - - /** - * Higher value produces larger momentum velocity after you release slider - * - * @default 1 - */ - momentumVelocityRatio?: number; - - /** - * Set to `false` if you want to disable momentum bounce in free mode - * - * @default true - */ - momentumBounce?: boolean; - - /** - * Higher value produces larger momentum bounce effect - * - * @default 1 - */ - momentumBounceRatio?: number; - - /** - * Minimum touchmove-velocity required to trigger free mode momentum - * - * @default 0.02 - */ - minimumVelocity?: number; - - /** - * Set to enabled to enable snap to slides positions in free mode - * - * @default false - */ - sticky?: boolean; -} diff --git a/build/assets/js/vendor/swiper/types/modules/grid.d.ts b/build/assets/js/vendor/swiper/types/modules/grid.d.ts deleted file mode 100644 index 070b14a..0000000 --- a/build/assets/js/vendor/swiper/types/modules/grid.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -export interface GridMethods {} - -export interface GridEvents {} - -export interface GridOptions { - /** - * Number of slides rows, for multirow layout - * - * @default 1 - */ - rows?: number; - - /** - * Can be `'column'` or `'row'`. Defines how slides should fill rows, by column or by row - * - * @note if used with loop mode make sure number of slides is even specified in loop mode requirements, or enable `loopAddBlankSlides` parameter - * - * @default 'column' - */ - fill?: 'row' | 'column'; -} diff --git a/build/assets/js/vendor/swiper/types/modules/hash-navigation.d.ts b/build/assets/js/vendor/swiper/types/modules/hash-navigation.d.ts deleted file mode 100644 index 8b6edfe..0000000 --- a/build/assets/js/vendor/swiper/types/modules/hash-navigation.d.ts +++ /dev/null @@ -1,38 +0,0 @@ -import type Swiper from '../swiper-class.d.ts'; - -export interface HashNavigationMethods {} - -export interface HashNavigationEvents { - /** - * Event will be fired on window hash change - */ - hashChange: (swiper: Swiper) => void; - /** - * Event will be fired when swiper updates the hash - */ - hashSet: (swiper: Swiper) => void; -} - -export interface HashNavigationOptions { - /** - * Set to `true` to enable also navigation through slides (when hashnav - * is enabled) by browser history or by setting directly hash on document location - * - * @default false - */ - watchState?: boolean; - - /** - * Works in addition to hashnav to replace current url state with the - * new one instead of adding it to history - * - * @default false - */ - replaceState?: boolean; - - /** - * Designed to be used with Virtual slides when it is impossible to find slide in DOM by hash (e.g. not yet rendered) - * - */ - getSlideIndex?: (swiper: Swiper, hash: string) => number; -} diff --git a/build/assets/js/vendor/swiper/types/modules/history.d.ts b/build/assets/js/vendor/swiper/types/modules/history.d.ts deleted file mode 100644 index a3cea81..0000000 --- a/build/assets/js/vendor/swiper/types/modules/history.d.ts +++ /dev/null @@ -1,43 +0,0 @@ -export interface HistoryMethods {} - -export interface HistoryEvents {} - -export interface HistoryOptions { - /** - * Enables History Plugin. - * - * @default false - */ - enabled?: boolean; - - /** - * Swiper page root, useful to specify when you use Swiper history mode not on root website page. - * For example can be `https://my-website.com/` or `https://my-website.com/subpage/` or `/subpage/` - * - * - * @default '' - */ - root?: string; - - /** - * Works in addition to hashnav or history to replace current url state with the - * new one instead of adding it to history - * - * @default false - */ - replaceState?: boolean; - - /** - * Url key for slides - * - * @default 'slides' - */ - key?: string; - - /** - * Keep query parameters when changing browser url. - * - * @default false - */ - keepQuery?: boolean; -} diff --git a/build/assets/js/vendor/swiper/types/modules/index.d.ts b/build/assets/js/vendor/swiper/types/modules/index.d.ts deleted file mode 100644 index d0a1b9b..0000000 --- a/build/assets/js/vendor/swiper/types/modules/index.d.ts +++ /dev/null @@ -1,53 +0,0 @@ -import type { SwiperModule } from '../shared.d.ts'; - -declare const A11y: SwiperModule; -declare const Autoplay: SwiperModule; -declare const Controller: SwiperModule; -declare const EffectCoverflow: SwiperModule; -declare const EffectCube: SwiperModule; -declare const EffectFade: SwiperModule; -declare const EffectFlip: SwiperModule; -declare const EffectCreative: SwiperModule; -declare const EffectCards: SwiperModule; -declare const HashNavigation: SwiperModule; -declare const History: SwiperModule; -declare const Keyboard: SwiperModule; -declare const Lazy: SwiperModule; -declare const Mousewheel: SwiperModule; -declare const Navigation: SwiperModule; -declare const Pagination: SwiperModule; -declare const Parallax: SwiperModule; -declare const Scrollbar: SwiperModule; -declare const Thumbs: SwiperModule; -declare const Virtual: SwiperModule; -declare const Zoom: SwiperModule; -declare const FreeMode: SwiperModule; -declare const Grid: SwiperModule; -declare const Manipulation: SwiperModule; - -export { - A11y, - Autoplay, - Controller, - EffectCoverflow, - EffectCube, - EffectFade, - EffectFlip, - EffectCreative, - EffectCards, - HashNavigation, - History, - Keyboard, - Lazy, - Mousewheel, - Navigation, - Pagination, - Parallax, - Scrollbar, - Thumbs, - Virtual, - Zoom, - FreeMode, - Grid, - Manipulation, -}; diff --git a/build/assets/js/vendor/swiper/types/modules/keyboard.d.ts b/build/assets/js/vendor/swiper/types/modules/keyboard.d.ts deleted file mode 100644 index d38dd8d..0000000 --- a/build/assets/js/vendor/swiper/types/modules/keyboard.d.ts +++ /dev/null @@ -1,46 +0,0 @@ -import type Swiper from '../swiper-class.d.ts'; - -export interface KeyboardMethods { - /** - * Whether the keyboard control is enabled - */ - enabled: boolean; - - /** - * Enable keyboard control - */ - enable(): void; - - /** - * Disable keyboard control - */ - disable(): void; -} - -export interface KeyboardEvents { - /** - * Event will be fired on key press - */ - keyPress: (swiper: Swiper, keyCode: string) => void; -} - -export interface KeyboardOptions { - /** - * Set to `true` to enable keyboard control - * - * @default false - */ - enabled?: boolean; - /** - * When enabled it will control sliders that are currently in viewport - * - * @default true - */ - onlyInViewport?: boolean; - /** - * When enabled it will enable keyboard navigation by Page Up and Page Down keys - * - * @default true - */ - pageUpDown?: boolean; -} diff --git a/build/assets/js/vendor/swiper/types/modules/manipulation.d.ts b/build/assets/js/vendor/swiper/types/modules/manipulation.d.ts deleted file mode 100644 index 3366eaf..0000000 --- a/build/assets/js/vendor/swiper/types/modules/manipulation.d.ts +++ /dev/null @@ -1,70 +0,0 @@ -export interface ManipulationMethods { - /** - * Add new slides to the end. slides could be - * HTMLElement or HTML string with new slide or - * array with such slides, for example: - * - * @example - * ```js - * appendSlide('
    Slide 10"
    ') - * - * appendSlide([ - * '
    Slide 10"
    ', - * '
    Slide 11"
    ' - * ]); - * ``` - */ - appendSlide(slides: HTMLElement | string | string[] | HTMLElement[]): void; - - /** - * Add new slides to the beginning. slides could be - * HTMLElement or HTML string with new slide or array with such slides, for example: - * - * @example - * ```js - * prependSlide('
    Slide 0"
    ') - * - * prependSlide([ - * '
    Slide 1"
    ', - * '
    Slide 2"
    ' - * ]); - * ``` - */ - prependSlide(slides: HTMLElement | string | string[] | HTMLElement[]): void; - - /** - * Add new slides to the required index. slides could be HTMLElement or HTML string with new slide or array with such slides, for example: - * - * @example - * ```js - * addSlide(1, '
    Slide 10"
    ') - * - * addSlide(1, [ - * '
    Slide 10"
    ', - * '
    Slide 11"
    ' - * ]); - * ``` - */ - addSlide(index: number, slides: HTMLElement | string | string[] | HTMLElement[]): void; - - /** - * Remove selected slides. slideIndex could be a number with slide index to remove or array with indexes. - * - * @example - * ```js - * removeSlide(0); // remove first slide - * removeSlide([0, 1]); // remove first and second slides - * removeAllSlides(); // Remove all slides - * ``` - */ - removeSlide(slideIndex: number | number[]): void; - - /** - * Remove all slides - */ - removeAllSlides(): void; -} - -export interface ManipulationEvents {} - -export interface ManipulationOptions {} diff --git a/build/assets/js/vendor/swiper/types/modules/mousewheel.d.ts b/build/assets/js/vendor/swiper/types/modules/mousewheel.d.ts deleted file mode 100644 index bb220b1..0000000 --- a/build/assets/js/vendor/swiper/types/modules/mousewheel.d.ts +++ /dev/null @@ -1,82 +0,0 @@ -import type Swiper from '../swiper-class.d.ts'; -import type { CSSSelector } from '../shared.d.ts'; - -export interface MousewheelMethods { - /** - * Whether the mousewheel control is enabled - */ - enabled: boolean; - - /** - * Enable mousewheel control - */ - enable(): void; - - /** - * Disable mousewheel control - */ - disable(): void; -} - -export interface MousewheelEvents { - /** - * Event will be fired on mousewheel scroll - */ - scroll: (swiper: Swiper, event: WheelEvent) => void; -} - -export interface MousewheelOptions { - /** - * Set to `true` to force mousewheel swipes to axis. So in horizontal mode mousewheel will work only with horizontal mousewheel scrolling, and only with vertical scrolling in vertical mode. - - * - * @default false - */ - forceToAxis?: boolean; - /** - * Set to `true` and swiper will release mousewheel event and allow page scrolling when swiper is on edge positions (in the beginning or in the end) - - * - * @default false - */ - releaseOnEdges?: boolean; - /** - * Set to `true` to invert sliding direction - * - * @default false - */ - invert?: boolean; - /** - * Multiplier of mousewheel data, allows to tweak mouse wheel sensitivity - * - * @default 1 - */ - sensitivity?: number; - /** - * String with CSS selector or HTML element of the container accepting mousewheel events. By default it is swiper - * - * @default 'container' - */ - eventsTarget?: 'container' | 'wrapper' | CSSSelector | HTMLElement; - - /** - * Minimum mousewheel scroll delta to trigger swiper slide change - * - * @default null - */ - thresholdDelta?: number | null; - - /** - * Minimum mousewheel scroll time delta (in ms) to trigger swiper slide change - * - * @default null - */ - thresholdTime?: number | null; - - /** - * Scrolling on elements with this class will be ignored - * - * @default 'swiper-no-mousewheel' - */ - noMousewheelClass?: string; -} diff --git a/build/assets/js/vendor/swiper/types/modules/navigation.d.ts b/build/assets/js/vendor/swiper/types/modules/navigation.d.ts deleted file mode 100644 index 3d5c6e6..0000000 --- a/build/assets/js/vendor/swiper/types/modules/navigation.d.ts +++ /dev/null @@ -1,105 +0,0 @@ -import type { CSSSelector } from '../shared.d.ts'; -import type Swiper from '../swiper-class.d.ts'; - -export interface NavigationMethods { - /** - * HTMLElement of "next" navigation button - */ - nextEl: HTMLElement; - - /** - * HTMLElement of "previous" navigation button - */ - prevEl: HTMLElement; - - /** - * Update navigation buttons state (enabled/disabled) - */ - update(): void; - - /** - * Initialize navigation - */ - init(): void; - - /** - * Destroy navigation - */ - destroy(): void; -} - -export interface NavigationEvents { - /** - * Event will be fired on navigation hide - */ - navigationHide: (swiper: Swiper) => void; - /** - * Event will be fired on navigation show - */ - navigationShow: (swiper: Swiper) => void; - /** - * Event will be fired on navigation prev button click - */ - navigationPrev: (swiper: Swiper) => void; - /** - * Event will be fired on navigation next button click - */ - navigationNext: (swiper: Swiper) => void; -} - -export interface NavigationOptions { - /** - * Boolean property to use with breakpoints to enable/disable navigation on certain breakpoints - */ - enabled?: boolean; - /** - * String with CSS selector or HTML element of the element that will work - * like "next" button after click on it - * - * @default null - */ - nextEl?: CSSSelector | HTMLElement | null; - - /** - * String with CSS selector or HTML element of the element that will work - * like "prev" button after click on it - * - * @default null - */ - prevEl?: CSSSelector | HTMLElement | null; - - /** - * Toggle navigation buttons visibility after click on Slider's container - * - * @default false - */ - hideOnClick?: boolean; - - /** - * CSS class name added to navigation button when it becomes disabled - * - * @default 'swiper-button-disabled' - */ - disabledClass?: string; - - /** - * CSS class name added to navigation button when it becomes hidden - * - * @default 'swiper-button-hidden' - */ - hiddenClass?: string; - - /** - * CSS class name added to navigation button when it is disabled - * - * @default 'swiper-button-lock' - */ - lockClass?: string; - - /** - * CSS class name added on swiper container when navigation is disabled by breakpoint - * - * @default 'swiper-navigation-disabled' - */ - navigationDisabledClass?: string; -} diff --git a/build/assets/js/vendor/swiper/types/modules/pagination.d.ts b/build/assets/js/vendor/swiper/types/modules/pagination.d.ts deleted file mode 100644 index 5af6341..0000000 --- a/build/assets/js/vendor/swiper/types/modules/pagination.d.ts +++ /dev/null @@ -1,295 +0,0 @@ -import type { CSSSelector } from '../shared.d.ts'; -import type Swiper from '../swiper-class.d.ts'; - -export interface PaginationMethods { - /** - * HTMLElement of pagination container element - */ - el: HTMLElement; - - /** - * Array of pagination bullets - * HTML elements. To get specific slide HTMLElement - * use `swiper.pagination.bullets[1]`. - */ - bullets: HTMLElement[]; - - /** - * Render pagination layout - */ - render(): void; - - /** - * Update pagination state (enabled/disabled/active) - */ - update(): void; - - /** - * Initialize pagination - */ - init(): void; - - /** - * Destroy pagination - */ - destroy(): void; -} - -export interface PaginationEvents { - /** - * Event will be fired after pagination rendered - */ - paginationRender: (swiper: Swiper, paginationEl: HTMLElement) => void; - - /** - * Event will be fired when pagination updated - */ - paginationUpdate: (swiper: Swiper, paginationEl: HTMLElement) => void; - - /** - * Event will be fired on pagination hide - */ - paginationHide: (swiper: Swiper) => void; - - /** - * Event will be fired on pagination show - */ - paginationShow: (swiper: Swiper) => void; -} - -export interface PaginationOptions { - /** - * Boolean property to use with breakpoints to enable/disable pagination on certain breakpoints - */ - enabled?: boolean; - /** - * String with CSS selector or HTML element of the container with pagination - * - * @default null - */ - el?: CSSSelector | HTMLElement | null; - - /** - * String with type of pagination. Can be `'bullets'`, `'fraction'`, `'progressbar'` or `'custom'` - * - * @default 'bullets' - */ - type?: 'bullets' | 'fraction' | 'progressbar' | 'custom'; - - /** - * Defines which HTML tag will be used to represent single pagination bullet. Only for `'bullets'` pagination type. - * - * @default 'span' - */ - bulletElement?: string; - - /** - * Good to enable if you use bullets pagination with a lot of slides. So it will keep only few bullets visible at the same time. - * - * @default false - */ - dynamicBullets?: boolean; - - /** - * The number of main bullets visible when `dynamicBullets` enabled. - * - * @default 1 - */ - dynamicMainBullets?: number; - - /** - * Toggle (hide/show) pagination container visibility after click on Slider's container - * - * @default true - */ - hideOnClick?: boolean; - - /** - * If `true` then clicking on pagination button will cause transition to appropriate slide. Only for bullets pagination type - * - * @default false - */ - clickable?: boolean; - - /** - * Makes pagination progressbar opposite to Swiper's `direction` parameter, means vertical progressbar for horizontal swiper - * direction and horizontal progressbar for vertical swiper direction - * - * @default false - */ - progressbarOpposite?: boolean; - - /** - * format fraction pagination current number. Function receives current number, - * and you need to return formatted value - */ - formatFractionCurrent?: (number: number) => number | string; - - /** - * format fraction pagination total number. Function receives total number, and you - * need to return formatted value - */ - formatFractionTotal?: (number: number) => number | string; - - /** - * This parameter allows totally customize pagination bullets, you need to pass here a function that accepts `index` number of - * pagination bullet and required element class name (`className`). Only for `'bullets'` pagination type - * - * @default null - * - * @example - * ```js - * const swiper = new Swiper('.swiper', { - * //... - * renderBullet: function (index, className) { - * return '' + (index + 1) + ''; - * } - * }); - * ``` - */ - renderBullet?: (index: number, className: string) => string; - - /** - * This parameter allows to customize "fraction" pagination html. Only for `'fraction'` pagination type - * - * @default null - * - * @example - * ```js - * const swiper = new Swiper('.swiper', { - * //... - * renderFraction: function (currentClass, totalClass) { - * return '' + - * ' of ' + - * ''; - * } - * }); - * ``` - */ - renderFraction?: (currentClass: string, totalClass: string) => string; - - /** - * This parameter allows to customize "progress" pagination. Only for `'progress'` pagination type - * - * @default null - * - * @example - * ```js - * const swiper = new Swiper('.swiper', { - * //... - * renderProgressbar: function (progressbarFillClass) { - * return ''; - * } - * }); - * ``` - */ - renderProgressbar?: (progressbarFillClass: string) => string; - - /** - * This parameter is required for `'custom'` pagination type where you have to specify - * how it should be rendered. - * - * @default null - * - * @example - * ```js - * const swiper = new Swiper('.swiper', { - * //... - * renderCustom: function (swiper, current, total) { - * return current + ' of ' + total; - * } - * }); - * ``` - */ - renderCustom?: (swiper: Swiper, current: number, total: number) => string; - - /** - * CSS class name of single pagination bullet - * - * @default 'swiper-pagination-bullet' - */ - bulletClass?: string; - - /** - * CSS class name of currently active pagination bullet - * - * @default 'swiper-pagination-bullet-active' - */ - bulletActiveClass?: string; - - /** - * The beginning of the modifier CSS class name that will be added to pagination depending on parameters - * - * @default 'swiper-pagination-' - */ - modifierClass?: string; - - /** - * CSS class name of the element with currently active index in "fraction" pagination - * - * @default 'swiper-pagination-current' - */ - currentClass?: string; - - /** - * CSS class name of the element with total number of "snaps" in "fraction" pagination - * - * @default 'swiper-pagination-total' - */ - totalClass?: string; - - /** - * CSS class name of pagination when it becomes inactive - * - * @default 'swiper-pagination-hidden' - */ - hiddenClass?: string; - - /** - * CSS class name of pagination progressbar fill element - * - * @default 'swiper-pagination-progressbar-fill' - */ - progressbarFillClass?: string; - - /** - * CSS class name of pagination progressbar opposite - * - * @default 'swiper-pagination-progressbar-opposite' - */ - progressbarOppositeClass?: string; - /** - * CSS class name set to pagination when it is clickable - * - * @default 'swiper-pagination-clickable' - */ - clickableClass?: string; - - /** - * CSS class name set to pagination when it is disabled - * - * @default 'swiper-pagination-lock' - */ - lockClass?: string; - - /** - * CSS class name set to pagination in horizontal Swiper - * - * @default 'swiper-pagination-horizontal' - */ - horizontalClass?: string; - - /** - * CSS class name set to pagination in vertical Swiper - * - * @default 'swiper-pagination-vertical' - */ - verticalClass?: string; - - /** - * CSS class name added on swiper container and pagination element when pagination is disabled by breakpoint - * - * @default 'swiper-pagination-disabled' - */ - paginationDisabledClass?: string; -} diff --git a/build/assets/js/vendor/swiper/types/modules/parallax.d.ts b/build/assets/js/vendor/swiper/types/modules/parallax.d.ts deleted file mode 100644 index 27e8e6f..0000000 --- a/build/assets/js/vendor/swiper/types/modules/parallax.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -export interface ParallaxMethods {} - -export interface ParallaxEvents {} - -export interface ParallaxOptions { - /** - * Enable, if you want to use "parallaxed" elements inside of slider - * - * @default false - */ - enabled?: boolean; -} diff --git a/build/assets/js/vendor/swiper/types/modules/public-api.d.ts b/build/assets/js/vendor/swiper/types/modules/public-api.d.ts deleted file mode 100644 index 2553f46..0000000 --- a/build/assets/js/vendor/swiper/types/modules/public-api.d.ts +++ /dev/null @@ -1,23 +0,0 @@ -export type * from './a11y.d.ts'; -export type * from './autoplay.d.ts'; -export type * from './controller.d.ts'; -export type * from './effect-coverflow.d.ts'; -export type * from './effect-cube.d.ts'; -export type * from './effect-fade.d.ts'; -export type * from './effect-flip.d.ts'; -export type * from './effect-creative.d.ts'; -export type * from './effect-cards.d.ts'; -export type * from './hash-navigation.d.ts'; -export type * from './history.d.ts'; -export type * from './keyboard.d.ts'; -export type * from './mousewheel.d.ts'; -export type * from './navigation.d.ts'; -export type * from './pagination.d.ts'; -export type * from './parallax.d.ts'; -export type * from './scrollbar.d.ts'; -export type * from './thumbs.d.ts'; -export type * from './virtual.d.ts'; -export type * from './zoom.d.ts'; -export type * from './free-mode.d.ts'; -export type * from './grid.d.ts'; -export type * from './manipulation.d.ts'; diff --git a/build/assets/js/vendor/swiper/types/modules/scrollbar.d.ts b/build/assets/js/vendor/swiper/types/modules/scrollbar.d.ts deleted file mode 100644 index 4e04d95..0000000 --- a/build/assets/js/vendor/swiper/types/modules/scrollbar.d.ts +++ /dev/null @@ -1,140 +0,0 @@ -import type { CSSSelector } from '../shared.d.ts'; -import type Swiper from '../swiper-class.d.ts'; - -export interface ScrollbarMethods { - /** - * HTMLElement of Scrollbar container element - */ - el: HTMLElement; - - /** - * HTMLElement of Scrollbar draggable handler element - */ - dragEl: HTMLElement; - - /** - * Updates scrollbar track and handler sizes - */ - updateSize(): void; - - /** - * Updates scrollbar translate - */ - setTranslate(): void; - - /** - * Initialize scrollbar - */ - init(): void; - - /** - * Destroy scrollbar - */ - destroy(): void; -} - -export interface ScrollbarEvents { - /** - * Event will be fired on draggable scrollbar drag start - */ - scrollbarDragStart: (swiper: Swiper, event: MouseEvent | TouchEvent | PointerEvent) => void; - - /** - * Event will be fired on draggable scrollbar drag move - */ - scrollbarDragMove: (swiper: Swiper, event: MouseEvent | TouchEvent | PointerEvent) => void; - - /** - * Event will be fired on draggable scrollbar drag end - */ - scrollbarDragEnd: (swiper: Swiper, event: MouseEvent | TouchEvent | PointerEvent) => void; -} - -/** - * Object with scrollbar parameters. - * - * @example - * ```js - * const swiper = new Swiper('.swiper', { - * scrollbar: { - * el: '.swiper-scrollbar', - * draggable: true, - * }, - * }); - * ``` - */ -export interface ScrollbarOptions { - /** - * Boolean property to use with breakpoints to enable/disable scrollbar on certain breakpoints - */ - enabled?: boolean; - /** - * String with CSS selector or HTML element of the container with scrollbar. - * - * @default null - */ - el?: CSSSelector | HTMLElement | null; - - /** - * Hide scrollbar automatically after user interaction - * - * @default true - */ - hide?: boolean; - - /** - * Set to `true` to enable make scrollbar draggable that allows you to control slider position - * - * @default false - */ - draggable?: boolean; - - /** - * Set to `true` to snap slider position to slides when you release scrollbar - * - * @default false - */ - snapOnRelease?: boolean; - - /** - * Size of scrollbar draggable element in px - * - * @default 'auto' - */ - dragSize?: 'auto' | number; - - /** - * Scrollbar element additional CSS class when it is disabled - * - * @default 'swiper-scrollbar-lock' - */ - lockClass?: string; - - /** - * Scrollbar draggable element CSS class - * - * @default 'swiper-scrollbar-drag' - */ - dragClass?: string; - - /** - * CSS class name added on swiper container and scrollbar element when scrollbar is disabled by breakpoint - * - * @default 'swiper-scrollbar-disabled' - */ - scrollbarDisabledClass?: string; - - /** - * CSS class name set to scrollbar in horizontal Swiper - * - * @default 'swiper-scrollbar-horizontal' - */ - horizontalClass?: string; - - /** - * CSS class name set to scrollbar in vertical Swiper - * - * @default 'swiper-scrollbar-vertical' - */ - verticalClass?: string; -} diff --git a/build/assets/js/vendor/swiper/types/modules/thumbs.d.ts b/build/assets/js/vendor/swiper/types/modules/thumbs.d.ts deleted file mode 100644 index 19d5045..0000000 --- a/build/assets/js/vendor/swiper/types/modules/thumbs.d.ts +++ /dev/null @@ -1,54 +0,0 @@ -import type Swiper from '../swiper-class.d.ts'; - -export interface ThumbsMethods { - /** - * Swiper instance of thumbs swiper - */ - swiper: Swiper; - - /** - * Update thumbs - */ - update(initial: boolean): void; - - /** - * Initialize thumbs - */ - init(): boolean; -} - -export interface ThumbsEvents {} - -export interface ThumbsOptions { - /** - * Swiper instance of swiper used as thumbs or object with Swiper parameters to initialize thumbs swiper - * - * @default null - */ - swiper?: Swiper | null; - /** - * Additional class that will be added to activated thumbs swiper slide - * - * @default 'swiper-slide-thumb-active' - */ - slideThumbActiveClass?: string; - /** - * Additional class that will be added to thumbs swiper - * - * @default 'swiper-thumbs' - */ - thumbsContainerClass?: string; - /** - * When enabled multiple thumbnail slides may get activated - * - * @default true - */ - multipleActiveThumbs?: boolean; - /** - * Allows to set on which thumbs active slide from edge it should automatically move scroll thumbs. For example, if set to 1 and last visible thumb will be activated (1 from edge) it will auto scroll thumbs - - * - * @default 0 - */ - autoScrollOffset?: number; -} diff --git a/build/assets/js/vendor/swiper/types/modules/virtual.d.ts b/build/assets/js/vendor/swiper/types/modules/virtual.d.ts deleted file mode 100644 index bcf27bd..0000000 --- a/build/assets/js/vendor/swiper/types/modules/virtual.d.ts +++ /dev/null @@ -1,135 +0,0 @@ -export interface VirtualMethods { - /** - * Object with cached slides HTML elements - */ - cache: object; - - /** - * Index of first rendered slide - */ - from: number; - - /** - * Index of last rendered slide - */ - to: number; - - /** - * Array with slide items passed by `virtual.slides` parameter - */ - slides: T[]; - - /* - * Methods - */ - - /** - * Append slide. `slides` can be a single slide item or array with such slides. - * - * @note Only for Core version (in React & Vue it should be done by modifying slides array/data/source) - */ - appendSlide(slide: HTMLElement | string | HTMLElement[] | string[]): void; - - /** - * Prepend slide. `slides` can be a single slide item or array with such slides. - * - * @note Only for Core version (in React & Vue it should be done by modifying slides array/data/source) - */ - prependSlide(slide: HTMLElement | string | HTMLElement[] | string[]): void; - - /** - * Remove specific slide or slides. `slideIndexes` can be a number with slide index to remove or array with indexes. - * - * @note Only for Core version (in React & Vue it should be done by modifying slides array/data/source) - */ - removeSlide(slideIndexes: number[]): void; - - /** - * Remove all slides - * - * @note Only for Core version (in React & Vue it should be done by modifying slides array/data/source) - */ - removeAllSlides(): void; - - /** - * Update virtual slides state - */ - update(force: boolean): void; -} - -export interface VirtualEvents {} - -export interface VirtualData { - /** - * slides left/top offset in px - */ - offset: number; - /** - * index of first slide required to be rendered - */ - from: number; - /** - * index of last slide required to be rendered - */ - to: number; - /** - * array with slide items to be rendered - */ - slides: T[]; -} - -export interface VirtualOptions { - /** - * Whether the virtual slides are enabled - * - * @default false - */ - enabled?: boolean; - /** - * Array with slides - * - * @default [] - */ - slides?: T[]; - /** - * Enables DOM cache of rendering slides html elements. Once they are rendered they will be saved to cache and reused from it. - * - * @default true - */ - cache?: boolean; - /** - * Increases amount of pre-rendered slides before active slide - * - * @default 0 - */ - addSlidesBefore?: number; - /** - * Increases amount of pre-rendered slides after active slide - * - * @default 0 - */ - addSlidesAfter?: number; - /** - * Function to render slide. As an argument it accepts current slide item for `slides` array and index number of the current slide. Function must return an outer HTML of the swiper slide or slide HTML element. - * - * @default null - */ - renderSlide?: (slide: T, index: any) => any | null; - /** - * Function for external rendering (e.g. using some other library to handle DOM manipulations and state like React.js or Vue.js). As an argument it accepts `data` object with the following properties: - * - * - `offset` - slides left/top offset in px - * - `from` - index of first slide required to be rendered - * - `to` - index of last slide required to be rendered - * - `slides` - array with slide items to be rendered - * - * @default null - */ - renderExternal?: (data: VirtualData) => any | null; - /** - * When enabled (by default) it will update Swiper layout right after renderExternal called. Useful to disable and update swiper manually when used with render libraries that renders asynchronously - * - * @default true - */ - renderExternalUpdate?: boolean; -} diff --git a/build/assets/js/vendor/swiper/types/modules/zoom.d.ts b/build/assets/js/vendor/swiper/types/modules/zoom.d.ts deleted file mode 100644 index 0b302c0..0000000 --- a/build/assets/js/vendor/swiper/types/modules/zoom.d.ts +++ /dev/null @@ -1,79 +0,0 @@ -import type Swiper from '../swiper-class.d.ts'; - -export interface ZoomMethods { - /** - * Whether the zoom module is enabled - */ - enabled: boolean; - - /** - * Current image scale ratio - */ - scale: number; - - /** - * Enable zoom module - */ - enable(): void; - - /** - * Disable zoom module - */ - disable(): void; - - /** - * Zoom in image of the currently active slide. Optionally accepts custom zoom ratio - */ - in(ratio?: number): void; - - /** - * Zoom out image of the currently active slide - */ - out(): void; - - /** - * Toggle image zoom of the currently active slide - */ - toggle(event?: MouseEvent | TouchEvent | PointerEvent): void; -} - -export interface ZoomEvents { - /** - * Event will be fired on zoom change - */ - zoomChange: (swiper: Swiper, scale: number, imageEl: HTMLElement, slideEl: HTMLElement) => void; -} - -export interface ZoomOptions { - /** - * Maximum image zoom multiplier - * - * @default 3 - */ - maxRatio?: number; - /** - * Minimal image zoom multiplier - * - * @default 1 - */ - minRatio?: number; - /** - * Enable/disable zoom-in by slide's double tap - * - * @default true - */ - toggle?: boolean; - /** - * CSS class name of zoom container - * - * @default 'swiper-zoom-container' - */ - containerClass?: string; - /** - * CSS class name of zoomed in container - * - * @default 'swiper-slide-zoomed' - - */ - zoomedSlideClass?: string; -} diff --git a/build/assets/js/vendor/swiper/types/shared.d.ts b/build/assets/js/vendor/swiper/types/shared.d.ts deleted file mode 100644 index 4c28f96..0000000 --- a/build/assets/js/vendor/swiper/types/shared.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -export interface CSSSelector extends String {} - -export interface SwiperModule { - name: string; -} diff --git a/build/assets/js/vendor/swiper/types/swiper-class.d.ts b/build/assets/js/vendor/swiper/types/swiper-class.d.ts deleted file mode 100644 index 11e5218..0000000 --- a/build/assets/js/vendor/swiper/types/swiper-class.d.ts +++ /dev/null @@ -1,492 +0,0 @@ -import type { SwiperOptions } from './swiper-options.d.ts'; -import type { CSSSelector, SwiperModule } from './shared.d.ts'; -import type { SwiperEvents } from './swiper-events.d.ts'; - -import type { A11yMethods } from './modules/a11y.d.ts'; -import type { AutoplayMethods } from './modules/autoplay.d.ts'; -import type { ControllerMethods } from './modules/controller.d.ts'; -import type { CoverflowEffectMethods } from './modules/effect-coverflow.d.ts'; -import type { CubeEffectMethods } from './modules/effect-cube.d.ts'; -import type { FadeEffectMethods } from './modules/effect-fade.d.ts'; -import type { FlipEffectMethods } from './modules/effect-flip.d.ts'; -import type { CreativeEffectMethods } from './modules/effect-creative.d.ts'; -import type { CardsEffectMethods } from './modules/effect-cards.d.ts'; -import type { HashNavigationMethods } from './modules/hash-navigation.d.ts'; -import type { HistoryMethods } from './modules/history.d.ts'; -import type { KeyboardMethods } from './modules/keyboard.d.ts'; -import type { MousewheelMethods } from './modules/mousewheel.d.ts'; -import type { NavigationMethods } from './modules/navigation.d.ts'; -import type { PaginationMethods } from './modules/pagination.d.ts'; -import type { ParallaxMethods } from './modules/parallax.d.ts'; -import type { ScrollbarMethods } from './modules/scrollbar.d.ts'; -import type { ThumbsMethods } from './modules/thumbs.d.ts'; -import type { VirtualMethods } from './modules/virtual.d.ts'; -import type { ZoomMethods } from './modules/zoom.d.ts'; -import type { FreeModeMethods } from './modules/free-mode.d.ts'; -import type { ManipulationMethods } from './modules/manipulation.d.ts'; - -interface SwiperClass { - /** Add event handler */ - on(event: E, handler: Events[E]): void; - /** Add event handler that will be removed after it was fired */ - once(event: E, handler: Events[E]): void; - /** Remove event handler */ - off(event: E, handler: Events[E]): void; - /** Remove all handlers for specified event */ - off(event: E): void; - /** Fire event on instance */ - emit(event: E, ...args: any[]): void; -} - -interface Swiper extends SwiperClass { - /** - * Object with passed initialization parameters - */ - params: SwiperOptions; - - /** - * Object with original initialization parameters - */ - originalParams: SwiperOptions; - - /** - * Slider container HTML element - */ - el: HTMLElement; - - /** - * Wrapper HTML element - */ - wrapperEl: HTMLElement; - - /** - * Array of slides HTML elements. To get specific slide HTMLElement use `swiper.slides[1]` - */ - slides: HTMLElement[]; - - /** - * !INTERNAL - */ - loopedSlides: number | null; - - /** - * Width of container - */ - width: number; - - /** - * Height of container - */ - height: number; - - /** - * Current value of wrapper translate - */ - translate: number; - - /** - * Current progress of wrapper translate (from 0 to 1) - */ - progress: number; - - /** - * Index number of currently active slide - * - * @note Note, that in loop mode active index value will be always shifted on a number of looped slides - */ - activeIndex: number; - - /** - * Index number of currently active slide considering rearranged slides in loop mode - */ - realIndex: number; - - /** - * Index number of previously active slide - */ - previousIndex: number; - - /** - * Index number of current snap in `snapGrid` - */ - snapIndex: number; - - /** - * Slides snap grid - */ - snapGrid: number[]; - - /** - * `true` if slider on most "left"/"top" position - */ - isBeginning: boolean; - - /** - * `true` if slider on most "right"/"bottom" position - */ - isEnd: boolean; - - /** - * `true` if slide is "locked" (by `watchOverflow`) and slides can not be, e.g. when amount of slides is less that slides per view - */ - isLocked: boolean; - - /** - * `true` if swiper is in transition - */ - animating: boolean; - - /** - * Object with the following touch event properties: - * - * - `swiper.touches.startX` - * - `swiper.touches.startY` - * - `swiper.touches.currentX` - * - `swiper.touches.currentY` - * - `swiper.touches.diff` - */ - touches: { - startX: number; - startY: number; - currentX: number; - currentY: number; - diff: number; - }; - - /** - * Index number of last clicked slide - */ - clickedIndex: number; - - /** - * Link to last clicked slide (HTMLElement) - */ - clickedSlide: HTMLElement; - - /** - * Disable / enable ability to slide to the next slides by assigning `false` / `true` to this property - */ - allowSlideNext: boolean; - - /** - * Disable / enable ability to slide to the previous slides by assigning `false` / `true` to this property - */ - allowSlidePrev: boolean; - - /** - * Disable / enable ability move slider by grabbing it with mouse or by touching it with finger (on touch screens) by assigning `false` / `true` to this property - */ - allowTouchMove: boolean; - - /** - * Direction of sliding - */ - swipeDirection: 'prev' | 'next'; - - /** - * !INTERNAL - */ - rtlTranslate: boolean; - - /** - * Disable Swiper (if it was enabled). When Swiper is disabled, it will hide all navigation elements and won't respond to any events and interactions - * - */ - disable(): void; - - /** - * Enable Swiper (if it was disabled) - * - */ - enable(): void; - - /** - * Set Swiper translate progress (from 0 to 1). Where 0 - its initial position (offset) on first slide, and 1 - its maximum position (offset) on last slide - * - * @param progress Swiper translate progress (from 0 to 1). - * @param speed Transition duration (in ms). - */ - setProgress(progress: number, speed?: number): void; - - /** - * Run transition to next slide. - * - * @param speed Transition duration (in ms). - * @param runCallbacks Set it to false (by default it is true) and transition will - * not produce transition events. - */ - slideNext(speed?: number, runCallbacks?: boolean): void; - - /** - * Run transition to previous slide. - * - * @param speed Transition duration (in ms). - * @param runCallbacks Set it to false (by default it is true) and transition will - * not produce transition events. - */ - slidePrev(speed?: number, runCallbacks?: boolean): void; - - /** - * Run transition to the slide with index number equal to 'index' parameter for the - * duration equal to 'speed' parameter. - * - * @param index Index number of slide. - * @param speed Transition duration (in ms). - * @param runCallbacks Set it to false (by default it is true) and transition will - * not produce transition events. - */ - slideTo(index: number, speed?: number, runCallbacks?: boolean): void; - - /** - * Does the same as .slideTo but for the case when used with enabled loop. So this - * method will slide to slides with realIndex matching to passed index - * - * @param index Index number of slide. - * @param speed Transition duration (in ms). - * @param runCallbacks Set it to false (by default it is true) and transition will - * not produce transition events. - */ - slideToLoop(index: number, speed?: number, runCallbacks?: boolean): void; - - /** - * Reset swiper position to currently active slide for the duration equal to 'speed' - * parameter. - * - * @param speed Transition duration (in ms). - * @param runCallbacks Set it to false (by default it is true) and transition will - * not produce transition events. - */ - slideReset(speed?: number, runCallbacks?: boolean): void; - - /** - * Reset swiper position to closest slide/snap point for the duration equal to 'speed' parameter. - * - * @param speed Transition duration (in ms). - * @param runCallbacks Set it to false (by default it is true) and transition will - * not produce transition events. - */ - slideToClosest(speed?: number, runCallbacks?: boolean): void; - - /** - * Get dynamically calculated amount of slides per view, useful only when slidesPerView set to `auto` - * - */ - slidesPerViewDynamic(): number; - - /** - * Force swiper to update its height (when autoHeight enabled) for the duration equal to - * 'speed' parameter - * - * @param speed Transition duration (in ms). - */ - updateAutoHeight(speed?: number): void; - - /** - * You should call it after you add/remove slides - * manually, or after you hide/show it, or do any - * custom DOM modifications with Swiper - * This method also includes subcall of the following - * methods which you can use separately: - */ - update(): void; - - /** - * recalculate size of swiper container - */ - updateSize(): void; - - /** - * recalculate number of slides and their offsets. Useful after you add/remove slides with JavaScript - */ - updateSlides(): void; - - /** - * recalculate swiper progress - */ - updateProgress(): void; - - /** - * update active/prev/next classes on slides and bullets - */ - updateSlidesClasses(): void; - - /** - * Changes slider direction from horizontal to vertical and back. - * - * @param direction New direction. If not specified, then will automatically changed to opposite direction - * @param needUpdate Will call swiper.update(). Default true - */ - changeDirection(direction?: 'horizontal' | 'vertical', needUpdate?: boolean): void; - - /** - * Changes slider language - * - * @param direction New direction. Should be `rtl` or `ltr` - */ - changeLanguageDirection(direction: 'rtl' | 'ltr'): void; - - /** - * Detach all events listeners - */ - detachEvents(): void; - - /** - * Attach all events listeners again - */ - attachEvents(): void; - - /** - * !INTERNAL - */ - loopCreate(): void; - - /** - * !INTERNAL - */ - loopDestroy(): void; - - /** - * Initialize slider - */ - init(el?: HTMLElement): Swiper; - - /** - * Destroy slider instance and detach all events listeners - * - * @param deleteInstance Set it to false (by default it is true) to not to delete Swiper instance - * @param cleanStyles Set it to true (by default it is true) and all custom styles will be removed from slides, wrapper and container. - * Useful if you need to destroy Swiper and to init again with new options or in different direction - */ - destroy(deleteInstance?: boolean, cleanStyles?: boolean): void; - - /** - * Set custom css3 transform's translate value for swiper wrapper - */ - setTranslate(translate: any): void; - - /** - * Get current value of swiper wrapper css3 transform translate - */ - getTranslate(): any; - - /** - * Animate custom css3 transform's translate value for swiper wrapper - * - * @param translate Translate value (in px) - * @param speed Transition duration (in ms) - * @param runCallbacks Set it to false (by default it is true) and transition will not produce transition events - * @param translateBounds Set it to false (by default it is true) and transition value can extend beyond min and max translate - * - */ - translateTo( - translate: number, - speed: number, - runCallbacks?: boolean, - translateBounds?: boolean, - ): any; - - /** - * Unset grab cursor - */ - unsetGrabCursor(): void; - - /** - * Set grab cursor - */ - setGrabCursor(): void; - - /** - * Add event listener that will be fired on all events - */ - onAny(handler: (eventName: string, ...args: any[]) => void): void; - - /** - * Remove event listener that will be fired on all events - */ - offAny(handler: (eventName: string, ...args: any[]) => void): void; - - /** - * !INTERNAL - */ - isHorizontal(): boolean; - - /** - * !INTERNAL - */ - getBreakpoint(breakpoints: SwiperOptions['breakpoints']): string; - - /** - * !INTERNAL - */ - setBreakpoint(): void; - - /** - * !INTERNAL - */ - currentBreakpoint: any; - - /** - * !INTERNAL - */ - destroyed: boolean; - - /** - * !INTERNAL - */ - modules: Array; - - a11y: A11yMethods; - autoplay: AutoplayMethods; - controller: ControllerMethods; - coverflowEffect: CoverflowEffectMethods; - cubeEffect: CubeEffectMethods; - fadeEffect: FadeEffectMethods; - flipEffect: FlipEffectMethods; - creativeEffect: CreativeEffectMethods; - cardsEffect: CardsEffectMethods; - hashNavigation: HashNavigationMethods; - history: HistoryMethods; - keyboard: KeyboardMethods; - mousewheel: MousewheelMethods; - navigation: NavigationMethods; - pagination: PaginationMethods; - parallax: ParallaxMethods; - scrollbar: ScrollbarMethods; - thumbs: ThumbsMethods; - virtual: VirtualMethods; - zoom: ZoomMethods; - freeMode: FreeModeMethods; -} - -interface Swiper extends ManipulationMethods {} - -declare class Swiper implements Swiper { - /** - * Constructs a new Swiper instance. - * - * @param container Where Swiper applies to. - * @param options Instance options. - */ - constructor(container: CSSSelector | HTMLElement, options?: SwiperOptions); - /** - * Installs modules on Swiper in runtime. - */ - static use(modules: SwiperModule[]): void; - - /** - * Swiper default options - */ - static defaults: SwiperOptions; - - /** - * Extend global Swiper defaults - */ - static extendDefaults(options: SwiperOptions): void; - - /** - * Object with global Swiper extended options - */ - static extendedDefaults: SwiperOptions; -} - -export default Swiper; diff --git a/build/assets/js/vendor/swiper/types/swiper-events.d.ts b/build/assets/js/vendor/swiper/types/swiper-events.d.ts deleted file mode 100644 index 4e6aaec..0000000 --- a/build/assets/js/vendor/swiper/types/swiper-events.d.ts +++ /dev/null @@ -1,359 +0,0 @@ -import type { SwiperOptions } from './swiper-options.d.ts'; -import type Swiper from './swiper-class.d.ts'; - -import type { A11yEvents } from './modules/a11y.d.ts'; -import type { AutoplayEvents } from './modules/autoplay.d.ts'; -import type { ControllerEvents } from './modules/controller.d.ts'; -import type { CoverflowEffectEvents } from './modules/effect-coverflow.d.ts'; -import type { CubeEffectEvents } from './modules/effect-cube.d.ts'; -import type { FadeEffectEvents } from './modules/effect-fade.d.ts'; -import type { FlipEffectEvents } from './modules/effect-flip.d.ts'; -import type { CreativeEffectEvents } from './modules/effect-creative.d.ts'; -import type { CardsEffectEvents } from './modules/effect-cards.d.ts'; -import type { HashNavigationEvents } from './modules/hash-navigation.d.ts'; -import type { HistoryEvents } from './modules/history.d.ts'; -import type { KeyboardEvents } from './modules/keyboard.d.ts'; -import type { MousewheelEvents } from './modules/mousewheel.d.ts'; -import type { NavigationEvents } from './modules/navigation.d.ts'; -import type { PaginationEvents } from './modules/pagination.d.ts'; -import type { ParallaxEvents } from './modules/parallax.d.ts'; -import type { ScrollbarEvents } from './modules/scrollbar.d.ts'; -import type { ThumbsEvents } from './modules/thumbs.d.ts'; -import type { VirtualEvents } from './modules/virtual.d.ts'; -import type { ZoomEvents } from './modules/zoom.d.ts'; -import type { FreeModeEvents } from './modules/free-mode.d.ts'; - -export interface SwiperEvents { - // CORE_EVENTS_START - /** - * Fired right after Swiper initialization. - * @note Note that with `swiper.on('init')` syntax it will - * work only in case you set `init: false` parameter. - * - * @example - * ```js - * const swiper = new Swiper('.swiper', { - * init: false, - * // other parameters - * }); - * swiper.on('init', function() { - * // do something - * }); - * // init Swiper - * swiper.init(); - * ``` - * - * @example - * ```js - * // Otherwise use it as the parameter: - * const swiper = new Swiper('.swiper', { - * // other parameters - * on: { - * init: function () { - * // do something - * }, - * } - * }); - * ``` - */ - init: (swiper: Swiper) => any; - - /** - * Event will be fired right before Swiper destroyed - */ - beforeDestroy: (swiper: Swiper) => void; - - /** - * Event will be fired after slides and their sizes are calculated and updated - */ - slidesUpdated: (swiper: Swiper) => void; - /** - * Event will be fired when currently active slide is changed - */ - slideChange: (swiper: Swiper) => void; - - /** - * Event will be fired in the beginning of animation to other slide (next or previous). - */ - slideChangeTransitionStart: (swiper: Swiper) => void; - - /** - * Event will be fired after animation to other slide (next or previous). - */ - slideChangeTransitionEnd: (swiper: Swiper) => void; - - /** - * Same as "slideChangeTransitionStart" but for "forward" direction only - */ - slideNextTransitionStart: (swiper: Swiper) => void; - - /** - * Same as "slideChangeTransitionEnd" but for "forward" direction only - */ - slideNextTransitionEnd: (swiper: Swiper) => void; - - /** - * Same as "slideChangeTransitionStart" but for "backward" direction only - */ - slidePrevTransitionStart: (swiper: Swiper) => void; - - /** - * Same as "slideChangeTransitionEnd" but for "backward" direction only - */ - slidePrevTransitionEnd: (swiper: Swiper) => void; - - /** - * Event will be fired in the beginning of transition. - */ - transitionStart: (swiper: Swiper) => void; - - /** - * Event will be fired after transition. - */ - transitionEnd: (swiper: Swiper) => void; - - /** - * Event will be fired when user touch Swiper. Receives `pointerdown` event as an arguments. - */ - touchStart: (swiper: Swiper, event: MouseEvent | TouchEvent | PointerEvent) => void; - - /** - * Event will be fired when user touch and move finger over Swiper. Receives `pointermove` event as an arguments. - */ - touchMove: (swiper: Swiper, event: MouseEvent | TouchEvent | PointerEvent) => void; - - /** - * Event will be fired when user touch and move finger over Swiper in direction opposite to direction parameter. Receives `pointermove` event as an arguments. - */ - touchMoveOpposite: (swiper: Swiper, event: MouseEvent | TouchEvent | PointerEvent) => void; - - /** - * Event will be fired when user touch and move finger over Swiper and move it. Receives `pointermove` event as an arguments. - */ - sliderMove: (swiper: Swiper, event: MouseEvent | TouchEvent | PointerEvent) => void; - - /** - * Event will be fired when user release Swiper. Receives `pointerup` event as an arguments. - */ - touchEnd: (swiper: Swiper, event: MouseEvent | TouchEvent | PointerEvent) => void; - - /** - * Event will be fired when user click/tap on Swiper. Receives `pointerup` event as an arguments. - */ - click: (swiper: Swiper, event: MouseEvent | TouchEvent | PointerEvent) => void; - - /** - * Event will be fired when user click/tap on Swiper. Receives `pointerup` event as an arguments. - */ - tap: (swiper: Swiper, event: MouseEvent | TouchEvent | PointerEvent) => void; - - /** - * Event will be fired when user double tap on Swiper's container. Receives `pointerup` event as an arguments - */ - doubleTap: (swiper: Swiper, event: MouseEvent | TouchEvent | PointerEvent) => void; - - /** - * Event will be fired when Swiper progress is changed, as an arguments it receives progress that is always from 0 to 1 - */ - progress: (swiper: Swiper, progress: number) => void; - - /** - * Event will be fired when Swiper reach its beginning (initial position) - */ - reachBeginning: (swiper: Swiper) => void; - - /** - * Event will be fired when Swiper reach last slide - */ - reachEnd: (swiper: Swiper) => void; - - /** - * Event will be fired when Swiper goes to beginning or end position - */ - toEdge: (swiper: Swiper) => void; - - /** - * Event will be fired when Swiper goes from beginning or end position - */ - fromEdge: (swiper: Swiper) => void; - - /** - * Event will be fired when swiper's wrapper change its position. Receives current translate value as an arguments - */ - setTranslate: (swiper: Swiper, translate: number) => void; - - /** - * Event will be fired everytime when swiper starts animation. Receives current transition duration (in ms) as an arguments - */ - setTransition: (swiper: Swiper, transition: number) => void; - - /** - * Event will be fired on window resize right before swiper's onresize manipulation - */ - resize: (swiper: Swiper) => void; - - /** - * Event will be fired if observer is enabled and it detects DOM mutations - */ - observerUpdate: (swiper: Swiper) => void; - - /** - * Event will be fired right before "loop fix" - */ - beforeLoopFix: (swiper: Swiper) => void; - - /** - * Event will be fired after "loop fix" - */ - loopFix: (swiper: Swiper) => void; - - /** - * Event will be fired on breakpoint change - */ - breakpoint: (swiper: Swiper, breakpointParams: SwiperOptions) => void; - - /** - * !INTERNAL: Event will fired right before breakpoint change - */ - _beforeBreakpoint?: (swiper: Swiper, breakpointParams: SwiperOptions) => void; - - /** - * !INTERNAL: Event will fired after setting CSS classes on swiper container element - */ - _containerClasses?: (swiper: Swiper, classNames: string) => void; - - /** - * !INTERNAL: Event will fired after setting CSS classes on swiper slide element - */ - _slideClass?: (swiper: Swiper, slideEl: HTMLElement, classNames: string) => void; - - /** - * !INTERNAL: Event will fired after setting CSS classes on all swiper slides - */ - _slideClasses?: ( - swiper: Swiper, - slides: { slideEl: HTMLElement; classNames: string; index: number }[], - ) => void; - - /** - * !INTERNAL: Event will fired as soon as swiper instance available (before init) - */ - _swiper?: (swiper: Swiper) => void; - - /** - * !INTERNAL: Event will be fired on free mode touch end (release) and there will no be momentum - */ - _freeModeNoMomentumRelease?: (swiper: Swiper) => void; - - /** - * Event will fired on active index change - */ - activeIndexChange: (swiper: Swiper) => void; - /** - * Event will fired on snap index change - */ - snapIndexChange: (swiper: Swiper) => void; - /** - * Event will fired on real index change - */ - realIndexChange: (swiper: Swiper) => void; - /** - * Event will fired right after initialization - */ - afterInit: (swiper: Swiper) => void; - /** - * Event will fired right before initialization - */ - beforeInit: (swiper: Swiper) => void; - /** - * Event will fired before resize handler - */ - beforeResize: (swiper: Swiper) => void; - /** - * Event will fired before slide change transition start - */ - beforeSlideChangeStart: (swiper: Swiper) => void; - /** - * Event will fired before transition start - */ - beforeTransitionStart: (swiper: Swiper, speed: number, internal: any) => void; // what is internal? - /** - * Event will fired on direction change - */ - changeDirection: (swiper: Swiper) => void; - /** - * Event will be fired when user double click/tap on Swiper - */ - doubleClick: (swiper: Swiper, event: MouseEvent | TouchEvent | PointerEvent) => void; - /** - * Event will be fired on swiper destroy - */ - destroy: (swiper: Swiper) => void; - /** - * Event will be fired on momentum bounce - */ - momentumBounce: (swiper: Swiper) => void; - /** - * Event will be fired on orientation change (e.g. landscape -> portrait) - */ - orientationchange: (swiper: Swiper) => void; - /** - * Event will be fired in the beginning of animation of resetting slide to current one - */ - slideResetTransitionStart: (swiper: Swiper) => void; - /** - * Event will be fired in the end of animation of resetting slide to current one - */ - slideResetTransitionEnd: (swiper: Swiper) => void; - /** - * Event will be fired with first touch/drag move - */ - sliderFirstMove: (swiper: Swiper, event: TouchEvent) => void; - /** - * Event will be fired when number of slides has changed - */ - slidesLengthChange: (swiper: Swiper) => void; - /** - * Event will be fired when slides grid has changed - */ - slidesGridLengthChange: (swiper: Swiper) => void; - /** - * Event will be fired when snap grid has changed - */ - snapGridLengthChange: (swiper: Swiper) => void; - /** - * Event will be fired after swiper.update() call - */ - update: (swiper: Swiper) => void; - /** - * Event will be fired when swiper is locked (when `watchOverflow` enabled) - */ - lock: (swiper: Swiper) => void; - /** - * Event will be fired when swiper is unlocked (when `watchOverflow` enabled) - */ - unlock: (swiper: Swiper) => void; - // CORE_EVENTS_END -} - -interface SwiperEvents extends A11yEvents {} -interface SwiperEvents extends AutoplayEvents {} -interface SwiperEvents extends ControllerEvents {} -interface SwiperEvents extends CoverflowEffectEvents {} -interface SwiperEvents extends CubeEffectEvents {} -interface SwiperEvents extends FadeEffectEvents {} -interface SwiperEvents extends FlipEffectEvents {} -interface SwiperEvents extends CreativeEffectEvents {} -interface SwiperEvents extends CardsEffectEvents {} -interface SwiperEvents extends HashNavigationEvents {} -interface SwiperEvents extends HistoryEvents {} -interface SwiperEvents extends KeyboardEvents {} -interface SwiperEvents extends MousewheelEvents {} -interface SwiperEvents extends NavigationEvents {} -interface SwiperEvents extends PaginationEvents {} -interface SwiperEvents extends ParallaxEvents {} -interface SwiperEvents extends ScrollbarEvents {} -interface SwiperEvents extends ThumbsEvents {} -interface SwiperEvents extends VirtualEvents {} -interface SwiperEvents extends ZoomEvents {} -interface SwiperEvents extends FreeModeEvents {} diff --git a/build/assets/js/vendor/swiper/types/swiper-options.d.ts b/build/assets/js/vendor/swiper/types/swiper-options.d.ts deleted file mode 100644 index 6d0167f..0000000 --- a/build/assets/js/vendor/swiper/types/swiper-options.d.ts +++ /dev/null @@ -1,1210 +0,0 @@ -import type { A11yOptions } from './modules/a11y.d.ts'; -import type { AutoplayOptions } from './modules/autoplay.d.ts'; -import type { ControllerOptions } from './modules/controller.d.ts'; -import type { CoverflowEffectOptions } from './modules/effect-coverflow.d.ts'; -import type { CubeEffectOptions } from './modules/effect-cube.d.ts'; -import type { FadeEffectOptions } from './modules/effect-fade.d.ts'; -import type { FlipEffectOptions } from './modules/effect-flip.d.ts'; -import type { CreativeEffectOptions } from './modules/effect-creative.d.ts'; -import type { CardsEffectOptions } from './modules/effect-cards.d.ts'; -import type { HashNavigationOptions } from './modules/hash-navigation.d.ts'; -import type { HistoryOptions } from './modules/history.d.ts'; -import type { KeyboardOptions } from './modules/keyboard.d.ts'; -import type { MousewheelOptions } from './modules/mousewheel.d.ts'; -import type { NavigationOptions } from './modules/navigation.d.ts'; -import type { PaginationOptions } from './modules/pagination.d.ts'; -import type { ParallaxOptions } from './modules/parallax.d.ts'; -import type { ScrollbarOptions } from './modules/scrollbar.d.ts'; -import type { ThumbsOptions } from './modules/thumbs.d.ts'; -import type { VirtualOptions } from './modules/virtual.d.ts'; -import type { ZoomOptions } from './modules/zoom.d.ts'; -import type { FreeModeOptions } from './modules/free-mode.d.ts'; -import type { GridOptions } from './modules/grid.d.ts'; - -import type { CSSSelector, SwiperModule } from './shared.d.ts'; -import type { SwiperEvents } from './swiper-events.d.ts'; - -export interface SwiperOptions { - /** - * Array with Swiper modules - * - * @example - * ```js - * import Swiper from 'swiper'; - * import { Navigation, Pagination } from 'swiper/modules'; - * - * const swiper = new Swiper('.swiper', { - * modules: [ Navigation, Pagination ], - * }); - * ``` - */ - modules?: SwiperModule[]; - /** - * Inject text styles to the shadow DOM. Only for usage with Swiper Element - * - */ - injectStyles?: string[]; - /** - * Inject styles ``s to the shadow DOM. Only for usage with Swiper Element - * - */ - injectStylesUrls?: string[]; - /** - * Whether Swiper should be initialised automatically when you create an instance. - * If disabled, then you need to init it manually by calling `swiper.init()` - * - * @default true - */ - init?: boolean; - - /** - * Whether Swiper initially enabled. When Swiper is disabled, it will hide all navigation elements and won't respond to any events and interactions - * - * @default true - */ - enabled?: boolean; - - /** - * Swiper will recalculate slides position on window resize (orientationchange) - * - * @default true - */ - updateOnWindowResize?: boolean; - - /** - * When enabled it will use ResizeObserver (if supported by browser) on swiper container to detect container resize (instead of watching for window resize) - * - * @default true - */ - resizeObserver?: boolean; - - /** - * Index number of initial slide. - * - * @default 0 - */ - initialSlide?: number; - - /** - * Can be `'horizontal'` or `'vertical'` (for vertical slider). - * - * @default 'horizontal' - */ - direction?: 'horizontal' | 'vertical'; - - /** - * When enabled, will swipe slides only forward (one-way) regardless of swipe direction - * - * @default false - */ - - oneWayMovement?: boolean; - - /** - * Duration of transition between slides (in ms) - * - * @default 300 - */ - speed?: number; - - /** - * Enabled this option and plugin will set width/height on swiper wrapper equal to total size of all slides. - * Mostly should be used as compatibility fallback option for browser that don't support flexbox layout well - * - * @default false - */ - setWrapperSize?: boolean; - - /** - * Enabled this option and swiper will be operated as usual except it will not move, real translate values on wrapper will not be set. - * Useful when you may need to create custom slide transition - * - * @default false - */ - virtualTranslate?: boolean; - - /** - * Swiper width (in px). Parameter allows to force Swiper width. - * Useful only if you initialize Swiper when it is hidden and in SSR and Test environments for correct Swiper initialization - * - * @default null - * - * @note Setting this parameter will make Swiper not responsive - */ - width?: number | null; - - /** - * Swiper height (in px). Parameter allows to force Swiper height. - * Useful only if you initialize Swiper when it is hidden and in SSR and Test environments for correct Swiper initialization - * - * @default null - * - * @note Setting this parameter will make Swiper not responsive - */ - height?: number | null; - - /** - * Set to `true` and slider wrapper will adapt its height to the height of the currently active slide - * - * @default false - */ - autoHeight?: boolean; - - /** - * Set to `true` to round values of slides width and height to prevent blurry texts on usual - * resolution screens (if you have such) - * - * @default false - */ - roundLengths?: boolean; - - /** - * Set to `true` on Swiper for correct touch events interception. Use only on - * swipers that use same direction as the parent one - * - * @default false - */ - nested?: boolean; - - /** - * When enabled Swiper will automatically wrap slides with swiper-wrapper element, - * and will create required elements for navigation, pagination and scrollbar - * they are enabled (with their respective params object or with boolean `true`)) - * - * @default false - */ - createElements?: boolean; - - /** - * Event name prefix for all DOM events emitted by Swiper Element (web component) - * - * @default `swiper` - */ - eventsPrefix?: string; - - /** - * CSS selector for focusable elements. Swiping will be disabled on such elements if they are "focused" - * - * @default 'input, select, option, textarea, button, video, label' - */ - focusableElements?: string; - - /** - * If enabled (by default) and navigation elements' parameters passed as a string (like `".pagination"`) - * then Swiper will look for such elements through child elements first. - * Applies for pagination, prev/next buttons and scrollbar elements - * - * @default true - */ - uniqueNavElements?: boolean; - - /** - * Transition effect. Can be `'slide'`, `'fade'`, `'cube'`, `'coverflow'`, `'flip'` or `'creative'` - * - * @default 'slide' - */ - effect?: 'slide' | 'fade' | 'cube' | 'coverflow' | 'flip' | 'creative' | 'cards' | string; - - /** - * Fire Transition/SlideChange/Start/End events on swiper initialization. - * Such events will be fired on initialization in case of your initialSlide is not 0, or you use loop mode - * - * @default true - */ - runCallbacksOnInit?: boolean; - - /** - * When enabled Swiper will be disabled and hide navigation buttons on - * case there are not enough slides for sliding. - * - * @default true - */ - watchOverflow?: boolean; - - /** - * userAgent string. Required for browser/device detection when rendered on server-side - * - * @default null - */ - userAgent?: string | null; - - /** - * Required for active slide detection when rendered on server-side and enabled history - * - * @default null - */ - url?: string | null; - - /** - * Register event handlers - */ - on?: { - [event in keyof SwiperEvents]?: SwiperEvents[event]; - }; - - /** - * Add event listener that will be fired on all events - * - * @example - * ```js - * const swiper = new Swiper('.swiper', { - * onAny(eventName, ...args) { - * console.log('Event: ', eventName); - * console.log('Event data: ', args); - * } - * }); - * ``` - */ - onAny?(handler: (eventName: string, ...args: any[]) => void): void; - - /** - * When enabled it will use modern CSS Scroll Snap API. - * It doesn't support all of Swiper's features, but potentially should bring a much better performance in simple configurations. - * - * This is what is not supported when it is enabled: - * - * - Cube effect - * - `speed` parameter may not have no effect - * - All transition start/end related events (use `slideChange` instead) - * - `slidesPerGroup` has limited support - * - `simulateTouch` doesn't have effect and "dragging" with mouse doesn't work - * - `resistance` doesn't have any effect - * - `allowSlidePrev/Next` - * - `swipeHandler` - * - * In case if you use it with other effects, especially 3D effects, it is required to wrap slide's content with `
    ` element. And if you use any custom styles on slides (like background colors, border radius, border, etc.), they should be set on `swiper-slide-transform` element instead. - * - * @example - * ```html - *
    - *
    - *
    - * - *
    - * ... slide content ... - *
    - *
    - * ... - *
    - *
    - * - * ``` - * - * @default false - */ - cssMode?: boolean; - - // Slides grid - - /** - * Distance between slides in px. - * - * @default 0 - * - * @note If you use "margin" css property to the elements which go into Swiper in which you pass "spaceBetween" into, navigation might not work properly. - */ - spaceBetween?: number | string; - - /** - * Number of slides per view (slides visible at the same time on slider's container). - * @note `slidesPerView: 'auto'` is currently not compatible with multirow mode, when `grid.rows` > 1 - * - * @default 1 - */ - slidesPerView?: number | 'auto'; - - /** - * If total number of slides less than specified here value, then Swiper will enable `backface-visibility: hidden` on slide elements to reduce visual "flicker" in Safari. - * - * @note It is not recommended to enable it on large amount of slides as it will reduce performance - * - * @default 10 - */ - maxBackfaceHiddenSlides?: number; - - /** - * Set numbers of slides to define and enable group sliding. Useful to use with slidesPerView > 1 - * - * @default 1 - */ - slidesPerGroup?: number; - - /** - * The parameter works in the following way: If `slidesPerGroupSkip` equals `0` (default), no slides are excluded from grouping, and the resulting behaviour is the same as without this change. - * - * If `slidesPerGroupSkip` is equal or greater than `1` the first X slides are treated as single groups, whereas all following slides are grouped by the `slidesPerGroup` value. - * - * @default 0 - */ - slidesPerGroupSkip?: number; - - /** - * This param intended to be used only with `slidesPerView: 'auto'` and `slidesPerGroup: 1`. When enabled, it will skip all slides in view on `.slideNext()` & `.slidePrev()` methods calls, on Navigation "buttons" clicks and in autoplay. - * - * @default false - */ - slidesPerGroupAuto?: boolean; - - /** - * If `true`, then active slide will be centered, not always on the left side. - * - * @default false - */ - centeredSlides?: boolean; - - /** - * If `true`, then active slide will be centered without adding gaps at the beginning and end of slider. - * Required `centeredSlides: true`. Not intended to be used with `loop` or `pagination` - * - * @default false - */ - centeredSlidesBounds?: boolean; - - /** - * Add (in px) additional slide offset in the beginning of the container (before all slides) - * - * @default 0 - */ - slidesOffsetBefore?: number; - - /** - * Add (in px) additional slide offset in the end of the container (after all slides) - * - * @default 0 - */ - slidesOffsetAfter?: number; - - /** - * Normalize slide index. - * - * @default true - */ - normalizeSlideIndex?: boolean; - - /** - * When enabled it center slides if the amount of slides less than `slidesPerView`. Not intended to be used `loop` mode and `grid.rows` - * - * @default false - */ - centerInsufficientSlides?: boolean; - - /** - * This option may a little improve desktop usability. If `true`, user will see the "grab" cursor when hover on Swiper - * - * @default false - */ - grabCursor?: boolean; - - /** - * Target element to listen touch events on. Can be `'container'` (to listen for touch events on swiper) or `'wrapper'` - * (to listen for touch events on swiper-wrapper) - * - * @default 'wrapper' - */ - touchEventsTarget?: 'container' | 'wrapper'; - - /** - * Touch ratio - * - * @default 1 - */ - touchRatio?: number; - - /** - * Allowable angle (in degrees) to trigger touch move - * - * @default 45 - */ - touchAngle?: number; - - /** - * If `true`, Swiper will accept mouse events like touch events (click and drag to change slides) - * - * @default true - */ - simulateTouch?: boolean; - - /** - * Set to `false` if you want to disable short swipes - * - * @default true - */ - shortSwipes?: boolean; - - /** - * Set to `false` if you want to disable long swipes - * - * @default true - */ - longSwipes?: boolean; - - /** - * Ratio to trigger swipe to next/previous slide during long swipes - * - * @default 0.5 - */ - longSwipesRatio?: number; - - /** - * Minimal duration (in ms) to trigger swipe to next/previous slide during long swipes - * - * @default 300 - */ - longSwipesMs?: number; - - /** - * If disabled, then slider will be animated only when you release it, it will not move while you hold your finger on it - * - * @default true - */ - followFinger?: boolean; - - /** - * If `false`, then the only way to switch the slide is use of external API functions like slidePrev or slideNext - * - * @default true - */ - allowTouchMove?: boolean; - - /** - * Threshold value in px. If "touch distance" will be lower than this value then swiper will not move - * - * @default 5 - */ - threshold?: number; - - /** - * If disabled, `pointerdown` event won't be prevented - * - * @default true - */ - touchStartPreventDefault?: boolean; - - /** - * Force to always prevent default for `touchstart` (`pointerdown`) event - * - * @default false - */ - touchStartForcePreventDefault?: boolean; - - /** - * If enabled, then propagation of "touchmove" will be stopped - * - * @default false - */ - touchMoveStopPropagation?: boolean; - - /** - * Enable to release Swiper events for swipe-back work in app. If set to `'prevent'` then it will prevent system swipe-back navigation instead. This feature works only with "touch" events (and not pointer events), so it will work on iOS/Android devices and won't work on Windows devices with pointer (touch) events. - * - * @default false - */ - edgeSwipeDetection?: boolean | string; - - /** - * Area (in px) from left edge of the screen to release touch events for swipe-back in app - * - * @default 20 - */ - edgeSwipeThreshold?: number; - - /** - * Enable to release touch events on slider edge position (beginning, end) to allow for further page scrolling. This feature works only with "touch" events (and not pointer events), so it will work on iOS/Android devices and won't work on Windows devices with pointer events. Also `threshold` parameter must be set to `0` - * - * @default false - */ - touchReleaseOnEdges?: boolean; - - /** - * Passive event listeners will be used by default where possible to improve scrolling performance on mobile devices. - * But if you need to use `e.preventDefault` and you have conflict with it, then you should disable this parameter - * - * @default true - */ - passiveListeners?: boolean; - - // Touch Resistance - - /** - * Set to `false` if you want to disable resistant bounds - * - * @default true - */ - resistance?: boolean; - - /** - * This option allows you to control resistance ratio - * - * @default 0.85 - */ - resistanceRatio?: number; - - // Swiping / No swiping - /** - * When enabled it won't allow to change slides by swiping or navigation/pagination buttons during transition - * - * @default false - */ - preventInteractionOnTransition?: boolean; - - /** - * Set to `false` to disable swiping to previous slide direction (to left or top) - * - * @default true - */ - allowSlidePrev?: boolean; - - /** - * Set to `false` to disable swiping to next slide direction (to right or bottom) - * - * @default true - */ - allowSlideNext?: boolean; - - /** - * Enable/disable swiping on elements matched to class specified in `noSwipingClass` - * - * @default true - */ - noSwiping?: boolean; - - /** - * Specify `noSwiping`'s element css class - * - * @default 'swiper-no-swiping' - */ - noSwipingClass?: string; - - /** - * Can be used instead of `noSwipingClass` to specify elements to disable swiping on. - * For example `'input'` will disable swiping on all inputs - * - * @default - */ - noSwipingSelector?: string; - - /** - * String with CSS selector or HTML element of the container with pagination that will work as only available handler for swiping - * - * @default null - */ - swipeHandler?: CSSSelector | HTMLElement | null; - - // Clicks - /** - * Set to `true` to prevent accidental unwanted clicks on links during swiping - * - * @default true - */ - preventClicks?: boolean; - - /** - * Set to `true` to stop clicks event propagation on links during swiping - * - * @default true - */ - preventClicksPropagation?: boolean; - - /** - * Set to `true` and click on any slide will produce transition to this slide - * - * @default false - */ - slideToClickedSlide?: boolean; - - // Progress - /** - * Enable this feature to calculate each slides progress and visibility (slides in viewport will have additional visible class) - * - * @default false - */ - watchSlidesProgress?: boolean; - - /** - * Set to `true` to enable continuous loop mode - * - * Because of nature of how the loop mode works (it will rearrange slides), total number of slides must be: - * - * - more than or equal to `slidesPerView` + `slidesPerGroup` - * - even to `slidesPerGroup` (or use `loopAddBlankSlides` parameter) - * - even to `grid.rows` (or use `loopAddBlankSlides` parameter) - * - * @default false - * - */ - loop?: boolean; - - /** - * Automatically adds blank slides if you use Grid or `slidesPerGroup` and the total amount of slides is not even to `slidesPerGroup` or to `grid.rows` - * - * - * @default false - * - */ - loopAddBlankSlides?: boolean; - - /** - * Allows to increase amount of looped slides - * - * @default 0 - */ - loopAdditionalSlides?: number; - - /** - * If enabled then slideNext/Prev will do nothing while slider is animating in loop mode - * - * @default true - */ - loopPreventsSliding?: boolean; - - /** - * Set to `true` to enable "rewind" mode. When enabled, clicking "next" navigation button (or calling `.slideNext()`) when on last slide will slide back to the first slide. Clicking "prev" navigation button (or calling `.slidePrev()`) when on first slide will slide forward to the last slide. - * - * @default false - * - * @note Should not be used together with `loop` mode - */ - rewind?: boolean; - - /** - * Allows to set different parameter for different responsive breakpoints (screen sizes). Not all parameters can be changed in breakpoints, only those which do not require different layout and logic, like `slidesPerView`, `slidesPerGroup`, `spaceBetween`, `grid.rows`. Such parameters like `loop` and `effect` won't work - * - * @example - * ```js - * const swiper = new Swiper('.swiper', { - * // Default parameters - * slidesPerView: 1, - * spaceBetween: 10, - * // Responsive breakpoints - * breakpoints: { - * // when window width is >= 320px - * 320: { - * slidesPerView: 2, - * spaceBetween: 20 - * }, - * // when window width is >= 480px - * 480: { - * slidesPerView: 3, - * spaceBetween: 30 - * }, - * // when window width is >= 640px - * 640: { - * slidesPerView: 4, - * spaceBetween: 40 - * } - * } - * }) - * ``` - * - * @example - * ```js - * const swiper = new Swiper('.swiper', { - * slidesPerView: 1, - * spaceBetween: 10, - * // using "ratio" endpoints - * breakpoints: { - * '@0.75': { - * slidesPerView: 2, - * spaceBetween: 20, - * }, - * '@1.00': { - * slidesPerView: 3, - * spaceBetween: 40, - * }, - * '@1.50': { - * slidesPerView: 4, - * spaceBetween: 50, - * }, - * } - * }); - * ``` - */ - breakpoints?: { - [width: number]: SwiperOptions; - [ratio: string]: SwiperOptions; - }; - - /** - * Base for breakpoints (beta). Can be `window` or `container`. If set to `window` (by default) then breakpoint keys mean window width. If set to `container` then breakpoint keys treated as swiper container width - * - * @default 'window' - */ - breakpointsBase?: string; - - // Observer - /** - * Set to `true` to enable Mutation Observer on Swiper and its elements. In this case Swiper will be updated (reinitialized) each time if you change its style (like hide/show) or modify its child elements (like adding/removing slides) - * - * @default false - */ - observer?: boolean; - /** - * Set to `true` if you also need to watch Mutations for Swiper slide children elements - * - * @default false - */ - observeSlideChildren?: boolean; - /** - * Set to `true` if you also need to watch Mutations for Swiper parent elements - * - * @default false - */ - observeParents?: boolean; - - // Namespace - /** - * The beginning of the modifier CSS class that can be added to swiper container depending on different parameters - * - * @default 'swiper-' - */ - containerModifierClass?: string; - - /** - * CSS class name of slide - * - * @default 'swiper-slide' - * - * @note By changing classes you will also need to change Swiper's CSS to reflect changed classes - * - * @note Not supported in Swiper React/Vue components - */ - slideClass?: string; - - /** - * CSS class name of currently active slide - * - * @default 'swiper-slide-active' - * - * @note By changing classes you will also need to change Swiper's CSS to reflect changed classes - * - * @note Not supported in Swiper React/Vue components - */ - slideActiveClass?: string; - - /** - * CSS class name of currently/partially visible slide - * - * @default 'swiper-slide-visible' - * - * @note By changing classes you will also need to change Swiper's CSS to reflect changed classes - * - * @note Not supported in Swiper React/Vue - */ - slideVisibleClass?: string; - - /** - * CSS class name of fully (when whole slide is in the viewport) visible slide - * - * @default 'swiper-slide-fully-visible' - * - * @note Not supported in Swiper React/Vue - */ - slideFullyVisibleClass?: string; - - /** - * CSS class name of the blank slide added by the loop mode (when `loopAddBlankSlides` is enabled) - * - * @default 'swiper-slide-blank' - * - * @note Not supported in Swiper React/Vue - */ - slideBlankClass?: string; - - /** - * CSS class name of slide which is right after currently active slide - * - * @default 'swiper-slide-next' - * - * @note By changing classes you will also need to change Swiper's CSS to reflect changed classes - * - * @note Not supported in Swiper React/Vue - */ - slideNextClass?: string; - - /** - * CSS class name of slide which is right before currently active slide - * - * @default 'swiper-slide-prev' - * - * @note By changing classes you will also need to change Swiper's CSS to reflect changed classes - * - * @note Not supported in Swiper React/Vue - */ - slidePrevClass?: string; - - /** - * CSS class name of slides' wrapper - * - * @default 'swiper-wrapper' - * - * @note By changing classes you will also need to change Swiper's CSS to reflect changed classes - * - * @note Not supported in Swiper React/Vue - * - */ - wrapperClass?: string; - - /** - * CSS class name of lazy preloader - * - * @default 'swiper-lazy-preloader' - */ - lazyPreloaderClass?: string; - - /** - * Number of next and previous slides to preload. Only applicable if using lazy loading. - * - * @default 0 - */ - lazyPreloadPrevNext?: number; - - /** - * Object with a11y parameters or boolean `true` to enable with default settings. - * - * @example - * ```js - * const swiper = new Swiper('.swiper', { - * a11y: { - * prevSlideMessage: 'Previous slide', - * nextSlideMessage: 'Next slide', - * }, - * }); - * ``` - */ - a11y?: A11yOptions; - - /** - * Object with autoplay parameters or boolean `true` to enable with default settings - * - * @example - * ```js - * const swiper = new Swiper('.swiper', { - * autoplay: { - * delay: 5000, - * }, - *}); - * ``` - */ - autoplay?: AutoplayOptions | boolean; - - /** - * Object with controller parameters or boolean `true` to enable with default settings - * - * @example - * ```js - * const swiper = new Swiper('.swiper', { - * controller: { - * inverse: true, - * }, - * }); - * ``` - */ - controller?: ControllerOptions; - - /** - * Object with Coverflow-effect parameters. - * - * @example - * ```js - * const swiper = new Swiper('.swiper', { - * effect: 'coverflow', - * coverflowEffect: { - * rotate: 30, - * slideShadows: false, - * }, - * }); - * ``` - */ - coverflowEffect?: CoverflowEffectOptions; - - /** - * Object with Cube-effect parameters - * - * @example - * ```js - * const swiper = new Swiper('.swiper', { - * effect: 'cube', - * cubeEffect: { - * slideShadows: false, - * }, - * }); - * ``` - */ - cubeEffect?: CubeEffectOptions; - - /** - * Object with Fade-effect parameters - * - * @example - * ```js - * const swiper = new Swiper('.swiper', { - * effect: 'fade', - * fadeEffect: { - * crossFade: true - * }, - * }); - * ``` - */ - fadeEffect?: FadeEffectOptions; - - /** - * Object with Flip-effect parameters - * - * @example - * ```js - * const swiper = new Swiper('.swiper', { - * effect: 'flip', - * flipEffect: { - * slideShadows: false, - * }, - * }); - * ``` - */ - flipEffect?: FlipEffectOptions; - - /** - * Object with Creative-effect parameters - * - * @example - * ```js - * const swiper = new Swiper('.swiper', { - * effect: 'creative', - * creativeEffect: { - * prev: { - * // will set `translateZ(-400px)` on previous slides - * translate: [0, 0, -400], - * }, - * next: { - * // will set `translateX(100%)` on next slides - * translate: ['100%', 0, 0], - * }, - * }, - * }); - * ``` - */ - creativeEffect?: CreativeEffectOptions; - - /** - * Object with Cards-effect parameters - * - * @example - * ```js - * const swiper = new Swiper('.swiper', { - * effect: 'cards', - * cardsEffect: { - * // ... - * }, - * }); - * ``` - */ - cardsEffect?: CardsEffectOptions; - - /** - * Enables hash url navigation to for slides. - * Object with hash navigation parameters or boolean `true` to enable with default settings - * - * @example - * ```js - * const swiper = new Swiper('.swiper', { - * hashNavigation: { - * replaceState: true, - * }, - * }); - * ``` - */ - hashNavigation?: HashNavigationOptions | boolean; - - /** - * Enables history push state where every slide will have its own url. In this parameter you have to specify main slides url like `"slides"` and specify every slide url using `data-history` attribute. - * - * Object with history navigation parameters or boolean `true` to enable with default settings - * - * @example - * ```js - * const swiper = new Swiper('.swiper', { - * history: { - * replaceState: true, - * }, - * }); - * ``` - * - * @example - * ```html - * - *
    - * ``` - */ - history?: HistoryOptions | boolean; - - /** - * Enables navigation through slides using keyboard. Object with keyboard parameters or boolean `true` to enable with default settings - * - * @example - * ```js - * const swiper = new Swiper('.swiper', { - * keyboard: { - * enabled: true, - * onlyInViewport: false, - * }, - * }); - * ``` - */ - keyboard?: KeyboardOptions | boolean; - - /** - * Enables navigation through slides using mouse wheel. Object with mousewheel parameters or boolean `true` to enable with default settings - * - * @example - * ```js - * const swiper = new Swiper('.swiper', { - * mousewheel: { - * invert: true, - * }, - * }); - * ``` - */ - mousewheel?: MousewheelOptions | boolean; - - /** - * Object with navigation parameters or boolean `true` to enable with default settings. - * - * @example - * ```js - * const swiper = new Swiper('.swiper', { - * navigation: { - * nextEl: '.swiper-button-next', - * prevEl: '.swiper-button-prev', - * }, - * }); - * ``` - */ - navigation?: NavigationOptions | boolean; - - /** - * Object with pagination parameters or boolean `true` to enable with default settings. - * - * @example - * ```js - * const swiper = new Swiper('.swiper', { - * pagination: { - * el: '.swiper-pagination', - * type: 'bullets', - * }, - * }); - * ``` - */ - pagination?: PaginationOptions | boolean; - - /** - * Object with parallax parameters or boolean `true` to enable with default settings. - * - * @example - * ```js - * const swiper = new Swiper('.swiper', { - * parallax: true, - * }); - * ``` - */ - parallax?: ParallaxOptions | boolean; - - /** - * Object with scrollbar parameters or boolean `true` to enable with default settings. - * - * @example - * ```js - * const swiper = new Swiper('.swiper', { - * scrollbar: { - * el: '.swiper-scrollbar', - * draggable: true, - * }, - * }); - * ``` - */ - scrollbar?: ScrollbarOptions | boolean; - - /** - * Object with thumbs component parameters - * - * @example - * ```js - * const swiper = new Swiper('.swiper', { - * ... - * thumbs: { - * swiper: thumbsSwiper - * } - * }); - * ``` - */ - thumbs?: ThumbsOptions; - - /** - * Enables virtual slides functionality. Object with virtual slides parameters or boolean `true` to enable with default settings. - * - * @example - * ```js - * const swiper = new Swiper('.swiper', { - * virtual: { - * slides: ['Slide 1', 'Slide 2', 'Slide 3', 'Slide 4', 'Slide 5'], - * }, - * }); - * ``` - */ - virtual?: VirtualOptions | boolean; - - /** - * Enables zooming functionality. Object with zoom parameters or boolean `true` to enable with default settings - * - * @example - * ```js - * const swiper = new Swiper('.swiper', { - * zoom: { - * maxRatio: 5, - * }, - * }); - * ``` - */ - zoom?: ZoomOptions | boolean; - - /** - * Enables free mode functionality. Object with free mode parameters or boolean `true` to enable with default settings. - * - * @example - * ```js - * const swiper = new Swiper('.swiper', { - * freeMode: true, - * }); - * - * const swiper = new Swiper('.swiper', { - * freeMode: { - * enabled: true, - * sticky: true, - * }, - * }); - * ``` - */ - freeMode?: FreeModeOptions | boolean; - - /** - * Object with grid parameters to enable "multirow" slider. - * - * @example - * ```js - * const swiper = new Swiper('.swiper', { - * grid: { - * rows: 2, - * }, - * }); - * ``` - */ - grid?: GridOptions; - - /** - * !INTERNAL When enabled will emit "_containerClasses" and "_slideClass" events - */ - _emitClasses?: boolean; -} diff --git a/build/assets/video/iuav-architettura.mp4 b/build/assets/video/iuav-architettura.mp4 deleted file mode 100755 index d954bf8..0000000 --- a/build/assets/video/iuav-architettura.mp4 +++ /dev/null Binary files differ diff --git a/build/assets/video/iuav-design.mp4 b/build/assets/video/iuav-design.mp4 deleted file mode 100755 index c2eb1b3..0000000 --- a/build/assets/video/iuav-design.mp4 +++ /dev/null Binary files differ diff --git a/build/assets/video/test.mp4 b/build/assets/video/test.mp4 deleted file mode 100644 index ed139d6..0000000 --- a/build/assets/video/test.mp4 +++ /dev/null Binary files differ diff --git a/build/index.html b/build/index.html deleted file mode 100644 index 3e09703..0000000 --- a/build/index.html +++ /dev/null @@ -1,2129 +0,0 @@ - - - - - - - - - Università Iuav di Venezia - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - -
    - -
    - - - - - -
    - - - - - -
    - - - - - - - - - - \ No newline at end of file diff --git a/build/pages/boilerplate.html b/build/pages/boilerplate.html deleted file mode 100644 index 8f8171e..0000000 --- a/build/pages/boilerplate.html +++ /dev/null @@ -1,2159 +0,0 @@ - - - - - - - - - Università Iuav di Venezia - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - -
    - -
    - - - - -
    - - -
    -
    -

    Testo semplice

    -
    -
    -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus nec felis sed mauris maximus dictum. Quisque rutrum odio at lacinia pellentesque. Integer in sapien purus. Donec finibus, odio nec accumsan porttitor, velit nisl feugiat felis, eget aliquam dui purus et mi. Nulla vel lacinia ligula. Vestibulum a malesuada ante, in luctus sapien. Maecenas maximus ac quam sit amet pulvinar. Nulla quis ornare felis. Pellentesque tempus, urna et fermentum aliquet, tortor ipsum mattis lectus, ac blandit massa libero pellentesque magna. Nunc dignissim eros nunc, non condimentum turpis tristique vel. Aenean efficitur lectus vel enim vulputate tempus. Sed tincidunt arcu at dui facilisis ullamcorper.

    -
    -
    -
    - - -
    -
    -

    Testo semplice

    -
    -
    -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus nec felis sed mauris maximus dictum. Quisque rutrum odio at lacinia pellentesque. Integer in sapien purus. Donec finibus, odio nec accumsan porttitor, velit nisl feugiat felis, eget aliquam dui purus et mi. Nulla vel lacinia ligula. Vestibulum a malesuada ante, in luctus sapien. Maecenas maximus ac quam sit amet pulvinar. Nulla quis ornare felis. Pellentesque tempus, urna et fermentum aliquet, tortor ipsum mattis lectus, ac blandit massa libero pellentesque magna. Nunc dignissim eros nunc, non condimentum turpis tristique vel. Aenean efficitur lectus vel enim vulputate tempus. Sed tincidunt arcu at dui facilisis ullamcorper.

    -

    Sottotitolo
    Aliquam ut ligula rutrum, iaculis lorem vel, blandit magna. Donec tempus ut arcu et porta. Sed sit amet sapien in metus bibendum aliquet. Nam porta facilisis augue. Sed pellentesque diam vitae dolor dapibus, at mollis nisi rhoncus. Sed non ultrices enim. Nulla volutpat lacinia nunc eget viverra. Cras tristique est id lorem blandit malesuada. Interdum et malesuada fames ac ante ipsum primis in faucibus.

    -
    -
    -
    - - - - - -
    - - - - - - - - - - \ No newline at end of file diff --git a/build/pages/corsi-laurea/architettura.html b/build/pages/corsi-laurea/architettura.html deleted file mode 100644 index a55a31a..0000000 --- a/build/pages/corsi-laurea/architettura.html +++ /dev/null @@ -1,3050 +0,0 @@ - - - - - - - - - Università Iuav di Venezia - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - -
    - -
    - - - - - - -
    - -
    - -
    - - - -
    -
    -

    La lunga tradizione della scuola di architettura, da Aldo Rossi a Carlo Scarpa

    -
    -
    - -
    - - - - - -
    -
    -
    -

    Per chi sceglie Architettura, il luogo in cui si studia è particolarmente importante. E Venezia è la scuola del progetto. Studiare Architettura a Venezia significa vivere un'esperienza di studi unica, in una città che offre una lezione costante di storia, di arte, di sostenibilità.

    -

    I corsi di laurea in Architettura Iuav interpretano i bisogni di un mondo della professione in evoluzione: oggi un architetto deve essere in grado di leggere i luoghi, conoscerne la storia, coordinare competenze disciplinari diverse. Deve sapere comporre sensibilità umanistica, conoscenze tecniche e senso civico, per collaborare alla costruzione di spazi, città e ambienti sostenibili. Studiare Architettura a Venezia significa intraprendere un percorso orientato alla formazione di un progettista consapevole, capace di prendersi cura dell’ambiente fisico in cui vive una collettività e consegnarlo al futuro.

    -

    Il corso si caratterizza per il confronto continuo fra teoria e pratica, tra sapere e saper fare. Il laboratorio integrato è lo spazio della sperimentazione, dove chi studia verifica le conoscenze acquisite e le relazioni interdisciplinari che definiscono un progetto di architettura. Il percorso formativo trasmette le conoscenze culturali, metodologiche e tecniche che, alla fine del triennio, permettono al laureato di operare professionalmente con competenza e autonomia e offrire la base per proseguire gli studi con il corso di laurea magistrale. I workshop e i corsi monodisciplinari costruiscono un percorso ricco e articolato, che favorisce la maturazione di capacità critiche e pratico-operative. Il primo anno fornisce gli orizzonti culturali e i linguaggi di base; il secondo è dedicato alle tecniche costruttive e di controllo ambientale, mentre il terzo è focalizzato sul progetto urbano contemporaneo. L’esperienza centrale del triennio sono i workshop estivi di Architettura: tre settimane di progettazione intensiva sotto la guida di architetti di fama internazionale. Un’esperienza di straordinaria efficacia che non ha uguali nel mondo della formazione universitaria.

    - - - - -
    -
    -
    - -
    -
    -
    -

    Classe

    -

    L-17 - Classe delle lauree in Scienze dell'architettura

    -
    -
    -

    Titolo ottenuto

    -

    Laurea triennale in Architettura

    -
    -
    -

    Crediti

    -

    180 CFU

    -
    -
    -

    Durata

    -

    3 anni

    -
    -
    -

    Coordinamento

    -

    Mauro Cristina Marzo

    -
    -
    -

    Lingua

    -

    Italiano

    -
    -
    -

    Sede

    -

    Venezia

    -
    -
    -

    Dipartimento

    -

    Dipartimento di Culture del progetto

    -
    -
    -

    Requisiti di accesso

    -

    Titolo di scuola superiore
    Titolo straniero

    -
    -
    -

    Posti disponibili

    -

    420

    -
    -
    -

    Ripartizione dei posti disponibili

    -

    410 posti per candidati comunitari e non comunitari regolarmente soggiornanti in Italia
    10 posti per candidati non comunitari residenti all’estero

    -
    -
    -
    - - -
    -
    - - -
    - - -
    -
    -

    Piano di studi

    -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - - -
    -
    -
    -
    -
    -
    -
    -
    - - - -
    - - - - - - -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque quis dolor eu arcu interdum laoreet. Mauris sodales rhoncus tellus, nec placerat ligula elementum ultricies. Integer nec congue quam. Integer lobortis justo dui, eget gravida est vestibulum in quisque quis dolor eu arcu.

    -
    - - - - -
    - - -
    - - - - - - -
    -

    Prova titolo
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque quis dolor eu arcu interdum laoreet. Mauris sodales rhoncus tellus, nec placerat ligula elementum ultricies. Integer nec congue quam. Integer lobortis justo dui, eget gravida est vestibulum in quisque quis dolor eu arcu.

    -
    - -
    -
    -
    -

    Contributo universitario

    -

    2.743,10 €
    Informazioni sulle riduzioni per ISEE inferiore a 30.000 €

    -
    -
    -

    Altre tasse

    -

    184 €
    tassa regionale

    16 €
    imposta di bollo

    -
    -
    -

    Spese aggiuntive

    -

    Potrebbe essere necessario coprire costi aggiuntivi che non sono inclusi nelle tasse universitarie, come alloggi, trasporti e materiali. Maggiori informazioni sulle spese aggiuntive

    -
    -
    -

    Borse di studio

    -

    Nullam imperdiet sollicitudin tempus. Duis id risus semper, pretium neque in, sagittis massa. Nullam facilisis a condimentum. Maggiori informazioni sulle borse di studio. Maggiori informazioni sulle borse di studio

    -
    -
    -
    -
    - -
    - - - -
    - - -
    - - - - - - -
    - - -
    - - - - - - -
    - - -
    - - -
    -
    -

    Domande frequenti

    -
    -
    - - - - -
    - - -
    - - -
    - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id? -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus

    -
    -
    - - - - -
    - Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus? -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus

    -
    -
    - - - - -
    - Mauris sodales rhoncus tellus, nec placerat ligula elementum ultricies. Integer nec congue quam? -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus

    -
    -
    - - - - -
    - Integer lobortis justo dui, eget gravida est vestibulum in quisque quis dolor eu arcu? -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus

    -
    -
    - - -
    -
    - - -
    - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id? -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus

    -
    -
    - - - - -
    - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id? -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus

    -
    -
    - - - - -
    - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id? -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus

    -
    -
    - - - - -
    - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id? -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus

    -
    -
    - - - - -
    -
    - -
    - - - - -
    - - -
    -

    Contatti principali per architettura

    -
    -
    -
    -
    -

    Gestione didattica e servizi agli studenti

    -
    - -
    -
    -

    Il servizio si occupa della definizione e gestione degli orari delle lezioni, delle iscrizioni alle attività didattiche e degli appelli d’esame. Indirizza gli studenti verso le attività didattiche da sostenere per lo svolgimento del proprio piano di studi, rilascia i programmi dei corsi, si occupa della gestione degli spazi dedicati alla didattica.

    -
    - -
    -
    -
    -
    -

    Iuav Infopoint

    -
    - -
    -
    -

    Applicazione web che offre un unico canale di comunicazione attraverso il quale puoi inviare le tue richieste agli uffici dell’ateneo.

    -
    - -
    -
    -
    -
    -

    Contatti principali per architettura

    -
    -
    -
    -
    -

    Cotonificio

    -
    - -
    - -
    -
    -
    -
    -

    Mauro Cristina Marzo

    -
    - -
    - -
    -
    -
    -
    - -
    - - - - - -
    - - - - - - - - - - \ No newline at end of file diff --git a/build/pages/corsi-laurea/design-prodotto.html b/build/pages/corsi-laurea/design-prodotto.html deleted file mode 100644 index 78a71fc..0000000 --- a/build/pages/corsi-laurea/design-prodotto.html +++ /dev/null @@ -1,3253 +0,0 @@ - - - - - - - - - Università Iuav di Venezia - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - -
    - -
    - - - - - - -
    - -
    - -
    - - - -
    -
    -

    Progettazione e sviluppo tra innovazione e tradizione

    -
    -
    - -
    - - - - - -
    -
    -
    -

    I designer sono figure in grado di progettare e sviluppare prodotti, servizi, sistemi grafici, ambienti e attrezzature, operando a cavallo fra diverse discipline e confrontandosi con tutte le attività che contribuiscono al processo realizzativo.

    -

    Il percorso triennale in Design all’Università Iuav di Venezia offre l’opportunità di sperimentare sia ambiti tradizionalmente legati al progetto come gli oggetti d’uso o l’editoria, sia temi emergenti della contemporaneità come il benessere individuale e sociale, la sostenibilità ambientale, l’energia, le sfide della digitalizzazione.br>Rispondendo con completezza alle esigenze del tessuto economico e produttivo, l’articolato programma formativo include, oltre ai laboratori – guidati da professionisti esperti – corsi di storia, teoria, critica, informatica, economia, e prevede anche attività didattiche diverse come workshop, seminari, iniziative culturali e tirocini.
    A supporto delle attività curriculari sono a disposizione degli studenti laboratori attrezzati di informatica, fotografia, video, modellistica e prototipazione.

    -

    Il laureato può intraprendere attività professionali in aziende, studi di progettazione, industrie creative, editoria specializzata, imprese manifatturiere nei settori della moda e delle arti, in istituzioni pubbliche o private: per esempio musei, gallerie, centri di produzione video e multimediale, centri di documentazione e archivi.

    - - -
    -
    - -
    -
    -

    Coordinatore e studenti raccontano il corso di laurea. Video © Nome Cognome

    -
    -
    -
    -
    -
    - -
    -
    -
    -

    Classe

    -

    L-4 - Classe delle lauree in Disegno industriale

    -
    -
    -

    Titolo ottenuto

    -

    Laurea triennale in Disegno industriale

    -
    -
    -

    Crediti

    -

    180 CFU

    -
    -
    -

    Durata

    -

    3 anni

    -
    -
    -

    Coordinamento

    -

    Fiorella Bulegato

    -
    -
    -

    Lingua

    -

    Italiano

    -
    -
    -

    Sede

    -

    Venezia

    -
    -
    -

    Dipartimento

    -

    Dipartimento di Culture del progetto

    -
    -
    -

    Requisiti di accesso

    -

    Titolo di scuola superiore
    Titolo straniero

    -
    -
    -

    Posti disponibili

    -

    180

    -
    -
    -
    - - -
    -
    - - -
    -
    -
    - - -
    -
    -
    -
    -
    -
    - - - - Curriculum Interior Design - Immagine 1 - -
    -
    - - - - Curriculum Interior Design - Immagine 2 - -
    -
    - - - - Curriculum Interior Design - Immagine 3 - -
    -
    - - - - Curriculum Interior Design - Immagine 4 - -
    -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    -
    -
    -
    - Interior design allo Iuav è un percorso di studio unico nel panorama nazionale. Muovendoti fra discipline diverse come exhibit, retail, interior, interaction e visual design, imparerai a coordinare progetti complessi per tutti quegli spazi che definiscono la nostra vita quotidiana. -
    -
    -
    -
    -
    -

    Referente

    -

    Emanuela Bonini Lessing

    -
    -
    -

    Posti disponibili

    -

    60

    -
    -
    -

    Ripartizione dei posti disponibili

    -

    55 posti per cittadini europei e internazionali regolarmente soggiornanti in Italia
    5 posti per candidati internazionali residenti all’estero

    -
    -
    -
    -
    -

    Mettendo in primo piano le esigenze delle persone, sarai impegnato nell’ideazione di soluzioni innovative per ambienti abitativi e di lavoro, allestimenti per esposizioni, per eventi fieristici e per l’intrattenimento, nonché progetti per “spazi minimi” come quelli dei mezzi di trasporto.

    -

    Accanto ai laboratori di progetto, i corsi teorici ti forniscono le conoscenze metodologiche e strumentali, tecnico-scientifiche ed economiche, storico-critiche e umanistiche. Tutte le esperienze che affronterai ti prepareranno a entrare subito nel mondo del lavoro oppure a scegliere in maniera consapevole come proseguire gli studi.

    -
    -
    - - - -
    -
    -

    Piano di studi

    -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    -

    L’offerta si arricchisce di corsi, workshop e attività che possono essere scelti dallo studente anche tra le esperienze formative presenti negli altri percorsi di studi Iuav.

    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. -
    -
    -
    -
    -
    -
    -
    - -
    -
    - - - -
    -
    -

    Piano di studi

    -
    -
    - - - - - -
    - - - - -
    - Primo anno -
    - -
    -
    - - - - -
    - Secondo anno -
    - -
    -
    - - - - -
    - Terzo anno -
    - -
    -
    - - - - -
    - Attività non inserite in uno specifico anno di corso -
    - -
    -
    - - - - -
    - - - -
    -
    -
    - - -
    - -
    - - - -
    - - - - - - -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque quis dolor eu arcu interdum laoreet. Mauris sodales rhoncus tellus, nec placerat ligula elementum ultricies. Integer nec congue quam. Integer lobortis justo dui, eget gravida est vestibulum in quisque quis dolor eu arcu.

    -
    - - - - -
    - - -
    - - - - - - -
    -

    Prova titolo
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque quis dolor eu arcu interdum laoreet. Mauris sodales rhoncus tellus, nec placerat ligula elementum ultricies. Integer nec congue quam. Integer lobortis justo dui, eget gravida est vestibulum in quisque quis dolor eu arcu.

    -
    - -
    -
    -
    -

    Contributo universitario

    -

    2.743,10 €
    Informazioni sulle riduzioni per ISEE inferiore a 30.000 €

    -
    -
    -

    Altre tasse

    -

    184 €
    tassa regionale

    16 €
    imposta di bollo

    -
    -
    -

    Spese aggiuntive

    -

    Potrebbe essere necessario coprire costi aggiuntivi che non sono inclusi nelle tasse universitarie, come alloggi, trasporti e materiali. Maggiori informazioni sulle spese aggiuntive

    -
    -
    -

    Borse di studio

    -

    Nullam imperdiet sollicitudin tempus. Duis id risus semper, pretium neque in, sagittis massa. Nullam facilisis a condimentum. Maggiori informazioni sulle borse di studio. Maggiori informazioni sulle borse di studio

    -
    -
    -
    -
    - -
    - - - -
    - - -
    - - - - - - -
    - - -
    - - - - - - -
    - - -
    - - -
    -
    -

    Domande frequenti

    -
    -
    - - - - -
    - - -
    - - -
    - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id? -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus

    -
    -
    - - - - -
    - Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus? -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus

    -
    -
    - - - - -
    - Mauris sodales rhoncus tellus, nec placerat ligula elementum ultricies. Integer nec congue quam? -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus

    -
    -
    - - - - -
    - Integer lobortis justo dui, eget gravida est vestibulum in quisque quis dolor eu arcu? -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus

    -
    -
    - - -
    -
    - - -
    - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id? -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus

    -
    -
    - - - - -
    - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id? -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus

    -
    -
    - - - - -
    - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id? -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus

    -
    -
    - - - - -
    - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id? -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus

    -
    -
    - - - - -
    -
    - -
    - - - - -
    - - -
    -

    Contatti principali per architettura

    -
    -
    -
    -
    -

    Gestione didattica e servizi agli studenti

    -
    - -
    -
    -

    Il servizio si occupa della definizione e gestione degli orari delle lezioni, delle iscrizioni alle attività didattiche e degli appelli d’esame. Indirizza gli studenti verso le attività didattiche da sostenere per lo svolgimento del proprio piano di studi, rilascia i programmi dei corsi, si occupa della gestione degli spazi dedicati alla didattica.

    -
    - -
    -
    -
    -
    -

    Iuav Infopoint

    -
    - -
    -
    -

    Applicazione web che offre un unico canale di comunicazione attraverso il quale puoi inviare le tue richieste agli uffici dell’ateneo.

    -
    - -
    -
    -
    -
    -

    Contatti principali per architettura

    -
    -
    -
    -
    -

    Cotonificio

    -
    - -
    - -
    -
    -
    -
    -

    Mauro Cristina Marzo

    -
    - -
    - -
    -
    -
    -
    - -
    - - - - - -
    - - - - - - - - - - \ No newline at end of file diff --git a/build/pages/corsi-laurea/design.html b/build/pages/corsi-laurea/design.html deleted file mode 100644 index 7f02512..0000000 --- a/build/pages/corsi-laurea/design.html +++ /dev/null @@ -1,2384 +0,0 @@ - - - - - - - - - Università Iuav di Venezia - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - -
    - -
    - - - - - - -
    - -
    - -
    - - - -
    -
    -

    -
    -
    - -
    - - - - - -
    -
    -
    - - -
    -
    -
    - -
    -
    -
    -

    Classe

    -

    L-4 - Classe delle lauree in Disegno industriale

    -
    -
    -

    Titolo ottenuto

    -

    Laurea triennale in Disegno industriale

    -
    -
    -

    Crediti

    -

    180 CFU

    -
    -
    -

    Durata

    -

    3 anni

    -
    -
    -

    Coordinamento

    -

    Laura Badalucco

    -
    -
    -

    Lingua

    -

    Italiano

    -
    -
    -

    Sede

    -

    Venezia

    -
    -
    -

    Dipartimento

    -

    Dipartimento di Culture del progetto

    -
    -
    -

    Requisiti di accesso

    -

    Titolo di scuola superiore
    Titolo straniero

    -
    -
    -

    Posti disponibili

    -

    60

    -
    -
    -
    -
    -
    - -
    -
    - - -
    -
    -
    -
    -
    -
    - - -
    -
    -
    -
    -
    -
    -
    -
    - - - -
    - - - - - - -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque quis dolor eu arcu interdum laoreet. Mauris sodales rhoncus tellus, nec placerat ligula elementum ultricies. Integer nec congue quam. Integer lobortis justo dui, eget gravida est vestibulum in quisque quis dolor eu arcu.

    -
    - - - -
    -
    -

    Download

    -
      -
    -
    -
    -
    - - -
    - - - - - - -
    -

    Prova titolo
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque quis dolor eu arcu interdum laoreet. Mauris sodales rhoncus tellus, nec placerat ligula elementum ultricies. Integer nec congue quam. Integer lobortis justo dui, eget gravida est vestibulum in quisque quis dolor eu arcu.

    -
    - -
    -
    -
    -
    -
    - -
    - - -
    -
    - -
    -
    - <> -
    -
    -
    - - - - - -
    -
    -
    -
    - - -
    - - - - - -
    -
    -
    -
    -
    - - -
    - - - - - -
    -
    -
    -
    -
    - - -
    - - -
    -
    -

    Domande frequenti

    -
    -
    - - - - -
    - - - - -
    - -
    - - - - -
    - -
    -
    - <> -
    -
    -
    - -
    - - - - - -
    - - - - - - - - - - \ No newline at end of file diff --git a/build/pages/corsi-laurea/index.html b/build/pages/corsi-laurea/index.html deleted file mode 100644 index 78bb2b6..0000000 --- a/build/pages/corsi-laurea/index.html +++ /dev/null @@ -1,2534 +0,0 @@ - - - - - - - - - Università Iuav di Venezia - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - -
    - -
    - - - - - - -
    - -
    -
    -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    -
    - - -
    -
    -
    -

    Architettura

    -
    -
    -

    I corsi di laurea in Architettura Iuav interpretano i bisogni di un mondo della professione in evoluzione: oggi un architetto deve essere in grado di leggere i luoghi, conoscerne la storia, coordinare competenze disciplinari diverse. Deve sapere comporre sensibilità umanistica, conoscenze tecniche e senso civico, per collaborare alla costruzione di spazi, città e ambienti sostenibili.

    -
    -
    -
    - -
    -
    -
    -

    Classe

    -

    L-17 - Classe delle lauree in Scienze dell'architettura

    -
    -
    -

    Posti disponibili

    -

    420

    -
    -
    -

    Crediti

    -

    180 CFU

    -
    -
    -

    Coordinamento

    -

    Mauro Cristina Marzo

    -
    -
    -
    - - Vai alla pagina del corso - - -
    -
    - -
    -
    -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    -
    - - -
    -
    -
    -

    Design

    -
    -
    -

    II corso di studi affronta questioni sostanziali per il futuro della produzione e dei consumi come la sostenibilità, la digitalizzazione e il design per l’economia circolare, prestando attenzione alle nuove metodologie di progettazione dei prodotti e all’applicazione di tecnologie emergenti.

    -
    -
    -
    - -
    -
    -
    -

    Classe

    -

    L-4 - Classe delle lauree in Disegno industriale

    -
    -
    -

    Posti disponibili

    -

    60

    -
    -
    -

    Crediti

    -

    180 CFU

    -
    -
    -

    Coordinamento

    -

    Laura Badalucco

    -
    -
    -
    - - Vai alla pagina del corso - - -
    -
    - -
    -
    -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    -
    - - -
    -
    -
    -

    Design del prodotto, della comunicazione visiva e degli interni

    -
    -
    -

    Il percorso triennale in Design all’Università Iuav di Venezia offre l’opportunità di sperimentare sia ambiti tradizionalmente legati al progetto come gli oggetti d’uso o l’editoria, sia temi emergenti della contemporaneità come il benessere individuale e sociale, la sostenibilità ambientale, l’energia, le sfide della digitalizzazione.

    -
    -
    -
    - -
    -
    -
    -

    Classe

    -

    L-4 - Classe delle lauree in Disegno industriale

    -
    -
    -

    Posti disponibili

    -

    180

    -
    -
    -

    Crediti

    -

    180 CFU

    -
    -
    -

    Coordinamento

    -

    Fiorella Bulegato

    -
    -
    -
    - - Vai alla pagina del corso - - -
    -
    - -
    -
    -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    -
    - - -
    -
    -
    -

    Design della moda e arti multimediali

    -
    -
    -

    Il corso di studi intreccia carattere sperimentale con metodologie analitiche e progettuali, insieme a una particolare attenzione alla cultura materiale. Si occupa di processi creativi e prodotti creando uno stretto dialogo tra ricerca artistica e pratica del design. Integra il concetto di innovazione tecnologica, ampliandolo ai temi del corpo, identità, e memoria nella cultura visiva e progettuale contemporanea.

    -
    -
    -
    - -
    -
    -
    -

    Classe

    -

    L-4 - Classe delle lauree in Disegno industriale

    -
    -
    -

    Posti disponibili

    -

    210

    -
    -
    -

    Crediti

    -

    180 CFU

    -
    -
    -

    Coordinamento

    -

    Gabriele Monti

    -
    -
    -
    - - Vai alla pagina del corso - - -
    -
    - -
    -
    -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    - - - - - -
    -
    -
    - - -
    -
    -
    -

    Urbanistica e pianificazione del territorio

    -
    -
    -

    Il corso di laurea in urbanistica e pianificazione all’Università Iuav di Venezia offre l’opportunità di comprendere e orientare le trasformazioni di città e territori, degli spazi costruiti e dell’ambiente naturale, ma anche e soprattutto delle persone che li abitano.

    -
    -
    -
    - -
    -
    -
    -

    Classe

    -

    L-21 - Classe delle lauree in Scienze della pianificazione territoriale, urbanistica, paesaggistica e ambientale

    -
    -
    -

    Posti disponibili

    -

    Accesso libero

    -
    -
    -

    Crediti

    -

    180 CFU

    -
    -
    -

    Coordinamento

    -

    Laura Fregolent

    -
    -
    -
    - - Vai alla pagina del corso - - -
    - - - -
    - - - - - -
    - - - - - - - - - - \ No newline at end of file diff --git a/build/pages/corsi/botanica-innovazione.html b/build/pages/corsi/botanica-innovazione.html deleted file mode 100644 index ff2b858..0000000 --- a/build/pages/corsi/botanica-innovazione.html +++ /dev/null @@ -1,2344 +0,0 @@ - - - - - - - - - Università Iuav di Venezia - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - -
    - -
    - - - - - - - -
    -

    Lo studente acquisisce la conoscenza dei lineamenti di botanica generale e sistematica e, analizzando forme e processi microscopici, approfondisce l’evoluzione delle relazioni tra lo studio degli organismi vegetali e l’innovazione (di prodotti e processi) anche attraverso l'analisi di casi studio. Il corso fornisce, infine, gli strumenti per interpretare strutture e processi degli organismi vegetali al fine di utilizzare tali conoscenze nell'ambito del progetto di design.

    -
    -
    -
    -
    -

    Corso di studi

    -

    Design

    -
    -
    -

    Curriculum

    -

    Percorso comune

    -
    -
    -

    Docente

    -

    Armeli Minicante Simona

    -
    -
    -

    Tipo di attività didattica

    -

    Lezione

    -
    -
    -

    Tipo di insegnamento

    -

    Opzionale

    -
    -
    -

    Settore scientifico disciplinare

    -

    BIO/03

    -
    -
    -

    Anno accademico

    -

    2023/2024

    -
    -
    -

    Anno di corso di laurea

    -

    1

    -
    -
    -

    Periodo didattico

    -

    Secondo Semestre (dal 19/02/2024 al 31/05/2024)

    -
    -
    -

    Durata

    -

    60 ore (60 ore lezione)

    -
    -
    -

    Crediti

    -

    6 CFU

    -
    -
    -

    Tipologia CFU

    -

    C (Affine/Integrativa)

    -
    -
    -

    Lingua

    -

    Italiano

    -
    -
    -

    Sede

    -

    Vicenza

    -
    -
    -
    - - - - - -
    - - -
    - - -
    - Prerequisiti -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus

    -
    -
    - - - - -
    - Contenuti -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus

    -
    -
    - - - - -
    - Metodi didattici -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus

    -
    -
    - - -
    -
    - - -
    - Verifica dell’apprendimento -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus

    -
    -
    - - - - -
    - Testi -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus

    -
    -
    - - - - -
    - Altre informazioni -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus

    -
    -
    - - - - -
    -
    - - - - - - - -
    - - -
    -
    -
    -
    -
    -

    Simona Armeli Minicante

    -

    Docente a contratto

    -
    - -
    - -
    -
    -
    -
    - -
    - - - - - -
    - - - - - - - - - - \ No newline at end of file diff --git a/build/pages/corsi/laboratorio-design-prodotto.html b/build/pages/corsi/laboratorio-design-prodotto.html deleted file mode 100644 index 1a85519..0000000 --- a/build/pages/corsi/laboratorio-design-prodotto.html +++ /dev/null @@ -1,2381 +0,0 @@ - - - - - - - - - Università Iuav di Venezia - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - -
    - -
    - - - - - - - - -
    -
    -
    -

    Corso di studi

    -

    Design

    -
    -
    -

    Curriculum

    -

    Percorso comune

    -
    -
    -

    Tipo di attività didattica

    -

    Laboratorio

    -
    -
    -

    Tipo di insegnamento

    -

    Obbligatorio

    -
    -
    -

    Anno accademico

    -

    2023/2024

    -
    -
    -

    Anno di corso di laurea

    -

    1

    -
    -
    -

    Periodo didattico

    -

    Secondo Semestre (dal 19/02/2024 al 31/05/2024)

    -
    -
    -

    Durata

    -

    120 ore (120 ore laboratorio)

    -
    -
    -

    Crediti

    -

    12 CFU

    -
    -
    -

    Lingua

    -

    Italiano

    -
    -
    -

    Sede

    -

    Vicenza

    -
    -
    -
    - -
    -

    Design per la produzione industriale

    -
    -
    -
    -

    Docente

    -

    Buffagni Alessia

    -
    -
    -

    Settore scientifico disciplinare

    -

    ICAR/13

    -
    -
    -

    Durata

    -

    90 ore (90 ore Laboratorio)

    -
    -
    -

    Crediti

    -

    9 CFU

    -
    -
    -

    Tipologia CFU

    -

    B (Caratterizzante)

    -
    -
    -
    -
    -
    -

    Elementi di design strutturale dei prodotti

    -
    -
    -
    -

    Docente

    -

    Russo Salvatore

    -
    -
    -

    Settore scientifico disciplinare

    -

    ICAR/09

    -
    -
    -

    Durata

    -

    30 ore (30 ore Laboratorio)

    -
    -
    -

    Crediti

    -

    3 CFU

    -
    -
    -
    -
    - - - - - -
    - - -
    - - -
    - Prerequisiti -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus

    -
    -
    - - - - -
    - Contenuti -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus

    -
    -
    - - - - -
    - Metodi didattici -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus

    -
    -
    - - -
    -
    - - -
    - Verifica dell’apprendimento -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus

    -
    -
    - - - - -
    - Testi -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus

    -
    -
    - - - - -
    - Altre informazioni -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus

    -
    -
    - - - - -
    -
    - - - - - - - -
    - - -
    -
    -
    -
    -
    -

    Simona Armeli Minicante

    -

    Docente a contratto

    -
    - -
    - -
    -
    -
    -
    - -
    - - - - - -
    - - - - - - - - - - \ No newline at end of file diff --git a/build/pages/eventi.html b/build/pages/eventi.html deleted file mode 100644 index b7d0663..0000000 --- a/build/pages/eventi.html +++ /dev/null @@ -1,2238 +0,0 @@ - - - - - - - - - Università Iuav di Venezia - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - -
    - -
    - - - - -
    -
    - -
    -
    Nullam gravida eros ut velit imperdiet, quis gravida tellus porta. Mauris pharetra lorem ante, eu viverra enim suscipit et. Etiam blandit, massa at imperdiet sagittis, mi purus rutrum neque, sit amet convallis urna lectus ac lectus.
    -
    - - -
    - - -
    - -
    25.09.2023
    - -
    - -
    In corso
    - -
    -
    -

    ECTP / AITA 2023. 22nd European Conference and 17th International Workshop fino al 25.09.2023 -

    -
    -
    -

    Open City Research Platform. La ciudad abierta, Ritoque, Valparaìso, Cile fino al 21.10.2023 -

    -
    -
    -
    - -
    -
    -

    - 10:00 - 18:00 - fino al 27.09.2023 -

    -
    Cotonificio, Università Iuav di Venezia
    -
    -
    -

    Attraversamenti. Materie e immaginari

    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.

    -
    -
    -
    -
    -

    - 10:00 - 18:00 - fino al 26.11.2023 -

    -
    Centro Culturale Altinate, Padova
    -
    -
    -

    Venetie MML. La grande veduta, il lavoro raccontato

    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.

    -
    -
    - -
    -
    - -
    26.09.2023 -
    - -
    - -
    In corso
    - -
    -
    -

    Attraversamenti. Materie e immaginari fino al 27.09.2023 -

    -
    -
    -

    Venetie MML. La grande veduta, il lavoro raccontato fino al 26.11.2023 -

    -
    -
    -

    Open City Research Platform. La ciudad abierta, Ritoque, Valparaìso, Cile fino al 21.10.2023 -

    -
    -
    -
    - -
    -
    -

    - 10:00 - 18:00 - fino al 30.10.2023 -

    -
    Sala Espositiva Longarone
    -
    -
    -

    Longarone 1963-1972

    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.

    -
    -
    - -
    - -
    - - - - -
    - - - - - -
    - - - - - - - - - - \ No newline at end of file diff --git a/build/pages/laboratori/index.html b/build/pages/laboratori/index.html deleted file mode 100644 index 9dd11f2..0000000 --- a/build/pages/laboratori/index.html +++ /dev/null @@ -1,2302 +0,0 @@ - - - - - - - - - Università Iuav di Venezia - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - -
    - -
    - - - - -
    -

    I laboratori costituiscono un supporto alle attività didattiche e di ricerca del dipartimento e dell’ateneo. Sono dotati di attrezzature all’avanguardia e competenze a elevato grado di specializzazione, svolgono attività scientifiche e professionali nei campi che spaziano dalla rappresentazione alle tecniche di costruzione.

    -
    - -
    -
    - - -

    ArTec – Archivio delle tecniche e dei materiali

    - -
    - - - - - -
    - -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.

    -
    -
    - - -

    FisTec – Laboratorio di fisica tecnica ambientale

    - -
    - - - - - -
    - -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.

    -
    -
    - - -

    Circe – Laboratorio di fotogrammetria

    - -
    - - - - - -
    - -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.

    -
    -
    - - -

    Circe – Laboratorio di cartografia e GIS

    - -
    - - - - - -
    - -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.

    -
    -
    - - -

    LabSCo – Laboratorio di scienza delle costruzioni

    - -
    - - - - - -
    - -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.

    -
    -
    - - -

    LAMA – Laboratorio di analisi e materiali antichi

    - -
    - - - - - -
    - -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.

    -
    -
    - - -

    LAR – Laboratorio di supporto al progetto

    - -
    - - - - - -
    - -
    -

    LAR è una struttura per la ricerca e la didattica che offre servizi per il controllo e lo sviluppo di processi innovativi di rappresentazione dedicati al progetto di architettura, degli artefatti e della loro comunicazione, anche in rapporto alla tutela e alla valorizzazione del patrimonio artistico e culturale, tangibile e intangibile.

    -
    -
    - - -

    MeLa – Media Lab

    - -
    - - - - - -
    - -
    -

    Il Media Lab è una struttura che si occupa di ricerca, sperimentazione e sviluppo nel campo dell’interazione multisensoriale e delle nuove interfacce applicate alla comunicazione dell’architettura e del design, dei prodotti culturali e delle arti visive e performative.

    -
    -
    - - -

    UserLab – Laboratory for user centered applied research

    - -
    - - - - - -
    - -
    -

    Il laboratorio verifica i prodotti industriali, gli artefatti comunicativi (siti web, packaging, brand images, ecc.), i servizi e gli ambienti, studiando la risposta degli utenti con strumenti scientifico-sperimentali.

    -
    -
    - - -

    Laboratorio strumentale per la didattica

    - -
    - - - - - -
    - -
    -

    Il laboratorio gestisce l’insieme dei laboratori per gli studenti mettendo a disposizione spazi, attrezzature e consulenza tecnica per sperimentare ed effettuare attività pratiche.

    -
    -
    -
    -
    -
    - - - - - -
    - - - - - - - - - - \ No newline at end of file diff --git a/build/pages/news.html b/build/pages/news.html deleted file mode 100644 index a5f245e..0000000 --- a/build/pages/news.html +++ /dev/null @@ -1,2249 +0,0 @@ - - - - - - - - - Università Iuav di Venezia - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - -
    - -
    - - - - -
    -
    - -
    -
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
    -
    - - -
    - - - -
    - - - - -
    - - - - - -
    - - - - - - - - - - \ No newline at end of file diff --git a/build/pages/sample-page.html b/build/pages/sample-page.html deleted file mode 100644 index f3b6890..0000000 --- a/build/pages/sample-page.html +++ /dev/null @@ -1,2515 +0,0 @@ - - - - - - - - - Università Iuav di Venezia - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - -
    - -
    - - - - -
    - - -
    -
    -

    Testo semplice

    -
    -
    -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus nec felis sed mauris maximus dictum. Quisque rutrum odio at lacinia pellentesque. Integer in sapien purus. Donec finibus, odio nec accumsan porttitor, velit nisl feugiat felis, eget aliquam dui purus et mi. Nulla vel lacinia ligula. Vestibulum a malesuada ante, in luctus sapien. Maecenas maximus ac quam sit amet pulvinar. Nulla quis ornare felis. Pellentesque tempus, urna et fermentum aliquet, tortor ipsum mattis lectus, ac blandit massa libero pellentesque magna. Nunc dignissim eros nunc, non condimentum turpis tristique vel. Aenean efficitur lectus vel enim vulputate tempus. Sed tincidunt arcu at dui facilisis ullamcorper.

    -

    Sottotitolo
    Aliquam ut ligula rutrum, iaculis lorem vel, blandit magna. Donec tempus ut arcu et porta. Sed sit amet sapien in metus bibendum aliquet. Nam porta facilisis augue. Sed pellentesque diam vitae dolor dapibus, at mollis nisi rhoncus. Sed non ultrices enim. Nulla volutpat lacinia nunc eget viverra. Cras tristique est id lorem blandit malesuada. Interdum et malesuada fames ac ante ipsum primis in faucibus.

    -
    -
    -
    - - -
    -
    -

    Bottoni download

    -
    -
    -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque quis dolor eu arcu interdum laoreet. Mauris sodales rhoncus tellus, nec placerat ligula elementum ultricies. Integer nec congue quam. Integer lobortis justo dui, eget gravida est vestibulum in quisque quis dolor eu arcu.

    -
    - - -
    -
    - - -
    -
    -

    Accordion di testo

    -
    -
    -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque quis dolor eu arcu interdum laoreet. Mauris sodales rhoncus tellus, nec placerat ligula elementum ultricies. Integer nec congue quam. Integer lobortis justo dui, eget gravida est vestibulum in quisque quis dolor eu arcu.

    -
    - - -
    - - - - -
    - Titolo accordion 1 -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus

    -
    -
    - - - - -
    - Titolo accordion 2 -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus

    -
    -
    - - - - -
    - Titolo accordion 3 -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus

    -
    -
    - - - - -
    - Titolo accordion 4 -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus

    -
    -
    - - - - -
    - Titolo accordion 5 -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus

    -
    -
    - - - - -
    - -
    -
    - - -
    -
    -

    Lista elementi

    -
    -
    -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque quis dolor eu arcu interdum laoreet. Mauris sodales rhoncus tellus, nec placerat ligula elementum ultricies. Integer nec congue quam. Integer lobortis justo dui, eget gravida est vestibulum in quisque quis dolor eu arcu.

    -
    -
    -
    -
    -

    List

    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.

    -
    -
    -

    List

    -

    Nunc ac purus id turpis pretium porta. Morbi lacinia nunc laoreet imperdiet volutpat. Sed nec nunc finibus, blandit erat quis, placerat orci. Donec at mauris ut lorem dictum fermentum nec sed velit.

    -
    -
    -

    List

    -

    Donec lacinia justo nec justo dictum tristique. Maecenas volutpat, nunc a aliquam lobortis, diam magna ultrices nisl, eu pretium eros mi ultricies enim. Cras dignissim sit amet mauris in ornare.

    -
    -
    -

    List

    -

    In id leo ut purus tempus placerat. Fusce ac pulvinar tellus, non lobortis est. Mauris sagittis ligula quis augue auctor ultrices. Curabitur sit amet egestas neque. Duis vulputate est id dignissim tempus. Nulla quis consectetur felis. Aenean volutpat velit tincidunt, viverra velit sed, hendrerit quam.

    -
    -
    -

    List

    -

    Vivamus vel ipsum quis est interdum facilisis. Mauris et arcu est. Etiam ultricies finibus commodo. Phasellus auctor ex sed lacus tristique, sit amet eleifend odio tincidunt.

    -
    -
    -

    List

    -

    Suspendisse commodo lacus luctus libero auctor suscipit. Maecenas non ullamcorper turpis. In suscipit quam interdum venenatis faucibus. Nam consectetur vehicula neque, scelerisque elementum ipsum lobortis vitae.

    -
    -
    -

    List

    -

    Phasellus sit amet faucibus elit. Vivamus lorem mi, posuere et aliquam nec, placerat consequat eros. Praesent justo turpis, feugiat id magna ut, euismod venenatis lacus.

    -
    -
    -

    List

    -

    In hac habitasse platea dictumst. Maecenas lobortis ligula justo, vitae laoreet augue laoreet nec. Mauris faucibus tempor massa, eget sodales arcu elementum quis.

    -
    -
    -
    -
    - - -
    - - -
    -
    -

    Accordion in evidenza

    -
    -
    -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque quis dolor eu arcu interdum laoreet. Mauris sodales rhoncus tellus, nec placerat ligula elementum ultricies. Integer nec congue quam. Integer lobortis justo dui, eget gravida est vestibulum in quisque quis dolor eu arcu.

    -
    - - -
    - - - - -
    - Titolo accordion 1 -
    -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque quis dolor eu arcu interdum laoreet. Mauris sodales rhoncus tellus, nec placerat ligula elementum ultricies. Integer nec congue quam. Integer lobortis justo dui, eget gravida est vestibulum in quisque quis dolor eu arcu.

    -
    - -
    -
    - - - - -
    - Titolo accordion 2 -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus

    -
    -
    - - - - -
    - Titolo accordion 3 -
    -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque quis dolor eu arcu interdum laoreet. Mauris sodales rhoncus tellus, nec placerat ligula elementum ultricies. Integer nec congue quam. Integer lobortis justo dui, eget gravida est vestibulum in quisque quis dolor eu arcu.

    -
    - -
    -
    - - - - -
    - Titolo accordion 4 -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus

    -
    -
    - - - - -
    - Titolo accordion 5 -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus

    -
    -
    - - - - -
    - -
    - -
    - -
    -
    -

    Contatti

    -
    -
    -
    -
    -
    -
    -
    -

    Card contatti con descrizione

    -

    Sottotitolo

    -
    - -
    -
    -

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nunc libero, fringilla id semper id, ornare pellentesque massa. Nam posuere luctus facilisis. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.

    -
    - -
    -
    -
    -
    -

    Card contatti semplice

    -
    - -
    - -
    -
    -
    -
    -
    - - - - - -
    - - - - - - - - - - \ No newline at end of file