
var $parcel$global = globalThis;

var $parcel$modules = {};
var $parcel$inits = {};

var parcelRequire = $parcel$global["parcelRequire1478"];

if (parcelRequire == null) {
    parcelRequire = function(id) {
        if (id in $parcel$modules) {
            return $parcel$modules[id].exports;
        }
        if (id in $parcel$inits) {
            var init = $parcel$inits[id];
            delete $parcel$inits[id];
            var module = {id: id, exports: {}};
            $parcel$modules[id] = module;
            init.call(module.exports, module, module.exports);
            return module.exports;
        }
        var err = new Error("Cannot find module '" + id + "'");
        err.code = 'MODULE_NOT_FOUND';
        throw err;
    };

    parcelRequire.register = function register(id, init) {
        $parcel$inits[id] = init;
    };

    $parcel$global["parcelRequire1478"] = parcelRequire;
}

var parcelRegister = parcelRequire.register;
parcelRegister("8WeLi", function(module, exports) {
    const container = document.querySelector(".js-display-list");
    if (!container) return;
    const tileBtn = container.querySelector(".js-tile");
    const listBtn = container.querySelector(".js-list");
    tileBtn.addEventListener("click", ()=>{
        container.classList.remove("is-list");
        tileBtn.classList.add("is-active");
        listBtn.classList.remove("is-active");
    });
    listBtn.addEventListener("click", ()=>{
        container.classList.add("is-list");
        tileBtn.classList.remove("is-active");
        listBtn.classList.add("is-active");
    });

});

parcelRegister("jUaIl", function(module, exports) {
    const controlFromInput = (fromSlider, fromInput, toInput, controlSlider)=>{
        const [from, to] = getParsed(fromInput, toInput);
        fillSlider(fromInput, toInput, "#e2e2e2", "#ff7f23", controlSlider);
        if (from > to) {
            fromSlider.value = to;
            fromInput.value = to;
        } else fromSlider.value = from;
    };
    const controlToInput = (toSlider, fromInput, toInput, controlSlider)=>{
        const [from, to] = getParsed(fromInput, toInput);
        fillSlider(fromInput, toInput, "#e2e2e2", "#ff7f23", controlSlider);
        setToggleAccessible(toInput);
        if (from <= to) {
            toSlider.value = to;
            toInput.value = to;
        } else toInput.value = from;
    };
    const controlFromSlider = (fromSlider, toSlider, fromInput)=>{
        const [from, to] = getParsed(fromSlider, toSlider);
        fillSlider(fromSlider, toSlider, "#e2e2e2", "#ff7f23", toSlider);
        if (from > to) {
            fromSlider.value = to;
            fromInput.value = to;
        } else fromInput.value = from;
    };
    const controlToSlider = (fromSlider, toSlider, toInput)=>{
        const [from, to] = getParsed(fromSlider, toSlider);
        fillSlider(fromSlider, toSlider, "#e2e2e2", "#ff7f23", toSlider);
        setToggleAccessible(toSlider);
        if (from <= to) {
            toSlider.value = to;
            toInput.value = to;
        } else {
            toInput.value = from;
            toSlider.value = from;
        }
    };
    const getParsed = (currentFrom, currentTo)=>{
        const from = parseInt(currentFrom.value, 10);
        const to = parseInt(currentTo.value, 10);
        return [
            from,
            to
        ];
    };
    const fillSlider = (from, to, sliderColor, rangeColor, controlSlider)=>{
        const rangeDistance = to.max - to.min;
        const fromPosition = from.value - to.min;
        const toPosition = to.value - to.min;
        controlSlider.style.background = `linear-gradient(
    to right,
    ${sliderColor} 0%,
    ${sliderColor} ${fromPosition / rangeDistance * 100}%,
    ${rangeColor} ${fromPosition / rangeDistance * 100}%,
    ${rangeColor} ${toPosition / rangeDistance * 100}%,
    ${sliderColor} ${toPosition / rangeDistance * 100}%,
    ${sliderColor} 100%)`;
    };
    const setToggleAccessible = (currentTarget)=>{
        if (Number(currentTarget.value) <= 0) currentTarget.style.zIndex = 2;
        else currentTarget.style.zIndex = 0;
    };
    const range = document.querySelector(".js-range");
    if (!range) return;
    const fromSlider = range.querySelector(".js-range-from");
    const toSlider = range.querySelector(".js-range-to");
    const fromInput = range.querySelector(".js-input-from");
    const toInput = range.querySelector(".js-input-to");
    if (fromSlider && toSlider && fromInput && toInput) {
        fillSlider(fromSlider, toSlider, "#e2e2e2", "#ff7f23", toSlider);
        setToggleAccessible(toSlider);
        fromSlider.oninput = ()=>controlFromSlider(fromSlider, toSlider, fromInput);
        toSlider.oninput = ()=>controlToSlider(fromSlider, toSlider, toInput);
        fromInput.oninput = ()=>controlFromInput(fromSlider, fromInput, toInput, toSlider);
        toInput.oninput = ()=>controlToInput(toSlider, fromInput, toInput, toSlider);
    }

});

parcelRegister("6aHKA", function(module, exports) {
    const cartPopup = document.querySelector(".cart-popup__wrapper");
    const orderBtn = document.querySelector(".js-cart__order-btn");
    const closeBtn = document.querySelector(".js-cart__popup-close");
    const submitBtn = document.querySelector(".js-cart__popup-submit");
    const cartContent = document.querySelector(".js-cart__page");
    const cartOrderSuccess = document.querySelector(".js-cart__success-order");
    const cartBreadcrumbs = document.querySelector(".js-cart__breadcrumbs");
    orderBtn.addEventListener("click", ()=>{
        cartPopup.classList.remove("cart-popup__wrapper--hidden");
    });
    closeBtn.addEventListener("click", ()=>{
        cartPopup.classList.add("cart-popup__wrapper--hidden");
    });
    submitBtn.addEventListener("click", (e)=>{
        e.preventDefault();
        cartPopup.classList.add("cart-popup__wrapper--hidden");
        cartContent.classList.add("cart-page--hidden");
        cartOrderSuccess.classList.add("success-order--visible");
        cartBreadcrumbs.remove();
    });
    cartPopup.addEventListener("click", (e)=>{
        if (!document.querySelector(".cart-popup").contains(e.target)) cartPopup.classList.add("cart-popup__wrapper--hidden");
    });
    const cartSelect = document.querySelector(".js-cart__order-select");
    const cartSelfDelivery = document.querySelector(".js-cart__self-delivery");
    const cartServiceDelivery = document.querySelectorAll(".js-cart__service-delivery");
    cartSelect.addEventListener("change", ()=>{
        const selectedValue = cartSelect.value;
        if (selectedValue === "self-delivery") {
            cartSelfDelivery.classList.remove("cart-popup__self-delivery--hidden");
            cartServiceDelivery.forEach((item)=>{
                item.classList.add("cart-popup__label-delivery--hidden");
            });
        } else {
            cartSelfDelivery.classList.add("cart-popup__self-delivery--hidden");
            cartServiceDelivery.forEach((item)=>{
                item.classList.remove("cart-popup__label-delivery--hidden");
            });
        }
    });

});

/**
 * Swiper 11.1.12
 * Most modern mobile touch slider and framework with hardware accelerated transitions
 * https://swiperjs.com
 *
 * Copyright 2014-2024 Vladimir Kharlampidi
 *
 * Released under the MIT License
 *
 * Released on: September 1, 2024
 */ /**
 * 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 $189f45f12f88561c$var$isObject(obj) {
    return obj !== null && typeof obj === "object" && "constructor" in obj && obj.constructor === Object;
}
function $189f45f12f88561c$var$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 ($189f45f12f88561c$var$isObject(src[key]) && $189f45f12f88561c$var$isObject(target[key]) && Object.keys(src[key]).length > 0) $189f45f12f88561c$var$extend(target[key], src[key]);
    });
}
const $189f45f12f88561c$var$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 $189f45f12f88561c$export$39b482c5e57630a8() {
    const doc = typeof document !== "undefined" ? document : {};
    $189f45f12f88561c$var$extend(doc, $189f45f12f88561c$var$ssrDocument);
    return doc;
}
const $189f45f12f88561c$var$ssrWindow = {
    document: $189f45f12f88561c$var$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 $189f45f12f88561c$export$407448d2b89b1813() {
    const win = typeof window !== "undefined" ? window : {};
    $189f45f12f88561c$var$extend(win, $189f45f12f88561c$var$ssrWindow);
    return win;
}



function $831683533b862e22$export$23f2a1d2818174ef(classes) {
    if (classes === void 0) classes = "";
    return classes.trim().split(" ").filter((c)=>!!c.trim());
}
function $831683533b862e22$export$d141bba7fdc215a3(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 $831683533b862e22$export$7ccc53e8f1e7dfc5(callback, delay) {
    if (delay === void 0) delay = 0;
    return setTimeout(callback, delay);
}
function $831683533b862e22$export$4368d992c4eafac0() {
    return Date.now();
}
function $831683533b862e22$var$getComputedStyle(el) {
    const window1 = (0, $189f45f12f88561c$export$407448d2b89b1813)();
    let style;
    if (window1.getComputedStyle) style = window1.getComputedStyle(el, null);
    if (!style && el.currentStyle) style = el.currentStyle;
    if (!style) style = el.style;
    return style;
}
function $831683533b862e22$export$35e795649ee09318(el, axis) {
    if (axis === void 0) axis = "x";
    const window1 = (0, $189f45f12f88561c$export$407448d2b89b1813)();
    let matrix;
    let curTransform;
    let transformMatrix;
    const curStyle = $831683533b862e22$var$getComputedStyle(el);
    if (window1.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 window1.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 (window1.WebKitCSSMatrix) curTransform = transformMatrix.m41;
        else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);
        else curTransform = parseFloat(matrix[4]);
    }
    if (axis === "y") {
        // Latest Chrome and webkits Fix
        if (window1.WebKitCSSMatrix) curTransform = transformMatrix.m42;
        else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);
        else curTransform = parseFloat(matrix[5]);
    }
    return curTransform || 0;
}
function $831683533b862e22$export$882b5998b3b9117c(o) {
    return typeof o === "object" && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === "Object";
}
function $831683533b862e22$var$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 $831683533b862e22$export$efccba1c4a2ef57b() {
    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 && !$831683533b862e22$var$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 ($831683533b862e22$export$882b5998b3b9117c(to[nextKey]) && $831683533b862e22$export$882b5998b3b9117c(nextSource[nextKey])) {
                        if (nextSource[nextKey].__swiper__) to[nextKey] = nextSource[nextKey];
                        else $831683533b862e22$export$efccba1c4a2ef57b(to[nextKey], nextSource[nextKey]);
                    } else if (!$831683533b862e22$export$882b5998b3b9117c(to[nextKey]) && $831683533b862e22$export$882b5998b3b9117c(nextSource[nextKey])) {
                        to[nextKey] = {};
                        if (nextSource[nextKey].__swiper__) to[nextKey] = nextSource[nextKey];
                        else $831683533b862e22$export$efccba1c4a2ef57b(to[nextKey], nextSource[nextKey]);
                    } else to[nextKey] = nextSource[nextKey];
                }
            }
        }
    }
    return to;
}
function $831683533b862e22$export$2408f22a0fab9ae5(el, varName, varValue) {
    el.style.setProperty(varName, varValue);
}
function $831683533b862e22$export$625550452a3fa3ec(_ref) {
    let { swiper: swiper, targetPosition: targetPosition, side: side } = _ref;
    const window1 = (0, $189f45f12f88561c$export$407448d2b89b1813)();
    const startPosition = -swiper.translate;
    let startTime = null;
    let time;
    const duration = swiper.params.speed;
    swiper.wrapperEl.style.scrollSnapType = "none";
    window1.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
                });
            });
            window1.cancelAnimationFrame(swiper.cssModeFrameID);
            return;
        }
        swiper.cssModeFrameID = window1.requestAnimationFrame(animate);
    };
    animate();
}
function $831683533b862e22$export$39b482c5e57630a8(slideEl) {
    return slideEl.querySelector(".swiper-slide-transform") || slideEl.shadowRoot && slideEl.shadowRoot.querySelector(".swiper-slide-transform") || slideEl;
}
function $831683533b862e22$export$f1e1789686576879(element, selector) {
    if (selector === void 0) selector = "";
    const children = [
        ...element.children
    ];
    if (element instanceof HTMLSlotElement) children.push(...element.assignedElements());
    if (!selector) return children;
    return children.filter((el)=>el.matches(selector));
}
function $831683533b862e22$export$90a7f3efeed30595(el, parent) {
    const isChild = parent.contains(el);
    if (!isChild && parent instanceof HTMLSlotElement) {
        const children = [
            ...parent.assignedElements()
        ];
        return children.includes(el);
    }
    return isChild;
}
function $831683533b862e22$export$3b14a55fb2447963(text) {
    try {
        console.warn(text);
        return;
    } catch (err) {
        // err
    }
}
function $831683533b862e22$export$db3b6bfb95261072(tag, classes) {
    if (classes === void 0) classes = [];
    const el = document.createElement(tag);
    el.classList.add(...Array.isArray(classes) ? classes : $831683533b862e22$export$23f2a1d2818174ef(classes));
    return el;
}
function $831683533b862e22$export$8b22cf2602fb60ce(el) {
    const window1 = (0, $189f45f12f88561c$export$407448d2b89b1813)();
    const document1 = (0, $189f45f12f88561c$export$39b482c5e57630a8)();
    const box = el.getBoundingClientRect();
    const body = document1.body;
    const clientTop = el.clientTop || body.clientTop || 0;
    const clientLeft = el.clientLeft || body.clientLeft || 0;
    const scrollTop = el === window1 ? window1.scrollY : el.scrollTop;
    const scrollLeft = el === window1 ? window1.scrollX : el.scrollLeft;
    return {
        top: box.top + scrollTop - clientTop,
        left: box.left + scrollLeft - clientLeft
    };
}
function $831683533b862e22$export$43caf9889c228507(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 $831683533b862e22$export$9e5f44173e64f162(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 $831683533b862e22$export$ffb5f4729a158638(el, prop) {
    const window1 = (0, $189f45f12f88561c$export$407448d2b89b1813)();
    return window1.getComputedStyle(el, null).getPropertyValue(prop);
}
function $831683533b862e22$export$dda1d9f60106f0e9(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 $831683533b862e22$export$407448d2b89b1813(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 $831683533b862e22$export$342063e11d6c3cad(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 $831683533b862e22$export$2d1720544b23b823(el, size, includeMargins) {
    const window1 = (0, $189f45f12f88561c$export$407448d2b89b1813)();
    if (includeMargins) return el[size === "width" ? "offsetWidth" : "offsetHeight"] + parseFloat(window1.getComputedStyle(el, null).getPropertyValue(size === "width" ? "margin-right" : "margin-top")) + parseFloat(window1.getComputedStyle(el, null).getPropertyValue(size === "width" ? "margin-left" : "margin-bottom"));
    return el.offsetWidth;
}
function $831683533b862e22$export$953cecd6e717a553(el) {
    return (Array.isArray(el) ? el : [
        el
    ]).filter((e)=>!!e);
}
function $831683533b862e22$export$ae1af26003f05816(swiper) {
    return (v)=>{
        if (Math.abs(v) > 0 && swiper.browser && swiper.browser.need3dFix && Math.abs(v) % 90 === 0) return v + 0.001;
        return v;
    };
}


let $4e95c04dd8a5890d$var$support;
function $4e95c04dd8a5890d$var$calcSupport() {
    const window1 = (0, $189f45f12f88561c$export$407448d2b89b1813)();
    const document1 = (0, $189f45f12f88561c$export$39b482c5e57630a8)();
    return {
        smoothScroll: document1.documentElement && document1.documentElement.style && "scrollBehavior" in document1.documentElement.style,
        touch: !!("ontouchstart" in window1 || window1.DocumentTouch && document1 instanceof window1.DocumentTouch)
    };
}
function $4e95c04dd8a5890d$var$getSupport() {
    if (!$4e95c04dd8a5890d$var$support) $4e95c04dd8a5890d$var$support = $4e95c04dd8a5890d$var$calcSupport();
    return $4e95c04dd8a5890d$var$support;
}
let $4e95c04dd8a5890d$var$deviceCached;
function $4e95c04dd8a5890d$var$calcDevice(_temp) {
    let { userAgent: userAgent } = _temp === void 0 ? {} : _temp;
    const support = $4e95c04dd8a5890d$var$getSupport();
    const window1 = (0, $189f45f12f88561c$export$407448d2b89b1813)();
    const platform = window1.navigator.platform;
    const ua = userAgent || window1.navigator.userAgent;
    const device = {
        ios: false,
        android: false
    };
    const screenWidth = window1.screen.width;
    const screenHeight = window1.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 $4e95c04dd8a5890d$var$getDevice(overrides) {
    if (overrides === void 0) overrides = {};
    if (!$4e95c04dd8a5890d$var$deviceCached) $4e95c04dd8a5890d$var$deviceCached = $4e95c04dd8a5890d$var$calcDevice(overrides);
    return $4e95c04dd8a5890d$var$deviceCached;
}
let $4e95c04dd8a5890d$var$browser;
function $4e95c04dd8a5890d$var$calcBrowser() {
    const window1 = (0, $189f45f12f88561c$export$407448d2b89b1813)();
    const device = $4e95c04dd8a5890d$var$getDevice();
    let needPerspectiveFix = false;
    function isSafari() {
        const ua = window1.navigator.userAgent.toLowerCase();
        return ua.indexOf("safari") >= 0 && ua.indexOf("chrome") < 0 && ua.indexOf("android") < 0;
    }
    if (isSafari()) {
        const ua = String(window1.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;
        }
    }
    const isWebView = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window1.navigator.userAgent);
    const isSafariBrowser = isSafari();
    const need3dFix = isSafariBrowser || isWebView && device.ios;
    return {
        isSafari: needPerspectiveFix || isSafariBrowser,
        needPerspectiveFix: needPerspectiveFix,
        need3dFix: need3dFix,
        isWebView: isWebView
    };
}
function $4e95c04dd8a5890d$var$getBrowser() {
    if (!$4e95c04dd8a5890d$var$browser) $4e95c04dd8a5890d$var$browser = $4e95c04dd8a5890d$var$calcBrowser();
    return $4e95c04dd8a5890d$var$browser;
}
function $4e95c04dd8a5890d$var$Resize(_ref) {
    let { swiper: swiper, on: on, emit: emit } = _ref;
    const window1 = (0, $189f45f12f88561c$export$407448d2b89b1813)();
    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 = window1.requestAnimationFrame(()=>{
                const { width: width, height: height } = swiper;
                let newWidth = width;
                let newHeight = height;
                entries.forEach((_ref2)=>{
                    let { contentBoxSize: contentBoxSize, contentRect: contentRect, target: 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) window1.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 window1.ResizeObserver !== "undefined") {
            createObserver();
            return;
        }
        window1.addEventListener("resize", resizeHandler);
        window1.addEventListener("orientationchange", orientationChangeHandler);
    });
    on("destroy", ()=>{
        removeObserver();
        window1.removeEventListener("resize", resizeHandler);
        window1.removeEventListener("orientationchange", orientationChangeHandler);
    });
}
function $4e95c04dd8a5890d$var$Observer(_ref) {
    let { swiper: swiper, extendParams: extendParams, on: on, emit: emit } = _ref;
    const observers = [];
    const window1 = (0, $189f45f12f88561c$export$407448d2b89b1813)();
    const attach = function(target, options) {
        if (options === void 0) options = {};
        const ObserverFunc = window1.MutationObserver || window1.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 (window1.requestAnimationFrame) window1.requestAnimationFrame(observerUpdate);
            else window1.setTimeout(observerUpdate, 0);
        });
        observer.observe(target, {
            attributes: typeof options.attributes === "undefined" ? true : options.attributes,
            childList: swiper.isElement || (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 = (0, $831683533b862e22$export$407448d2b89b1813)(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 $4e95c04dd8a5890d$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 $4e95c04dd8a5890d$var$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((0, $831683533b862e22$export$ffb5f4729a158638)(el, "padding-left") || 0, 10) - parseInt((0, $831683533b862e22$export$ffb5f4729a158638)(el, "padding-right") || 0, 10);
    height = height - parseInt((0, $831683533b862e22$export$ffb5f4729a158638)(el, "padding-top") || 0, 10) - parseInt((0, $831683533b862e22$export$ffb5f4729a158638)(el, "padding-bottom") || 0, 10);
    if (Number.isNaN(width)) width = 0;
    if (Number.isNaN(height)) height = 0;
    Object.assign(swiper, {
        width: width,
        height: height,
        size: swiper.isHorizontal() ? width : height
    });
}
function $4e95c04dd8a5890d$var$updateSlides() {
    const swiper = this;
    function getDirectionPropertyValue(node, label) {
        return parseFloat(node.getPropertyValue(swiper.getDirectionLabel(label)) || 0);
    }
    const params = swiper.params;
    const { wrapperEl: wrapperEl, slidesEl: slidesEl, size: swiperSize, rtlTranslate: rtl, wrongRTL: wrongRTL } = swiper;
    const isVirtual = swiper.virtual && params.virtual.enabled;
    const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;
    const slides = (0, $831683533b862e22$export$f1e1789686576879)(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) {
        (0, $831683533b862e22$export$2408f22a0fab9ae5)(wrapperEl, "--swiper-centered-offset-before", "");
        (0, $831683533b862e22$export$2408f22a0fab9ae5)(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] && (0, $831683533b862e22$export$ffb5f4729a158638)(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() ? (0, $831683533b862e22$export$2d1720544b23b823)(slide, "width", true) : (0, $831683533b862e22$export$2d1720544b23b823)(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: clientWidth, offsetWidth: 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) < 0.001) 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 ? allSlidesSize - swiperSize : 0;
        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;
        const offsetSize = (params.slidesOffsetBefore || 0) + (params.slidesOffsetAfter || 0);
        if (allSlidesSize + offsetSize < swiperSize) {
            const allSlidesOffset = (swiperSize - allSlidesSize - offsetSize) / 2;
            snapGrid.forEach((snap, snapIndex)=>{
                snapGrid[snapIndex] = snap - allSlidesOffset;
            });
            slidesGrid.forEach((snap, snapIndex)=>{
                slidesGrid[snapIndex] = snap + allSlidesOffset;
            });
        }
    }
    Object.assign(swiper, {
        slides: slides,
        snapGrid: snapGrid,
        slidesGrid: slidesGrid,
        slidesSizesGrid: slidesSizesGrid
    });
    if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {
        (0, $831683533b862e22$export$2408f22a0fab9ae5)(wrapperEl, "--swiper-centered-offset-before", `${-snapGrid[0]}px`);
        (0, $831683533b862e22$export$2408f22a0fab9ae5)(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 $4e95c04dd8a5890d$var$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 $4e95c04dd8a5890d$var$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();
}
const $4e95c04dd8a5890d$var$toggleSlideClasses$1 = (slideEl, condition, className)=>{
    if (condition && !slideEl.classList.contains(className)) slideEl.classList.add(className);
    else if (!condition && slideEl.classList.contains(className)) slideEl.classList.remove(className);
};
function $4e95c04dd8a5890d$var$updateSlidesProgress(translate) {
    if (translate === void 0) translate = this && this.translate || 0;
    const swiper = this;
    const params = swiper.params;
    const { slides: slides, rtlTranslate: rtl, snapGrid: snapGrid } = swiper;
    if (slides.length === 0) return;
    if (typeof slides[0].swiperSlideOffset === "undefined") swiper.updateSlidesOffset();
    let offsetCenter = -translate;
    if (rtl) offsetCenter = translate;
    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);
        }
        $4e95c04dd8a5890d$var$toggleSlideClasses$1(slide, isVisible, params.slideVisibleClass);
        $4e95c04dd8a5890d$var$toggleSlideClasses$1(slide, isFullyVisible, params.slideFullyVisibleClass);
        slide.progress = rtl ? -slideProgress : slideProgress;
        slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;
    }
}
function $4e95c04dd8a5890d$var$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: progress, isBeginning: isBeginning, isEnd: isEnd, progressLoop: 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: progress,
        progressLoop: progressLoop,
        isBeginning: isBeginning,
        isEnd: 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);
}
const $4e95c04dd8a5890d$var$toggleSlideClasses = (slideEl, condition, className)=>{
    if (condition && !slideEl.classList.contains(className)) slideEl.classList.add(className);
    else if (!condition && slideEl.classList.contains(className)) slideEl.classList.remove(className);
};
function $4e95c04dd8a5890d$var$updateSlidesClasses() {
    const swiper = this;
    const { slides: slides, params: params, slidesEl: slidesEl, activeIndex: activeIndex } = swiper;
    const isVirtual = swiper.virtual && params.virtual.enabled;
    const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;
    const getFilteredSlide = (selector)=>{
        return (0, $831683533b862e22$export$f1e1789686576879)(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];
    };
    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) {
        if (!gridEnabled) {
            // Next Slide
            nextSlide = (0, $831683533b862e22$export$9e5f44173e64f162)(activeSlide, `.${params.slideClass}, swiper-slide`)[0];
            if (params.loop && !nextSlide) nextSlide = slides[0];
            // Prev Slide
            prevSlide = (0, $831683533b862e22$export$43caf9889c228507)(activeSlide, `.${params.slideClass}, swiper-slide`)[0];
            params.loop;
        }
    }
    slides.forEach((slideEl)=>{
        $4e95c04dd8a5890d$var$toggleSlideClasses(slideEl, slideEl === activeSlide, params.slideActiveClass);
        $4e95c04dd8a5890d$var$toggleSlideClasses(slideEl, slideEl === nextSlide, params.slideNextClass);
        $4e95c04dd8a5890d$var$toggleSlideClasses(slideEl, slideEl === prevSlide, params.slidePrevClass);
    });
    swiper.emitSlidesClasses();
}
const $4e95c04dd8a5890d$var$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 $4e95c04dd8a5890d$var$unlazy = (swiper, index)=>{
    if (!swiper.slides[index]) return;
    const imageEl = swiper.slides[index].querySelector('[loading="lazy"]');
    if (imageEl) imageEl.removeAttribute("loading");
};
const $4e95c04dd8a5890d$var$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)) $4e95c04dd8a5890d$var$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) $4e95c04dd8a5890d$var$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)) $4e95c04dd8a5890d$var$unlazy(swiper, i);
    }
};
function $4e95c04dd8a5890d$var$getActiveIndexByTranslate(swiper) {
    const { slidesGrid: slidesGrid, params: 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 $4e95c04dd8a5890d$var$updateActiveIndex(newActiveIndex) {
    const swiper = this;
    const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;
    const { snapGrid: snapGrid, params: 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 = $4e95c04dd8a5890d$var$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: previousSnapIndex,
        snapIndex: snapIndex,
        previousRealIndex: previousRealIndex,
        realIndex: realIndex,
        previousIndex: previousIndex,
        activeIndex: activeIndex
    });
    if (swiper.initialized) $4e95c04dd8a5890d$var$preload(swiper);
    swiper.emit("activeIndexChange");
    swiper.emit("snapIndexChange");
    if (swiper.initialized || swiper.params.runCallbacksOnInit) {
        if (previousRealIndex !== realIndex) swiper.emit("realIndexChange");
        swiper.emit("slideChange");
    }
}
function $4e95c04dd8a5890d$var$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 $4e95c04dd8a5890d$var$update = {
    updateSize: $4e95c04dd8a5890d$var$updateSize,
    updateSlides: $4e95c04dd8a5890d$var$updateSlides,
    updateAutoHeight: $4e95c04dd8a5890d$var$updateAutoHeight,
    updateSlidesOffset: $4e95c04dd8a5890d$var$updateSlidesOffset,
    updateSlidesProgress: $4e95c04dd8a5890d$var$updateSlidesProgress,
    updateProgress: $4e95c04dd8a5890d$var$updateProgress,
    updateSlidesClasses: $4e95c04dd8a5890d$var$updateSlidesClasses,
    updateActiveIndex: $4e95c04dd8a5890d$var$updateActiveIndex,
    updateClickedSlide: $4e95c04dd8a5890d$var$updateClickedSlide
};
function $4e95c04dd8a5890d$var$getSwiperTranslate(axis) {
    if (axis === void 0) axis = this.isHorizontal() ? "x" : "y";
    const swiper = this;
    const { params: params, rtlTranslate: rtl, translate: translate, wrapperEl: wrapperEl } = swiper;
    if (params.virtualTranslate) return rtl ? -translate : translate;
    if (params.cssMode) return translate;
    let currentTranslate = (0, $831683533b862e22$export$35e795649ee09318)(wrapperEl, axis);
    currentTranslate += swiper.cssOverflowAdjustment();
    if (rtl) currentTranslate = -currentTranslate;
    return currentTranslate || 0;
}
function $4e95c04dd8a5890d$var$setTranslate(translate, byController) {
    const swiper = this;
    const { rtlTranslate: rtl, params: params, wrapperEl: wrapperEl, progress: 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 $4e95c04dd8a5890d$var$minTranslate() {
    return -this.snapGrid[0];
}
function $4e95c04dd8a5890d$var$maxTranslate() {
    return -this.snapGrid[this.snapGrid.length - 1];
}
function $4e95c04dd8a5890d$var$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: params, wrapperEl: 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) {
                (0, $831683533b862e22$export$625550452a3fa3ec)({
                    swiper: 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;
                swiper.animating = false;
                if (runCallbacks) swiper.emit("transitionEnd");
            };
            swiper.wrapperEl.addEventListener("transitionend", swiper.onTranslateToWrapperTransitionEnd);
        }
    }
    return true;
}
var $4e95c04dd8a5890d$var$translate = {
    getTranslate: $4e95c04dd8a5890d$var$getSwiperTranslate,
    setTranslate: $4e95c04dd8a5890d$var$setTranslate,
    minTranslate: $4e95c04dd8a5890d$var$minTranslate,
    maxTranslate: $4e95c04dd8a5890d$var$maxTranslate,
    translateTo: $4e95c04dd8a5890d$var$translateTo
};
function $4e95c04dd8a5890d$var$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 $4e95c04dd8a5890d$var$transitionEmit(_ref) {
    let { swiper: swiper, runCallbacks: runCallbacks, direction: direction, step: step } = _ref;
    const { activeIndex: activeIndex, previousIndex: 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 $4e95c04dd8a5890d$var$transitionStart(runCallbacks, direction) {
    if (runCallbacks === void 0) runCallbacks = true;
    const swiper = this;
    const { params: params } = swiper;
    if (params.cssMode) return;
    if (params.autoHeight) swiper.updateAutoHeight();
    $4e95c04dd8a5890d$var$transitionEmit({
        swiper: swiper,
        runCallbacks: runCallbacks,
        direction: direction,
        step: "Start"
    });
}
function $4e95c04dd8a5890d$var$transitionEnd(runCallbacks, direction) {
    if (runCallbacks === void 0) runCallbacks = true;
    const swiper = this;
    const { params: params } = swiper;
    swiper.animating = false;
    if (params.cssMode) return;
    swiper.setTransition(0);
    $4e95c04dd8a5890d$var$transitionEmit({
        swiper: swiper,
        runCallbacks: runCallbacks,
        direction: direction,
        step: "End"
    });
}
var $4e95c04dd8a5890d$var$transition = {
    setTransition: $4e95c04dd8a5890d$var$setTransition,
    transitionStart: $4e95c04dd8a5890d$var$transitionStart,
    transitionEnd: $4e95c04dd8a5890d$var$transitionEnd
};
function $4e95c04dd8a5890d$var$slideTo(index, speed, runCallbacks, internal, initial) {
    if (index === void 0) index = 0;
    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: params, snapGrid: snapGrid, slidesGrid: slidesGrid, previousIndex: previousIndex, activeIndex: activeIndex, rtlTranslate: rtl, wrapperEl: wrapperEl, enabled: enabled } = swiper;
    if (!enabled && !internal && !initial || swiper.destroyed || swiper.animating && params.preventInteractionOnTransition) return false;
    if (typeof speed === "undefined") speed = swiper.params.speed;
    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";
    // initial virtual
    const isVirtual = swiper.virtual && swiper.params.virtual.enabled;
    const isInitialVirtual = isVirtual && initial;
    // Update Index
    if (!isInitialVirtual && (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) {
            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) {
                (0, $831683533b862e22$export$625550452a3fa3ec)({
                    swiper: 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 $4e95c04dd8a5890d$var$slideToLoop(index, speed, runCallbacks, internal) {
    if (index === void 0) index = 0;
    if (runCallbacks === void 0) runCallbacks = true;
    if (typeof index === "string") {
        const indexAsNumber = parseInt(index, 10);
        index = indexAsNumber;
    }
    const swiper = this;
    if (swiper.destroyed) return;
    if (typeof speed === "undefined") speed = swiper.params.speed;
    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: 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 (internal && centeredSlides && swiper.params.slidesPerView !== "auto" && !gridEnabled) needLoopFix = false;
            if (needLoopFix) {
                const direction = centeredSlides ? targetSlideIndex < swiper.activeIndex ? "prev" : "next" : targetSlideIndex - swiper.activeIndex - 1 < swiper.params.slidesPerView ? "next" : "prev";
                swiper.loopFix({
                    direction: 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 $4e95c04dd8a5890d$var$slideNext(speed, runCallbacks, internal) {
    if (runCallbacks === void 0) runCallbacks = true;
    const swiper = this;
    const { enabled: enabled, params: params, animating: animating } = swiper;
    if (!enabled || swiper.destroyed) return swiper;
    if (typeof speed === "undefined") speed = swiper.params.speed;
    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 $4e95c04dd8a5890d$var$slidePrev(speed, runCallbacks, internal) {
    if (runCallbacks === void 0) runCallbacks = true;
    const swiper = this;
    const { params: params, snapGrid: snapGrid, slidesGrid: slidesGrid, rtlTranslate: rtlTranslate, enabled: enabled, animating: animating } = swiper;
    if (!enabled || swiper.destroyed) return swiper;
    if (typeof speed === "undefined") speed = swiper.params.speed;
    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 $4e95c04dd8a5890d$var$slideReset(speed, runCallbacks, internal) {
    if (runCallbacks === void 0) runCallbacks = true;
    const swiper = this;
    if (swiper.destroyed) return;
    if (typeof speed === "undefined") speed = swiper.params.speed;
    return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);
}
/* eslint no-unused-vars: "off" */ function $4e95c04dd8a5890d$var$slideToClosest(speed, runCallbacks, internal, threshold) {
    if (runCallbacks === void 0) runCallbacks = true;
    if (threshold === void 0) threshold = 0.5;
    const swiper = this;
    if (swiper.destroyed) return;
    if (typeof speed === "undefined") speed = swiper.params.speed;
    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 $4e95c04dd8a5890d$var$slideToClickedSlide() {
    const swiper = this;
    if (swiper.destroyed) return;
    const { params: params, slidesEl: 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((0, $831683533b862e22$export$f1e1789686576879)(slidesEl, `${slideSelector}[data-swiper-slide-index="${realIndex}"]`)[0]);
                (0, $831683533b862e22$export$7ccc53e8f1e7dfc5)(()=>{
                    swiper.slideTo(slideToIndex);
                });
            } else swiper.slideTo(slideToIndex);
        } else if (slideToIndex > swiper.slides.length - slidesPerView) {
            swiper.loopFix();
            slideToIndex = swiper.getSlideIndex((0, $831683533b862e22$export$f1e1789686576879)(slidesEl, `${slideSelector}[data-swiper-slide-index="${realIndex}"]`)[0]);
            (0, $831683533b862e22$export$7ccc53e8f1e7dfc5)(()=>{
                swiper.slideTo(slideToIndex);
            });
        } else swiper.slideTo(slideToIndex);
    } else swiper.slideTo(slideToIndex);
}
var $4e95c04dd8a5890d$var$slide = {
    slideTo: $4e95c04dd8a5890d$var$slideTo,
    slideToLoop: $4e95c04dd8a5890d$var$slideToLoop,
    slideNext: $4e95c04dd8a5890d$var$slideNext,
    slidePrev: $4e95c04dd8a5890d$var$slidePrev,
    slideReset: $4e95c04dd8a5890d$var$slideReset,
    slideToClosest: $4e95c04dd8a5890d$var$slideToClosest,
    slideToClickedSlide: $4e95c04dd8a5890d$var$slideToClickedSlide
};
function $4e95c04dd8a5890d$var$loopCreate(slideRealIndex) {
    const swiper = this;
    const { params: params, slidesEl: slidesEl } = swiper;
    if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;
    const initSlides = ()=>{
        const slides = (0, $831683533b862e22$export$f1e1789686576879)(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 ? (0, $831683533b862e22$export$db3b6bfb95261072)("swiper-slide", [
                params.slideBlankClass
            ]) : (0, $831683533b862e22$export$db3b6bfb95261072)("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 (0, $831683533b862e22$export$3b14a55fb2447963)("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 (0, $831683533b862e22$export$3b14a55fb2447963)("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: slideRealIndex,
        direction: params.centeredSlides ? undefined : "next"
    });
}
function $4e95c04dd8a5890d$var$loopFix(_temp) {
    let { slideRealIndex: slideRealIndex, slideTo: slideTo = true, direction: direction, setTranslate: setTranslate, activeSlideIndex: activeSlideIndex, byController: byController, byMousewheel: byMousewheel } = _temp === void 0 ? {} : _temp;
    const swiper = this;
    if (!swiper.params.loop) return;
    swiper.emit("beforeLoopFix");
    const { slides: slides, allowSlidePrev: allowSlidePrev, allowSlideNext: allowSlideNext, slidesEl: slidesEl, params: params } = swiper;
    const { centeredSlides: 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) (0, $831683533b862e22$export$3b14a55fb2447963)("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") (0, $831683533b862e22$export$3b14a55fb2447963)("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 + Math.ceil(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: slideRealIndex,
            direction: direction,
            setTranslate: setTranslate,
            activeSlideIndex: 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 $4e95c04dd8a5890d$var$loopDestroy() {
    const swiper = this;
    const { params: params, slidesEl: 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 $4e95c04dd8a5890d$var$loop = {
    loopCreate: $4e95c04dd8a5890d$var$loopCreate,
    loopFix: $4e95c04dd8a5890d$var$loopFix,
    loopDestroy: $4e95c04dd8a5890d$var$loopDestroy
};
function $4e95c04dd8a5890d$var$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 $4e95c04dd8a5890d$var$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 $4e95c04dd8a5890d$var$grabCursor = {
    setGrabCursor: $4e95c04dd8a5890d$var$setGrabCursor,
    unsetGrabCursor: $4e95c04dd8a5890d$var$unsetGrabCursor
};
// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd
function $4e95c04dd8a5890d$var$closestElement(selector, base) {
    if (base === void 0) base = this;
    function __closestFrom(el) {
        if (!el || el === (0, $189f45f12f88561c$export$39b482c5e57630a8)() || el === (0, $189f45f12f88561c$export$407448d2b89b1813)()) 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 $4e95c04dd8a5890d$var$preventEdgeSwipe(swiper, event, startX) {
    const window1 = (0, $189f45f12f88561c$export$407448d2b89b1813)();
    const { params: params } = swiper;
    const edgeSwipeDetection = params.edgeSwipeDetection;
    const edgeSwipeThreshold = params.edgeSwipeThreshold;
    if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window1.innerWidth - edgeSwipeThreshold)) {
        if (edgeSwipeDetection === "prevent") {
            event.preventDefault();
            return true;
        }
        return false;
    }
    return true;
}
function $4e95c04dd8a5890d$var$onTouchStart(event) {
    const swiper = this;
    const document1 = (0, $189f45f12f88561c$export$39b482c5e57630a8)();
    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
        $4e95c04dd8a5890d$var$preventEdgeSwipe(swiper, e, e.targetTouches[0].pageX);
        return;
    }
    const { params: params, touches: touches, enabled: 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 (!(0, $831683533b862e22$export$90a7f3efeed30595)(targetEl, swiper.wrapperEl)) 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 ? $4e95c04dd8a5890d$var$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 (!$4e95c04dd8a5890d$var$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 = (0, $831683533b862e22$export$4368d992c4eafac0)();
    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 (document1.activeElement && document1.activeElement.matches(data.focusableElements) && document1.activeElement !== targetEl) document1.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 $4e95c04dd8a5890d$var$onTouchMove(event) {
    const document1 = (0, $189f45f12f88561c$export$39b482c5e57630a8)();
    const swiper = this;
    const data = swiper.touchEventsData;
    const { params: params, touches: touches, rtlTranslate: rtl, enabled: 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 = (0, $831683533b862e22$export$4368d992c4eafac0)();
        }
        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 (document1.activeElement) {
        if (e.target === document1.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 || e.type === "touchmove" && data.preventTouchMoveFromPointerMove) {
        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,
                detail: {
                    bySwiperTouchMove: 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] - (params.slidesPerView !== "auto" && swiper.slides.length - params.slidesPerView >= 2 ? swiper.slidesSizesGrid[swiper.activeIndex + 1] + swiper.params.spaceBetween : 0) - swiper.params.spaceBetween : 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.params.spaceBetween + (params.slidesPerView !== "auto" && swiper.slides.length - params.slidesPerView >= 2 ? swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] + swiper.params.spaceBetween : 0) : 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 $4e95c04dd8a5890d$var$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: params, touches: touches, rtlTranslate: rtl, slidesGrid: slidesGrid, enabled: 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 = (0, $831683533b862e22$export$4368d992c4eafac0)();
    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 = (0, $831683533b862e22$export$4368d992c4eafac0)();
    (0, $831683533b862e22$export$7ccc53e8f1e7dfc5)(()=>{
        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: 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 $4e95c04dd8a5890d$var$onResize() {
    const swiper = this;
    const { params: params, el: el } = swiper;
    if (el && el.offsetWidth === 0) return;
    // Breakpoints
    if (params.breakpoints) swiper.setBreakpoint();
    // Save locks
    const { allowSlideNext: allowSlideNext, allowSlidePrev: allowSlidePrev, snapGrid: 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 $4e95c04dd8a5890d$var$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 $4e95c04dd8a5890d$var$onScroll() {
    const swiper = this;
    const { wrapperEl: wrapperEl, rtlTranslate: rtlTranslate, enabled: 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 $4e95c04dd8a5890d$var$onLoad(e) {
    const swiper = this;
    $4e95c04dd8a5890d$var$processLazyPreloader(swiper, e.target);
    if (swiper.params.cssMode || swiper.params.slidesPerView !== "auto" && !swiper.params.autoHeight) return;
    swiper.update();
}
function $4e95c04dd8a5890d$var$onDocumentTouchStart() {
    const swiper = this;
    if (swiper.documentTouchHandlerProceeded) return;
    swiper.documentTouchHandlerProceeded = true;
    if (swiper.params.touchReleaseOnEdges) swiper.el.style.touchAction = "auto";
}
const $4e95c04dd8a5890d$var$events = (swiper, method)=>{
    const document1 = (0, $189f45f12f88561c$export$39b482c5e57630a8)();
    const { params: params, el: el, wrapperEl: wrapperEl, device: device } = swiper;
    const capture = !!params.nested;
    const domMethod = method === "on" ? "addEventListener" : "removeEventListener";
    const swiperMethod = method;
    if (!el || typeof el === "string") return;
    // Touch Events
    document1[domMethod]("touchstart", swiper.onDocumentTouchStart, {
        passive: false,
        capture: capture
    });
    el[domMethod]("touchstart", swiper.onTouchStart, {
        passive: false
    });
    el[domMethod]("pointerdown", swiper.onTouchStart, {
        passive: false
    });
    document1[domMethod]("touchmove", swiper.onTouchMove, {
        passive: false,
        capture: capture
    });
    document1[domMethod]("pointermove", swiper.onTouchMove, {
        passive: false,
        capture: capture
    });
    document1[domMethod]("touchend", swiper.onTouchEnd, {
        passive: true
    });
    document1[domMethod]("pointerup", swiper.onTouchEnd, {
        passive: true
    });
    document1[domMethod]("pointercancel", swiper.onTouchEnd, {
        passive: true
    });
    document1[domMethod]("touchcancel", swiper.onTouchEnd, {
        passive: true
    });
    document1[domMethod]("pointerout", swiper.onTouchEnd, {
        passive: true
    });
    document1[domMethod]("pointerleave", swiper.onTouchEnd, {
        passive: true
    });
    document1[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", $4e95c04dd8a5890d$var$onResize, true);
    else swiper[swiperMethod]("observerUpdate", $4e95c04dd8a5890d$var$onResize, true);
    // Images loader
    el[domMethod]("load", swiper.onLoad, {
        capture: true
    });
};
function $4e95c04dd8a5890d$var$attachEvents() {
    const swiper = this;
    const { params: params } = swiper;
    swiper.onTouchStart = $4e95c04dd8a5890d$var$onTouchStart.bind(swiper);
    swiper.onTouchMove = $4e95c04dd8a5890d$var$onTouchMove.bind(swiper);
    swiper.onTouchEnd = $4e95c04dd8a5890d$var$onTouchEnd.bind(swiper);
    swiper.onDocumentTouchStart = $4e95c04dd8a5890d$var$onDocumentTouchStart.bind(swiper);
    if (params.cssMode) swiper.onScroll = $4e95c04dd8a5890d$var$onScroll.bind(swiper);
    swiper.onClick = $4e95c04dd8a5890d$var$onClick.bind(swiper);
    swiper.onLoad = $4e95c04dd8a5890d$var$onLoad.bind(swiper);
    $4e95c04dd8a5890d$var$events(swiper, "on");
}
function $4e95c04dd8a5890d$var$detachEvents() {
    const swiper = this;
    $4e95c04dd8a5890d$var$events(swiper, "off");
}
var $4e95c04dd8a5890d$var$events$1 = {
    attachEvents: $4e95c04dd8a5890d$var$attachEvents,
    detachEvents: $4e95c04dd8a5890d$var$detachEvents
};
const $4e95c04dd8a5890d$var$isGridEnabled = (swiper, params)=>{
    return swiper.grid && params.grid && params.grid.rows > 1;
};
function $4e95c04dd8a5890d$var$setBreakpoint() {
    const swiper = this;
    const { realIndex: realIndex, initialized: initialized, params: params, el: 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 = $4e95c04dd8a5890d$var$isGridEnabled(swiper, params);
    const isMultiRow = $4e95c04dd8a5890d$var$isGridEnabled(swiper, breakpointParams);
    const wasGrabCursor = swiper.params.grabCursor;
    const isGrabCursor = breakpointParams.grabCursor;
    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();
    }
    if (wasGrabCursor && !isGrabCursor) swiper.unsetGrabCursor();
    else if (!wasGrabCursor && isGrabCursor) swiper.setGrabCursor();
    // 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();
    (0, $831683533b862e22$export$efccba1c4a2ef57b)(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 $4e95c04dd8a5890d$var$getBreakpoint(breakpoints, base, containerEl) {
    if (base === void 0) base = "window";
    if (!breakpoints || base === "container" && !containerEl) return undefined;
    let breakpoint = false;
    const window1 = (0, $189f45f12f88561c$export$407448d2b89b1813)();
    const currentHeight = base === "window" ? window1.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: value,
                point: point
            };
        }
        return {
            value: point,
            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: point, value: value } = points[i];
        if (base === "window") {
            if (window1.matchMedia(`(min-width: ${value}px)`).matches) breakpoint = point;
        } else if (value <= containerEl.clientWidth) breakpoint = point;
    }
    return breakpoint || "max";
}
var $4e95c04dd8a5890d$var$breakpoints = {
    setBreakpoint: $4e95c04dd8a5890d$var$setBreakpoint,
    getBreakpoint: $4e95c04dd8a5890d$var$getBreakpoint
};
function $4e95c04dd8a5890d$var$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 $4e95c04dd8a5890d$var$addClasses() {
    const swiper = this;
    const { classNames: classNames, params: params, rtl: rtl, el: el, device: device } = swiper;
    // prettier-ignore
    const suffixes = $4e95c04dd8a5890d$var$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 $4e95c04dd8a5890d$var$removeClasses() {
    const swiper = this;
    const { el: el, classNames: classNames } = swiper;
    if (!el || typeof el === "string") return;
    el.classList.remove(...classNames);
    swiper.emitContainerClasses();
}
var $4e95c04dd8a5890d$var$classes = {
    addClasses: $4e95c04dd8a5890d$var$addClasses,
    removeClasses: $4e95c04dd8a5890d$var$removeClasses
};
function $4e95c04dd8a5890d$var$checkOverflow() {
    const swiper = this;
    const { isLocked: wasLocked, params: params } = swiper;
    const { slidesOffsetBefore: 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 $4e95c04dd8a5890d$var$checkOverflow$1 = {
    checkOverflow: $4e95c04dd8a5890d$var$checkOverflow
};
var $4e95c04dd8a5890d$export$4368d992c4eafac0 = {
    init: true,
    direction: "horizontal",
    oneWayMovement: false,
    swiperElementNodeName: "SWIPER-CONTAINER",
    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 $4e95c04dd8a5890d$var$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) {
            (0, $831683533b862e22$export$efccba1c4a2ef57b)(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)) {
            (0, $831683533b862e22$export$efccba1c4a2ef57b)(allModulesParams, obj);
            return;
        }
        if (typeof params[moduleParamName] === "object" && !("enabled" in params[moduleParamName])) params[moduleParamName].enabled = true;
        if (!params[moduleParamName]) params[moduleParamName] = {
            enabled: false
        };
        (0, $831683533b862e22$export$efccba1c4a2ef57b)(allModulesParams, obj);
    };
}
/* eslint no-param-reassign: "off" */ const $4e95c04dd8a5890d$var$prototypes = {
    eventsEmitter: $4e95c04dd8a5890d$var$eventsEmitter,
    update: $4e95c04dd8a5890d$var$update,
    translate: $4e95c04dd8a5890d$var$translate,
    transition: $4e95c04dd8a5890d$var$transition,
    slide: $4e95c04dd8a5890d$var$slide,
    loop: $4e95c04dd8a5890d$var$loop,
    grabCursor: $4e95c04dd8a5890d$var$grabCursor,
    events: $4e95c04dd8a5890d$var$events$1,
    breakpoints: $4e95c04dd8a5890d$var$breakpoints,
    checkOverflow: $4e95c04dd8a5890d$var$checkOverflow$1,
    classes: $4e95c04dd8a5890d$var$classes
};
const $4e95c04dd8a5890d$var$extendedDefaults = {};
class $4e95c04dd8a5890d$export$25ce5a424b770e84 {
    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 = (0, $831683533b862e22$export$efccba1c4a2ef57b)({}, params);
        if (el && !params.el) params.el = el;
        const document1 = (0, $189f45f12f88561c$export$39b482c5e57630a8)();
        if (params.el && typeof params.el === "string" && document1.querySelectorAll(params.el).length > 1) {
            const swipers = [];
            document1.querySelectorAll(params.el).forEach((containerEl)=>{
                const newParams = (0, $831683533b862e22$export$efccba1c4a2ef57b)({}, params, {
                    el: containerEl
                });
                swipers.push(new $4e95c04dd8a5890d$export$25ce5a424b770e84(newParams));
            });
            // eslint-disable-next-line no-constructor-return
            return swipers;
        }
        // Swiper Instance
        const swiper = this;
        swiper.__swiper__ = true;
        swiper.support = $4e95c04dd8a5890d$var$getSupport();
        swiper.device = $4e95c04dd8a5890d$var$getDevice({
            userAgent: params.userAgent
        });
        swiper.browser = $4e95c04dd8a5890d$var$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: params,
                swiper: swiper,
                extendParams: $4e95c04dd8a5890d$var$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 = (0, $831683533b862e22$export$efccba1c4a2ef57b)({}, $4e95c04dd8a5890d$export$4368d992c4eafac0, allModulesParams);
        // Extend defaults with passed params
        swiper.params = (0, $831683533b862e22$export$efccba1c4a2ef57b)({}, swiperParams, $4e95c04dd8a5890d$var$extendedDefaults, params);
        swiper.originalParams = (0, $831683533b862e22$export$efccba1c4a2ef57b)({}, swiper.params);
        swiper.passedParams = (0, $831683533b862e22$export$efccba1c4a2ef57b)({}, 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: 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: slidesEl, params: params } = this;
        const slides = (0, $831683533b862e22$export$f1e1789686576879)(slidesEl, `.${params.slideClass}, swiper-slide`);
        const firstSlideIndex = (0, $831683533b862e22$export$dda1d9f60106f0e9)(slides[0]);
        return (0, $831683533b862e22$export$dda1d9f60106f0e9)(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: slidesEl, params: params } = swiper;
        swiper.slides = (0, $831683533b862e22$export$f1e1789686576879)(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: slideEl,
                classNames: 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: params, slides: slides, slidesGrid: slidesGrid, slidesSizesGrid: slidesSizesGrid, size: swiperSize, activeIndex: activeIndex } = swiper;
        let spv = 1;
        if (typeof params.slidesPerView === "number") return params.slidesPerView;
        if (params.centeredSlides) {
            let slideSize = slides[activeIndex] ? Math.ceil(slides[activeIndex].swiperSlideSize) : 0;
            let breakLoop;
            for(let i = activeIndex + 1; i < slides.length; i += 1)if (slides[i] && !breakLoop) {
                slideSize += Math.ceil(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: snapGrid, params: params } = swiper;
        // Breakpoints
        if (params.breakpoints) swiper.setBreakpoint();
        [
            ...swiper.el.querySelectorAll('[loading="lazy"]')
        ].forEach((imageEl)=>{
            if (imageEl.complete) $4e95c04dd8a5890d$var$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.params.swiperElementNodeName.toUpperCase()) 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 (0, $831683533b862e22$export$f1e1789686576879)(el, getWrapperSelector())[0];
        };
        // Find Wrapper
        let wrapperEl = getWrapper();
        if (!wrapperEl && swiper.params.createElements) {
            wrapperEl = (0, $831683533b862e22$export$db3b6bfb95261072)("div", swiper.params.wrapperClass);
            el.append(wrapperEl);
            (0, $831683533b862e22$export$f1e1789686576879)(el, `.${swiper.params.slideClass}`).forEach((slideEl)=>{
                wrapperEl.append(slideEl);
            });
        }
        Object.assign(swiper, {
            el: el,
            wrapperEl: 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" || (0, $831683533b862e22$export$ffb5f4729a158638)(el, "direction") === "rtl",
            rtlTranslate: swiper.params.direction === "horizontal" && (el.dir.toLowerCase() === "rtl" || (0, $831683533b862e22$export$ffb5f4729a158638)(el, "direction") === "rtl"),
            wrongRTL: (0, $831683533b862e22$export$ffb5f4729a158638)(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) $4e95c04dd8a5890d$var$processLazyPreloader(swiper, imageEl);
            else imageEl.addEventListener("load", (e)=>{
                $4e95c04dd8a5890d$var$processLazyPreloader(swiper, e.target);
            });
        });
        $4e95c04dd8a5890d$var$preload(swiper);
        // Init Flag
        swiper.initialized = true;
        $4e95c04dd8a5890d$var$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: params, el: el, wrapperEl: wrapperEl, slides: 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();
            if (el && typeof el !== "string") el.removeAttribute("style");
            if (wrapperEl) 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) {
            if (swiper.el && typeof swiper.el !== "string") swiper.el.swiper = null;
            (0, $831683533b862e22$export$d141bba7fdc215a3)(swiper);
        }
        swiper.destroyed = true;
        return null;
    }
    static extendDefaults(newDefaults) {
        (0, $831683533b862e22$export$efccba1c4a2ef57b)($4e95c04dd8a5890d$var$extendedDefaults, newDefaults);
    }
    static get extendedDefaults() {
        return $4e95c04dd8a5890d$var$extendedDefaults;
    }
    static get defaults() {
        return $4e95c04dd8a5890d$export$4368d992c4eafac0;
    }
    static installModule(mod) {
        if (!$4e95c04dd8a5890d$export$25ce5a424b770e84.prototype.__modules__) $4e95c04dd8a5890d$export$25ce5a424b770e84.prototype.__modules__ = [];
        const modules = $4e95c04dd8a5890d$export$25ce5a424b770e84.prototype.__modules__;
        if (typeof mod === "function" && modules.indexOf(mod) < 0) modules.push(mod);
    }
    static use(module) {
        if (Array.isArray(module)) {
            module.forEach((m)=>$4e95c04dd8a5890d$export$25ce5a424b770e84.installModule(m));
            return $4e95c04dd8a5890d$export$25ce5a424b770e84;
        }
        $4e95c04dd8a5890d$export$25ce5a424b770e84.installModule(module);
        return $4e95c04dd8a5890d$export$25ce5a424b770e84;
    }
}
Object.keys($4e95c04dd8a5890d$var$prototypes).forEach((prototypeGroup)=>{
    Object.keys($4e95c04dd8a5890d$var$prototypes[prototypeGroup]).forEach((protoMethod)=>{
        $4e95c04dd8a5890d$export$25ce5a424b770e84.prototype[protoMethod] = $4e95c04dd8a5890d$var$prototypes[prototypeGroup][protoMethod];
    });
});
$4e95c04dd8a5890d$export$25ce5a424b770e84.use([
    $4e95c04dd8a5890d$var$Resize,
    $4e95c04dd8a5890d$var$Observer
]);






function $4438d6a56c7fd83e$export$2e2bcd8739ae039(_ref) {
    let { swiper: swiper, extendParams: extendParams, on: on, emit: emit } = _ref;
    extendParams({
        virtual: {
            enabled: false,
            slides: [],
            cache: true,
            renderSlide: null,
            renderExternal: null,
            renderExternalUpdate: true,
            addSlidesBefore: 0,
            addSlidesAfter: 0
        }
    });
    let cssModeTimeout;
    const document = (0, $189f45f12f88561c$export$39b482c5e57630a8)();
    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 = (0, $831683533b862e22$export$db3b6bfb95261072)("swiper-slide");
        else slideEl = (0, $831683533b862e22$export$db3b6bfb95261072)("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, beforeInit) {
        const { slidesPerView: slidesPerView, slidesPerGroup: slidesPerGroup, centeredSlides: centeredSlides, loop: isLoop, initialSlide: initialSlide } = swiper.params;
        if (beforeInit && !isLoop && initialSlide > 0) return;
        const { addSlidesBefore: addSlidesBefore, addSlidesAfter: addSlidesAfter } = swiper.params.virtual;
        const { from: previousFrom, to: previousTo, slides: 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: from,
            to: to,
            offset: offset,
            slidesGrid: swiper.slidesGrid,
            slidesBefore: slidesBefore,
            slidesAfter: 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: offset,
                from: from,
                to: 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));
            });
        }
        (0, $831683533b862e22$export$f1e1789686576879)(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(false, true);
    });
    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) (0, $831683533b862e22$export$2408f22a0fab9ae5)(swiper.wrapperEl, "--swiper-virtual-size", `${swiper.virtualSize}px`);
    });
    Object.assign(swiper.virtual, {
        appendSlide: appendSlide,
        prependSlide: prependSlide,
        removeSlide: removeSlide,
        removeAllSlides: removeAllSlides,
        update: update
    });
}




/* eslint-disable consistent-return */ function $b262de0fa94a90b2$export$2e2bcd8739ae039(_ref) {
    let { swiper: swiper, extendParams: extendParams, on: on, emit: emit } = _ref;
    const document = (0, $189f45f12f88561c$export$39b482c5e57630a8)();
    const window = (0, $189f45f12f88561c$export$407448d2b89b1813)();
    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 ((0, $831683533b862e22$export$407448d2b89b1813)(swiper.el, `.${swiper.params.slideClass}, swiper-slide`).length > 0 && (0, $831683533b862e22$export$407448d2b89b1813)(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 = (0, $831683533b862e22$export$8b22cf2602fb60ce)(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: enable,
        disable: disable
    });
}




/* eslint-disable consistent-return */ function $7629c73f4b50d57c$export$2e2bcd8739ae039(_ref) {
    let { swiper: swiper, extendParams: extendParams, on: on, emit: emit } = _ref;
    const window = (0, $189f45f12f88561c$export$407448d2b89b1813)();
    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 = (0, $831683533b862e22$export$4368d992c4eafac0)();
    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 && (0, $831683533b862e22$export$4368d992c4eafac0)() - 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 && (0, $831683533b862e22$export$4368d992c4eafac0)() - 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(event1) {
        let e = event1;
        let disableParentSwiper = true;
        if (!swiper.enabled) return;
        // Ignore event if the target or its parents have the swiper-no-mousewheel class
        if (event1.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: (0, $831683533b862e22$export$4368d992c4eafac0)(),
                delta: Math.abs(delta),
                direction: Math.sign(delta),
                raw: event1
            };
            // 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: (0, $831683533b862e22$export$4368d992c4eafac0)(),
                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 = (0, $831683533b862e22$export$7ccc53e8f1e7dfc5)(()=>{
                            if (swiper.destroyed || !swiper.params) return;
                            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 = (0, $831683533b862e22$export$7ccc53e8f1e7dfc5)(()=>{
                            if (swiper.destroyed || !swiper.params) return;
                            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: enable,
        disable: disable
    });
}



function $75528d4699cb5574$export$db3b6bfb95261072(swiper, originalParams, params, checkProps) {
    if (swiper.params.createElements) Object.keys(checkProps).forEach((key)=>{
        if (!params[key] && params.auto === true) {
            let element = (0, $831683533b862e22$export$f1e1789686576879)(swiper.el, `.${checkProps[key]}`)[0];
            if (!element) {
                element = (0, $831683533b862e22$export$db3b6bfb95261072)("div", checkProps[key]);
                element.className = checkProps[key];
                swiper.el.append(element);
            }
            params[key] = element;
            originalParams[key] = element;
        }
    });
    return params;
}



function $3ede398f6665eb67$export$2e2bcd8739ae039(_ref) {
    let { swiper: swiper, extendParams: extendParams, on: on, emit: 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
    };
    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 && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) res = swiper.el.querySelector(el);
            else if (res && res.length === 1) res = res[0];
        }
        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 = (0, $831683533b862e22$export$953cecd6e717a553)(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: nextEl, prevEl: 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 = (0, $75528d4699cb5574$export$db3b6bfb95261072)(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: nextEl,
            prevEl: prevEl
        });
        nextEl = (0, $831683533b862e22$export$953cecd6e717a553)(nextEl);
        prevEl = (0, $831683533b862e22$export$953cecd6e717a553)(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: nextEl, prevEl: prevEl } = swiper.navigation;
        nextEl = (0, $831683533b862e22$export$953cecd6e717a553)(nextEl);
        prevEl = (0, $831683533b862e22$export$953cecd6e717a553)(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: nextEl, prevEl: prevEl } = swiper.navigation;
        nextEl = (0, $831683533b862e22$export$953cecd6e717a553)(nextEl);
        prevEl = (0, $831683533b862e22$export$953cecd6e717a553)(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: nextEl, prevEl: prevEl } = swiper.navigation;
        nextEl = (0, $831683533b862e22$export$953cecd6e717a553)(nextEl);
        prevEl = (0, $831683533b862e22$export$953cecd6e717a553)(prevEl);
        const targetEl = e.target;
        let targetIsButton = prevEl.includes(targetEl) || nextEl.includes(targetEl);
        if (swiper.isElement && !targetIsButton) {
            const path = e.path || e.composedPath && e.composedPath();
            if (path) targetIsButton = path.find((pathEl)=>nextEl.includes(pathEl) || prevEl.includes(pathEl));
        }
        if (swiper.params.navigation.hideOnClick && !targetIsButton) {
            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: enable,
        disable: disable,
        update: update,
        init: init,
        destroy: destroy
    });
}


function $568b5eab5472b7cb$export$db3b6bfb95261072(classes) {
    if (classes === void 0) classes = "";
    return `.${classes.trim().replace(/([\.:!+\/])/g, "\\$1") // eslint-disable-line
        .replace(/ /g, ".")}`;
}




function $48396d89743015b3$export$2e2bcd8739ae039(_ref) {
    let { swiper: swiper, extendParams: extendParams, on: on, emit: 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;
    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: 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 getMoveDirection(prevIndex, nextIndex, length) {
        prevIndex = prevIndex % length;
        nextIndex = nextIndex % length;
        if (nextIndex === prevIndex + 1) return "next";
        else if (nextIndex === prevIndex - 1) return "previous";
        return;
    }
    function onBulletClick(e) {
        const bulletEl = e.target.closest((0, $568b5eab5472b7cb$export$db3b6bfb95261072)(swiper.params.pagination.bulletClass));
        if (!bulletEl) return;
        e.preventDefault();
        const index = (0, $831683533b862e22$export$dda1d9f60106f0e9)(bulletEl) * swiper.params.slidesPerGroup;
        if (swiper.params.loop) {
            if (swiper.realIndex === index) return;
            const moveDirection = getMoveDirection(swiper.realIndex, index, swiper.slides.length);
            if (moveDirection === "next") swiper.slideNext();
            else if (moveDirection === "previous") swiper.slidePrev();
            else 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 = (0, $831683533b862e22$export$953cecd6e717a553)(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 = (0, $831683533b862e22$export$2d1720544b23b823)(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 = (0, $831683533b862e22$export$dda1d9f60106f0e9)(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((0, $568b5eab5472b7cb$export$db3b6bfb95261072)(params.currentClass)).forEach((fractionEl)=>{
                    fractionEl.textContent = params.formatFractionCurrent(current + 1);
                });
                subEl.querySelectorAll((0, $568b5eab5472b7cb$export$db3b6bfb95261072)(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((0, $568b5eab5472b7cb$export$db3b6bfb95261072)(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 = (0, $831683533b862e22$export$953cecd6e717a553)(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}"></${params.bulletElement}>`;
        }
        if (params.type === "fraction") {
            if (params.renderFraction) paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);
            else paginationHTML = `<span class="${params.currentClass}"></span>` + " / " + `<span class="${params.totalClass}"></span>`;
        }
        if (params.type === "progressbar") {
            if (params.renderProgressbar) paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);
            else paginationHTML = `<span class="${params.progressbarFillClass}"></span>`;
        }
        swiper.pagination.bullets = [];
        el.forEach((subEl)=>{
            if (params.type !== "custom") subEl.innerHTML = paginationHTML || "";
            if (params.type === "bullets") swiper.pagination.bullets.push(...subEl.querySelectorAll((0, $568b5eab5472b7cb$export$db3b6bfb95261072)(params.bulletClass)));
        });
        if (params.type !== "custom") emit("paginationRender", el[0]);
    }
    function init() {
        swiper.params.pagination = (0, $75528d4699cb5574$export$db3b6bfb95261072)(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 ((0, $831683533b862e22$export$407448d2b89b1813)(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
        });
        el = (0, $831683533b862e22$export$953cecd6e717a553)(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 = (0, $831683533b862e22$export$953cecd6e717a553)(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: el } = swiper.pagination;
        el = (0, $831683533b862e22$export$953cecd6e717a553)(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: el } = swiper.pagination;
        if (el) {
            el = (0, $831683533b862e22$export$953cecd6e717a553)(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 = (0, $831683533b862e22$export$953cecd6e717a553)(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: el } = swiper.pagination;
        if (el) {
            el = (0, $831683533b862e22$export$953cecd6e717a553)(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: el } = swiper.pagination;
        if (el) {
            el = (0, $831683533b862e22$export$953cecd6e717a553)(el);
            el.forEach((subEl)=>subEl.classList.add(swiper.params.pagination.paginationDisabledClass));
        }
        destroy();
    };
    Object.assign(swiper.pagination, {
        enable: enable,
        disable: disable,
        render: render,
        update: update,
        init: init,
        destroy: destroy
    });
}






function $f9936f97c4cb712c$export$2e2bcd8739ae039(_ref) {
    let { swiper: swiper, extendParams: extendParams, on: on, emit: emit } = _ref;
    const document = (0, $189f45f12f88561c$export$39b482c5e57630a8)();
    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: scrollbar, rtlTranslate: rtl } = swiper;
        const { dragEl: dragEl, el: 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: scrollbar } = swiper;
        const { dragEl: dragEl, el: 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: scrollbar, rtlTranslate: rtl } = swiper;
        const { el: el } = scrollbar;
        let positionRatio;
        positionRatio = (getPointerPosition(e) - (0, $831683533b862e22$export$8b22cf2602fb60ce)(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: scrollbar, wrapperEl: wrapperEl } = swiper;
        const { el: el, dragEl: 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: scrollbar, wrapperEl: wrapperEl } = swiper;
        const { el: el, dragEl: dragEl } = scrollbar;
        if (!isTouched) return;
        if (e.preventDefault && e.cancelable) 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: scrollbar, wrapperEl: wrapperEl } = swiper;
        const { el: 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 = (0, $831683533b862e22$export$7ccc53e8f1e7dfc5)(()=>{
                el.style.opacity = 0;
                el.style.transitionDuration = "400ms";
            }, 1000);
        }
        emit("scrollbarDragEnd", e);
        if (params.snapOnRelease) swiper.slideToClosest();
    }
    function events(method) {
        const { scrollbar: scrollbar, params: 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: scrollbar, el: swiperEl } = swiper;
        swiper.params.scrollbar = (0, $75528d4699cb5574$export$db3b6bfb95261072)(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((0, $568b5eab5472b7cb$export$db3b6bfb95261072)(swiper.params.scrollbar.dragClass));
            if (!dragEl) {
                dragEl = (0, $831683533b862e22$export$db3b6bfb95261072)("div", swiper.params.scrollbar.dragClass);
                el.append(dragEl);
            }
        }
        Object.assign(scrollbar, {
            el: el,
            dragEl: dragEl
        });
        if (params.draggable) enableDraggable();
        if (el) el.classList[swiper.enabled ? "remove" : "add"](...(0, $831683533b862e22$export$23f2a1d2818174ef)(swiper.params.scrollbar.lockClass));
    }
    function destroy() {
        const params = swiper.params.scrollbar;
        const el = swiper.scrollbar.el;
        if (el) el.classList.remove(...(0, $831683533b862e22$export$23f2a1d2818174ef)(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass));
        disableDraggable();
    }
    on("changeDirection", ()=>{
        if (!swiper.scrollbar || !swiper.scrollbar.el) return;
        const params = swiper.params.scrollbar;
        let { el: el } = swiper.scrollbar;
        el = (0, $831683533b862e22$export$953cecd6e717a553)(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.scrollbar.enabled === false) // eslint-disable-next-line
            disable();
        else {
            init();
            updateSize();
            setTranslate();
        }
    });
    on("update resize observerUpdate lock unlock changeDirection", ()=>{
        updateSize();
    });
    on("setTranslate", ()=>{
        setTranslate();
    });
    on("setTransition", (_s, duration)=>{
        setTransition(duration);
    });
    on("enable disable", ()=>{
        const { el: el } = swiper.scrollbar;
        if (el) el.classList[swiper.enabled ? "remove" : "add"](...(0, $831683533b862e22$export$23f2a1d2818174ef)(swiper.params.scrollbar.lockClass));
    });
    on("destroy", ()=>{
        destroy();
    });
    const enable = ()=>{
        swiper.el.classList.remove(...(0, $831683533b862e22$export$23f2a1d2818174ef)(swiper.params.scrollbar.scrollbarDisabledClass));
        if (swiper.scrollbar.el) swiper.scrollbar.el.classList.remove(...(0, $831683533b862e22$export$23f2a1d2818174ef)(swiper.params.scrollbar.scrollbarDisabledClass));
        init();
        updateSize();
        setTranslate();
    };
    const disable = ()=>{
        swiper.el.classList.add(...(0, $831683533b862e22$export$23f2a1d2818174ef)(swiper.params.scrollbar.scrollbarDisabledClass));
        if (swiper.scrollbar.el) swiper.scrollbar.el.classList.add(...(0, $831683533b862e22$export$23f2a1d2818174ef)(swiper.params.scrollbar.scrollbarDisabledClass));
        destroy();
    };
    Object.assign(swiper.scrollbar, {
        enable: enable,
        disable: disable,
        updateSize: updateSize,
        setTranslate: setTranslate,
        init: init,
        destroy: destroy
    });
}



function $a42f2eb4b8baf0d6$export$2e2bcd8739ae039(_ref) {
    let { swiper: swiper, extendParams: extendParams, on: 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: 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: el, slides: slides, progress: progress, snapGrid: snapGrid, isElement: isElement } = swiper;
        const elements = (0, $831683533b862e22$export$f1e1789686576879)(el, elementsSelector);
        if (swiper.isElement) elements.push(...(0, $831683533b862e22$export$f1e1789686576879)(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: el, hostEl: 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 $da01103e1a8fa261$export$2e2bcd8739ae039(_ref) {
    let { swiper: swiper, extendParams: extendParams, on: on, emit: emit } = _ref;
    const window = (0, $189f45f12f88561c$export$407448d2b89b1813)();
    extendParams({
        zoom: {
            enabled: false,
            limitToOriginalSize: 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 getMaxRatio() {
        const params = swiper.params.zoom;
        const maxRatio = gesture.imageWrapEl.getAttribute("data-swiper-zoom") || params.maxRatio;
        if (params.limitToOriginalSize && gesture.imageEl && gesture.imageEl.naturalWidth) {
            const imageMaxRatio = gesture.imageEl.naturalWidth / gesture.imageEl.offsetWidth;
            return Math.min(imageMaxRatio, maxRatio);
        }
        return maxRatio;
    }
    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 = (0, $831683533b862e22$export$407448d2b89b1813)(gesture.imageEl, `.${params.containerClass}`)[0];
            else gesture.imageWrapEl = undefined;
            if (!gesture.imageWrapEl) {
                gesture.imageEl = undefined;
                return;
            }
            gesture.maxRatio = getMaxRatio();
        }
        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;
        }
    }
    let allowTouchMoveTimeout;
    function allowTouchMove() {
        swiper.touchEventsData.preventTouchMoveFromPointerMove = false;
    }
    function preventTouchMove() {
        clearTimeout(allowTouchMoveTimeout);
        swiper.touchEventsData.preventTouchMoveFromPointerMove = true;
        allowTouchMoveTimeout = setTimeout(()=>{
            allowTouchMove();
        });
    }
    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 || gesture.imageEl.clientWidth;
            image.height = gesture.imageEl.offsetHeight || gesture.imageEl.clientHeight;
            image.startX = (0, $831683533b862e22$export$35e795649ee09318)(gesture.imageWrapEl, "x") || 0;
            image.startY = (0, $831683533b862e22$export$35e795649ee09318)(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;
        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;
                allowTouchMove();
                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;
                allowTouchMove();
                return;
            }
        }
        if (e.cancelable) e.preventDefault();
        e.stopPropagation();
        preventTouchMove();
        image.isMoved = true;
        const scaleRatio = (zoom.scale - currentScale) / (gesture.maxRatio - swiper.params.zoom.minRatio);
        const { originX: originX, originY: 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 = (0, $831683533b862e22$export$f1e1789686576879)(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 = (0, $831683533b862e22$export$407448d2b89b1813)(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;
            image.touchesStart.x = undefined;
            image.touchesStart.y = undefined;
        }
        const maxRatio = getMaxRatio();
        zoom.scale = forceZoomRatio || maxRatio;
        currentScale = forceZoomRatio || maxRatio;
        if (e && !(currentScale === 1 && forceZoomRatio)) {
            slideWidth = gesture.slideEl.offsetWidth;
            slideHeight = gesture.slideEl.offsetHeight;
            offsetX = (0, $831683533b862e22$export$8b22cf2602fb60ce)(gesture.slideEl).left + window.scrollX;
            offsetY = (0, $831683533b862e22$export$8b22cf2602fb60ce)(gesture.slideEl).top + window.scrollY;
            diffX = offsetX + slideWidth / 2 - touchX;
            diffY = offsetY + slideHeight / 2 - touchY;
            imageWidth = gesture.imageEl.offsetWidth || gesture.imageEl.clientWidth;
            imageHeight = gesture.imageEl.offsetHeight || gesture.imageEl.clientHeight;
            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 = (0, $831683533b862e22$export$f1e1789686576879)(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 = (0, $831683533b862e22$export$407448d2b89b1813)(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;
        image.touchesStart.x = undefined;
        image.touchesStart.y = undefined;
        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: passiveListener,
            activeListenerWithCapture: activeListenerWithCapture
        };
    }
    // Attach/Detach Events
    function enable() {
        const zoom = swiper.zoom;
        if (zoom.enabled) return;
        zoom.enabled = true;
        const { passiveListener: passiveListener, activeListenerWithCapture: 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: passiveListener, activeListenerWithCapture: 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: enable,
        disable: disable,
        in: zoomIn,
        out: zoomOut,
        toggle: zoomToggle
    });
}



/* eslint no-bitwise: ["error", { "allow": [">>"] }] */ function $637840a65b455b9b$export$2e2bcd8739ae039(_ref) {
    let { swiper: swiper, extendParams: extendParams, on: 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) (0, $831683533b862e22$export$7ccc53e8f1e7dfc5)(()=>{
                    c.updateAutoHeight();
                });
                (0, $831683533b862e22$export$342063e11d6c3cad)(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 controlElements = typeof swiper.params.controller.control === "string" ? [
                ...document.querySelectorAll(swiper.params.controller.control)
            ] : [
                swiper.params.controller.control
            ];
            controlElements.forEach((controlElement)=>{
                if (!swiper.controller.control) swiper.controller.control = [];
                if (controlElement && controlElement.swiper) swiper.controller.control.push(controlElement.swiper);
                else if (controlElement) {
                    const eventName = `${swiper.params.eventsPrefix}init`;
                    const onControllerSwiper = (e)=>{
                        swiper.controller.control.push(e.detail[0]);
                        swiper.update();
                        controlElement.removeEventListener(eventName, onControllerSwiper);
                    };
                    controlElement.addEventListener(eventName, 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: setTranslate,
        setTransition: setTransition
    });
}





function $0eea497b988f6467$export$2e2bcd8739ae039(_ref) {
    let { swiper: swiper, extendParams: extendParams, on: 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,
            containerRole: null,
            itemRoleDescriptionMessage: null,
            slideRole: "group",
            id: null,
            scrollOnFocus: true
        }
    });
    swiper.a11y = {
        clicked: false
    };
    let liveRegion = null;
    let preventFocusHandler;
    let focusTargetSlideEl;
    let visibilityChangedTimestamp = new Date().getTime();
    function notify(message) {
        const notification = liveRegion;
        if (notification.length === 0) return;
        notification.innerHTML = "";
        notification.innerHTML = message;
    }
    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 = (0, $831683533b862e22$export$953cecd6e717a553)(el);
        el.forEach((subEl)=>{
            subEl.setAttribute("tabIndex", "0");
        });
    }
    function makeElNotFocusable(el) {
        el = (0, $831683533b862e22$export$953cecd6e717a553)(el);
        el.forEach((subEl)=>{
            subEl.setAttribute("tabIndex", "-1");
        });
    }
    function addElRole(el, role) {
        el = (0, $831683533b862e22$export$953cecd6e717a553)(el);
        el.forEach((subEl)=>{
            subEl.setAttribute("role", role);
        });
    }
    function addElRoleDescription(el, description) {
        el = (0, $831683533b862e22$export$953cecd6e717a553)(el);
        el.forEach((subEl)=>{
            subEl.setAttribute("aria-roledescription", description);
        });
    }
    function addElControls(el, controls) {
        el = (0, $831683533b862e22$export$953cecd6e717a553)(el);
        el.forEach((subEl)=>{
            subEl.setAttribute("aria-controls", controls);
        });
    }
    function addElLabel(el, label) {
        el = (0, $831683533b862e22$export$953cecd6e717a553)(el);
        el.forEach((subEl)=>{
            subEl.setAttribute("aria-label", label);
        });
    }
    function addElId(el, id) {
        el = (0, $831683533b862e22$export$953cecd6e717a553)(el);
        el.forEach((subEl)=>{
            subEl.setAttribute("id", id);
        });
    }
    function addElLive(el, live) {
        el = (0, $831683533b862e22$export$953cecd6e717a553)(el);
        el.forEach((subEl)=>{
            subEl.setAttribute("aria-live", live);
        });
    }
    function disableEl(el) {
        el = (0, $831683533b862e22$export$953cecd6e717a553)(el);
        el.forEach((subEl)=>{
            subEl.setAttribute("aria-disabled", true);
        });
    }
    function enableEl(el) {
        el = (0, $831683533b862e22$export$953cecd6e717a553)(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((0, $568b5eab5472b7cb$export$db3b6bfb95261072)(swiper.params.pagination.bulletClass))) return;
        }
        if (swiper.navigation && swiper.navigation.prevEl && swiper.navigation.nextEl) {
            const prevEls = (0, $831683533b862e22$export$953cecd6e717a553)(swiper.navigation.prevEl);
            const nextEls = (0, $831683533b862e22$export$953cecd6e717a553)(swiper.navigation.nextEl);
            if (nextEls.includes(targetEl)) {
                if (!(swiper.isEnd && !swiper.params.loop)) swiper.slideNext();
                if (swiper.isEnd) notify(params.lastSlideMessage);
                else notify(params.nextSlideMessage);
            }
            if (prevEls.includes(targetEl)) {
                if (!(swiper.isBeginning && !swiper.params.loop)) swiper.slidePrev();
                if (swiper.isBeginning) notify(params.firstSlideMessage);
                else notify(params.prevSlideMessage);
            }
        }
        if (swiper.pagination && targetEl.matches((0, $568b5eab5472b7cb$export$db3b6bfb95261072)(swiper.params.pagination.bulletClass))) targetEl.click();
    }
    function updateNavigation() {
        if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return;
        const { nextEl: nextEl, prevEl: 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\}\}/, (0, $831683533b862e22$export$dda1d9f60106f0e9)(bulletEl) + 1));
                }
            }
            if (bulletEl.matches((0, $568b5eab5472b7cb$export$db3b6bfb95261072)(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 = (e)=>{
        if (focusTargetSlideEl && focusTargetSlideEl !== e.target && !focusTargetSlideEl.contains(e.target)) preventFocusHandler = true;
        swiper.a11y.clicked = true;
    };
    const handlePointerUp = ()=>{
        preventFocusHandler = false;
        requestAnimationFrame(()=>{
            requestAnimationFrame(()=>{
                if (!swiper.destroyed) swiper.a11y.clicked = false;
            });
        });
    };
    const onVisibilityChange = (e)=>{
        visibilityChangedTimestamp = new Date().getTime();
    };
    const handleFocus = (e)=>{
        if (swiper.a11y.clicked || !swiper.params.a11y.scrollOnFocus) return;
        if (new Date().getTime() - visibilityChangedTimestamp < 100) return;
        const slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);
        if (!slideEl || !swiper.slides.includes(slideEl)) return;
        focusTargetSlideEl = slideEl;
        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;
        requestAnimationFrame(()=>{
            if (preventFocusHandler) return;
            if (swiper.params.loop) swiper.slideToLoop(parseInt(slideEl.getAttribute("data-swiper-slide-index")), 0);
            else swiper.slideTo(swiper.slides.indexOf(slideEl), 0);
            preventFocusHandler = false;
        });
    };
    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);
        if (params.containerRole) addElRole(containerEl, params.containerRole);
        // 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: nextEl, prevEl: prevEl } = swiper.navigation ? swiper.navigation : {};
        nextEl = (0, $831683533b862e22$export$953cecd6e717a553)(nextEl);
        prevEl = (0, $831683533b862e22$export$953cecd6e717a553)(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 = (0, $831683533b862e22$export$953cecd6e717a553)(swiper.pagination.el);
            paginationEl.forEach((el)=>{
                el.addEventListener("keydown", onEnterOrSpaceKey);
            });
        }
        // Tab focus
        const document = (0, $189f45f12f88561c$export$39b482c5e57630a8)();
        document.addEventListener("visibilitychange", onVisibilityChange);
        swiper.el.addEventListener("focus", handleFocus, true);
        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: nextEl, prevEl: prevEl } = swiper.navigation ? swiper.navigation : {};
        nextEl = (0, $831683533b862e22$export$953cecd6e717a553)(nextEl);
        prevEl = (0, $831683533b862e22$export$953cecd6e717a553)(prevEl);
        if (nextEl) nextEl.forEach((el)=>el.removeEventListener("keydown", onEnterOrSpaceKey));
        if (prevEl) prevEl.forEach((el)=>el.removeEventListener("keydown", onEnterOrSpaceKey));
        // Pagination
        if (hasClickablePagination()) {
            const paginationEl = (0, $831683533b862e22$export$953cecd6e717a553)(swiper.pagination.el);
            paginationEl.forEach((el)=>{
                el.removeEventListener("keydown", onEnterOrSpaceKey);
            });
        }
        const document = (0, $189f45f12f88561c$export$39b482c5e57630a8)();
        document.removeEventListener("visibilitychange", onVisibilityChange);
        // Tab focus
        if (swiper.el && typeof swiper.el !== "string") {
            swiper.el.removeEventListener("focus", handleFocus, true);
            swiper.el.removeEventListener("pointerdown", handlePointerDown, true);
            swiper.el.removeEventListener("pointerup", handlePointerUp, true);
        }
    }
    on("beforeInit", ()=>{
        liveRegion = (0, $831683533b862e22$export$db3b6bfb95261072)("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 $20a2cccb81c115b1$export$2e2bcd8739ae039(_ref) {
    let { swiper: swiper, extendParams: extendParams, on: 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 = (0, $189f45f12f88561c$export$407448d2b89b1813)();
        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: key,
            value: value
        };
    };
    const setHistory = (key, index)=>{
        const window = (0, $189f45f12f88561c$export$407448d2b89b1813)();
        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.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index="${index}"]`) : 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: value
        }, null, value);
        else window.history.pushState({
            value: 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 = (0, $189f45f12f88561c$export$407448d2b89b1813)();
        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 = (0, $189f45f12f88561c$export$407448d2b89b1813)();
        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 $0de166b73ddce24c$export$2e2bcd8739ae039(_ref) {
    let { swiper: swiper, extendParams: extendParams, emit: emit, on: on } = _ref;
    let initialized = false;
    const document = (0, $189f45f12f88561c$export$39b482c5e57630a8)();
    const window = (0, $189f45f12f88561c$export$407448d2b89b1813)();
    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((0, $831683533b862e22$export$f1e1789686576879)(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 $774fac4d19db27e1$export$2e2bcd8739ae039(_ref) {
    let { swiper: swiper, extendParams: extendParams, on: on, emit: emit, params: 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 || e.detail && e.detail.bySwiperTouchMove) 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 = (0, $189f45f12f88561c$export$39b482c5e57630a8)();
        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 = ()=>{
        if (swiper.el && typeof swiper.el !== "string") {
            swiper.el.removeEventListener("pointerenter", onPointerEnter);
            swiper.el.removeEventListener("pointerleave", onPointerLeave);
        }
    };
    const attachDocumentEvents = ()=>{
        const document = (0, $189f45f12f88561c$export$39b482c5e57630a8)();
        document.addEventListener("visibilitychange", onVisibilityChange);
    };
    const detachDocumentEvents = ()=>{
        const document = (0, $189f45f12f88561c$export$39b482c5e57630a8)();
        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: start,
        stop: stop,
        pause: pause,
        resume: resume
    });
}




function $21f49457975db620$export$2e2bcd8739ae039(_ref) {
    let { swiper: swiper, extendParams: extendParams, on: 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 ((0, $831683533b862e22$export$882b5998b3b9117c)(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)(0, $831683533b862e22$export$f1e1789686576879)(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 newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup;
                thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);
            }
        }
    }
    on("beforeInit", ()=>{
        const { thumbs: thumbs } = swiper.params;
        if (!thumbs || !thumbs.swiper) return;
        if (typeof thumbs.swiper === "string" || thumbs.swiper instanceof HTMLElement) {
            const document = (0, $189f45f12f88561c$export$39b482c5e57630a8)();
            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 eventName = `${swiper.params.eventsPrefix}init`;
                    const onThumbsSwiper = (e)=>{
                        thumbs.swiper = e.detail[0];
                        thumbsElement.removeEventListener(eventName, onThumbsSwiper);
                        init();
                        update(true);
                        thumbs.swiper.update();
                        swiper.update();
                    };
                    thumbsElement.addEventListener(eventName, 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: init,
        update: update
    });
}



function $9cbf5f489c16aa92$export$2e2bcd8739ae039(_ref) {
    let { swiper: swiper, extendParams: extendParams, emit: emit, once: 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: 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: (0, $831683533b862e22$export$4368d992c4eafac0)()
        });
    }
    function onTouchEnd(_ref2) {
        let { currentPos: currentPos } = _ref2;
        if (swiper.params.cssMode) return;
        const { params: params, wrapperEl: wrapperEl, rtlTranslate: rtl, snapGrid: snapGrid, touchEventsData: data } = swiper;
        // Time diff
        const touchEndTime = (0, $831683533b862e22$export$4368d992c4eafac0)();
        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 || (0, $831683533b862e22$export$4368d992c4eafac0)() - 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;
                (0, $831683533b862e22$export$342063e11d6c3cad)(wrapperEl, ()=>{
                    if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;
                    emit("momentumBounce");
                    swiper.setTransition(params.speed);
                    setTimeout(()=>{
                        swiper.setTranslate(afterBouncePosition);
                        (0, $831683533b862e22$export$342063e11d6c3cad)(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;
                    (0, $831683533b862e22$export$342063e11d6c3cad)(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: onTouchStart,
            onTouchMove: onTouchMove,
            onTouchEnd: onTouchEnd
        }
    });
}


function $22f01e60553f6fcf$export$2e2bcd8739ae039(_ref) {
    let { swiper: swiper, extendParams: extendParams, on: 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: slidesPerView } = swiper.params;
        const { rows: rows, fill: 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: slidesPerGroup } = swiper.params;
        const spaceBetween = getSpaceBetween();
        const { rows: rows, fill: 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: centeredSlides, roundLengths: roundLengths } = swiper.params;
        const spaceBetween = getSpaceBetween();
        const { rows: 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: params, el: 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: initSlides,
        unsetSlides: unsetSlides,
        updateSlide: updateSlide,
        updateWrapperSize: updateWrapperSize
    };
}


function $9a62f6a5ac664641$var$appendSlide(slides) {
    const swiper = this;
    const { params: params, slidesEl: 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 $9a62f6a5ac664641$var$prependSlide(slides) {
    const swiper = this;
    const { params: params, activeIndex: activeIndex, slidesEl: 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 $9a62f6a5ac664641$var$addSlide(index, slides) {
    const swiper = this;
    const { params: params, activeIndex: activeIndex, slidesEl: 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 $9a62f6a5ac664641$var$removeSlide(slidesIndexes) {
    const swiper = this;
    const { params: params, activeIndex: 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 $9a62f6a5ac664641$var$removeAllSlides() {
    const swiper = this;
    const slidesIndexes = [];
    for(let i = 0; i < swiper.slides.length; i += 1)slidesIndexes.push(i);
    swiper.removeSlide(slidesIndexes);
}
function $9a62f6a5ac664641$export$2e2bcd8739ae039(_ref) {
    let { swiper: swiper } = _ref;
    Object.assign(swiper, {
        appendSlide: $9a62f6a5ac664641$var$appendSlide.bind(swiper),
        prependSlide: $9a62f6a5ac664641$var$prependSlide.bind(swiper),
        addSlide: $9a62f6a5ac664641$var$addSlide.bind(swiper),
        removeSlide: $9a62f6a5ac664641$var$removeSlide.bind(swiper),
        removeAllSlides: $9a62f6a5ac664641$var$removeAllSlides.bind(swiper)
    });
}


function $ab2b53734a40d9c9$export$f1e1789686576879(params) {
    const { effect: effect, swiper: swiper, on: on, setTranslate: setTranslate, setTransition: setTransition, overwriteParams: overwriteParams, perspective: perspective, recreateShadows: recreateShadows, getEffectParams: 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 $2e5cc03e71c0d780$export$f1e1789686576879(effectParams, slideEl) {
    const transformEl = (0, $831683533b862e22$export$39b482c5e57630a8)(slideEl);
    if (transformEl !== slideEl) {
        transformEl.style.backfaceVisibility = "hidden";
        transformEl.style["-webkit-backface-visibility"] = "hidden";
    }
    return transformEl;
}



function $4ae6f1cd5183d589$export$f1e1789686576879(_ref) {
    let { swiper: swiper, duration: duration, transformElements: transformElements, allSlides: allSlides } = _ref;
    const { activeIndex: 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)=>{
            (0, $831683533b862e22$export$342063e11d6c3cad)(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 $aca53ddfb08084e6$export$2e2bcd8739ae039(_ref) {
    let { swiper: swiper, extendParams: extendParams, on: on } = _ref;
    extendParams({
        fadeEffect: {
            crossFade: false
        }
    });
    const setTranslate = ()=>{
        const { slides: 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 = (0, $2e5cc03e71c0d780$export$f1e1789686576879)(params, slideEl);
            targetEl.style.opacity = slideOpacity;
            targetEl.style.transform = `translate3d(${tx}px, ${ty}px, 0px)`;
        }
    };
    const setTransition = (duration)=>{
        const transformElements = swiper.slides.map((slideEl)=>(0, $831683533b862e22$export$39b482c5e57630a8)(slideEl));
        transformElements.forEach((el)=>{
            el.style.transitionDuration = `${duration}ms`;
        });
        (0, $4ae6f1cd5183d589$export$f1e1789686576879)({
            swiper: swiper,
            duration: duration,
            transformElements: transformElements,
            allSlides: true
        });
    };
    (0, $ab2b53734a40d9c9$export$f1e1789686576879)({
        effect: "fade",
        swiper: swiper,
        on: on,
        setTranslate: setTranslate,
        setTransition: setTransition,
        overwriteParams: ()=>({
            slidesPerView: 1,
            slidesPerGroup: 1,
            watchSlidesProgress: true,
            spaceBetween: 0,
            virtualTranslate: !swiper.params.cssMode
        })
    });
}




function $637335d98546bd4e$export$2e2bcd8739ae039(_ref) {
    let { swiper: swiper, extendParams: extendParams, on: 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 = (0, $831683533b862e22$export$db3b6bfb95261072)("div", `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? "left" : "top"}`.split(" "));
            slideEl.append(shadowBefore);
        }
        if (!shadowAfter) {
            shadowAfter = (0, $831683533b862e22$export$db3b6bfb95261072)("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: el, wrapperEl: wrapperEl, slides: slides, width: swiperWidth, height: swiperHeight, rtlTranslate: rtl, size: swiperSize, browser: browser } = swiper;
        const r = (0, $831683533b862e22$export$ae1af26003f05816)(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 = (0, $831683533b862e22$export$db3b6bfb95261072)("div", "swiper-cube-shadow");
                    swiper.wrapperEl.append(cubeShadowEl);
                }
                cubeShadowEl.style.height = `${swiperWidth}px`;
            } else {
                cubeShadowEl = el.querySelector(".swiper-cube-shadow");
                if (!cubeShadowEl) {
                    cubeShadowEl = (0, $831683533b862e22$export$db3b6bfb95261072)("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(${r(isHorizontal ? 0 : -slideAngle)}deg) rotateY(${r(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;
            }
            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(${r(swiper.isHorizontal() ? 0 : wrapperRotate)}deg) rotateY(${r(swiper.isHorizontal() ? -wrapperRotate : 0)}deg)`;
        wrapperEl.style.setProperty("--swiper-cube-translate-z", `${zFactor}px`);
    };
    const setTransition = (duration)=>{
        const { el: el, slides: 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`;
        }
    };
    (0, $ab2b53734a40d9c9$export$f1e1789686576879)({
        effect: "cube",
        swiper: swiper,
        on: on,
        setTranslate: setTranslate,
        setTransition: setTransition,
        recreateShadows: recreateShadows,
        getEffectParams: ()=>swiper.params.cubeEffect,
        perspective: ()=>true,
        overwriteParams: ()=>({
            slidesPerView: 1,
            slidesPerGroup: 1,
            watchSlidesProgress: true,
            resistanceRatio: 0,
            spaceBetween: 0,
            centeredSlides: false,
            virtualTranslate: true
        })
    });
}



function $44dfcf1e6b2ae38d$export$db3b6bfb95261072(suffix, slideEl, side) {
    const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ""}${suffix ? ` swiper-slide-shadow-${suffix}` : ""}`;
    const shadowContainer = (0, $831683533b862e22$export$39b482c5e57630a8)(slideEl);
    let shadowEl = shadowContainer.querySelector(`.${shadowClass.split(" ").join(".")}`);
    if (!shadowEl) {
        shadowEl = (0, $831683533b862e22$export$db3b6bfb95261072)("div", shadowClass.split(" "));
        shadowContainer.append(shadowEl);
    }
    return shadowEl;
}






function $8692bc9f200758fe$export$2e2bcd8739ae039(_ref) {
    let { swiper: swiper, extendParams: extendParams, on: 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 = (0, $44dfcf1e6b2ae38d$export$db3b6bfb95261072)("flip", slideEl, swiper.isHorizontal() ? "left" : "top");
        if (!shadowAfter) shadowAfter = (0, $44dfcf1e6b2ae38d$export$db3b6bfb95261072)("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: slides, rtlTranslate: rtl } = swiper;
        const params = swiper.params.flipEffect;
        const rotateFix = (0, $831683533b862e22$export$ae1af26003f05816)(swiper);
        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;
            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(${rotateFix(rotateX)}deg) rotateY(${rotateFix(rotateY)}deg)`;
            const targetEl = (0, $2e5cc03e71c0d780$export$f1e1789686576879)(params, slideEl);
            targetEl.style.transform = transform;
        }
    };
    const setTransition = (duration)=>{
        const transformElements = swiper.slides.map((slideEl)=>(0, $831683533b862e22$export$39b482c5e57630a8)(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`;
            });
        });
        (0, $4ae6f1cd5183d589$export$f1e1789686576879)({
            swiper: swiper,
            duration: duration,
            transformElements: transformElements
        });
    };
    (0, $ab2b53734a40d9c9$export$f1e1789686576879)({
        effect: "flip",
        swiper: swiper,
        on: on,
        setTranslate: setTranslate,
        setTransition: setTransition,
        recreateShadows: recreateShadows,
        getEffectParams: ()=>swiper.params.flipEffect,
        perspective: ()=>true,
        overwriteParams: ()=>({
            slidesPerView: 1,
            slidesPerGroup: 1,
            watchSlidesProgress: true,
            spaceBetween: 0,
            virtualTranslate: !swiper.params.cssMode
        })
    });
}






function $2b76d10f9c6cc5b1$export$2e2bcd8739ae039(_ref) {
    let { swiper: swiper, extendParams: extendParams, on: on } = _ref;
    extendParams({
        coverflowEffect: {
            rotate: 50,
            stretch: 0,
            depth: 100,
            scale: 1,
            modifier: 1,
            slideShadows: true
        }
    });
    const setTranslate = ()=>{
        const { width: swiperWidth, height: swiperHeight, slides: slides, slidesSizesGrid: 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;
        const r = (0, $831683533b862e22$export$ae1af26003f05816)(swiper);
        // 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;
            const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px)  rotateX(${r(rotateX)}deg) rotateY(${r(rotateY)}deg) scale(${scale})`;
            const targetEl = (0, $2e5cc03e71c0d780$export$f1e1789686576879)(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 = (0, $44dfcf1e6b2ae38d$export$db3b6bfb95261072)("coverflow", slideEl, isHorizontal ? "left" : "top");
                if (!shadowAfterEl) shadowAfterEl = (0, $44dfcf1e6b2ae38d$export$db3b6bfb95261072)("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)=>(0, $831683533b862e22$export$39b482c5e57630a8)(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`;
            });
        });
    };
    (0, $ab2b53734a40d9c9$export$f1e1789686576879)({
        effect: "coverflow",
        swiper: swiper,
        on: on,
        setTranslate: setTranslate,
        setTransition: setTransition,
        perspective: ()=>true,
        overwriteParams: ()=>({
            watchSlidesProgress: true
        })
    });
}







function $d0d0ed1158dbca64$export$2e2bcd8739ae039(_ref) {
    let { swiper: swiper, extendParams: extendParams, on: 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: slides, wrapperEl: wrapperEl, slidesSizesGrid: slidesSizesGrid } = swiper;
        const params = swiper.params.creativeEffect;
        const { progressMultiplier: multiplier } = params;
        const isCenteredSlides = swiper.params.centeredSlides;
        const rotateFix = (0, $831683533b862e22$export$ae1af26003f05816)(swiper);
        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);
                r[index] = val;
            });
            slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;
            const translateString = t.join(", ");
            const rotateString = `rotateX(${rotateFix(r[0])}deg) rotateY(${rotateFix(r[1])}deg) rotateZ(${rotateFix(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 = (0, $44dfcf1e6b2ae38d$export$db3b6bfb95261072)("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 = (0, $2e5cc03e71c0d780$export$f1e1789686576879)(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)=>(0, $831683533b862e22$export$39b482c5e57630a8)(slideEl));
        transformElements.forEach((el)=>{
            el.style.transitionDuration = `${duration}ms`;
            el.querySelectorAll(".swiper-slide-shadow").forEach((shadowEl)=>{
                shadowEl.style.transitionDuration = `${duration}ms`;
            });
        });
        (0, $4ae6f1cd5183d589$export$f1e1789686576879)({
            swiper: swiper,
            duration: duration,
            transformElements: transformElements,
            allSlides: true
        });
    };
    (0, $ab2b53734a40d9c9$export$f1e1789686576879)({
        effect: "creative",
        swiper: swiper,
        on: on,
        setTranslate: setTranslate,
        setTransition: setTransition,
        perspective: ()=>swiper.params.creativeEffect.perspective,
        overwriteParams: ()=>({
            watchSlidesProgress: true,
            virtualTranslate: !swiper.params.cssMode
        })
    });
}







function $d96c330f40738f47$export$2e2bcd8739ae039(_ref) {
    let { swiper: swiper, extendParams: extendParams, on: on } = _ref;
    extendParams({
        cardsEffect: {
            slideShadows: true,
            rotate: true,
            perSlideRotate: 2,
            perSlideOffset: 8
        }
    });
    const setTranslate = ()=>{
        const { slides: slides, activeIndex: activeIndex, rtlTranslate: rtl } = swiper;
        const params = swiper.params.cardsEffect;
        const { startTranslate: startTranslate, isTouched: 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 = (0, $44dfcf1e6b2ae38d$export$db3b6bfb95261072)("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 = (0, $2e5cc03e71c0d780$export$f1e1789686576879)(params, slideEl);
            targetEl.style.transform = transform;
        }
    };
    const setTransition = (duration)=>{
        const transformElements = swiper.slides.map((slideEl)=>(0, $831683533b862e22$export$39b482c5e57630a8)(slideEl));
        transformElements.forEach((el)=>{
            el.style.transitionDuration = `${duration}ms`;
            el.querySelectorAll(".swiper-slide-shadow").forEach((shadowEl)=>{
                shadowEl.style.transitionDuration = `${duration}ms`;
            });
        });
        (0, $4ae6f1cd5183d589$export$f1e1789686576879)({
            swiper: swiper,
            duration: duration,
            transformElements: transformElements
        });
    };
    (0, $ab2b53734a40d9c9$export$f1e1789686576879)({
        effect: "cards",
        swiper: swiper,
        on: on,
        setTranslate: setTranslate,
        setTransition: setTransition,
        perspective: ()=>true,
        overwriteParams: ()=>({
            watchSlidesProgress: true,
            virtualTranslate: !swiper.params.cssMode
        })
    });
}





const $eaee570c86df261f$var$initReviewsSwiper = (activeIndex = 0)=>{
    return new (0, $4e95c04dd8a5890d$export$25ce5a424b770e84)(".reviews__swiper", {
        initialSlide: activeIndex,
        modules: [
            (0, $3ede398f6665eb67$export$2e2bcd8739ae039)
        ],
        slidesPerView: 1,
        spaceBetween: 10,
        navigation: {
            nextEl: ".reviews__btn--next",
            prevEl: ".reviews__btn--prev"
        },
        breakpoints: {
            541: {
                slidesPerView: 2,
                spaceBetween: 16
            },
            745: {
                slidesPerView: 2,
                spaceBetween: 28
            },
            1025: {
                slidesPerView: 3,
                spaceBetween: 28
            }
        }
    });
};
let $eaee570c86df261f$var$reviewsSwiper = $eaee570c86df261f$var$initReviewsSwiper();
let $eaee570c86df261f$var$reviewsSwiperCount = [].slice.call(document.querySelectorAll(".reviews__swiper .swiper-slide")).length;
const $eaee570c86df261f$var$initProductPageReviewsSwiper = (activeIndex = 0)=>{
    return new (0, $4e95c04dd8a5890d$export$25ce5a424b770e84)(".product__reviews-swiper", {
        initialSlide: activeIndex,
        modules: [
            (0, $3ede398f6665eb67$export$2e2bcd8739ae039)
        ],
        slidesPerView: 1,
        spaceBetween: 10,
        navigation: {
            nextEl: ".reviews__btn--next",
            prevEl: ".reviews__btn--prev"
        },
        breakpoints: {
            541: {
                slidesPerView: 2,
                spaceBetween: 16
            },
            745: {
                slidesPerView: 2,
                spaceBetween: 28
            },
            1025: {
                slidesPerView: 2,
                spaceBetween: 28
            }
        }
    });
};
let $eaee570c86df261f$var$productPageReviewsSwiper = $eaee570c86df261f$var$initProductPageReviewsSwiper();
let $eaee570c86df261f$var$productPageReviewsSwiperCount = [].slice.call(document.querySelectorAll(".product__reviews-swiper .swiper-slide")).length;
const $eaee570c86df261f$var$initProductThumbsSwiper = (activeIndex = 0)=>{
    return new (0, $4e95c04dd8a5890d$export$25ce5a424b770e84)(".product-page__slider-bottom", {
        initialSlide: activeIndex,
        spaceBetween: 8,
        slidesPerView: "auto",
        freeMode: true
    });
};
let $eaee570c86df261f$var$productPageThumbs = $eaee570c86df261f$var$initProductThumbsSwiper();
let $eaee570c86df261f$var$productPageThumbsCount = [].slice.call(document.querySelectorAll(".product-page__slider-bottom .swiper-slide")).length;
const $eaee570c86df261f$var$initProductPageSwiper = (activeIndex = 0)=>{
    return new (0, $4e95c04dd8a5890d$export$25ce5a424b770e84)(".product-page__slider-top", {
        initialSlide: activeIndex,
        modules: [
            (0, $21f49457975db620$export$2e2bcd8739ae039)
        ],
        slidesPerView: 1,
        spaceBetween: 10,
        thumbs: {
            swiper: $eaee570c86df261f$var$productPageThumbs
        }
    });
};
let $eaee570c86df261f$var$productPageSwiper = $eaee570c86df261f$var$initProductPageSwiper();
let $eaee570c86df261f$var$productPageSlidesCount = [].slice.call(document.querySelectorAll(".product-page__slider-top .swiper-slide")).length;
setInterval(()=>{
    // Reviews
    const newReviewsSwiperCount = [].slice.call(document.querySelectorAll(".reviews__swiper .swiper-slide")).length;
    if (newReviewsSwiperCount !== $eaee570c86df261f$var$reviewsSwiperCount) {
        const activeIndex = $eaee570c86df261f$var$reviewsSwiper.activeIndex;
        $eaee570c86df261f$var$reviewsSwiperCount = newReviewsSwiperCount;
        $eaee570c86df261f$var$reviewsSwiper.destroy();
        $eaee570c86df261f$var$reviewsSwiper = $eaee570c86df261f$var$initReviewsSwiper(activeIndex);
    }
    // Product page reviews
    const newProductPageReviewsSwiperCount = [].slice.call(document.querySelectorAll(".reviews__swiper .swiper-slide")).length;
    if (newProductPageReviewsSwiperCount !== $eaee570c86df261f$var$productPageReviewsSwiperCount) {
        const activeIndex = $eaee570c86df261f$var$productPageReviewsSwiper.activeIndex;
        $eaee570c86df261f$var$productPageReviewsSwiperCount = newProductPageReviewsSwiperCount;
        $eaee570c86df261f$var$productPageReviewsSwiper.destroy();
        $eaee570c86df261f$var$productPageReviewsSwiper = $eaee570c86df261f$var$initProductPageReviewsSwiper(activeIndex);
    }
    // Product page
    const newProductThumbsCount = [].slice.call(document.querySelectorAll(".product-page__slider-bottom .swiper-slide")).length;
    const newProductPageSlides = [].slice.call(document.querySelectorAll(".product-page__slider-top .swiper-slide")).length;
    if (newProductPageSlides !== $eaee570c86df261f$var$productPageSlidesCount && newProductThumbsCount === newProductPageSlides) {
        const activeIndex = $eaee570c86df261f$var$productPageSwiper.activeIndex;
        $eaee570c86df261f$var$productPageThumbsCount = newProductThumbsCount;
        $eaee570c86df261f$var$productPageSlidesCount = newProductPageSlides;
        $eaee570c86df261f$var$productPageThumbs.destroy();
        $eaee570c86df261f$var$productPageSwiper.destroy();
        $eaee570c86df261f$var$productPageThumbs = $eaee570c86df261f$var$initProductThumbsSwiper(activeIndex);
        $eaee570c86df261f$var$productPageSwiper = $eaee570c86df261f$var$initProductPageSwiper(activeIndex);
    }
}, 1000);


const $80b83c6607783df7$var$catalogBtns = [].slice.call(document.querySelectorAll(".js-catalog"));
const $80b83c6607783df7$var$overflow = [].slice.call(document.querySelectorAll(".js-overflow"));
const $80b83c6607783df7$var$catalogItems = [].slice.call(document.querySelectorAll(".js-catalog-item"));
const $80b83c6607783df7$var$closeBtns = [].slice.call(document.querySelectorAll(".js-close-catalog"));
const $80b83c6607783df7$var$backBtns = [].slice.call(document.querySelectorAll(".js-back-catalog"));
const $80b83c6607783df7$var$html = document.querySelector("html");
const $80b83c6607783df7$var$body = document.body;
const $80b83c6607783df7$var$closeCatalog = ()=>{
    $80b83c6607783df7$var$body.classList.remove("show-catalog");
    $80b83c6607783df7$var$html.removeAttribute("style");
    $80b83c6607783df7$var$catalogItems.forEach((item)=>item.classList.remove("is-active"));
};
$80b83c6607783df7$var$catalogBtns.forEach((btn)=>{
    btn.addEventListener("click", ()=>{
        $80b83c6607783df7$var$body.classList.remove("show-menu");
        if ($80b83c6607783df7$var$body.classList.contains("show-catalog")) $80b83c6607783df7$var$closeCatalog();
        else {
            $80b83c6607783df7$var$body.classList.add("show-catalog");
            if (window.innerWidth <= 900) $80b83c6607783df7$var$html.style.overflow = "hidden";
        }
    });
});
$80b83c6607783df7$var$overflow.forEach((item)=>{
    item.addEventListener("click", ()=>{
        $80b83c6607783df7$var$closeCatalog();
    });
});
$80b83c6607783df7$var$catalogItems.forEach((item)=>{
    item.addEventListener("click", ()=>{
        $80b83c6607783df7$var$catalogItems.forEach((item)=>item.classList.remove("is-active"));
        item.classList.add("is-active");
    });
});
$80b83c6607783df7$var$closeBtns.forEach((btn)=>{
    btn.addEventListener("click", ()=>{
        $80b83c6607783df7$var$closeCatalog();
    });
});
$80b83c6607783df7$var$backBtns.forEach((btn)=>{
    btn.addEventListener("click", (evt)=>{
        evt.stopPropagation();
        $80b83c6607783df7$var$catalogItems.forEach((item)=>item.classList.remove("is-active"));
    });
});


const $eb52177a83ddeb58$var$menuBtn = document.querySelector(".js-menu");
const $eb52177a83ddeb58$var$html = document.querySelector("html");
const $eb52177a83ddeb58$var$body = document.body;
const $eb52177a83ddeb58$var$footerBtns = [].slice.call(document.querySelectorAll(".js-footer-btn"));
$eb52177a83ddeb58$var$menuBtn.addEventListener("click", ()=>{
    $eb52177a83ddeb58$var$body.classList.remove("show-catalog");
    if ($eb52177a83ddeb58$var$body.classList.contains("show-menu")) {
        $eb52177a83ddeb58$var$body.classList.remove("show-menu");
        $eb52177a83ddeb58$var$html.removeAttribute("style");
    } else {
        $eb52177a83ddeb58$var$body.classList.add("show-menu");
        $eb52177a83ddeb58$var$html.style.overflow = "hidden";
    }
});
$eb52177a83ddeb58$var$footerBtns.forEach((btn)=>{
    btn.addEventListener("click", ()=>{
        btn.classList.toggle("is-active");
    });
});


parcelRequire("8WeLi");
parcelRequire("jUaIl");
const $d4ee7d94a63ba5b5$var$groups = [].slice.call(document.querySelectorAll(".js-filter-group"));
$d4ee7d94a63ba5b5$var$groups.forEach((group)=>{
    const more = group.querySelector(".js-filter-more");
    const less = group.querySelector(".js-filter-less");
    more?.addEventListener("click", ()=>{
        group.classList.add("is-opened");
    });
    less?.addEventListener("click", ()=>{
        group.classList.remove("is-opened");
    });
});
const $d4ee7d94a63ba5b5$var$filter = document.querySelector(".catalog-page__filter");
if ($d4ee7d94a63ba5b5$var$filter) {
    const openFilterBtn = document.querySelector(".js-show-filter");
    const hideFilterBtn = document.querySelector(".js-close-filter");
    const html = document.querySelector("html");
    if (openFilterBtn) openFilterBtn.addEventListener("click", ()=>{
        $d4ee7d94a63ba5b5$var$filter.classList.add("is-active");
        html.style.overflow = "hidden";
    });
    if (hideFilterBtn) hideFilterBtn.addEventListener("click", ()=>{
        $d4ee7d94a63ba5b5$var$filter.classList.remove("is-active");
        html.removeAttribute("style");
    });
}


const $cb4e5b86d44099df$var$accordionItems = [].slice.call(document.querySelectorAll(".js-accordion"));
$cb4e5b86d44099df$var$accordionItems.forEach((item)=>{
    item.addEventListener("click", ()=>{
        item.classList.toggle("is-active");
    });
});


const $edb2bc14cbec16fa$var$progressContainers = [].slice.call(document.querySelectorAll(".js-progress"));
$edb2bc14cbec16fa$var$progressContainers.forEach((container)=>{
    const line = container.querySelector(".js-progress-line");
    const items = [].slice.call(container.querySelectorAll(".js-progress-item"));
    if (!line) return;
    window.addEventListener("scroll", ()=>{
        const windowHeight = window.innerHeight;
        const maxHeight = container.offsetHeight;
        const lineTop = line.getBoundingClientRect().top;
        if (lineTop < windowHeight / 3) {
            const diff = windowHeight / 3 - lineTop;
            line.style.height = `${diff < maxHeight ? diff : maxHeight}px`;
        }
        items.forEach((item)=>{
            if (item.getBoundingClientRect().top < windowHeight / 3 - 30) item.classList.add("is-active");
            else item.classList.remove("is-active");
        });
    });
});


parcelRequire("6aHKA");
const $f6ee944b143e57d5$var$locationWraps = [].slice.call(document.querySelectorAll(".js-location"));
$f6ee944b143e57d5$var$locationWraps.forEach((item)=>{
    const btn = item.querySelector(".js-location-btn");
    const select = item.querySelector(".js-location-select");
    let isOpen = false;
    const closeSelect = ()=>{
        isOpen = false;
        item.classList.remove("is-active");
        select.size = 0;
        window.removeEventListener("click", clickListener);
    };
    const clickListener = ()=>{
        if (isOpen) closeSelect();
    };
    select.addEventListener("change", ()=>{
        btn.innerHTML = select.value;
        closeSelect();
    });
    btn.addEventListener("click", (evt)=>{
        evt.stopPropagation();
        if (isOpen) closeSelect();
        else {
            isOpen = true;
            item.classList.add("is-active");
            select.size = 5;
            window.addEventListener("click", clickListener);
        }
    });
});


[].slice.call(document.querySelectorAll(".js-audio")).forEach((item)=>{
    const audio = item.querySelector("audio");
    const play = item.querySelector(".js-play");
    const curEl = item.querySelector(".js-current-time");
    const durEl = item.querySelector(".js-duration");
    const line = item.querySelector(".js-audio-line");
    const rate = item.querySelector(".js-audio-rate");
    let isPlaying = false;
    let duration = 0;
    let timer = null;
    const getSeconds = (value)=>{
        if (value < 10) return `0${value}`;
        return `${value}`;
    };
    const setTimer = ()=>{
        const time = audio.currentTime;
        line.style.width = `${Math.floor(time / duration * 1000) / 10}%`;
        curEl.textContent = `${Math.floor(time / 60)}:${getSeconds(Math.round(time % 60))}`;
    };
    audio.addEventListener("loadedmetadata", ()=>{
        duration = audio.duration;
        durEl.textContent = `${Math.floor(duration / 60)}:${getSeconds(Math.round(duration % 60))}`;
    });
    play.addEventListener("click", ()=>{
        if (isPlaying) {
            audio.pause();
            clearInterval(timer);
        } else {
            audio.play();
            timer = setInterval(setTimer, 1000);
        }
        isPlaying = !isPlaying;
    });
    rate.addEventListener("click", ()=>{
        if (rate.textContent === "1x") {
            audio.playbackRate = 1.5;
            rate.textContent = "1.5x";
        } else if (rate.textContent === "1.5x") {
            audio.playbackRate = 1.75;
            rate.textContent = "1.75x";
        } else if (rate.textContent === "1.75x") {
            audio.playbackRate = 2;
            rate.textContent = "2x";
        } else {
            audio.playbackRate = 1;
            rate.textContent = "1x";
        }
    });
});


const $9970b34361e607e2$var$t = (t, e = 1e4)=>(t = parseFloat(t + "") || 0, Math.round((t + Number.EPSILON) * e) / e), $9970b34361e607e2$var$e = function(t) {
    if (!(t && t instanceof Element && t.offsetParent)) return !1;
    const e = t.scrollHeight > t.clientHeight, i = window.getComputedStyle(t).overflowY, n = -1 !== i.indexOf("hidden"), s = -1 !== i.indexOf("visible");
    return e && !n && !s;
}, $9970b34361e607e2$var$i = function(t, n) {
    return !(!t || t === document.body || n && t === n) && ($9970b34361e607e2$var$e(t) ? t : $9970b34361e607e2$var$i(t.parentElement, n));
}, $9970b34361e607e2$var$n = function(t) {
    var e = (new DOMParser).parseFromString(t, "text/html").body;
    if (e.childElementCount > 1) {
        for(var i = document.createElement("div"); e.firstChild;)i.appendChild(e.firstChild);
        return i;
    }
    return e.firstChild;
}, $9970b34361e607e2$var$s = (t)=>`${t || ""}`.split(" ").filter((t)=>!!t), $9970b34361e607e2$var$o = (t, e, i)=>{
    t && $9970b34361e607e2$var$s(e).forEach((e)=>{
        t.classList.toggle(e, i || !1);
    });
};
class $9970b34361e607e2$var$a {
    constructor(t){
        Object.defineProperty(this, "pageX", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: void 0
        }), Object.defineProperty(this, "pageY", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: void 0
        }), Object.defineProperty(this, "clientX", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: void 0
        }), Object.defineProperty(this, "clientY", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: void 0
        }), Object.defineProperty(this, "id", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: void 0
        }), Object.defineProperty(this, "time", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: void 0
        }), Object.defineProperty(this, "nativePointer", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: void 0
        }), this.nativePointer = t, this.pageX = t.pageX, this.pageY = t.pageY, this.clientX = t.clientX, this.clientY = t.clientY, this.id = self.Touch && t instanceof Touch ? t.identifier : -1, this.time = Date.now();
    }
}
const $9970b34361e607e2$var$r = {
    passive: !1
};
class $9970b34361e607e2$var$l {
    constructor(t, { start: e = ()=>!0, move: i = ()=>{}, end: n = ()=>{} }){
        Object.defineProperty(this, "element", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: void 0
        }), Object.defineProperty(this, "startCallback", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: void 0
        }), Object.defineProperty(this, "moveCallback", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: void 0
        }), Object.defineProperty(this, "endCallback", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: void 0
        }), Object.defineProperty(this, "currentPointers", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: []
        }), Object.defineProperty(this, "startPointers", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: []
        }), this.element = t, this.startCallback = e, this.moveCallback = i, this.endCallback = n;
        for (const t of [
            "onPointerStart",
            "onTouchStart",
            "onMove",
            "onTouchEnd",
            "onPointerEnd",
            "onWindowBlur"
        ])this[t] = this[t].bind(this);
        this.element.addEventListener("mousedown", this.onPointerStart, $9970b34361e607e2$var$r), this.element.addEventListener("touchstart", this.onTouchStart, $9970b34361e607e2$var$r), this.element.addEventListener("touchmove", this.onMove, $9970b34361e607e2$var$r), this.element.addEventListener("touchend", this.onTouchEnd), this.element.addEventListener("touchcancel", this.onTouchEnd);
    }
    onPointerStart(t) {
        if (!t.buttons || 0 !== t.button) return;
        const e = new $9970b34361e607e2$var$a(t);
        this.currentPointers.some((t)=>t.id === e.id) || this.triggerPointerStart(e, t) && (window.addEventListener("mousemove", this.onMove), window.addEventListener("mouseup", this.onPointerEnd), window.addEventListener("blur", this.onWindowBlur));
    }
    onTouchStart(t) {
        for (const e of Array.from(t.changedTouches || []))this.triggerPointerStart(new $9970b34361e607e2$var$a(e), t);
        window.addEventListener("blur", this.onWindowBlur);
    }
    onMove(t) {
        const e = this.currentPointers.slice(), i = "changedTouches" in t ? Array.from(t.changedTouches || []).map((t)=>new $9970b34361e607e2$var$a(t)) : [
            new $9970b34361e607e2$var$a(t)
        ], n = [];
        for (const t of i){
            const e = this.currentPointers.findIndex((e)=>e.id === t.id);
            e < 0 || (n.push(t), this.currentPointers[e] = t);
        }
        n.length && this.moveCallback(t, this.currentPointers.slice(), e);
    }
    onPointerEnd(t) {
        t.buttons > 0 && 0 !== t.button || (this.triggerPointerEnd(t, new $9970b34361e607e2$var$a(t)), window.removeEventListener("mousemove", this.onMove), window.removeEventListener("mouseup", this.onPointerEnd), window.removeEventListener("blur", this.onWindowBlur));
    }
    onTouchEnd(t) {
        for (const e of Array.from(t.changedTouches || []))this.triggerPointerEnd(t, new $9970b34361e607e2$var$a(e));
    }
    triggerPointerStart(t, e) {
        return !!this.startCallback(e, t, this.currentPointers.slice()) && (this.currentPointers.push(t), this.startPointers.push(t), !0);
    }
    triggerPointerEnd(t, e) {
        const i = this.currentPointers.findIndex((t)=>t.id === e.id);
        i < 0 || (this.currentPointers.splice(i, 1), this.startPointers.splice(i, 1), this.endCallback(t, e, this.currentPointers.slice()));
    }
    onWindowBlur() {
        this.clear();
    }
    clear() {
        for(; this.currentPointers.length;){
            const t = this.currentPointers[this.currentPointers.length - 1];
            this.currentPointers.splice(this.currentPointers.length - 1, 1), this.startPointers.splice(this.currentPointers.length - 1, 1), this.endCallback(new Event("touchend", {
                bubbles: !0,
                cancelable: !0,
                clientX: t.clientX,
                clientY: t.clientY
            }), t, this.currentPointers.slice());
        }
    }
    stop() {
        this.element.removeEventListener("mousedown", this.onPointerStart, $9970b34361e607e2$var$r), this.element.removeEventListener("touchstart", this.onTouchStart, $9970b34361e607e2$var$r), this.element.removeEventListener("touchmove", this.onMove, $9970b34361e607e2$var$r), this.element.removeEventListener("touchend", this.onTouchEnd), this.element.removeEventListener("touchcancel", this.onTouchEnd), window.removeEventListener("mousemove", this.onMove), window.removeEventListener("mouseup", this.onPointerEnd), window.removeEventListener("blur", this.onWindowBlur);
    }
}
function $9970b34361e607e2$var$c(t, e) {
    return e ? Math.sqrt(Math.pow(e.clientX - t.clientX, 2) + Math.pow(e.clientY - t.clientY, 2)) : 0;
}
function $9970b34361e607e2$var$h(t, e) {
    return e ? {
        clientX: (t.clientX + e.clientX) / 2,
        clientY: (t.clientY + e.clientY) / 2
    } : t;
}
const $9970b34361e607e2$var$d = (t)=>"object" == typeof t && null !== t && t.constructor === Object && "[object Object]" === Object.prototype.toString.call(t), $9970b34361e607e2$var$u = (t, ...e)=>{
    const i = e.length;
    for(let n = 0; n < i; n++){
        const i = e[n] || {};
        Object.entries(i).forEach(([e, i])=>{
            const n = Array.isArray(i) ? [] : {};
            t[e] || Object.assign(t, {
                [e]: n
            }), $9970b34361e607e2$var$d(i) ? Object.assign(t[e], $9970b34361e607e2$var$u(n, i)) : Array.isArray(i) ? Object.assign(t, {
                [e]: [
                    ...i
                ]
            }) : Object.assign(t, {
                [e]: i
            });
        });
    }
    return t;
}, $9970b34361e607e2$var$p = function(t, e) {
    return t.split(".").reduce((t, e)=>"object" == typeof t ? t[e] : void 0, e);
};
class $9970b34361e607e2$var$f {
    constructor(t = {}){
        Object.defineProperty(this, "options", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: t
        }), Object.defineProperty(this, "events", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: new Map
        }), this.setOptions(t);
        for (const t of Object.getOwnPropertyNames(Object.getPrototypeOf(this)))t.startsWith("on") && "function" == typeof this[t] && (this[t] = this[t].bind(this));
    }
    setOptions(t) {
        this.options = t ? $9970b34361e607e2$var$u({}, this.constructor.defaults, t) : {};
        for (const [t, e] of Object.entries(this.option("on") || {}))this.on(t, e);
    }
    option(t, ...e) {
        let i = $9970b34361e607e2$var$p(t, this.options);
        return i && "function" == typeof i && (i = i.call(this, this, ...e)), i;
    }
    optionFor(t, e, i, ...n) {
        let s = $9970b34361e607e2$var$p(e, t);
        var o;
        "string" != typeof (o = s) || isNaN(o) || isNaN(parseFloat(o)) || (s = parseFloat(s)), "true" === s && (s = !0), "false" === s && (s = !1), s && "function" == typeof s && (s = s.call(this, this, t, ...n));
        let a = $9970b34361e607e2$var$p(e, this.options);
        return a && "function" == typeof a ? s = a.call(this, this, t, ...n, s) : void 0 === s && (s = a), void 0 === s ? i : s;
    }
    cn(t) {
        const e = this.options.classes;
        return e && e[t] || "";
    }
    localize(t, e = []) {
        t = String(t).replace(/\{\{(\w+).?(\w+)?\}\}/g, (t, e, i)=>{
            let n = "";
            return i ? n = this.option(`${e[0] + e.toLowerCase().substring(1)}.l10n.${i}`) : e && (n = this.option(`l10n.${e}`)), n || (n = t), n;
        });
        for(let i = 0; i < e.length; i++)t = t.split(e[i][0]).join(e[i][1]);
        return t = t.replace(/\{\{(.*?)\}\}/g, (t, e)=>e);
    }
    on(t, e) {
        let i = [];
        "string" == typeof t ? i = t.split(" ") : Array.isArray(t) && (i = t), this.events || (this.events = new Map), i.forEach((t)=>{
            let i = this.events.get(t);
            i || (this.events.set(t, []), i = []), i.includes(e) || i.push(e), this.events.set(t, i);
        });
    }
    off(t, e) {
        let i = [];
        "string" == typeof t ? i = t.split(" ") : Array.isArray(t) && (i = t), i.forEach((t)=>{
            const i = this.events.get(t);
            if (Array.isArray(i)) {
                const t = i.indexOf(e);
                t > -1 && i.splice(t, 1);
            }
        });
    }
    emit(t, ...e) {
        [
            ...this.events.get(t) || []
        ].forEach((t)=>t(this, ...e)), "*" !== t && this.emit("*", t, ...e);
    }
}
Object.defineProperty($9970b34361e607e2$var$f, "version", {
    enumerable: !0,
    configurable: !0,
    writable: !0,
    value: "5.0.36"
}), Object.defineProperty($9970b34361e607e2$var$f, "defaults", {
    enumerable: !0,
    configurable: !0,
    writable: !0,
    value: {}
});
class $9970b34361e607e2$var$g extends $9970b34361e607e2$var$f {
    constructor(t = {}){
        super(t), Object.defineProperty(this, "plugins", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: {}
        });
    }
    attachPlugins(t = {}) {
        const e = new Map;
        for (const [i, n] of Object.entries(t)){
            const t = this.option(i), s = this.plugins[i];
            s || !1 === t ? s && !1 === t && (s.detach(), delete this.plugins[i]) : e.set(i, new n(this, t || {}));
        }
        for (const [t, i] of e)this.plugins[t] = i, i.attach();
    }
    detachPlugins(t) {
        t = t || Object.keys(this.plugins);
        for (const e of t){
            const t = this.plugins[e];
            t && t.detach(), delete this.plugins[e];
        }
        return this.emit("detachPlugins"), this;
    }
}
var $9970b34361e607e2$var$m;
!function(t) {
    t[t.Init = 0] = "Init", t[t.Error = 1] = "Error", t[t.Ready = 2] = "Ready", t[t.Panning = 3] = "Panning", t[t.Mousemove = 4] = "Mousemove", t[t.Destroy = 5] = "Destroy";
}($9970b34361e607e2$var$m || ($9970b34361e607e2$var$m = {}));
const $9970b34361e607e2$var$v = [
    "a",
    "b",
    "c",
    "d",
    "e",
    "f"
], $9970b34361e607e2$var$b = {
    PANUP: "Move up",
    PANDOWN: "Move down",
    PANLEFT: "Move left",
    PANRIGHT: "Move right",
    ZOOMIN: "Zoom in",
    ZOOMOUT: "Zoom out",
    TOGGLEZOOM: "Toggle zoom level",
    TOGGLE1TO1: "Toggle zoom level",
    ITERATEZOOM: "Toggle zoom level",
    ROTATECCW: "Rotate counterclockwise",
    ROTATECW: "Rotate clockwise",
    FLIPX: "Flip horizontally",
    FLIPY: "Flip vertically",
    FITX: "Fit horizontally",
    FITY: "Fit vertically",
    RESET: "Reset",
    TOGGLEFS: "Toggle fullscreen"
}, $9970b34361e607e2$var$y = {
    content: null,
    width: "auto",
    height: "auto",
    panMode: "drag",
    touch: !0,
    dragMinThreshold: 3,
    lockAxis: !1,
    mouseMoveFactor: 1,
    mouseMoveFriction: .12,
    zoom: !0,
    pinchToZoom: !0,
    panOnlyZoomed: "auto",
    minScale: 1,
    maxScale: 2,
    friction: .25,
    dragFriction: .35,
    decelFriction: .05,
    click: "toggleZoom",
    dblClick: !1,
    wheel: "zoom",
    wheelLimit: 7,
    spinner: !0,
    bounds: "auto",
    infinite: !1,
    rubberband: !0,
    bounce: !0,
    maxVelocity: 75,
    transformParent: !1,
    classes: {
        content: "f-panzoom__content",
        isLoading: "is-loading",
        canZoomIn: "can-zoom_in",
        canZoomOut: "can-zoom_out",
        isDraggable: "is-draggable",
        isDragging: "is-dragging",
        inFullscreen: "in-fullscreen",
        htmlHasFullscreen: "with-panzoom-in-fullscreen"
    },
    l10n: $9970b34361e607e2$var$b
}, $9970b34361e607e2$var$w = '<circle cx="25" cy="25" r="20"></circle>', $9970b34361e607e2$var$x = '<div class="f-spinner"><svg viewBox="0 0 50 50">' + $9970b34361e607e2$var$w + $9970b34361e607e2$var$w + "</svg></div>", $9970b34361e607e2$var$E = (t)=>t && null !== t && t instanceof Element && "nodeType" in t, $9970b34361e607e2$var$S = (t, e)=>{
    t && $9970b34361e607e2$var$s(e).forEach((e)=>{
        t.classList.remove(e);
    });
}, $9970b34361e607e2$var$P = (t, e)=>{
    t && $9970b34361e607e2$var$s(e).forEach((e)=>{
        t.classList.add(e);
    });
}, $9970b34361e607e2$var$C = {
    a: 1,
    b: 0,
    c: 0,
    d: 1,
    e: 0,
    f: 0
}, $9970b34361e607e2$var$T = 1e5, $9970b34361e607e2$var$M = 1e4, $9970b34361e607e2$var$O = "mousemove", $9970b34361e607e2$var$A = "drag", $9970b34361e607e2$var$L = "content", $9970b34361e607e2$var$z = "auto";
let $9970b34361e607e2$var$R = null, $9970b34361e607e2$var$k = null;
class $9970b34361e607e2$export$b704d075ddd20210 extends $9970b34361e607e2$var$g {
    get fits() {
        return this.contentRect.width - this.contentRect.fitWidth < 1 && this.contentRect.height - this.contentRect.fitHeight < 1;
    }
    get isTouchDevice() {
        return null === $9970b34361e607e2$var$k && ($9970b34361e607e2$var$k = window.matchMedia("(hover: none)").matches), $9970b34361e607e2$var$k;
    }
    get isMobile() {
        return null === $9970b34361e607e2$var$R && ($9970b34361e607e2$var$R = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent)), $9970b34361e607e2$var$R;
    }
    get panMode() {
        return this.options.panMode !== $9970b34361e607e2$var$O || this.isTouchDevice ? $9970b34361e607e2$var$A : $9970b34361e607e2$var$O;
    }
    get panOnlyZoomed() {
        const t = this.options.panOnlyZoomed;
        return t === $9970b34361e607e2$var$z ? this.isTouchDevice : t;
    }
    get isInfinite() {
        return this.option("infinite");
    }
    get angle() {
        return 180 * Math.atan2(this.current.b, this.current.a) / Math.PI || 0;
    }
    get targetAngle() {
        return 180 * Math.atan2(this.target.b, this.target.a) / Math.PI || 0;
    }
    get scale() {
        const { a: t, b: e } = this.current;
        return Math.sqrt(t * t + e * e) || 1;
    }
    get targetScale() {
        const { a: t, b: e } = this.target;
        return Math.sqrt(t * t + e * e) || 1;
    }
    get minScale() {
        return this.option("minScale") || 1;
    }
    get fullScale() {
        const { contentRect: t } = this;
        return t.fullWidth / t.fitWidth || 1;
    }
    get maxScale() {
        return this.fullScale * (this.option("maxScale") || 1) || 1;
    }
    get coverScale() {
        const { containerRect: t, contentRect: e } = this, i = Math.max(t.height / e.fitHeight, t.width / e.fitWidth) || 1;
        return Math.min(this.fullScale, i);
    }
    get isScaling() {
        return Math.abs(this.targetScale - this.scale) > 1e-5 && !this.isResting;
    }
    get isContentLoading() {
        const t = this.content;
        return !!(t && t instanceof HTMLImageElement) && !t.complete;
    }
    get isResting() {
        if (this.isBouncingX || this.isBouncingY) return !1;
        for (const t of $9970b34361e607e2$var$v){
            const e = "e" == t || "f" === t ? 1e-4 : 1e-5;
            if (Math.abs(this.target[t] - this.current[t]) > e) return !1;
        }
        return !(!this.ignoreBounds && !this.checkBounds().inBounds);
    }
    constructor(t, e = {}, i = {}){
        var s;
        if (super(e), Object.defineProperty(this, "pointerTracker", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: null
        }), Object.defineProperty(this, "resizeObserver", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: null
        }), Object.defineProperty(this, "updateTimer", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: null
        }), Object.defineProperty(this, "clickTimer", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: null
        }), Object.defineProperty(this, "rAF", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: null
        }), Object.defineProperty(this, "isTicking", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: !1
        }), Object.defineProperty(this, "ignoreBounds", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: !1
        }), Object.defineProperty(this, "isBouncingX", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: !1
        }), Object.defineProperty(this, "isBouncingY", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: !1
        }), Object.defineProperty(this, "clicks", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: 0
        }), Object.defineProperty(this, "trackingPoints", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: []
        }), Object.defineProperty(this, "pwt", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: 0
        }), Object.defineProperty(this, "cwd", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: 0
        }), Object.defineProperty(this, "pmme", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: void 0
        }), Object.defineProperty(this, "friction", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: 0
        }), Object.defineProperty(this, "state", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: $9970b34361e607e2$var$m.Init
        }), Object.defineProperty(this, "isDragging", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: !1
        }), Object.defineProperty(this, "container", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: void 0
        }), Object.defineProperty(this, "content", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: void 0
        }), Object.defineProperty(this, "spinner", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: null
        }), Object.defineProperty(this, "containerRect", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: {
                width: 0,
                height: 0,
                innerWidth: 0,
                innerHeight: 0
            }
        }), Object.defineProperty(this, "contentRect", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: {
                top: 0,
                right: 0,
                bottom: 0,
                left: 0,
                fullWidth: 0,
                fullHeight: 0,
                fitWidth: 0,
                fitHeight: 0,
                width: 0,
                height: 0
            }
        }), Object.defineProperty(this, "dragStart", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: {
                x: 0,
                y: 0,
                top: 0,
                left: 0,
                time: 0
            }
        }), Object.defineProperty(this, "dragOffset", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: {
                x: 0,
                y: 0,
                time: 0
            }
        }), Object.defineProperty(this, "current", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: Object.assign({}, $9970b34361e607e2$var$C)
        }), Object.defineProperty(this, "target", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: Object.assign({}, $9970b34361e607e2$var$C)
        }), Object.defineProperty(this, "velocity", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: {
                a: 0,
                b: 0,
                c: 0,
                d: 0,
                e: 0,
                f: 0
            }
        }), Object.defineProperty(this, "lockedAxis", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: !1
        }), !t) throw new Error("Container Element Not Found");
        this.container = t, this.initContent(), this.attachPlugins(Object.assign(Object.assign({}, $9970b34361e607e2$export$b704d075ddd20210.Plugins), i)), this.emit("attachPlugins"), this.emit("init");
        const o = this.content;
        if (o.addEventListener("load", this.onLoad), o.addEventListener("error", this.onError), this.isContentLoading) {
            if (this.option("spinner")) {
                t.classList.add(this.cn("isLoading"));
                const e = $9970b34361e607e2$var$n($9970b34361e607e2$var$x);
                !t.contains(o) || o.parentElement instanceof HTMLPictureElement ? this.spinner = t.appendChild(e) : this.spinner = (null === (s = o.parentElement) || void 0 === s ? void 0 : s.insertBefore(e, o)) || null;
            }
            this.emit("beforeLoad");
        } else queueMicrotask(()=>{
            this.enable();
        });
    }
    initContent() {
        const { container: t } = this, e = this.cn($9970b34361e607e2$var$L);
        let i = this.option($9970b34361e607e2$var$L) || t.querySelector(`.${e}`);
        if (i || (i = t.querySelector("img,picture") || t.firstElementChild, i && $9970b34361e607e2$var$P(i, e)), i instanceof HTMLPictureElement && (i = i.querySelector("img")), !i) throw new Error("No content found");
        this.content = i;
    }
    onLoad() {
        const { spinner: t, container: e, state: i } = this;
        t && (t.remove(), this.spinner = null), this.option("spinner") && e.classList.remove(this.cn("isLoading")), this.emit("afterLoad"), i === $9970b34361e607e2$var$m.Init ? this.enable() : this.updateMetrics();
    }
    onError() {
        this.state !== $9970b34361e607e2$var$m.Destroy && (this.spinner && (this.spinner.remove(), this.spinner = null), this.stop(), this.detachEvents(), this.state = $9970b34361e607e2$var$m.Error, this.emit("error"));
    }
    getNextScale(t) {
        const { fullScale: e, targetScale: i, coverScale: n, maxScale: s, minScale: o } = this;
        let a = o;
        switch(t){
            case "toggleMax":
                a = i - o < .5 * (s - o) ? s : o;
                break;
            case "toggleCover":
                a = i - o < .5 * (n - o) ? n : o;
                break;
            case "toggleZoom":
                a = i - o < .5 * (e - o) ? e : o;
                break;
            case "iterateZoom":
                let t1 = [
                    1,
                    e,
                    s
                ].sort((t, e)=>t - e), r = t1.findIndex((t)=>t > i + 1e-5);
                a = t1[r] || 1;
        }
        return a;
    }
    attachObserver() {
        var t;
        const e = ()=>{
            const { container: t, containerRect: e } = this;
            return Math.abs(e.width - t.getBoundingClientRect().width) > .1 || Math.abs(e.height - t.getBoundingClientRect().height) > .1;
        };
        this.resizeObserver || void 0 === window.ResizeObserver || (this.resizeObserver = new ResizeObserver(()=>{
            this.updateTimer || (e() ? (this.onResize(), this.isMobile && (this.updateTimer = setTimeout(()=>{
                e() && this.onResize(), this.updateTimer = null;
            }, 500))) : this.updateTimer && (clearTimeout(this.updateTimer), this.updateTimer = null));
        })), null === (t = this.resizeObserver) || void 0 === t || t.observe(this.container);
    }
    detachObserver() {
        var t;
        null === (t = this.resizeObserver) || void 0 === t || t.disconnect();
    }
    attachEvents() {
        const { container: t } = this;
        t.addEventListener("click", this.onClick, {
            passive: !1,
            capture: !1
        }), t.addEventListener("wheel", this.onWheel, {
            passive: !1
        }), this.pointerTracker = new $9970b34361e607e2$var$l(t, {
            start: this.onPointerDown,
            move: this.onPointerMove,
            end: this.onPointerUp
        }), document.addEventListener($9970b34361e607e2$var$O, this.onMouseMove);
    }
    detachEvents() {
        var t;
        const { container: e } = this;
        e.removeEventListener("click", this.onClick, {
            passive: !1,
            capture: !1
        }), e.removeEventListener("wheel", this.onWheel, {
            passive: !1
        }), null === (t = this.pointerTracker) || void 0 === t || t.stop(), this.pointerTracker = null, document.removeEventListener($9970b34361e607e2$var$O, this.onMouseMove), document.removeEventListener("keydown", this.onKeydown, !0), this.clickTimer && (clearTimeout(this.clickTimer), this.clickTimer = null), this.updateTimer && (clearTimeout(this.updateTimer), this.updateTimer = null);
    }
    animate() {
        this.setTargetForce();
        const t = this.friction, e = this.option("maxVelocity");
        for (const i of $9970b34361e607e2$var$v)t ? (this.velocity[i] *= 1 - t, e && !this.isScaling && (this.velocity[i] = Math.max(Math.min(this.velocity[i], e), -1 * e)), this.current[i] += this.velocity[i]) : this.current[i] = this.target[i];
        this.setTransform(), this.setEdgeForce(), !this.isResting || this.isDragging ? this.rAF = requestAnimationFrame(()=>this.animate()) : this.stop("current");
    }
    setTargetForce() {
        for (const t of $9970b34361e607e2$var$v)"e" === t && this.isBouncingX || "f" === t && this.isBouncingY || (this.velocity[t] = (1 / (1 - this.friction) - 1) * (this.target[t] - this.current[t]));
    }
    checkBounds(t = 0, e = 0) {
        const { current: i } = this, n = i.e + t, s = i.f + e, o = this.getBounds(), { x: a, y: r } = o, l = a.min, c = a.max, h = r.min, d = r.max;
        let u = 0, p = 0;
        return l !== 1 / 0 && n < l ? u = l - n : c !== 1 / 0 && n > c && (u = c - n), h !== 1 / 0 && s < h ? p = h - s : d !== 1 / 0 && s > d && (p = d - s), Math.abs(u) < 1e-4 && (u = 0), Math.abs(p) < 1e-4 && (p = 0), Object.assign(Object.assign({}, o), {
            xDiff: u,
            yDiff: p,
            inBounds: !u && !p
        });
    }
    clampTargetBounds() {
        const { target: t } = this, { x: e, y: i } = this.getBounds();
        e.min !== 1 / 0 && (t.e = Math.max(t.e, e.min)), e.max !== 1 / 0 && (t.e = Math.min(t.e, e.max)), i.min !== 1 / 0 && (t.f = Math.max(t.f, i.min)), i.max !== 1 / 0 && (t.f = Math.min(t.f, i.max));
    }
    calculateContentDim(t = this.current) {
        const { content: e, contentRect: i } = this, { fitWidth: n, fitHeight: s, fullWidth: o, fullHeight: a } = i;
        let r = o, l = a;
        if (this.option("zoom") || 0 !== this.angle) {
            const i = !(e instanceof HTMLImageElement) && ("none" === window.getComputedStyle(e).maxWidth || "none" === window.getComputedStyle(e).maxHeight), c = i ? o : n, h = i ? a : s, d = this.getMatrix(t), u = new DOMPoint(0, 0).matrixTransform(d), p = new DOMPoint(0 + c, 0).matrixTransform(d), f = new DOMPoint(0 + c, 0 + h).matrixTransform(d), g = new DOMPoint(0, 0 + h).matrixTransform(d), m = Math.abs(f.x - u.x), v = Math.abs(f.y - u.y), b = Math.abs(g.x - p.x), y = Math.abs(g.y - p.y);
            r = Math.max(m, b), l = Math.max(v, y);
        }
        return {
            contentWidth: r,
            contentHeight: l
        };
    }
    setEdgeForce() {
        if (this.ignoreBounds || this.isDragging || this.panMode === $9970b34361e607e2$var$O || this.targetScale < this.scale) return this.isBouncingX = !1, void (this.isBouncingY = !1);
        const { target: t } = this, { x: e, y: i, xDiff: n, yDiff: s } = this.checkBounds();
        const o = this.option("maxVelocity");
        let a = this.velocity.e, r = this.velocity.f;
        0 !== n ? (this.isBouncingX = !0, n * a <= 0 ? a += .14 * n : (a = .14 * n, e.min !== 1 / 0 && (this.target.e = Math.max(t.e, e.min)), e.max !== 1 / 0 && (this.target.e = Math.min(t.e, e.max))), o && (a = Math.max(Math.min(a, o), -1 * o))) : this.isBouncingX = !1, 0 !== s ? (this.isBouncingY = !0, s * r <= 0 ? r += .14 * s : (r = .14 * s, i.min !== 1 / 0 && (this.target.f = Math.max(t.f, i.min)), i.max !== 1 / 0 && (this.target.f = Math.min(t.f, i.max))), o && (r = Math.max(Math.min(r, o), -1 * o))) : this.isBouncingY = !1, this.isBouncingX && (this.velocity.e = a), this.isBouncingY && (this.velocity.f = r);
    }
    enable() {
        const { content: t } = this, e = new DOMMatrixReadOnly(window.getComputedStyle(t).transform);
        for (const t of $9970b34361e607e2$var$v)this.current[t] = this.target[t] = e[t];
        this.updateMetrics(), this.attachObserver(), this.attachEvents(), this.state = $9970b34361e607e2$var$m.Ready, this.emit("ready");
    }
    onClick(t) {
        var e;
        "click" === t.type && 0 === t.detail && (this.dragOffset.x = 0, this.dragOffset.y = 0), this.isDragging && (null === (e = this.pointerTracker) || void 0 === e || e.clear(), this.trackingPoints = [], this.startDecelAnim());
        const i = t.target;
        if (!i || t.defaultPrevented) return;
        if (i.hasAttribute("disabled")) return t.preventDefault(), void t.stopPropagation();
        if ((()=>{
            const t = window.getSelection();
            return t && "Range" === t.type;
        })() && !i.closest("button")) return;
        const n = i.closest("[data-panzoom-action]"), s = i.closest("[data-panzoom-change]"), o = n || s, a = o && $9970b34361e607e2$var$E(o) ? o.dataset : null;
        if (a) {
            const e = a.panzoomChange, i = a.panzoomAction;
            if ((e || i) && t.preventDefault(), e) {
                let t = {};
                try {
                    t = JSON.parse(e);
                } catch (t) {
                    console && console.warn("The given data was not valid JSON");
                }
                return void this.applyChange(t);
            }
            if (i) return void (this[i] && this[i]());
        }
        if (Math.abs(this.dragOffset.x) > 3 || Math.abs(this.dragOffset.y) > 3) return t.preventDefault(), void t.stopPropagation();
        if (i.closest("[data-fancybox]")) return;
        const r = this.content.getBoundingClientRect(), l = this.dragStart;
        if (l.time && !this.canZoomOut() && (Math.abs(r.x - l.x) > 2 || Math.abs(r.y - l.y) > 2)) return;
        this.dragStart.time = 0;
        const c = (e)=>{
            this.option("zoom", t) && e && "string" == typeof e && /(iterateZoom)|(toggle(Zoom|Full|Cover|Max)|(zoomTo(Fit|Cover|Max)))/.test(e) && "function" == typeof this[e] && (t.preventDefault(), this[e]({
                event: t
            }));
        }, h = this.option("click", t), d = this.option("dblClick", t);
        d ? (this.clicks++, 1 == this.clicks && (this.clickTimer = setTimeout(()=>{
            1 === this.clicks ? (this.emit("click", t), !t.defaultPrevented && h && c(h)) : (this.emit("dblClick", t), t.defaultPrevented || c(d)), this.clicks = 0, this.clickTimer = null;
        }, 350))) : (this.emit("click", t), !t.defaultPrevented && h && c(h));
    }
    addTrackingPoint(t) {
        const e = this.trackingPoints.filter((t)=>t.time > Date.now() - 100);
        e.push(t), this.trackingPoints = e;
    }
    onPointerDown(t, e, i) {
        var n;
        if (!1 === this.option("touch", t)) return !1;
        this.pwt = 0, this.dragOffset = {
            x: 0,
            y: 0,
            time: 0
        }, this.trackingPoints = [];
        const s = this.content.getBoundingClientRect();
        if (this.dragStart = {
            x: s.x,
            y: s.y,
            top: s.top,
            left: s.left,
            time: Date.now()
        }, this.clickTimer) return !1;
        if (this.panMode === $9970b34361e607e2$var$O && this.targetScale > 1) return t.preventDefault(), t.stopPropagation(), !1;
        const o = t.composedPath()[0];
        if (!i.length) {
            if ([
                "TEXTAREA",
                "OPTION",
                "INPUT",
                "SELECT",
                "VIDEO",
                "IFRAME"
            ].includes(o.nodeName) || o.closest("[contenteditable],[data-selectable],[data-draggable],[data-clickable],[data-panzoom-change],[data-panzoom-action]")) return !1;
            null === (n = window.getSelection()) || void 0 === n || n.removeAllRanges();
        }
        if ("mousedown" === t.type) [
            "A",
            "BUTTON"
        ].includes(o.nodeName) || t.preventDefault();
        else if (Math.abs(this.velocity.a) > .3) return !1;
        return this.target.e = this.current.e, this.target.f = this.current.f, this.stop(), this.isDragging || (this.isDragging = !0, this.addTrackingPoint(e), this.emit("touchStart", t)), !0;
    }
    onPointerMove(e, n, s) {
        if (!1 === this.option("touch", e)) return;
        if (!this.isDragging) return;
        if (n.length < 2 && this.panOnlyZoomed && $9970b34361e607e2$var$t(this.targetScale) <= $9970b34361e607e2$var$t(this.minScale)) return;
        if (this.emit("touchMove", e), e.defaultPrevented) return;
        this.addTrackingPoint(n[0]);
        const { content: o } = this, a = $9970b34361e607e2$var$h(s[0], s[1]), r = $9970b34361e607e2$var$h(n[0], n[1]);
        let l = 0, d = 0;
        if (n.length > 1) {
            const t = o.getBoundingClientRect();
            l = a.clientX - t.left - .5 * t.width, d = a.clientY - t.top - .5 * t.height;
        }
        const u = $9970b34361e607e2$var$c(s[0], s[1]), p = $9970b34361e607e2$var$c(n[0], n[1]);
        let f = u ? p / u : 1, g = r.clientX - a.clientX, m = r.clientY - a.clientY;
        this.dragOffset.x += g, this.dragOffset.y += m, this.dragOffset.time = Date.now() - this.dragStart.time;
        let v = $9970b34361e607e2$var$t(this.targetScale) === $9970b34361e607e2$var$t(this.minScale) && this.option("lockAxis");
        if (v && !this.lockedAxis) {
            if ("xy" === v || "y" === v || "touchmove" === e.type) {
                if (Math.abs(this.dragOffset.x) < 6 && Math.abs(this.dragOffset.y) < 6) return void e.preventDefault();
                const t = Math.abs(180 * Math.atan2(this.dragOffset.y, this.dragOffset.x) / Math.PI);
                this.lockedAxis = t > 45 && t < 135 ? "y" : "x", this.dragOffset.x = 0, this.dragOffset.y = 0, g = 0, m = 0;
            } else this.lockedAxis = v;
        }
        if ($9970b34361e607e2$var$i(e.target, this.content) && (v = "x", this.dragOffset.y = 0), v && "xy" !== v && this.lockedAxis !== v && $9970b34361e607e2$var$t(this.targetScale) === $9970b34361e607e2$var$t(this.minScale)) return;
        e.cancelable && e.preventDefault(), this.container.classList.add(this.cn("isDragging"));
        const b = this.checkBounds(g, m);
        this.option("rubberband") ? ("x" !== this.isInfinite && (b.xDiff > 0 && g < 0 || b.xDiff < 0 && g > 0) && (g *= Math.max(0, .5 - Math.abs(.75 / this.contentRect.fitWidth * b.xDiff))), "y" !== this.isInfinite && (b.yDiff > 0 && m < 0 || b.yDiff < 0 && m > 0) && (m *= Math.max(0, .5 - Math.abs(.75 / this.contentRect.fitHeight * b.yDiff)))) : (b.xDiff && (g = 0), b.yDiff && (m = 0));
        const y = this.targetScale, w = this.minScale, x = this.maxScale;
        y < .5 * w && (f = Math.max(f, w)), y > 1.5 * x && (f = Math.min(f, x)), "y" === this.lockedAxis && $9970b34361e607e2$var$t(y) === $9970b34361e607e2$var$t(w) && (g = 0), "x" === this.lockedAxis && $9970b34361e607e2$var$t(y) === $9970b34361e607e2$var$t(w) && (m = 0), this.applyChange({
            originX: l,
            originY: d,
            panX: g,
            panY: m,
            scale: f,
            friction: this.option("dragFriction"),
            ignoreBounds: !0
        });
    }
    onPointerUp(t, e, n) {
        if (n.length) return this.dragOffset.x = 0, this.dragOffset.y = 0, void (this.trackingPoints = []);
        this.container.classList.remove(this.cn("isDragging")), this.isDragging && (this.addTrackingPoint(e), this.panOnlyZoomed && this.contentRect.width - this.contentRect.fitWidth < 1 && this.contentRect.height - this.contentRect.fitHeight < 1 && (this.trackingPoints = []), $9970b34361e607e2$var$i(t.target, this.content) && "y" === this.lockedAxis && (this.trackingPoints = []), this.emit("touchEnd", t), this.isDragging = !1, this.lockedAxis = !1, this.state !== $9970b34361e607e2$var$m.Destroy && (t.defaultPrevented || this.startDecelAnim()));
    }
    startDecelAnim() {
        var e;
        const i = this.isScaling;
        this.rAF && (cancelAnimationFrame(this.rAF), this.rAF = null), this.isBouncingX = !1, this.isBouncingY = !1;
        for (const t of $9970b34361e607e2$var$v)this.velocity[t] = 0;
        this.target.e = this.current.e, this.target.f = this.current.f, $9970b34361e607e2$var$S(this.container, "is-scaling"), $9970b34361e607e2$var$S(this.container, "is-animating"), this.isTicking = !1;
        const { trackingPoints: n } = this, s = n[0], o = n[n.length - 1];
        let a = 0, r = 0, l = 0;
        o && s && (a = o.clientX - s.clientX, r = o.clientY - s.clientY, l = o.time - s.time);
        const c = (null === (e = window.visualViewport) || void 0 === e ? void 0 : e.scale) || 1;
        1 !== c && (a *= c, r *= c);
        let h = 0, d = 0, u = 0, p = 0, f = this.option("decelFriction");
        const g = this.targetScale;
        if (l > 0) {
            u = Math.abs(a) > 3 ? a / (l / 30) : 0, p = Math.abs(r) > 3 ? r / (l / 30) : 0;
            const t = this.option("maxVelocity");
            t && (u = Math.max(Math.min(u, t), -1 * t), p = Math.max(Math.min(p, t), -1 * t));
        }
        u && (h = u / (1 / (1 - f) - 1)), p && (d = p / (1 / (1 - f) - 1)), ("y" === this.option("lockAxis") || "xy" === this.option("lockAxis") && "y" === this.lockedAxis && $9970b34361e607e2$var$t(g) === this.minScale) && (h = u = 0), ("x" === this.option("lockAxis") || "xy" === this.option("lockAxis") && "x" === this.lockedAxis && $9970b34361e607e2$var$t(g) === this.minScale) && (d = p = 0);
        const m = this.dragOffset.x, b = this.dragOffset.y, y = this.option("dragMinThreshold") || 0;
        Math.abs(m) < y && Math.abs(b) < y && (h = d = 0, u = p = 0), (this.option("zoom") && (g < this.minScale - 1e-5 || g > this.maxScale + 1e-5) || i && !h && !d) && (f = .35), this.applyChange({
            panX: h,
            panY: d,
            friction: f
        }), this.emit("decel", u, p, m, b);
    }
    onWheel(t) {
        var e = [
            -t.deltaX || 0,
            -t.deltaY || 0,
            -t.detail || 0
        ].reduce(function(t, e) {
            return Math.abs(e) > Math.abs(t) ? e : t;
        });
        const i = Math.max(-1, Math.min(1, e));
        if (this.emit("wheel", t, i), this.panMode === $9970b34361e607e2$var$O) return;
        if (t.defaultPrevented) return;
        const n = this.option("wheel");
        "pan" === n ? (t.preventDefault(), this.panOnlyZoomed && !this.canZoomOut() || this.applyChange({
            panX: 2 * -t.deltaX,
            panY: 2 * -t.deltaY,
            bounce: !1
        })) : "zoom" === n && !1 !== this.option("zoom") && this.zoomWithWheel(t);
    }
    onMouseMove(t) {
        this.panWithMouse(t);
    }
    onKeydown(t) {
        "Escape" === t.key && this.toggleFS();
    }
    onResize() {
        this.updateMetrics(), this.checkBounds().inBounds || this.requestTick();
    }
    setTransform() {
        this.emit("beforeTransform");
        const { current: e, target: i, content: n, contentRect: s } = this, o = Object.assign({}, $9970b34361e607e2$var$C);
        for (const n of $9970b34361e607e2$var$v){
            const s = "e" == n || "f" === n ? $9970b34361e607e2$var$M : $9970b34361e607e2$var$T;
            o[n] = $9970b34361e607e2$var$t(e[n], s), Math.abs(i[n] - e[n]) < ("e" == n || "f" === n ? .51 : .001) && (e[n] = i[n]);
        }
        let { a: a, b: r, c: l, d: c, e: h, f: d } = o, u = `matrix(${a}, ${r}, ${l}, ${c}, ${h}, ${d})`, p = n.parentElement instanceof HTMLPictureElement ? n.parentElement : n;
        if (this.option("transformParent") && (p = p.parentElement || p), p.style.transform === u) return;
        p.style.transform = u;
        const { contentWidth: f, contentHeight: g } = this.calculateContentDim();
        s.width = f, s.height = g, this.emit("afterTransform");
    }
    updateMetrics(e = !1) {
        var i;
        if (!this || this.state === $9970b34361e607e2$var$m.Destroy) return;
        if (this.isContentLoading) return;
        const n = Math.max(1, (null === (i = window.visualViewport) || void 0 === i ? void 0 : i.scale) || 1), { container: s, content: o } = this, a = o instanceof HTMLImageElement, r = s.getBoundingClientRect(), l = getComputedStyle(this.container);
        let c = r.width * n, h = r.height * n;
        const d = parseFloat(l.paddingTop) + parseFloat(l.paddingBottom), u = c - (parseFloat(l.paddingLeft) + parseFloat(l.paddingRight)), p = h - d;
        this.containerRect = {
            width: c,
            height: h,
            innerWidth: u,
            innerHeight: p
        };
        const f = parseFloat(o.dataset.width || "") || ((t)=>{
            let e = 0;
            return e = t instanceof HTMLImageElement ? t.naturalWidth : t instanceof SVGElement ? t.width.baseVal.value : Math.max(t.offsetWidth, t.scrollWidth), e || 0;
        })(o), g = parseFloat(o.dataset.height || "") || ((t)=>{
            let e = 0;
            return e = t instanceof HTMLImageElement ? t.naturalHeight : t instanceof SVGElement ? t.height.baseVal.value : Math.max(t.offsetHeight, t.scrollHeight), e || 0;
        })(o);
        let v = this.option("width", f) || $9970b34361e607e2$var$z, b = this.option("height", g) || $9970b34361e607e2$var$z;
        const y = v === $9970b34361e607e2$var$z, w = b === $9970b34361e607e2$var$z;
        "number" != typeof v && (v = f), "number" != typeof b && (b = g), y && (v = f * (b / g)), w && (b = g / (f / v));
        let x = o.parentElement instanceof HTMLPictureElement ? o.parentElement : o;
        this.option("transformParent") && (x = x.parentElement || x);
        const E = x.getAttribute("style") || "";
        x.style.setProperty("transform", "none", "important"), a && (x.style.width = "", x.style.height = ""), x.offsetHeight;
        const S = o.getBoundingClientRect();
        let P = S.width * n, C = S.height * n, T = P, M = C;
        P = Math.min(P, v), C = Math.min(C, b), a ? { width: P, height: C } = ((t, e, i, n)=>{
            const s = i / t, o = n / e, a = Math.min(s, o);
            return {
                width: t *= a,
                height: e *= a
            };
        })(v, b, P, C) : (P = Math.min(P, v), C = Math.min(C, b));
        let O = .5 * (M - C), A = .5 * (T - P);
        this.contentRect = Object.assign(Object.assign({}, this.contentRect), {
            top: S.top - r.top + O,
            bottom: r.bottom - S.bottom + O,
            left: S.left - r.left + A,
            right: r.right - S.right + A,
            fitWidth: P,
            fitHeight: C,
            width: P,
            height: C,
            fullWidth: v,
            fullHeight: b
        }), x.style.cssText = E, a && (x.style.width = `${P}px`, x.style.height = `${C}px`), this.setTransform(), !0 !== e && this.emit("refresh"), this.ignoreBounds || ($9970b34361e607e2$var$t(this.targetScale) < $9970b34361e607e2$var$t(this.minScale) ? this.zoomTo(this.minScale, {
            friction: 0
        }) : this.targetScale > this.maxScale ? this.zoomTo(this.maxScale, {
            friction: 0
        }) : this.state === $9970b34361e607e2$var$m.Init || this.checkBounds().inBounds || this.requestTick()), this.updateControls();
    }
    calculateBounds() {
        const { contentWidth: e, contentHeight: i } = this.calculateContentDim(this.target), { targetScale: n, lockedAxis: s } = this, { fitWidth: o, fitHeight: a } = this.contentRect;
        let r = 0, l = 0, c = 0, h = 0;
        const d = this.option("infinite");
        if (!0 === d || s && d === s) r = -1 / 0, c = 1 / 0, l = -1 / 0, h = 1 / 0;
        else {
            let { containerRect: s, contentRect: d } = this, u = $9970b34361e607e2$var$t(o * n, $9970b34361e607e2$var$M), p = $9970b34361e607e2$var$t(a * n, $9970b34361e607e2$var$M), { innerWidth: f, innerHeight: g } = s;
            if (s.width === u && (f = s.width), s.width === p && (g = s.height), e > f) {
                c = .5 * (e - f), r = -1 * c;
                let t = .5 * (d.right - d.left);
                r += t, c += t;
            }
            if (o > f && e < f && (r -= .5 * (o - f), c -= .5 * (o - f)), i > g) {
                h = .5 * (i - g), l = -1 * h;
                let t = .5 * (d.bottom - d.top);
                l += t, h += t;
            }
            a > g && i < g && (r -= .5 * (a - g), c -= .5 * (a - g));
        }
        return {
            x: {
                min: r,
                max: c
            },
            y: {
                min: l,
                max: h
            }
        };
    }
    getBounds() {
        const t = this.option("bounds");
        return t !== $9970b34361e607e2$var$z ? t : this.calculateBounds();
    }
    updateControls() {
        const e = this, i = e.container, { panMode: n, contentRect: s, targetScale: a, minScale: r } = e;
        let l = r, c = e.option("click") || !1;
        c && (l = e.getNextScale(c));
        let h = e.canZoomIn(), d = e.canZoomOut(), u = n === $9970b34361e607e2$var$A && !!this.option("touch"), p = d && u;
        if (u && ($9970b34361e607e2$var$t(a) < $9970b34361e607e2$var$t(r) && !this.panOnlyZoomed && (p = !0), ($9970b34361e607e2$var$t(s.width, 1) > $9970b34361e607e2$var$t(s.fitWidth, 1) || $9970b34361e607e2$var$t(s.height, 1) > $9970b34361e607e2$var$t(s.fitHeight, 1)) && (p = !0)), $9970b34361e607e2$var$t(s.width * a, 1) < $9970b34361e607e2$var$t(s.fitWidth, 1) && (p = !1), n === $9970b34361e607e2$var$O && (p = !1), $9970b34361e607e2$var$o(i, this.cn("isDraggable"), p), !this.option("zoom")) return;
        let f = h && $9970b34361e607e2$var$t(l) > $9970b34361e607e2$var$t(a), g = !f && !p && d && $9970b34361e607e2$var$t(l) < $9970b34361e607e2$var$t(a);
        $9970b34361e607e2$var$o(i, this.cn("canZoomIn"), f), $9970b34361e607e2$var$o(i, this.cn("canZoomOut"), g);
        for (const t of i.querySelectorAll("[data-panzoom-action]")){
            let e = !1, i = !1;
            switch(t.dataset.panzoomAction){
                case "zoomIn":
                    h ? e = !0 : i = !0;
                    break;
                case "zoomOut":
                    d ? e = !0 : i = !0;
                    break;
                case "toggleZoom":
                case "iterateZoom":
                    h || d ? e = !0 : i = !0;
                    const n = t.querySelector("g");
                    n && (n.style.display = h ? "" : "none");
            }
            e ? (t.removeAttribute("disabled"), t.removeAttribute("tabindex")) : i && (t.setAttribute("disabled", ""), t.setAttribute("tabindex", "-1"));
        }
    }
    panTo({ x: t = this.target.e, y: e = this.target.f, scale: i = this.targetScale, friction: n = this.option("friction"), angle: s = 0, originX: o = 0, originY: a = 0, flipX: r = !1, flipY: l = !1, ignoreBounds: c = !1 }) {
        this.state !== $9970b34361e607e2$var$m.Destroy && this.applyChange({
            panX: t - this.target.e,
            panY: e - this.target.f,
            scale: i / this.targetScale,
            angle: s,
            originX: o,
            originY: a,
            friction: n,
            flipX: r,
            flipY: l,
            ignoreBounds: c
        });
    }
    applyChange({ panX: e = 0, panY: i = 0, scale: n = 1, angle: s = 0, originX: o = -this.current.e, originY: a = -this.current.f, friction: r = this.option("friction"), flipX: l = !1, flipY: c = !1, ignoreBounds: h = !1, bounce: d = this.option("bounce") }) {
        const u = this.state;
        if (u === $9970b34361e607e2$var$m.Destroy) return;
        this.rAF && (cancelAnimationFrame(this.rAF), this.rAF = null), this.friction = r || 0, this.ignoreBounds = h;
        const { current: p } = this, f = p.e, g = p.f, b = this.getMatrix(this.target);
        let y = (new DOMMatrix).translate(f, g).translate(o, a).translate(e, i);
        if (this.option("zoom")) {
            if (!h) {
                const t = this.targetScale, e = this.minScale, i = this.maxScale;
                t * n < e && (n = e / t), t * n > i && (n = i / t);
            }
            y = y.scale(n);
        }
        y = y.translate(-o, -a).translate(-f, -g).multiply(b), s && (y = y.rotate(s)), l && (y = y.scale(-1, 1)), c && (y = y.scale(1, -1));
        for (const e of $9970b34361e607e2$var$v)"e" !== e && "f" !== e && (y[e] > this.minScale + 1e-5 || y[e] < this.minScale - 1e-5) ? this.target[e] = y[e] : this.target[e] = $9970b34361e607e2$var$t(y[e], $9970b34361e607e2$var$M);
        (this.targetScale < this.scale || Math.abs(n - 1) > .1 || this.panMode === $9970b34361e607e2$var$O || !1 === d) && !h && this.clampTargetBounds(), u === $9970b34361e607e2$var$m.Init ? this.animate() : this.isResting || (this.state = $9970b34361e607e2$var$m.Panning, this.requestTick());
    }
    stop(t = !1) {
        if (this.state === $9970b34361e607e2$var$m.Init || this.state === $9970b34361e607e2$var$m.Destroy) return;
        const e = this.isTicking;
        this.rAF && (cancelAnimationFrame(this.rAF), this.rAF = null), this.isBouncingX = !1, this.isBouncingY = !1;
        for (const e of $9970b34361e607e2$var$v)this.velocity[e] = 0, "current" === t ? this.current[e] = this.target[e] : "target" === t && (this.target[e] = this.current[e]);
        this.setTransform(), $9970b34361e607e2$var$S(this.container, "is-scaling"), $9970b34361e607e2$var$S(this.container, "is-animating"), this.isTicking = !1, this.state = $9970b34361e607e2$var$m.Ready, e && (this.emit("endAnimation"), this.updateControls());
    }
    requestTick() {
        this.isTicking || (this.emit("startAnimation"), this.updateControls(), $9970b34361e607e2$var$P(this.container, "is-animating"), this.isScaling && $9970b34361e607e2$var$P(this.container, "is-scaling")), this.isTicking = !0, this.rAF || (this.rAF = requestAnimationFrame(()=>this.animate()));
    }
    panWithMouse(e, i = this.option("mouseMoveFriction")) {
        if (this.pmme = e, this.panMode !== $9970b34361e607e2$var$O || !e) return;
        if ($9970b34361e607e2$var$t(this.targetScale) <= $9970b34361e607e2$var$t(this.minScale)) return;
        this.emit("mouseMove", e);
        const { container: n, containerRect: s, contentRect: o } = this, a = s.width, r = s.height, l = n.getBoundingClientRect(), c = (e.clientX || 0) - l.left, h = (e.clientY || 0) - l.top;
        let { contentWidth: d, contentHeight: u } = this.calculateContentDim(this.target);
        const p = this.option("mouseMoveFactor");
        p > 1 && (d !== a && (d *= p), u !== r && (u *= p));
        let f = .5 * (d - a) - c / a * 100 / 100 * (d - a);
        f += .5 * (o.right - o.left);
        let g = .5 * (u - r) - h / r * 100 / 100 * (u - r);
        g += .5 * (o.bottom - o.top), this.applyChange({
            panX: f - this.target.e,
            panY: g - this.target.f,
            friction: i
        });
    }
    zoomWithWheel(e) {
        if (this.state === $9970b34361e607e2$var$m.Destroy || this.state === $9970b34361e607e2$var$m.Init) return;
        const i = Date.now();
        if (i - this.pwt < 45) return void e.preventDefault();
        this.pwt = i;
        var n = [
            -e.deltaX || 0,
            -e.deltaY || 0,
            -e.detail || 0
        ].reduce(function(t, e) {
            return Math.abs(e) > Math.abs(t) ? e : t;
        });
        const s = Math.max(-1, Math.min(1, n)), { targetScale: o, maxScale: a, minScale: r } = this;
        let l = o * (100 + 45 * s) / 100;
        $9970b34361e607e2$var$t(l) < $9970b34361e607e2$var$t(r) && $9970b34361e607e2$var$t(o) <= $9970b34361e607e2$var$t(r) ? (this.cwd += Math.abs(s), l = r) : $9970b34361e607e2$var$t(l) > $9970b34361e607e2$var$t(a) && $9970b34361e607e2$var$t(o) >= $9970b34361e607e2$var$t(a) ? (this.cwd += Math.abs(s), l = a) : (this.cwd = 0, l = Math.max(Math.min(l, a), r)), this.cwd > this.option("wheelLimit") || (e.preventDefault(), $9970b34361e607e2$var$t(l) !== $9970b34361e607e2$var$t(o) && this.zoomTo(l, {
            event: e
        }));
    }
    canZoomIn() {
        return this.option("zoom") && ($9970b34361e607e2$var$t(this.contentRect.width, 1) < $9970b34361e607e2$var$t(this.contentRect.fitWidth, 1) || $9970b34361e607e2$var$t(this.targetScale) < $9970b34361e607e2$var$t(this.maxScale));
    }
    canZoomOut() {
        return this.option("zoom") && $9970b34361e607e2$var$t(this.targetScale) > $9970b34361e607e2$var$t(this.minScale);
    }
    zoomIn(t = 1.25, e) {
        this.zoomTo(this.targetScale * t, e);
    }
    zoomOut(t = .8, e) {
        this.zoomTo(this.targetScale * t, e);
    }
    zoomToFit(t) {
        this.zoomTo("fit", t);
    }
    zoomToCover(t) {
        this.zoomTo("cover", t);
    }
    zoomToFull(t) {
        this.zoomTo("full", t);
    }
    zoomToMax(t) {
        this.zoomTo("max", t);
    }
    toggleZoom(t) {
        this.zoomTo(this.getNextScale("toggleZoom"), t);
    }
    toggleMax(t) {
        this.zoomTo(this.getNextScale("toggleMax"), t);
    }
    toggleCover(t) {
        this.zoomTo(this.getNextScale("toggleCover"), t);
    }
    iterateZoom(t) {
        this.zoomTo("next", t);
    }
    zoomTo(t = 1, { friction: e = $9970b34361e607e2$var$z, originX: i = $9970b34361e607e2$var$z, originY: n = $9970b34361e607e2$var$z, event: s } = {}) {
        if (this.isContentLoading || this.state === $9970b34361e607e2$var$m.Destroy) return;
        const { targetScale: o, fullScale: a, maxScale: r, coverScale: l } = this;
        if (this.stop(), this.panMode === $9970b34361e607e2$var$O && (s = this.pmme || s), s || i === $9970b34361e607e2$var$z || n === $9970b34361e607e2$var$z) {
            const t = this.content.getBoundingClientRect(), e = this.container.getBoundingClientRect(), o = s ? s.clientX : e.left + .5 * e.width, a = s ? s.clientY : e.top + .5 * e.height;
            i = o - t.left - .5 * t.width, n = a - t.top - .5 * t.height;
        }
        let c = 1;
        "number" == typeof t ? c = t : "full" === t ? c = a : "cover" === t ? c = l : "max" === t ? c = r : "fit" === t ? c = 1 : "next" === t && (c = this.getNextScale("iterateZoom")), c = c / o || 1, e = e === $9970b34361e607e2$var$z ? c > 1 ? .15 : .25 : e, this.applyChange({
            scale: c,
            originX: i,
            originY: n,
            friction: e
        }), s && this.panMode === $9970b34361e607e2$var$O && this.panWithMouse(s, e);
    }
    rotateCCW() {
        this.applyChange({
            angle: -90
        });
    }
    rotateCW() {
        this.applyChange({
            angle: 90
        });
    }
    flipX() {
        this.applyChange({
            flipX: !0
        });
    }
    flipY() {
        this.applyChange({
            flipY: !0
        });
    }
    fitX() {
        this.stop("target");
        const { containerRect: t, contentRect: e, target: i } = this;
        this.applyChange({
            panX: .5 * t.width - (e.left + .5 * e.fitWidth) - i.e,
            panY: .5 * t.height - (e.top + .5 * e.fitHeight) - i.f,
            scale: t.width / e.fitWidth / this.targetScale,
            originX: 0,
            originY: 0,
            ignoreBounds: !0
        });
    }
    fitY() {
        this.stop("target");
        const { containerRect: t, contentRect: e, target: i } = this;
        this.applyChange({
            panX: .5 * t.width - (e.left + .5 * e.fitWidth) - i.e,
            panY: .5 * t.innerHeight - (e.top + .5 * e.fitHeight) - i.f,
            scale: t.height / e.fitHeight / this.targetScale,
            originX: 0,
            originY: 0,
            ignoreBounds: !0
        });
    }
    toggleFS() {
        const { container: t } = this, e = this.cn("inFullscreen"), i = this.cn("htmlHasFullscreen");
        t.classList.toggle(e);
        const n = t.classList.contains(e);
        n ? (document.documentElement.classList.add(i), document.addEventListener("keydown", this.onKeydown, !0)) : (document.documentElement.classList.remove(i), document.removeEventListener("keydown", this.onKeydown, !0)), this.updateMetrics(), this.emit(n ? "enterFS" : "exitFS");
    }
    getMatrix(t = this.current) {
        const { a: e, b: i, c: n, d: s, e: o, f: a } = t;
        return new DOMMatrix([
            e,
            i,
            n,
            s,
            o,
            a
        ]);
    }
    reset(t) {
        if (this.state !== $9970b34361e607e2$var$m.Init && this.state !== $9970b34361e607e2$var$m.Destroy) {
            this.stop("current");
            for (const t of $9970b34361e607e2$var$v)this.target[t] = $9970b34361e607e2$var$C[t];
            this.target.a = this.minScale, this.target.d = this.minScale, this.clampTargetBounds(), this.isResting || (this.friction = void 0 === t ? this.option("friction") : t, this.state = $9970b34361e607e2$var$m.Panning, this.requestTick());
        }
    }
    destroy() {
        this.stop(), this.state = $9970b34361e607e2$var$m.Destroy, this.detachEvents(), this.detachObserver();
        const { container: t, content: e } = this, i = this.option("classes") || {};
        for (const e of Object.values(i))t.classList.remove(e + "");
        e && (e.removeEventListener("load", this.onLoad), e.removeEventListener("error", this.onError)), this.detachPlugins();
    }
}
Object.defineProperty($9970b34361e607e2$export$b704d075ddd20210, "defaults", {
    enumerable: !0,
    configurable: !0,
    writable: !0,
    value: $9970b34361e607e2$var$y
}), Object.defineProperty($9970b34361e607e2$export$b704d075ddd20210, "Plugins", {
    enumerable: !0,
    configurable: !0,
    writable: !0,
    value: {}
});
const $9970b34361e607e2$var$D = function(t, e) {
    let i = !0;
    return (...n)=>{
        i && (i = !1, t(...n), setTimeout(()=>{
            i = !0;
        }, e));
    };
}, $9970b34361e607e2$var$F = (t, e)=>{
    let i = [];
    return t.childNodes.forEach((t)=>{
        t.nodeType !== Node.ELEMENT_NODE || e && !t.matches(e) || i.push(t);
    }), i;
}, $9970b34361e607e2$var$j = {
    viewport: null,
    track: null,
    enabled: !0,
    slides: [],
    axis: "x",
    transition: "fade",
    preload: 1,
    slidesPerPage: "auto",
    initialPage: 0,
    friction: .12,
    Panzoom: {
        decelFriction: .12
    },
    center: !0,
    infinite: !0,
    fill: !0,
    dragFree: !1,
    adaptiveHeight: !1,
    direction: "ltr",
    classes: {
        container: "f-carousel",
        viewport: "f-carousel__viewport",
        track: "f-carousel__track",
        slide: "f-carousel__slide",
        isLTR: "is-ltr",
        isRTL: "is-rtl",
        isHorizontal: "is-horizontal",
        isVertical: "is-vertical",
        inTransition: "in-transition",
        isSelected: "is-selected"
    },
    l10n: {
        NEXT: "Next slide",
        PREV: "Previous slide",
        GOTO: "Go to slide #%d"
    }
};
var $9970b34361e607e2$var$B;
!function(t) {
    t[t.Init = 0] = "Init", t[t.Ready = 1] = "Ready", t[t.Destroy = 2] = "Destroy";
}($9970b34361e607e2$var$B || ($9970b34361e607e2$var$B = {}));
const $9970b34361e607e2$var$H = (t)=>{
    if ("string" == typeof t || t instanceof HTMLElement) t = {
        html: t
    };
    else {
        const e = t.thumb;
        void 0 !== e && ("string" == typeof e && (t.thumbSrc = e), e instanceof HTMLImageElement && (t.thumbEl = e, t.thumbElSrc = e.src, t.thumbSrc = e.src), delete t.thumb);
    }
    return Object.assign({
        html: "",
        el: null,
        isDom: !1,
        class: "",
        customClass: "",
        index: -1,
        dim: 0,
        gap: 0,
        pos: 0,
        transition: !1
    }, t);
}, $9970b34361e607e2$var$N = (t = {})=>Object.assign({
    index: -1,
    slides: [],
    dim: 0,
    pos: -1
}, t);
class $9970b34361e607e2$var$_ extends $9970b34361e607e2$var$f {
    constructor(t, e){
        super(e), Object.defineProperty(this, "instance", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: t
        });
    }
    attach() {}
    detach() {}
}
const $9970b34361e607e2$var$$ = {
    classes: {
        list: "f-carousel__dots",
        isDynamic: "is-dynamic",
        hasDots: "has-dots",
        dot: "f-carousel__dot",
        isBeforePrev: "is-before-prev",
        isPrev: "is-prev",
        isCurrent: "is-current",
        isNext: "is-next",
        isAfterNext: "is-after-next"
    },
    dotTpl: '<button type="button" data-carousel-page="%i" aria-label="{{GOTO}}"><span class="f-carousel__dot" aria-hidden="true"></span></button>',
    dynamicFrom: 11,
    maxCount: 1 / 0,
    minCount: 2
};
class $9970b34361e607e2$var$W extends $9970b34361e607e2$var$_ {
    constructor(){
        super(...arguments), Object.defineProperty(this, "isDynamic", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: !1
        }), Object.defineProperty(this, "list", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: null
        });
    }
    onRefresh() {
        this.refresh();
    }
    build() {
        let t = this.list;
        if (!t) {
            t = document.createElement("ul"), $9970b34361e607e2$var$P(t, this.cn("list")), t.setAttribute("role", "tablist");
            const e = this.instance.container;
            e.appendChild(t), $9970b34361e607e2$var$P(e, this.cn("hasDots")), this.list = t;
        }
        return t;
    }
    refresh() {
        var t;
        const e = this.instance.pages.length, i = Math.min(2, this.option("minCount")), n = Math.max(2e3, this.option("maxCount")), s = this.option("dynamicFrom");
        if (e < i || e > n) return void this.cleanup();
        const a = "number" == typeof s && e > 5 && e >= s, r = !this.list || this.isDynamic !== a || this.list.children.length !== e;
        r && this.cleanup();
        const l = this.build();
        if ($9970b34361e607e2$var$o(l, this.cn("isDynamic"), !!a), r) for(let t = 0; t < e; t++)l.append(this.createItem(t));
        let c, h = 0;
        for (const e of [
            ...l.children
        ]){
            const i = h === this.instance.page;
            i && (c = e), $9970b34361e607e2$var$o(e, this.cn("isCurrent"), i), null === (t = e.children[0]) || void 0 === t || t.setAttribute("aria-selected", i ? "true" : "false");
            for (const t of [
                "isBeforePrev",
                "isPrev",
                "isNext",
                "isAfterNext"
            ])$9970b34361e607e2$var$S(e, this.cn(t));
            h++;
        }
        if (c = c || l.firstChild, a && c) {
            const t = c.previousElementSibling, e = t && t.previousElementSibling;
            $9970b34361e607e2$var$P(t, this.cn("isPrev")), $9970b34361e607e2$var$P(e, this.cn("isBeforePrev"));
            const i = c.nextElementSibling, n = i && i.nextElementSibling;
            $9970b34361e607e2$var$P(i, this.cn("isNext")), $9970b34361e607e2$var$P(n, this.cn("isAfterNext"));
        }
        this.isDynamic = a;
    }
    createItem(t = 0) {
        var e;
        const i = document.createElement("li");
        i.setAttribute("role", "presentation");
        const s = $9970b34361e607e2$var$n(this.instance.localize(this.option("dotTpl"), [
            [
                "%d",
                t + 1
            ]
        ]).replace(/\%i/g, t + ""));
        return i.appendChild(s), null === (e = i.children[0]) || void 0 === e || e.setAttribute("role", "tab"), i;
    }
    cleanup() {
        this.list && (this.list.remove(), this.list = null), this.isDynamic = !1, $9970b34361e607e2$var$S(this.instance.container, this.cn("hasDots"));
    }
    attach() {
        this.instance.on([
            "refresh",
            "change"
        ], this.onRefresh);
    }
    detach() {
        this.instance.off([
            "refresh",
            "change"
        ], this.onRefresh), this.cleanup();
    }
}
Object.defineProperty($9970b34361e607e2$var$W, "defaults", {
    enumerable: !0,
    configurable: !0,
    writable: !0,
    value: $9970b34361e607e2$var$$
});
const $9970b34361e607e2$var$X = "disabled", $9970b34361e607e2$var$q = "next", $9970b34361e607e2$var$Y = "prev";
class $9970b34361e607e2$var$V extends $9970b34361e607e2$var$_ {
    constructor(){
        super(...arguments), Object.defineProperty(this, "container", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: null
        }), Object.defineProperty(this, "prev", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: null
        }), Object.defineProperty(this, "next", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: null
        }), Object.defineProperty(this, "isDom", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: !1
        });
    }
    onRefresh() {
        const t = this.instance, e = t.pages.length, i = t.page;
        if (e < 2) return void this.cleanup();
        this.build();
        let n = this.prev, s = this.next;
        n && s && (n.removeAttribute($9970b34361e607e2$var$X), s.removeAttribute($9970b34361e607e2$var$X), t.isInfinite || (i <= 0 && n.setAttribute($9970b34361e607e2$var$X, ""), i >= e - 1 && s.setAttribute($9970b34361e607e2$var$X, "")));
    }
    addBtn(t) {
        var e;
        const i = this.instance, n = document.createElement("button");
        n.setAttribute("tabindex", "0"), n.setAttribute("title", i.localize(`{{${t.toUpperCase()}}}`)), $9970b34361e607e2$var$P(n, this.cn("button") + " " + this.cn(t === $9970b34361e607e2$var$q ? "isNext" : "isPrev"));
        const s = i.isRTL ? t === $9970b34361e607e2$var$q ? $9970b34361e607e2$var$Y : $9970b34361e607e2$var$q : t;
        var o;
        return n.innerHTML = i.localize(this.option(`${s}Tpl`)), n.dataset[`carousel${o = t, o ? o.match("^[a-z]") ? o.charAt(0).toUpperCase() + o.substring(1) : o : ""}`] = "true", null === (e = this.container) || void 0 === e || e.appendChild(n), n;
    }
    build() {
        const t = this.instance.container, e = this.cn("container");
        let { container: i, prev: n, next: s } = this;
        i || (i = t.querySelector("." + e), this.isDom = !!i), i || (i = document.createElement("div"), $9970b34361e607e2$var$P(i, e), t.appendChild(i)), this.container = i, s || (s = i.querySelector("[data-carousel-next]")), s || (s = this.addBtn($9970b34361e607e2$var$q)), this.next = s, n || (n = i.querySelector("[data-carousel-prev]")), n || (n = this.addBtn($9970b34361e607e2$var$Y)), this.prev = n;
    }
    cleanup() {
        this.isDom || (this.prev && this.prev.remove(), this.next && this.next.remove(), this.container && this.container.remove()), this.prev = null, this.next = null, this.container = null, this.isDom = !1;
    }
    attach() {
        this.instance.on([
            "refresh",
            "change"
        ], this.onRefresh);
    }
    detach() {
        this.instance.off([
            "refresh",
            "change"
        ], this.onRefresh), this.cleanup();
    }
}
Object.defineProperty($9970b34361e607e2$var$V, "defaults", {
    enumerable: !0,
    configurable: !0,
    writable: !0,
    value: {
        classes: {
            container: "f-carousel__nav",
            button: "f-button",
            isNext: "is-next",
            isPrev: "is-prev"
        },
        nextTpl: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" tabindex="-1"><path d="M9 3l9 9-9 9"/></svg>',
        prevTpl: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" tabindex="-1"><path d="M15 3l-9 9 9 9"/></svg>'
    }
});
class $9970b34361e607e2$var$Z extends $9970b34361e607e2$var$_ {
    constructor(){
        super(...arguments), Object.defineProperty(this, "selectedIndex", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: null
        }), Object.defineProperty(this, "target", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: null
        }), Object.defineProperty(this, "nav", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: null
        });
    }
    addAsTargetFor(t) {
        this.target = this.instance, this.nav = t, this.attachEvents();
    }
    addAsNavFor(t) {
        this.nav = this.instance, this.target = t, this.attachEvents();
    }
    attachEvents() {
        const { nav: t, target: e } = this;
        t && e && (t.options.initialSlide = e.options.initialPage, t.state === $9970b34361e607e2$var$B.Ready ? this.onNavReady(t) : t.on("ready", this.onNavReady), e.state === $9970b34361e607e2$var$B.Ready ? this.onTargetReady(e) : e.on("ready", this.onTargetReady));
    }
    onNavReady(t) {
        t.on("createSlide", this.onNavCreateSlide), t.on("Panzoom.click", this.onNavClick), t.on("Panzoom.touchEnd", this.onNavTouch), this.onTargetChange();
    }
    onTargetReady(t) {
        t.on("change", this.onTargetChange), t.on("Panzoom.refresh", this.onTargetChange), this.onTargetChange();
    }
    onNavClick(t, e, i) {
        this.onNavTouch(t, t.panzoom, i);
    }
    onNavTouch(t, e, i) {
        var n, s;
        if (Math.abs(e.dragOffset.x) > 3 || Math.abs(e.dragOffset.y) > 3) return;
        const o = i.target, { nav: a, target: r } = this;
        if (!a || !r || !o) return;
        const l = o.closest("[data-index]");
        if (i.stopPropagation(), i.preventDefault(), !l) return;
        const c = parseInt(l.dataset.index || "", 10) || 0, h = r.getPageForSlide(c), d = a.getPageForSlide(c);
        a.slideTo(d), r.slideTo(h, {
            friction: (null === (s = null === (n = this.nav) || void 0 === n ? void 0 : n.plugins) || void 0 === s ? void 0 : s.Sync.option("friction")) || 0
        }), this.markSelectedSlide(c);
    }
    onNavCreateSlide(t, e) {
        e.index === this.selectedIndex && this.markSelectedSlide(e.index);
    }
    onTargetChange() {
        var t, e;
        const { target: i, nav: n } = this;
        if (!i || !n) return;
        if (n.state !== $9970b34361e607e2$var$B.Ready || i.state !== $9970b34361e607e2$var$B.Ready) return;
        const s = null === (e = null === (t = i.pages[i.page]) || void 0 === t ? void 0 : t.slides[0]) || void 0 === e ? void 0 : e.index, o = n.getPageForSlide(s);
        this.markSelectedSlide(s), n.slideTo(o, null === n.prevPage && null === i.prevPage ? {
            friction: 0
        } : void 0);
    }
    markSelectedSlide(t) {
        const e = this.nav;
        e && e.state === $9970b34361e607e2$var$B.Ready && (this.selectedIndex = t, [
            ...e.slides
        ].map((e)=>{
            e.el && e.el.classList[e.index === t ? "add" : "remove"]("is-nav-selected");
        }));
    }
    attach() {
        const t = this;
        let e = t.options.target, i = t.options.nav;
        e ? t.addAsNavFor(e) : i && t.addAsTargetFor(i);
    }
    detach() {
        const t = this, e = t.nav, i = t.target;
        e && (e.off("ready", t.onNavReady), e.off("createSlide", t.onNavCreateSlide), e.off("Panzoom.click", t.onNavClick), e.off("Panzoom.touchEnd", t.onNavTouch)), t.nav = null, i && (i.off("ready", t.onTargetReady), i.off("refresh", t.onTargetChange), i.off("change", t.onTargetChange)), t.target = null;
    }
}
Object.defineProperty($9970b34361e607e2$var$Z, "defaults", {
    enumerable: !0,
    configurable: !0,
    writable: !0,
    value: {
        friction: .35
    }
});
const $9970b34361e607e2$var$U = {
    Navigation: $9970b34361e607e2$var$V,
    Dots: $9970b34361e607e2$var$W,
    Sync: $9970b34361e607e2$var$Z
}, $9970b34361e607e2$var$G = "animationend", $9970b34361e607e2$var$K = "isSelected", $9970b34361e607e2$var$J = "slide";
class $9970b34361e607e2$export$144901db2ea8e967 extends $9970b34361e607e2$var$g {
    get axis() {
        return this.isHorizontal ? "e" : "f";
    }
    get isEnabled() {
        return this.state === $9970b34361e607e2$var$B.Ready;
    }
    get isInfinite() {
        let t = !1;
        const { contentDim: e, viewportDim: i, pages: n, slides: s } = this, o = s[0];
        return n.length >= 2 && o && e + o.dim >= i && (t = this.option("infinite")), t;
    }
    get isRTL() {
        return "rtl" === this.option("direction");
    }
    get isHorizontal() {
        return "x" === this.option("axis");
    }
    constructor(t, e = {}, i = {}){
        if (super(), Object.defineProperty(this, "bp", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: ""
        }), Object.defineProperty(this, "lp", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: 0
        }), Object.defineProperty(this, "userOptions", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: {}
        }), Object.defineProperty(this, "userPlugins", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: {}
        }), Object.defineProperty(this, "state", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: $9970b34361e607e2$var$B.Init
        }), Object.defineProperty(this, "page", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: 0
        }), Object.defineProperty(this, "prevPage", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: null
        }), Object.defineProperty(this, "container", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: void 0
        }), Object.defineProperty(this, "viewport", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: null
        }), Object.defineProperty(this, "track", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: null
        }), Object.defineProperty(this, "slides", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: []
        }), Object.defineProperty(this, "pages", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: []
        }), Object.defineProperty(this, "panzoom", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: null
        }), Object.defineProperty(this, "inTransition", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: new Set
        }), Object.defineProperty(this, "contentDim", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: 0
        }), Object.defineProperty(this, "viewportDim", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: 0
        }), "string" == typeof t && (t = document.querySelector(t)), !t || !$9970b34361e607e2$var$E(t)) throw new Error("No Element found");
        this.container = t, this.slideNext = $9970b34361e607e2$var$D(this.slideNext.bind(this), 150), this.slidePrev = $9970b34361e607e2$var$D(this.slidePrev.bind(this), 150), this.userOptions = e, this.userPlugins = i, queueMicrotask(()=>{
            this.processOptions();
        });
    }
    processOptions() {
        var t, e;
        const i = $9970b34361e607e2$var$u({}, $9970b34361e607e2$export$144901db2ea8e967.defaults, this.userOptions);
        let n = "";
        const s = i.breakpoints;
        if (s && $9970b34361e607e2$var$d(s)) for (const [t, e] of Object.entries(s))window.matchMedia(t).matches && $9970b34361e607e2$var$d(e) && (n += t, $9970b34361e607e2$var$u(i, e));
        n === this.bp && this.state !== $9970b34361e607e2$var$B.Init || (this.bp = n, this.state === $9970b34361e607e2$var$B.Ready && (i.initialSlide = (null === (e = null === (t = this.pages[this.page]) || void 0 === t ? void 0 : t.slides[0]) || void 0 === e ? void 0 : e.index) || 0), this.state !== $9970b34361e607e2$var$B.Init && this.destroy(), super.setOptions(i), !1 === this.option("enabled") ? this.attachEvents() : setTimeout(()=>{
            this.init();
        }, 0));
    }
    init() {
        this.state = $9970b34361e607e2$var$B.Init, this.emit("init"), this.attachPlugins(Object.assign(Object.assign({}, $9970b34361e607e2$export$144901db2ea8e967.Plugins), this.userPlugins)), this.emit("attachPlugins"), this.initLayout(), this.initSlides(), this.updateMetrics(), this.setInitialPosition(), this.initPanzoom(), this.attachEvents(), this.state = $9970b34361e607e2$var$B.Ready, this.emit("ready");
    }
    initLayout() {
        const { container: t } = this, e = this.option("classes");
        $9970b34361e607e2$var$P(t, this.cn("container")), $9970b34361e607e2$var$o(t, e.isLTR, !this.isRTL), $9970b34361e607e2$var$o(t, e.isRTL, this.isRTL), $9970b34361e607e2$var$o(t, e.isVertical, !this.isHorizontal), $9970b34361e607e2$var$o(t, e.isHorizontal, this.isHorizontal);
        let i = this.option("viewport") || t.querySelector(`.${e.viewport}`);
        i || (i = document.createElement("div"), $9970b34361e607e2$var$P(i, e.viewport), i.append(...$9970b34361e607e2$var$F(t, `.${e.slide}`)), t.prepend(i)), i.addEventListener("scroll", this.onScroll);
        let n = this.option("track") || t.querySelector(`.${e.track}`);
        n || (n = document.createElement("div"), $9970b34361e607e2$var$P(n, e.track), n.append(...Array.from(i.childNodes))), n.setAttribute("aria-live", "polite"), i.contains(n) || i.prepend(n), this.viewport = i, this.track = n, this.emit("initLayout");
    }
    initSlides() {
        const { track: t } = this;
        if (!t) return;
        const e = [
            ...this.slides
        ], i = [];
        [
            ...$9970b34361e607e2$var$F(t, `.${this.cn($9970b34361e607e2$var$J)}`)
        ].forEach((t)=>{
            if ($9970b34361e607e2$var$E(t)) {
                const e = $9970b34361e607e2$var$H({
                    el: t,
                    isDom: !0,
                    index: this.slides.length
                });
                i.push(e);
            }
        });
        for (let t of [
            ...this.option("slides", []) || [],
            ...e
        ])i.push($9970b34361e607e2$var$H(t));
        this.slides = i;
        for(let t = 0; t < this.slides.length; t++)this.slides[t].index = t;
        for (const t of i)this.emit("beforeInitSlide", t, t.index), this.emit("initSlide", t, t.index);
        this.emit("initSlides");
    }
    setInitialPage() {
        const t = this.option("initialSlide");
        this.page = "number" == typeof t ? this.getPageForSlide(t) : parseInt(this.option("initialPage", 0) + "", 10) || 0;
    }
    setInitialPosition() {
        const { track: t, pages: e, isHorizontal: i } = this;
        if (!t || !e.length) return;
        let n = this.page;
        e[n] || (this.page = n = 0);
        const s = (e[n].pos || 0) * (this.isRTL && i ? 1 : -1), o = i ? `${s}px` : "0", a = i ? "0" : `${s}px`;
        t.style.transform = `translate3d(${o}, ${a}, 0) scale(1)`, this.option("adaptiveHeight") && this.setViewportHeight();
    }
    initPanzoom() {
        this.panzoom && (this.panzoom.destroy(), this.panzoom = null);
        const t = this.option("Panzoom") || {};
        this.panzoom = new $9970b34361e607e2$export$b704d075ddd20210(this.viewport, $9970b34361e607e2$var$u({}, {
            content: this.track,
            zoom: !1,
            panOnlyZoomed: !1,
            lockAxis: this.isHorizontal ? "x" : "y",
            infinite: this.isInfinite,
            click: !1,
            dblClick: !1,
            touch: (t)=>!(this.pages.length < 2 && !t.options.infinite),
            bounds: ()=>this.getBounds(),
            maxVelocity: (t)=>Math.abs(t.target[this.axis] - t.current[this.axis]) < 2 * this.viewportDim ? 100 : 0
        }, t)), this.panzoom.on("*", (t, e, ...i)=>{
            this.emit(`Panzoom.${e}`, t, ...i);
        }), this.panzoom.on("decel", this.onDecel), this.panzoom.on("refresh", this.onRefresh), this.panzoom.on("beforeTransform", this.onBeforeTransform), this.panzoom.on("endAnimation", this.onEndAnimation);
    }
    attachEvents() {
        const t = this.container;
        t && (t.addEventListener("click", this.onClick, {
            passive: !1,
            capture: !1
        }), t.addEventListener("slideTo", this.onSlideTo)), window.addEventListener("resize", this.onResize);
    }
    createPages() {
        let t = [];
        const { contentDim: e, viewportDim: i } = this;
        let n = this.option("slidesPerPage");
        n = ("auto" === n || e <= i) && !1 !== this.option("fill") ? 1 / 0 : parseFloat(n + "");
        let s = 0, o = 0, a = 0;
        for (const e of this.slides)(!t.length || o + e.dim - i > .05 || a >= n) && (t.push($9970b34361e607e2$var$N()), s = t.length - 1, o = 0, a = 0), t[s].slides.push(e), o += e.dim + e.gap, a++;
        return t;
    }
    processPages() {
        const e = this.pages, { contentDim: i, viewportDim: n, isInfinite: s } = this, o = this.option("center"), a = this.option("fill"), r = a && o && i > n && !s;
        if (e.forEach((t, e)=>{
            var s;
            t.index = e, t.pos = (null === (s = t.slides[0]) || void 0 === s ? void 0 : s.pos) || 0, t.dim = 0;
            for (const [e, i] of t.slides.entries())t.dim += i.dim, e < t.slides.length - 1 && (t.dim += i.gap);
            r && t.pos + .5 * t.dim < .5 * n ? t.pos = 0 : r && t.pos + .5 * t.dim >= i - .5 * n ? t.pos = i - n : o && (t.pos += -0.5 * (n - t.dim));
        }), e.forEach((e)=>{
            a && !s && i > n && (e.pos = Math.max(e.pos, 0), e.pos = Math.min(e.pos, i - n)), e.pos = $9970b34361e607e2$var$t(e.pos, 1e3), e.dim = $9970b34361e607e2$var$t(e.dim, 1e3), Math.abs(e.pos) <= .1 && (e.pos = 0);
        }), s) return e;
        const l = [];
        let c;
        return e.forEach((t)=>{
            const e = Object.assign({}, t);
            c && e.pos === c.pos ? (c.dim += e.dim, c.slides = [
                ...c.slides,
                ...e.slides
            ]) : (e.index = l.length, c = e, l.push(e));
        }), l;
    }
    getPageFromIndex(t = 0) {
        const e = this.pages.length;
        let i;
        return t = parseInt((t || 0).toString()) || 0, i = this.isInfinite ? (t % e + e) % e : Math.max(Math.min(t, e - 1), 0), i;
    }
    getSlideMetrics(e) {
        var i, n;
        const s = this.isHorizontal ? "width" : "height";
        let o = 0, a = 0, r = e.el;
        const l = !(!r || r.parentNode);
        if (r ? o = parseFloat(r.dataset[s] || "") || 0 : (r = document.createElement("div"), r.style.visibility = "hidden", (this.track || document.body).prepend(r)), $9970b34361e607e2$var$P(r, this.cn($9970b34361e607e2$var$J) + " " + e.class + " " + e.customClass), o) r.style[s] = `${o}px`, r.style["width" === s ? "height" : "width"] = "";
        else {
            l && (this.track || document.body).prepend(r), o = r.getBoundingClientRect()[s] * Math.max(1, (null === (i = window.visualViewport) || void 0 === i ? void 0 : i.scale) || 1);
            let t = r[this.isHorizontal ? "offsetWidth" : "offsetHeight"];
            t - 1 > o && (o = t);
        }
        const c = getComputedStyle(r);
        return "content-box" === c.boxSizing && (this.isHorizontal ? (o += parseFloat(c.paddingLeft) || 0, o += parseFloat(c.paddingRight) || 0) : (o += parseFloat(c.paddingTop) || 0, o += parseFloat(c.paddingBottom) || 0)), a = parseFloat(c[this.isHorizontal ? "marginRight" : "marginBottom"]) || 0, l ? null === (n = r.parentElement) || void 0 === n || n.removeChild(r) : e.el || r.remove(), {
            dim: $9970b34361e607e2$var$t(o, 1e3),
            gap: $9970b34361e607e2$var$t(a, 1e3)
        };
    }
    getBounds() {
        const { isInfinite: t, isRTL: e, isHorizontal: i, pages: n } = this;
        let s = {
            min: 0,
            max: 0
        };
        if (t) s = {
            min: -1 / 0,
            max: 1 / 0
        };
        else if (n.length) {
            const t = n[0].pos, o = n[n.length - 1].pos;
            s = e && i ? {
                min: t,
                max: o
            } : {
                min: -1 * o,
                max: -1 * t
            };
        }
        return {
            x: i ? s : {
                min: 0,
                max: 0
            },
            y: i ? {
                min: 0,
                max: 0
            } : s
        };
    }
    repositionSlides() {
        let e, { isHorizontal: i, isRTL: n, isInfinite: s, viewport: o, viewportDim: a, contentDim: r, page: l, pages: c, slides: h, panzoom: d } = this, u = 0, p = 0, f = 0, g = 0;
        d ? g = -1 * d.current[this.axis] : c[l] && (g = c[l].pos || 0), e = i ? n ? "right" : "left" : "top", n && i && (g *= -1);
        for (const i of h){
            const n = i.el;
            n ? ("top" === e ? (n.style.right = "", n.style.left = "") : n.style.top = "", i.index !== u ? n.style[e] = 0 === p ? "" : `${$9970b34361e607e2$var$t(p, 1e3)}px` : n.style[e] = "", f += i.dim + i.gap, u++) : p += i.dim + i.gap;
        }
        if (s && f && o) {
            let n = getComputedStyle(o), s = "padding", l = i ? "Right" : "Bottom", c = parseFloat(n[s + (i ? "Left" : "Top")]);
            g -= c, a += c, a += parseFloat(n[s + l]);
            for (const i of h)i.el && ($9970b34361e607e2$var$t(i.pos) < $9970b34361e607e2$var$t(a) && $9970b34361e607e2$var$t(i.pos + i.dim + i.gap) < $9970b34361e607e2$var$t(g) && $9970b34361e607e2$var$t(g) > $9970b34361e607e2$var$t(r - a) && (i.el.style[e] = `${$9970b34361e607e2$var$t(p + f, 1e3)}px`), $9970b34361e607e2$var$t(i.pos + i.gap) >= $9970b34361e607e2$var$t(r - a) && $9970b34361e607e2$var$t(i.pos) > $9970b34361e607e2$var$t(g + a) && $9970b34361e607e2$var$t(g) < $9970b34361e607e2$var$t(a) && (i.el.style[e] = `-${$9970b34361e607e2$var$t(f, 1e3)}px`));
        }
        let m, v, b = [
            ...this.inTransition
        ];
        if (b.length > 1 && (m = c[b[0]], v = c[b[1]]), m && v) {
            let i = 0;
            for (const n of h)n.el ? this.inTransition.has(n.index) && m.slides.indexOf(n) < 0 && (n.el.style[e] = `${$9970b34361e607e2$var$t(i + (m.pos - v.pos), 1e3)}px`) : i += n.dim + n.gap;
        }
    }
    createSlideEl(t) {
        const { track: e, slides: i } = this;
        if (!e || !t) return;
        if (t.el && t.el.parentNode) return;
        const n = t.el || document.createElement("div");
        $9970b34361e607e2$var$P(n, this.cn($9970b34361e607e2$var$J)), $9970b34361e607e2$var$P(n, t.class), $9970b34361e607e2$var$P(n, t.customClass);
        const s = t.html;
        s && (s instanceof HTMLElement ? n.appendChild(s) : n.innerHTML = t.html + "");
        const o = [];
        i.forEach((t, e)=>{
            t.el && o.push(e);
        });
        const a = t.index;
        let r = null;
        if (o.length) r = i[o.reduce((t, e)=>Math.abs(e - a) < Math.abs(t - a) ? e : t)];
        const l = r && r.el && r.el.parentNode ? r.index < t.index ? r.el.nextSibling : r.el : null;
        e.insertBefore(n, e.contains(l) ? l : null), t.el = n, this.emit("createSlide", t);
    }
    removeSlideEl(t, e = !1) {
        const i = null == t ? void 0 : t.el;
        if (!i || !i.parentNode) return;
        const n = this.cn($9970b34361e607e2$var$K);
        if (i.classList.contains(n) && ($9970b34361e607e2$var$S(i, n), this.emit("unselectSlide", t)), t.isDom && !e) return i.removeAttribute("aria-hidden"), i.removeAttribute("data-index"), void (i.style.left = "");
        this.emit("removeSlide", t);
        const s = new CustomEvent($9970b34361e607e2$var$G);
        i.dispatchEvent(s), t.el && (t.el.remove(), t.el = null);
    }
    transitionTo(t = 0, e = this.option("transition")) {
        var i, n, s, o;
        if (!e) return !1;
        const a = this.page, { pages: r, panzoom: l } = this;
        t = parseInt((t || 0).toString()) || 0;
        const c = this.getPageFromIndex(t);
        if (!l || !r[c] || r.length < 2 || Math.abs(((null === (n = null === (i = r[a]) || void 0 === i ? void 0 : i.slides[0]) || void 0 === n ? void 0 : n.dim) || 0) - this.viewportDim) > 1) return !1;
        let h = t > a ? 1 : -1;
        this.isInfinite && (0 === a && t === r.length - 1 && (h = -1), a === r.length - 1 && 0 === t && (h = 1));
        const d = r[c].pos * (this.isRTL ? 1 : -1);
        if (a === c && Math.abs(d - l.target[this.axis]) < 1) return !1;
        this.clearTransitions();
        const u = l.isResting;
        $9970b34361e607e2$var$P(this.container, this.cn("inTransition"));
        const p = (null === (s = r[a]) || void 0 === s ? void 0 : s.slides[0]) || null, f = (null === (o = r[c]) || void 0 === o ? void 0 : o.slides[0]) || null;
        this.inTransition.add(f.index), this.createSlideEl(f);
        let g = p.el, m = f.el;
        u || e === $9970b34361e607e2$var$J || (e = "fadeFast", g = null);
        const v = this.isRTL ? "next" : "prev", b = this.isRTL ? "prev" : "next";
        return g && (this.inTransition.add(p.index), p.transition = e, g.addEventListener($9970b34361e607e2$var$G, this.onAnimationEnd), g.classList.add(`f-${e}Out`, `to-${h > 0 ? b : v}`)), m && (f.transition = e, m.addEventListener($9970b34361e607e2$var$G, this.onAnimationEnd), m.classList.add(`f-${e}In`, `from-${h > 0 ? v : b}`)), l.current[this.axis] = d, l.target[this.axis] = d, l.requestTick(), this.onChange(c), !0;
    }
    manageSlideVisiblity() {
        const t = new Set, e = new Set, i = this.getVisibleSlides(parseFloat(this.option("preload", 0) + "") || 0);
        for (const n of this.slides)i.has(n) ? t.add(n) : e.add(n);
        for (const e of this.inTransition)t.add(this.slides[e]);
        for (const e of t)this.createSlideEl(e), this.lazyLoadSlide(e);
        for (const i of e)t.has(i) || this.removeSlideEl(i);
        this.markSelectedSlides(), this.repositionSlides();
    }
    markSelectedSlides() {
        if (!this.pages[this.page] || !this.pages[this.page].slides) return;
        const t = "aria-hidden";
        let e = this.cn($9970b34361e607e2$var$K);
        if (e) for (const i of this.slides){
            const n = i.el;
            n && (n.dataset.index = `${i.index}`, n.classList.contains("f-thumbs__slide") ? this.getVisibleSlides(0).has(i) ? n.removeAttribute(t) : n.setAttribute(t, "true") : this.pages[this.page].slides.includes(i) ? (n.classList.contains(e) || ($9970b34361e607e2$var$P(n, e), this.emit("selectSlide", i)), n.removeAttribute(t)) : (n.classList.contains(e) && ($9970b34361e607e2$var$S(n, e), this.emit("unselectSlide", i)), n.setAttribute(t, "true")));
        }
    }
    flipInfiniteTrack() {
        const { axis: t, isHorizontal: e, isInfinite: i, isRTL: n, viewportDim: s, contentDim: o } = this, a = this.panzoom;
        if (!a || !i) return;
        let r = a.current[t], l = a.target[t] - r, c = 0, h = .5 * s;
        n && e ? (r < -h && (c = -1, r += o), r > o - h && (c = 1, r -= o)) : (r > h && (c = 1, r -= o), r < -o + h && (c = -1, r += o)), c && (a.current[t] = r, a.target[t] = r + l);
    }
    lazyLoadImg(t, e) {
        const i = this, s = "f-fadeIn", o = "is-preloading";
        let a = !1, r = null;
        const l = ()=>{
            a || (a = !0, r && (r.remove(), r = null), $9970b34361e607e2$var$S(e, o), e.complete && ($9970b34361e607e2$var$P(e, s), setTimeout(()=>{
                $9970b34361e607e2$var$S(e, s);
            }, 350)), this.option("adaptiveHeight") && t.el && this.pages[this.page].slides.indexOf(t) > -1 && (i.updateMetrics(), i.setViewportHeight()), this.emit("load", t));
        };
        $9970b34361e607e2$var$P(e, o), e.src = e.dataset.lazySrcset || e.dataset.lazySrc || "", delete e.dataset.lazySrc, delete e.dataset.lazySrcset, e.addEventListener("error", ()=>{
            l();
        }), e.addEventListener("load", ()=>{
            l();
        }), setTimeout(()=>{
            const i = e.parentNode;
            i && t.el && (e.complete ? l() : a || (r = $9970b34361e607e2$var$n($9970b34361e607e2$var$x), i.insertBefore(r, e)));
        }, 300);
    }
    lazyLoadSlide(t) {
        const e = t && t.el;
        if (!e) return;
        const i = new Set;
        let n = Array.from(e.querySelectorAll("[data-lazy-src],[data-lazy-srcset]"));
        e.dataset.lazySrc && n.push(e), n.map((t)=>{
            t instanceof HTMLImageElement ? i.add(t) : t instanceof HTMLElement && t.dataset.lazySrc && (t.style.backgroundImage = `url('${t.dataset.lazySrc}')`, delete t.dataset.lazySrc);
        });
        for (const e of i)this.lazyLoadImg(t, e);
    }
    onAnimationEnd(t) {
        var e;
        const i = t.target, n = i ? parseInt(i.dataset.index || "", 10) || 0 : -1, s = this.slides[n], o = t.animationName;
        if (!i || !s || !o) return;
        const a = !!this.inTransition.has(n) && s.transition;
        a && o.substring(0, a.length + 2) === `f-${a}` && this.inTransition.delete(n), this.inTransition.size || this.clearTransitions(), n === this.page && (null === (e = this.panzoom) || void 0 === e ? void 0 : e.isResting) && this.emit("settle");
    }
    onDecel(t, e = 0, i = 0, n = 0, s = 0) {
        if (this.option("dragFree")) return void this.setPageFromPosition();
        const { isRTL: o, isHorizontal: a, axis: r, pages: l } = this, c = l.length, h = Math.abs(Math.atan2(i, e) / (Math.PI / 180));
        let d = 0;
        if (d = h > 45 && h < 135 ? a ? 0 : i : a ? e : 0, !c) return;
        let u = this.page, p = o && a ? 1 : -1;
        const f = t.current[r] * p;
        let { pageIndex: g } = this.getPageFromPosition(f);
        Math.abs(d) > 5 ? (l[u].dim < document.documentElement["client" + (this.isHorizontal ? "Width" : "Height")] - 1 && (u = g), u = o && a ? d < 0 ? u - 1 : u + 1 : d < 0 ? u + 1 : u - 1) : u = 0 === n && 0 === s ? u : g, this.slideTo(u, {
            transition: !1,
            friction: t.option("decelFriction")
        });
    }
    onClick(t) {
        const e = t.target, i = e && $9970b34361e607e2$var$E(e) ? e.dataset : null;
        let n, s;
        i && (void 0 !== i.carouselPage ? (s = "slideTo", n = i.carouselPage) : void 0 !== i.carouselNext ? s = "slideNext" : void 0 !== i.carouselPrev && (s = "slidePrev")), s ? (t.preventDefault(), t.stopPropagation(), e && !e.hasAttribute("disabled") && this[s](n)) : this.emit("click", t);
    }
    onSlideTo(t) {
        const e = t.detail || 0;
        this.slideTo(this.getPageForSlide(e), {
            friction: 0
        });
    }
    onChange(t, e = 0) {
        const i = this.page;
        this.prevPage = i, this.page = t, this.option("adaptiveHeight") && this.setViewportHeight(), t !== i && (this.markSelectedSlides(), this.emit("change", t, i, e));
    }
    onRefresh() {
        let t = this.contentDim, e = this.viewportDim;
        this.updateMetrics(), this.contentDim === t && this.viewportDim === e || this.slideTo(this.page, {
            friction: 0,
            transition: !1
        });
    }
    onScroll() {
        var t;
        null === (t = this.viewport) || void 0 === t || t.scroll(0, 0);
    }
    onResize() {
        this.option("breakpoints") && this.processOptions();
    }
    onBeforeTransform(t) {
        this.lp !== t.current[this.axis] && (this.flipInfiniteTrack(), this.manageSlideVisiblity()), this.lp = t.current.e;
    }
    onEndAnimation() {
        this.inTransition.size || this.emit("settle");
    }
    reInit(t = null, e = null) {
        this.destroy(), this.state = $9970b34361e607e2$var$B.Init, this.prevPage = null, this.userOptions = t || this.userOptions, this.userPlugins = e || this.userPlugins, this.processOptions();
    }
    slideTo(t = 0, { friction: e = this.option("friction"), transition: i = this.option("transition") } = {}) {
        if (this.state === $9970b34361e607e2$var$B.Destroy) return;
        t = parseInt((t || 0).toString()) || 0;
        const n = this.getPageFromIndex(t), { axis: s, isHorizontal: o, isRTL: a, pages: r, panzoom: l } = this, c = r.length, h = a && o ? 1 : -1;
        if (!l || !c) return;
        if (this.page !== n) {
            const e = new Event("beforeChange", {
                bubbles: !0,
                cancelable: !0
            });
            if (this.emit("beforeChange", e, t), e.defaultPrevented) return;
        }
        if (this.transitionTo(t, i)) return;
        let d = r[n].pos;
        if (this.isInfinite) {
            const e = this.contentDim, i = l.target[s] * h;
            if (2 === c) d += e * Math.floor(parseFloat(t + "") / 2);
            else d = [
                d,
                d - e,
                d + e
            ].reduce(function(t, e) {
                return Math.abs(e - i) < Math.abs(t - i) ? e : t;
            });
        }
        d *= h, Math.abs(l.target[s] - d) < 1 || (l.panTo({
            x: o ? d : 0,
            y: o ? 0 : d,
            friction: e
        }), this.onChange(n));
    }
    slideToClosest(t) {
        if (this.panzoom) {
            const { pageIndex: e } = this.getPageFromPosition();
            this.slideTo(e, t);
        }
    }
    slideNext() {
        this.slideTo(this.page + 1);
    }
    slidePrev() {
        this.slideTo(this.page - 1);
    }
    clearTransitions() {
        this.inTransition.clear(), $9970b34361e607e2$var$S(this.container, this.cn("inTransition"));
        const t = [
            "to-prev",
            "to-next",
            "from-prev",
            "from-next"
        ];
        for (const e of this.slides){
            const i = e.el;
            if (i) {
                i.removeEventListener($9970b34361e607e2$var$G, this.onAnimationEnd), i.classList.remove(...t);
                const n = e.transition;
                n && i.classList.remove(`f-${n}Out`, `f-${n}In`);
            }
        }
        this.manageSlideVisiblity();
    }
    addSlide(t, e) {
        var i, n, s, o;
        const a = this.panzoom, r = (null === (i = this.pages[this.page]) || void 0 === i ? void 0 : i.pos) || 0, l = (null === (n = this.pages[this.page]) || void 0 === n ? void 0 : n.dim) || 0, c = this.contentDim < this.viewportDim;
        let h = Array.isArray(e) ? e : [
            e
        ];
        const d = [];
        for (const t of h)d.push($9970b34361e607e2$var$H(t));
        this.slides.splice(t, 0, ...d);
        for(let t = 0; t < this.slides.length; t++)this.slides[t].index = t;
        for (const t of d)this.emit("beforeInitSlide", t, t.index);
        if (this.page >= t && (this.page += d.length), this.updateMetrics(), a) {
            const e = (null === (s = this.pages[this.page]) || void 0 === s ? void 0 : s.pos) || 0, i = (null === (o = this.pages[this.page]) || void 0 === o ? void 0 : o.dim) || 0, n = this.pages.length || 1, h = this.isRTL ? l - i : i - l, d = this.isRTL ? r - e : e - r;
            c && 1 === n ? (t <= this.page && (a.current[this.axis] -= h, a.target[this.axis] -= h), a.panTo({
                [this.isHorizontal ? "x" : "y"]: -1 * e
            })) : d && t <= this.page && (a.target[this.axis] -= d, a.current[this.axis] -= d, a.requestTick());
        }
        for (const t of d)this.emit("initSlide", t, t.index);
    }
    prependSlide(t) {
        this.addSlide(0, t);
    }
    appendSlide(t) {
        this.addSlide(this.slides.length, t);
    }
    removeSlide(t) {
        const e = this.slides.length;
        t = (t % e + e) % e;
        const i = this.slides[t];
        if (i) {
            this.removeSlideEl(i, !0), this.slides.splice(t, 1);
            for(let t = 0; t < this.slides.length; t++)this.slides[t].index = t;
            this.updateMetrics(), this.slideTo(this.page, {
                friction: 0,
                transition: !1
            }), this.emit("destroySlide", i);
        }
    }
    updateMetrics() {
        const { panzoom: e, viewport: i, track: n, slides: s, isHorizontal: o, isInfinite: a } = this;
        if (!n) return;
        const r = o ? "width" : "height", l = o ? "offsetWidth" : "offsetHeight";
        if (i) {
            let e = Math.max(i[l], $9970b34361e607e2$var$t(i.getBoundingClientRect()[r], 1e3)), n = getComputedStyle(i), s = "padding", a = o ? "Right" : "Bottom";
            e -= parseFloat(n[s + (o ? "Left" : "Top")]) + parseFloat(n[s + a]), this.viewportDim = e;
        }
        let c, h = 0;
        for (const [e, i] of s.entries()){
            let n = 0, o = 0;
            !i.el && c ? (n = c.dim, o = c.gap) : ({ dim: n, gap: o } = this.getSlideMetrics(i), c = i), n = $9970b34361e607e2$var$t(n, 1e3), o = $9970b34361e607e2$var$t(o, 1e3), i.dim = n, i.gap = o, i.pos = h, h += n, (a || e < s.length - 1) && (h += o);
        }
        h = $9970b34361e607e2$var$t(h, 1e3), this.contentDim = h, e && (e.contentRect[r] = h, e.contentRect[o ? "fullWidth" : "fullHeight"] = h), this.pages = this.createPages(), this.pages = this.processPages(), this.state === $9970b34361e607e2$var$B.Init && this.setInitialPage(), this.page = Math.max(0, Math.min(this.page, this.pages.length - 1)), this.manageSlideVisiblity(), this.emit("refresh");
    }
    getProgress(e, i = !1, n = !1) {
        void 0 === e && (e = this.page);
        const s = this, o = s.panzoom, a = s.contentDim, r = s.pages[e] || 0;
        if (!r || !o) return e > this.page ? -1 : 1;
        let l = -1 * o.current.e, c = $9970b34361e607e2$var$t((l - r.pos) / (1 * r.dim), 1e3), h = c, d = c;
        this.isInfinite && !0 !== n && (h = $9970b34361e607e2$var$t((l - r.pos + a) / (1 * r.dim), 1e3), d = $9970b34361e607e2$var$t((l - r.pos - a) / (1 * r.dim), 1e3));
        let u = [
            c,
            h,
            d
        ].reduce(function(t, e) {
            return Math.abs(e) < Math.abs(t) ? e : t;
        });
        return i ? u : u > 1 ? 1 : u < -1 ? -1 : u;
    }
    setViewportHeight() {
        const { page: t, pages: e, viewport: i, isHorizontal: n } = this;
        if (!i || !e[t]) return;
        let s = 0;
        n && this.track && (this.track.style.height = "auto", e[t].slides.forEach((t)=>{
            t.el && (s = Math.max(s, t.el.offsetHeight));
        })), i.style.height = s ? `${s}px` : "";
    }
    getPageForSlide(t) {
        for (const e of this.pages)for (const i of e.slides)if (i.index === t) return e.index;
        return -1;
    }
    getVisibleSlides(t = 0) {
        var e;
        const i = new Set;
        let { panzoom: n, contentDim: s, viewportDim: o, pages: a, page: r } = this;
        if (o) {
            s = s + (null === (e = this.slides[this.slides.length - 1]) || void 0 === e ? void 0 : e.gap) || 0;
            let l = 0;
            l = n && n.state !== $9970b34361e607e2$var$m.Init && n.state !== $9970b34361e607e2$var$m.Destroy ? -1 * n.current[this.axis] : a[r] && a[r].pos || 0, this.isInfinite && (l -= Math.floor(l / s) * s), this.isRTL && this.isHorizontal && (l *= -1);
            const c = l - o * t, h = l + o * (t + 1), d = this.isInfinite ? [
                -1,
                0,
                1
            ] : [
                0
            ];
            for (const t of this.slides)for (const e of d){
                const n = t.pos + e * s, o = n + t.dim + t.gap;
                n < h && o > c && i.add(t);
            }
        }
        return i;
    }
    getPageFromPosition(t) {
        const { viewportDim: e, contentDim: i, slides: n, pages: s, panzoom: o } = this, a = s.length, r = n.length, l = n[0], c = n[r - 1], h = this.option("center");
        let d = 0, u = 0, p = 0, f = void 0 === t ? -1 * ((null == o ? void 0 : o.target[this.axis]) || 0) : t;
        h && (f += .5 * e), this.isInfinite ? (f < l.pos - .5 * c.gap && (f -= i, p = -1), f > c.pos + c.dim + .5 * c.gap && (f -= i, p = 1)) : f = Math.max(l.pos || 0, Math.min(f, c.pos));
        let g = c, m = n.find((t)=>{
            const e = t.pos - .5 * g.gap, i = t.pos + t.dim + .5 * t.gap;
            return g = t, f >= e && f < i;
        });
        return m || (m = c), u = this.getPageForSlide(m.index), d = u + p * a, {
            page: d,
            pageIndex: u
        };
    }
    setPageFromPosition() {
        const { pageIndex: t } = this.getPageFromPosition();
        this.onChange(t);
    }
    destroy() {
        if ([
            $9970b34361e607e2$var$B.Destroy
        ].includes(this.state)) return;
        this.state = $9970b34361e607e2$var$B.Destroy;
        const { container: t, viewport: e, track: i, slides: n, panzoom: s } = this, o = this.option("classes");
        t.removeEventListener("click", this.onClick, {
            passive: !1,
            capture: !1
        }), t.removeEventListener("slideTo", this.onSlideTo), window.removeEventListener("resize", this.onResize), s && (s.destroy(), this.panzoom = null), n && n.forEach((t)=>{
            this.removeSlideEl(t);
        }), this.detachPlugins(), e && (e.removeEventListener("scroll", this.onScroll), e.offsetParent && i && i.offsetParent && e.replaceWith(...i.childNodes));
        for (const [e, i] of Object.entries(o))"container" !== e && i && t.classList.remove(i);
        this.track = null, this.viewport = null, this.page = 0, this.slides = [];
        const a = this.events.get("ready");
        this.events = new Map, a && this.events.set("ready", a);
    }
}
Object.defineProperty($9970b34361e607e2$export$144901db2ea8e967, "Panzoom", {
    enumerable: !0,
    configurable: !0,
    writable: !0,
    value: $9970b34361e607e2$export$b704d075ddd20210
}), Object.defineProperty($9970b34361e607e2$export$144901db2ea8e967, "defaults", {
    enumerable: !0,
    configurable: !0,
    writable: !0,
    value: $9970b34361e607e2$var$j
}), Object.defineProperty($9970b34361e607e2$export$144901db2ea8e967, "Plugins", {
    enumerable: !0,
    configurable: !0,
    writable: !0,
    value: $9970b34361e607e2$var$U
});
const $9970b34361e607e2$var$tt = function(t) {
    if (!$9970b34361e607e2$var$E(t)) return 0;
    const e = window.scrollY, i = window.innerHeight, n = e + i, s = t.getBoundingClientRect(), o = s.y + e, a = s.height, r = o + a;
    if (e > r || n < o) return 0;
    if (e < o && n > r) return 100;
    if (o < e && r > n) return 100;
    let l = a;
    o < e && (l -= e - o), r > n && (l -= r - n);
    const c = l / i * 100;
    return Math.round(c);
}, $9970b34361e607e2$var$et = !("undefined" == typeof window || !window.document || !window.document.createElement);
let $9970b34361e607e2$var$it;
const $9970b34361e607e2$var$nt = [
    "a[href]",
    "area[href]",
    'input:not([disabled]):not([type="hidden"]):not([aria-hidden])',
    "select:not([disabled]):not([aria-hidden])",
    "textarea:not([disabled]):not([aria-hidden])",
    "button:not([disabled]):not([aria-hidden]):not(.fancybox-focus-guard)",
    "iframe",
    "object",
    "embed",
    "video",
    "audio",
    "[contenteditable]",
    '[tabindex]:not([tabindex^="-"]):not([disabled]):not([aria-hidden])'
].join(","), $9970b34361e607e2$var$st = (t)=>{
    if (t && $9970b34361e607e2$var$et) {
        void 0 === $9970b34361e607e2$var$it && document.createElement("div").focus({
            get preventScroll () {
                return $9970b34361e607e2$var$it = !0, !1;
            }
        });
        try {
            if ($9970b34361e607e2$var$it) t.focus({
                preventScroll: !0
            });
            else {
                const e = window.scrollY || document.body.scrollTop, i = window.scrollX || document.body.scrollLeft;
                t.focus(), document.body.scrollTo({
                    top: e,
                    left: i,
                    behavior: "auto"
                });
            }
        } catch (t) {}
    }
}, $9970b34361e607e2$var$ot = ()=>{
    const t = document;
    let e, i = "", n = "", s = "";
    return t.fullscreenEnabled ? (i = "requestFullscreen", n = "exitFullscreen", s = "fullscreenElement") : t.webkitFullscreenEnabled && (i = "webkitRequestFullscreen", n = "webkitExitFullscreen", s = "webkitFullscreenElement"), i && (e = {
        request: function(e = t.documentElement) {
            return "webkitRequestFullscreen" === i ? e[i](Element.ALLOW_KEYBOARD_INPUT) : e[i]();
        },
        exit: function() {
            return t[s] && t[n]();
        },
        isFullscreen: function() {
            return t[s];
        }
    }), e;
}, $9970b34361e607e2$var$at = {
    animated: !0,
    autoFocus: !0,
    backdropClick: "close",
    Carousel: {
        classes: {
            container: "fancybox__carousel",
            viewport: "fancybox__viewport",
            track: "fancybox__track",
            slide: "fancybox__slide"
        }
    },
    closeButton: "auto",
    closeExisting: !1,
    commonCaption: !1,
    compact: ()=>window.matchMedia("(max-width: 578px), (max-height: 578px)").matches,
    contentClick: "toggleZoom",
    contentDblClick: !1,
    defaultType: "image",
    defaultDisplay: "flex",
    dragToClose: !0,
    Fullscreen: {
        autoStart: !1
    },
    groupAll: !1,
    groupAttr: "data-fancybox",
    hideClass: "f-fadeOut",
    hideScrollbar: !0,
    idle: 3500,
    keyboard: {
        Escape: "close",
        Delete: "close",
        Backspace: "close",
        PageUp: "next",
        PageDown: "prev",
        ArrowUp: "prev",
        ArrowDown: "next",
        ArrowRight: "next",
        ArrowLeft: "prev"
    },
    l10n: Object.assign(Object.assign({}, $9970b34361e607e2$var$b), {
        CLOSE: "Close",
        NEXT: "Next",
        PREV: "Previous",
        MODAL: "You can close this modal content with the ESC key",
        ERROR: "Something Went Wrong, Please Try Again Later",
        IMAGE_ERROR: "Image Not Found",
        ELEMENT_NOT_FOUND: "HTML Element Not Found",
        AJAX_NOT_FOUND: "Error Loading AJAX : Not Found",
        AJAX_FORBIDDEN: "Error Loading AJAX : Forbidden",
        IFRAME_ERROR: "Error Loading Page",
        TOGGLE_ZOOM: "Toggle zoom level",
        TOGGLE_THUMBS: "Toggle thumbnails",
        TOGGLE_SLIDESHOW: "Toggle slideshow",
        TOGGLE_FULLSCREEN: "Toggle full-screen mode",
        DOWNLOAD: "Download"
    }),
    parentEl: null,
    placeFocusBack: !0,
    showClass: "f-zoomInUp",
    startIndex: 0,
    tpl: {
        closeButton: '<button data-fancybox-close class="f-button is-close-btn" title="{{CLOSE}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" tabindex="-1"><path d="M20 20L4 4m16 0L4 20"/></svg></button>',
        main: '<div class="fancybox__container" role="dialog" aria-modal="true" aria-label="{{MODAL}}" tabindex="-1">\n    <div class="fancybox__backdrop"></div>\n    <div class="fancybox__carousel"></div>\n    <div class="fancybox__footer"></div>\n  </div>'
    },
    trapFocus: !0,
    wheel: "zoom"
};
var $9970b34361e607e2$var$rt, $9970b34361e607e2$var$lt;
!function(t) {
    t[t.Init = 0] = "Init", t[t.Ready = 1] = "Ready", t[t.Closing = 2] = "Closing", t[t.CustomClosing = 3] = "CustomClosing", t[t.Destroy = 4] = "Destroy";
}($9970b34361e607e2$var$rt || ($9970b34361e607e2$var$rt = {})), function(t) {
    t[t.Loading = 0] = "Loading", t[t.Opening = 1] = "Opening", t[t.Ready = 2] = "Ready", t[t.Closing = 3] = "Closing";
}($9970b34361e607e2$var$lt || ($9970b34361e607e2$var$lt = {}));
let $9970b34361e607e2$var$ct = "", $9970b34361e607e2$var$ht = !1, $9970b34361e607e2$var$dt = !1, $9970b34361e607e2$var$ut = null;
const $9970b34361e607e2$var$pt = ()=>{
    let t = "", e = "";
    const i = $9970b34361e607e2$export$cb45b08d97cdc4fd.getInstance();
    if (i) {
        const n = i.carousel, s = i.getSlide();
        if (n && s) {
            let o = s.slug || void 0, a = s.triggerEl || void 0;
            e = o || i.option("slug") || "", !e && a && a.dataset && (e = a.dataset.fancybox || ""), e && "true" !== e && (t = "#" + e + (!o && n.slides.length > 1 ? "-" + (s.index + 1) : ""));
        }
    }
    return {
        hash: t,
        slug: e,
        index: 1
    };
}, $9970b34361e607e2$var$ft = ()=>{
    const t = new URL(document.URL).hash, e = t.slice(1).split("-"), i = e[e.length - 1], n = i && /^\+?\d+$/.test(i) && parseInt(e.pop() || "1", 10) || 1;
    return {
        hash: t,
        slug: e.join("-"),
        index: n
    };
}, $9970b34361e607e2$var$gt = ()=>{
    const { slug: t, index: e } = $9970b34361e607e2$var$ft();
    if (!t) return;
    let i = document.querySelector(`[data-slug="${t}"]`);
    if (i && i.dispatchEvent(new CustomEvent("click", {
        bubbles: !0,
        cancelable: !0
    })), $9970b34361e607e2$export$cb45b08d97cdc4fd.getInstance()) return;
    const n = document.querySelectorAll(`[data-fancybox="${t}"]`);
    n.length && (i = n[e - 1], i && i.dispatchEvent(new CustomEvent("click", {
        bubbles: !0,
        cancelable: !0
    })));
}, $9970b34361e607e2$var$mt = ()=>{
    if (!1 === $9970b34361e607e2$export$cb45b08d97cdc4fd.defaults.Hash) return;
    const t = $9970b34361e607e2$export$cb45b08d97cdc4fd.getInstance();
    if (!1 === (null == t ? void 0 : t.options.Hash)) return;
    const { slug: e, index: i } = $9970b34361e607e2$var$ft(), { slug: n } = $9970b34361e607e2$var$pt();
    t && (e === n ? t.jumpTo(i - 1) : ($9970b34361e607e2$var$ht = !0, t.close())), $9970b34361e607e2$var$gt();
}, $9970b34361e607e2$var$vt = ()=>{
    $9970b34361e607e2$var$ut && clearTimeout($9970b34361e607e2$var$ut), queueMicrotask(()=>{
        $9970b34361e607e2$var$mt();
    });
}, $9970b34361e607e2$var$bt = ()=>{
    window.addEventListener("hashchange", $9970b34361e607e2$var$vt, !1), setTimeout(()=>{
        $9970b34361e607e2$var$mt();
    }, 500);
};
$9970b34361e607e2$var$et && (/complete|interactive|loaded/.test(document.readyState) ? $9970b34361e607e2$var$bt() : document.addEventListener("DOMContentLoaded", $9970b34361e607e2$var$bt));
const $9970b34361e607e2$var$yt = "is-zooming-in";
class $9970b34361e607e2$var$wt extends $9970b34361e607e2$var$_ {
    onCreateSlide(t, e, i) {
        const n = this.instance.optionFor(i, "src") || "";
        i.el && "image" === i.type && "string" == typeof n && this.setImage(i, n);
    }
    onRemoveSlide(t, e, i) {
        i.panzoom && i.panzoom.destroy(), i.panzoom = void 0, i.imageEl = void 0;
    }
    onChange(t, e, i, n) {
        $9970b34361e607e2$var$S(this.instance.container, $9970b34361e607e2$var$yt);
        for (const t of e.slides){
            const e = t.panzoom;
            e && t.index !== i && e.reset(.35);
        }
    }
    onClose() {
        var t;
        const e = this.instance, i = e.container, n = e.getSlide();
        if (!i || !i.parentElement || !n) return;
        const { el: s, contentEl: o, panzoom: a, thumbElSrc: r } = n;
        if (!s || !r || !o || !a || a.isContentLoading || a.state === $9970b34361e607e2$var$m.Init || a.state === $9970b34361e607e2$var$m.Destroy) return;
        a.updateMetrics();
        let l = this.getZoomInfo(n);
        if (!l) return;
        this.instance.state = $9970b34361e607e2$var$rt.CustomClosing, i.classList.remove($9970b34361e607e2$var$yt), i.classList.add("is-zooming-out"), o.style.backgroundImage = `url('${r}')`;
        const c = i.getBoundingClientRect();
        1 === ((null === (t = window.visualViewport) || void 0 === t ? void 0 : t.scale) || 1) && Object.assign(i.style, {
            position: "absolute",
            top: `${i.offsetTop + window.scrollY}px`,
            left: `${i.offsetLeft + window.scrollX}px`,
            bottom: "auto",
            right: "auto",
            width: `${c.width}px`,
            height: `${c.height}px`,
            overflow: "hidden"
        });
        const { x: h, y: d, scale: u, opacity: p } = l;
        if (p) {
            const t = ((t, e, i, n)=>{
                const s = e - t, o = n - i;
                return (e)=>i + ((e - t) / s * o || 0);
            })(a.scale, u, 1, 0);
            a.on("afterTransform", ()=>{
                o.style.opacity = t(a.scale) + "";
            });
        }
        a.on("endAnimation", ()=>{
            e.destroy();
        }), a.target.a = u, a.target.b = 0, a.target.c = 0, a.target.d = u, a.panTo({
            x: h,
            y: d,
            scale: u,
            friction: p ? .2 : .33,
            ignoreBounds: !0
        }), a.isResting && e.destroy();
    }
    setImage(t, e) {
        const i = this.instance;
        t.src = e, this.process(t, e).then((e)=>{
            const { contentEl: n, imageEl: s, thumbElSrc: o, el: a } = t;
            if (i.isClosing() || !n || !s) return;
            n.offsetHeight;
            const r = !!i.isOpeningSlide(t) && this.getZoomInfo(t);
            if (this.option("protected") && a) {
                a.addEventListener("contextmenu", (t)=>{
                    t.preventDefault();
                });
                const t = document.createElement("div");
                $9970b34361e607e2$var$P(t, "fancybox-protected"), n.appendChild(t);
            }
            if (o && r) {
                const s = e.contentRect, a = Math.max(s.fullWidth, s.fullHeight);
                let c = null;
                !r.opacity && a > 1200 && (c = document.createElement("img"), $9970b34361e607e2$var$P(c, "fancybox-ghost"), c.src = o, n.appendChild(c));
                const h = ()=>{
                    c && ($9970b34361e607e2$var$P(c, "f-fadeFastOut"), setTimeout(()=>{
                        c && (c.remove(), c = null);
                    }, 200));
                };
                (l = o, new Promise((t, e)=>{
                    const i = new Image;
                    i.onload = t, i.onerror = e, i.src = l;
                })).then(()=>{
                    i.hideLoading(t), t.state = $9970b34361e607e2$var$lt.Opening, this.instance.emit("reveal", t), this.zoomIn(t).then(()=>{
                        h(), this.instance.done(t);
                    }, ()=>{}), c && setTimeout(()=>{
                        h();
                    }, a > 2500 ? 800 : 200);
                }, ()=>{
                    i.hideLoading(t), i.revealContent(t);
                });
            } else {
                const n = this.optionFor(t, "initialSize"), s = this.optionFor(t, "zoom"), o = {
                    event: i.prevMouseMoveEvent || i.options.event,
                    friction: s ? .12 : 0
                };
                let a = i.optionFor(t, "showClass") || void 0, r = !0;
                i.isOpeningSlide(t) && ("full" === n ? e.zoomToFull(o) : "cover" === n ? e.zoomToCover(o) : "max" === n ? e.zoomToMax(o) : r = !1, e.stop("current")), r && a && (a = e.isDragging ? "f-fadeIn" : ""), i.hideLoading(t), i.revealContent(t, a);
            }
            var l;
        }, ()=>{
            i.setError(t, "{{IMAGE_ERROR}}");
        });
    }
    process(t, e) {
        return new Promise((i, s)=>{
            var o;
            const a = this.instance, r = t.el;
            a.clearContent(t), a.showLoading(t);
            let l = this.optionFor(t, "content");
            if ("string" == typeof l && (l = $9970b34361e607e2$var$n(l)), !l || !$9970b34361e607e2$var$E(l)) {
                if (l = document.createElement("img"), l instanceof HTMLImageElement) {
                    let i = "", n = t.caption;
                    i = "string" == typeof n && n ? n.replace(/<[^>]+>/gi, "").substring(0, 1e3) : `Image ${t.index + 1} of ${(null === (o = a.carousel) || void 0 === o ? void 0 : o.pages.length) || 1}`, l.src = e || "", l.alt = i, l.draggable = !1, t.srcset && l.setAttribute("srcset", t.srcset), this.instance.isOpeningSlide(t) && (l.fetchPriority = "high");
                }
                t.sizes && l.setAttribute("sizes", t.sizes);
            }
            $9970b34361e607e2$var$P(l, "fancybox-image"), t.imageEl = l, a.setContent(t, l, !1);
            t.panzoom = new $9970b34361e607e2$export$b704d075ddd20210(r, $9970b34361e607e2$var$u({
                transformParent: !0
            }, this.option("Panzoom") || {}, {
                content: l,
                width: (e, i)=>a.optionFor(t, "width", "auto", i) || "auto",
                height: (e, i)=>a.optionFor(t, "height", "auto", i) || "auto",
                wheel: ()=>{
                    const t = a.option("wheel");
                    return ("zoom" === t || "pan" == t) && t;
                },
                click: (e, i)=>{
                    var n, s;
                    if (a.isCompact || a.isClosing()) return !1;
                    if (t.index !== (null === (n = a.getSlide()) || void 0 === n ? void 0 : n.index)) return !1;
                    if (i) {
                        const t = i.composedPath()[0];
                        if ([
                            "A",
                            "BUTTON",
                            "TEXTAREA",
                            "OPTION",
                            "INPUT",
                            "SELECT",
                            "VIDEO"
                        ].includes(t.nodeName)) return !1;
                    }
                    let o = !i || i.target && (null === (s = t.contentEl) || void 0 === s ? void 0 : s.contains(i.target));
                    return a.option(o ? "contentClick" : "backdropClick") || !1;
                },
                dblClick: ()=>a.isCompact ? "toggleZoom" : a.option("contentDblClick") || !1,
                spinner: !1,
                panOnlyZoomed: !0,
                wheelLimit: 1 / 0,
                on: {
                    ready: (t)=>{
                        i(t);
                    },
                    error: ()=>{
                        s();
                    },
                    destroy: ()=>{
                        s();
                    }
                }
            }));
        });
    }
    zoomIn(t) {
        return new Promise((e, i)=>{
            const n = this.instance, s = n.container, { panzoom: o, contentEl: a, el: r } = t;
            o && o.updateMetrics();
            const l = this.getZoomInfo(t);
            if (!(l && r && a && o && s)) return void i();
            const { x: c, y: h, scale: d, opacity: u } = l, p = ()=>{
                t.state !== $9970b34361e607e2$var$lt.Closing && (u && (a.style.opacity = Math.max(Math.min(1, 1 - (1 - o.scale) / (1 - d)), 0) + ""), o.scale >= 1 && o.scale > o.targetScale - .1 && e(o));
            }, f = (t)=>{
                (t.scale < .99 || t.scale > 1.01) && !t.isDragging || ($9970b34361e607e2$var$S(s, $9970b34361e607e2$var$yt), a.style.opacity = "", t.off("endAnimation", f), t.off("touchStart", f), t.off("afterTransform", p), e(t));
            };
            o.on("endAnimation", f), o.on("touchStart", f), o.on("afterTransform", p), o.on([
                "error",
                "destroy"
            ], ()=>{
                i();
            }), o.panTo({
                x: c,
                y: h,
                scale: d,
                friction: 0,
                ignoreBounds: !0
            }), o.stop("current");
            const g = {
                event: "mousemove" === o.panMode ? n.prevMouseMoveEvent || n.options.event : void 0
            }, m = this.optionFor(t, "initialSize");
            $9970b34361e607e2$var$P(s, $9970b34361e607e2$var$yt), n.hideLoading(t), "full" === m ? o.zoomToFull(g) : "cover" === m ? o.zoomToCover(g) : "max" === m ? o.zoomToMax(g) : o.reset(.172);
        });
    }
    getZoomInfo(t) {
        const { el: e, imageEl: i, thumbEl: n, panzoom: s } = t, o = this.instance, a = o.container;
        if (!e || !i || !n || !s || $9970b34361e607e2$var$tt(n) < 3 || !this.optionFor(t, "zoom") || !a || o.state === $9970b34361e607e2$var$rt.Destroy) return !1;
        if ("0" === getComputedStyle(a).getPropertyValue("--f-images-zoom")) return !1;
        const r = window.visualViewport || null;
        if (1 !== (r ? r.scale : 1)) return !1;
        let { top: l, left: c, width: h, height: d } = n.getBoundingClientRect(), { top: u, left: p, fitWidth: f, fitHeight: g } = s.contentRect;
        if (!(h && d && f && g)) return !1;
        const m = s.container.getBoundingClientRect();
        p += m.left, u += m.top;
        const v = -1 * (p + .5 * f - (c + .5 * h)), b = -1 * (u + .5 * g - (l + .5 * d)), y = h / f;
        let w = this.option("zoomOpacity") || !1;
        return "auto" === w && (w = Math.abs(h / d - f / g) > .1), {
            x: v,
            y: b,
            scale: y,
            opacity: w
        };
    }
    attach() {
        const t = this, e = t.instance;
        e.on("Carousel.change", t.onChange), e.on("Carousel.createSlide", t.onCreateSlide), e.on("Carousel.removeSlide", t.onRemoveSlide), e.on("close", t.onClose);
    }
    detach() {
        const t = this, e = t.instance;
        e.off("Carousel.change", t.onChange), e.off("Carousel.createSlide", t.onCreateSlide), e.off("Carousel.removeSlide", t.onRemoveSlide), e.off("close", t.onClose);
    }
}
Object.defineProperty($9970b34361e607e2$var$wt, "defaults", {
    enumerable: !0,
    configurable: !0,
    writable: !0,
    value: {
        initialSize: "fit",
        Panzoom: {
            maxScale: 1
        },
        protected: !1,
        zoom: !0,
        zoomOpacity: "auto"
    }
}), "function" == typeof SuppressedError && SuppressedError;
const $9970b34361e607e2$var$xt = "html", $9970b34361e607e2$var$Et = "image", $9970b34361e607e2$var$St = "map", $9970b34361e607e2$var$Pt = "youtube", $9970b34361e607e2$var$Ct = "vimeo", $9970b34361e607e2$var$Tt = "html5video", $9970b34361e607e2$var$Mt = (t, e = {})=>{
    const i = new URL(t), n = new URLSearchParams(i.search), s = new URLSearchParams;
    for (const [t, i] of [
        ...n,
        ...Object.entries(e)
    ]){
        let e = i + "";
        if ("t" === t) {
            let t = e.match(/((\d*)m)?(\d*)s?/);
            t && s.set("start", 60 * parseInt(t[2] || "0") + parseInt(t[3] || "0") + "");
        } else s.set(t, e);
    }
    let o = s + "", a = t.match(/#t=((.*)?\d+s)/);
    return a && (o += `#t=${a[1]}`), o;
}, $9970b34361e607e2$var$Ot = {
    ajax: null,
    autoSize: !0,
    iframeAttr: {
        allow: "autoplay; fullscreen",
        scrolling: "auto"
    },
    preload: !0,
    videoAutoplay: !0,
    videoRatio: 16 / 9,
    videoTpl: '<video class="fancybox__html5video" playsinline controls controlsList="nodownload" poster="{{poster}}">\n  <source src="{{src}}" type="{{format}}" />Sorry, your browser doesn\'t support embedded videos.</video>',
    videoFormat: "",
    vimeo: {
        byline: 1,
        color: "00adef",
        controls: 1,
        dnt: 1,
        muted: 0
    },
    youtube: {
        controls: 1,
        enablejsapi: 1,
        nocookie: 1,
        rel: 0,
        fs: 1
    }
}, $9970b34361e607e2$var$At = [
    "image",
    "html",
    "ajax",
    "inline",
    "clone",
    "iframe",
    "map",
    "pdf",
    "html5video",
    "youtube",
    "vimeo"
];
class $9970b34361e607e2$var$Lt extends $9970b34361e607e2$var$_ {
    onBeforeInitSlide(t, e, i) {
        this.processType(i);
    }
    onCreateSlide(t, e, i) {
        this.setContent(i);
    }
    onClearContent(t, e) {
        e.xhr && (e.xhr.abort(), e.xhr = null);
        const i = e.iframeEl;
        i && (i.onload = i.onerror = null, i.src = "//about:blank", e.iframeEl = null);
        const n = e.contentEl, s = e.placeholderEl;
        if ("inline" === e.type && n && s) n.classList.remove("fancybox__content"), "none" !== getComputedStyle(n).getPropertyValue("display") && (n.style.display = "none"), setTimeout(()=>{
            s && (n && s.parentNode && s.parentNode.insertBefore(n, s), s.remove());
        }, 0), e.contentEl = void 0, e.placeholderEl = void 0;
        else for(; e.el && e.el.firstChild;)e.el.removeChild(e.el.firstChild);
    }
    onSelectSlide(t, e, i) {
        i.state === $9970b34361e607e2$var$lt.Ready && this.playVideo();
    }
    onUnselectSlide(t, e, i) {
        var n, s;
        if (i.type === $9970b34361e607e2$var$Tt) {
            try {
                null === (s = null === (n = i.el) || void 0 === n ? void 0 : n.querySelector("video")) || void 0 === s || s.pause();
            } catch (t) {}
            return;
        }
        let o;
        i.type === $9970b34361e607e2$var$Ct ? o = {
            method: "pause",
            value: "true"
        } : i.type === $9970b34361e607e2$var$Pt && (o = {
            event: "command",
            func: "pauseVideo"
        }), o && i.iframeEl && i.iframeEl.contentWindow && i.iframeEl.contentWindow.postMessage(JSON.stringify(o), "*"), i.poller && clearTimeout(i.poller);
    }
    onDone(t, e) {
        t.isCurrentSlide(e) && !t.isClosing() && this.playVideo();
    }
    onRefresh(t, e) {
        e.slides.forEach((t)=>{
            t.el && (this.resizeIframe(t), this.setAspectRatio(t));
        });
    }
    onMessage(t) {
        try {
            let e = JSON.parse(t.data);
            if ("https://player.vimeo.com" === t.origin) {
                if ("ready" === e.event) for (let e of Array.from(document.getElementsByClassName("fancybox__iframe")))e instanceof HTMLIFrameElement && e.contentWindow === t.source && (e.dataset.ready = "true");
            } else if (t.origin.match(/^https:\/\/(www.)?youtube(-nocookie)?.com$/) && "onReady" === e.event) {
                const t = document.getElementById(e.id);
                t && (t.dataset.ready = "true");
            }
        } catch (t) {}
    }
    loadAjaxContent(t) {
        const e = this.instance.optionFor(t, "src") || "";
        this.instance.showLoading(t);
        const i = this.instance, n = new XMLHttpRequest;
        i.showLoading(t), n.onreadystatechange = function() {
            n.readyState === XMLHttpRequest.DONE && i.state === $9970b34361e607e2$var$rt.Ready && (i.hideLoading(t), 200 === n.status ? i.setContent(t, n.responseText) : i.setError(t, 404 === n.status ? "{{AJAX_NOT_FOUND}}" : "{{AJAX_FORBIDDEN}}"));
        };
        const s = t.ajax || null;
        n.open(s ? "POST" : "GET", e + ""), n.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"), n.setRequestHeader("X-Requested-With", "XMLHttpRequest"), n.send(s), t.xhr = n;
    }
    setInlineContent(t) {
        let e = null;
        if ($9970b34361e607e2$var$E(t.src)) e = t.src;
        else if ("string" == typeof t.src) {
            const i = t.src.split("#", 2).pop();
            e = i ? document.getElementById(i) : null;
        }
        if (e) {
            if ("clone" === t.type || e.closest(".fancybox__slide")) {
                e = e.cloneNode(!0);
                const i = e.dataset.animationName;
                i && (e.classList.remove(i), delete e.dataset.animationName);
                let n = e.getAttribute("id");
                n = n ? `${n}--clone` : `clone-${this.instance.id}-${t.index}`, e.setAttribute("id", n);
            } else if (e.parentNode) {
                const i = document.createElement("div");
                i.classList.add("fancybox-placeholder"), e.parentNode.insertBefore(i, e), t.placeholderEl = i;
            }
            this.instance.setContent(t, e);
        } else this.instance.setError(t, "{{ELEMENT_NOT_FOUND}}");
    }
    setIframeContent(t) {
        const { src: e, el: i } = t;
        if (!e || "string" != typeof e || !i) return;
        i.classList.add("is-loading");
        const n = this.instance, s = document.createElement("iframe");
        s.className = "fancybox__iframe", s.setAttribute("id", `fancybox__iframe_${n.id}_${t.index}`);
        for (const [e, i] of Object.entries(this.optionFor(t, "iframeAttr") || {}))s.setAttribute(e, i);
        s.onerror = ()=>{
            n.setError(t, "{{IFRAME_ERROR}}");
        }, t.iframeEl = s;
        const o = this.optionFor(t, "preload");
        if ("iframe" !== t.type || !1 === o) return s.setAttribute("src", t.src + ""), n.setContent(t, s, !1), this.resizeIframe(t), void n.revealContent(t);
        n.showLoading(t), s.onload = ()=>{
            if (!s.src.length) return;
            const e = "true" !== s.dataset.ready;
            s.dataset.ready = "true", this.resizeIframe(t), e ? n.revealContent(t) : n.hideLoading(t);
        }, s.setAttribute("src", e), n.setContent(t, s, !1);
    }
    resizeIframe(t) {
        const { type: e, iframeEl: i } = t;
        if (e === $9970b34361e607e2$var$Pt || e === $9970b34361e607e2$var$Ct) return;
        const n = null == i ? void 0 : i.parentElement;
        if (!i || !n) return;
        let s = t.autoSize;
        void 0 === s && (s = this.optionFor(t, "autoSize"));
        let o = t.width || 0, a = t.height || 0;
        o && a && (s = !1);
        const r = n && n.style;
        if (!1 !== t.preload && !1 !== s && r) try {
            const t = window.getComputedStyle(n), e = parseFloat(t.paddingLeft) + parseFloat(t.paddingRight), s = parseFloat(t.paddingTop) + parseFloat(t.paddingBottom), l = i.contentWindow;
            if (l) {
                const t = l.document, i = t.getElementsByTagName($9970b34361e607e2$var$xt)[0], n = t.body;
                r.width = "", n.style.overflow = "hidden", o = o || i.scrollWidth + e, r.width = `${o}px`, n.style.overflow = "", r.flex = "0 0 auto", r.height = `${n.scrollHeight}px`, a = i.scrollHeight + s;
            }
        } catch (t) {}
        if (o || a) {
            const t = {
                flex: "0 1 auto",
                width: "",
                height: ""
            };
            o && "auto" !== o && (t.width = `${o}px`), a && "auto" !== a && (t.height = `${a}px`), Object.assign(r, t);
        }
    }
    playVideo() {
        const t = this.instance.getSlide();
        if (!t) return;
        const { el: e } = t;
        if (!e || !e.offsetParent) return;
        if (!this.optionFor(t, "videoAutoplay")) return;
        if (t.type === $9970b34361e607e2$var$Tt) try {
            const t = e.querySelector("video");
            if (t) {
                const e = t.play();
                void 0 !== e && e.then(()=>{}).catch((e)=>{
                    t.muted = !0, t.play();
                });
            }
        } catch (t) {}
        if (t.type !== $9970b34361e607e2$var$Pt && t.type !== $9970b34361e607e2$var$Ct) return;
        const i = ()=>{
            if (t.iframeEl && t.iframeEl.contentWindow) {
                let e;
                if ("true" === t.iframeEl.dataset.ready) return e = t.type === $9970b34361e607e2$var$Pt ? {
                    event: "command",
                    func: "playVideo"
                } : {
                    method: "play",
                    value: "true"
                }, e && t.iframeEl.contentWindow.postMessage(JSON.stringify(e), "*"), void (t.poller = void 0);
                t.type === $9970b34361e607e2$var$Pt && (e = {
                    event: "listening",
                    id: t.iframeEl.getAttribute("id")
                }, t.iframeEl.contentWindow.postMessage(JSON.stringify(e), "*"));
            }
            t.poller = setTimeout(i, 250);
        };
        i();
    }
    processType(t) {
        if (t.html) return t.type = $9970b34361e607e2$var$xt, t.src = t.html, void (t.html = "");
        const e = this.instance.optionFor(t, "src", "");
        if (!e || "string" != typeof e) return;
        let i = t.type, n = null;
        if (n = e.match(/(youtube\.com|youtu\.be|youtube\-nocookie\.com)\/(?:watch\?(?:.*&)?v=|v\/|u\/|shorts\/|embed\/?)?(videoseries\?list=(?:.*)|[\w-]{11}|\?listType=(?:.*)&list=(?:.*))(?:.*)/i)) {
            const s = this.optionFor(t, $9970b34361e607e2$var$Pt), { nocookie: o } = s, a = function(t, e) {
                var i = {};
                for(var n in t)Object.prototype.hasOwnProperty.call(t, n) && e.indexOf(n) < 0 && (i[n] = t[n]);
                if (null != t && "function" == typeof Object.getOwnPropertySymbols) {
                    var s = 0;
                    for(n = Object.getOwnPropertySymbols(t); s < n.length; s++)e.indexOf(n[s]) < 0 && Object.prototype.propertyIsEnumerable.call(t, n[s]) && (i[n[s]] = t[n[s]]);
                }
                return i;
            }(s, [
                "nocookie"
            ]), r = `www.youtube${o ? "-nocookie" : ""}.com`, l = $9970b34361e607e2$var$Mt(e, a), c = encodeURIComponent(n[2]);
            t.videoId = c, t.src = `https://${r}/embed/${c}?${l}`, t.thumbSrc = t.thumbSrc || `https://i.ytimg.com/vi/${c}/mqdefault.jpg`, i = $9970b34361e607e2$var$Pt;
        } else if (n = e.match(/^.+vimeo.com\/(?:\/)?([\d]+)((\/|\?h=)([a-z0-9]+))?(.*)?/)) {
            const s = $9970b34361e607e2$var$Mt(e, this.optionFor(t, $9970b34361e607e2$var$Ct)), o = encodeURIComponent(n[1]), a = n[4] || "";
            t.videoId = o, t.src = `https://player.vimeo.com/video/${o}?${a ? `h=${a}${s ? "&" : ""}` : ""}${s}`, i = $9970b34361e607e2$var$Ct;
        }
        if (!i && t.triggerEl) {
            const e = t.triggerEl.dataset.type;
            $9970b34361e607e2$var$At.includes(e) && (i = e);
        }
        i || "string" == typeof e && ("#" === e.charAt(0) ? i = "inline" : (n = e.match(/\.(mp4|mov|ogv|webm)((\?|#).*)?$/i)) ? (i = $9970b34361e607e2$var$Tt, t.videoFormat = t.videoFormat || "video/" + ("ogv" === n[1] ? "ogg" : n[1])) : e.match(/(^data:image\/[a-z0-9+\/=]*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\?|#).*)?$)/i) ? i = $9970b34361e607e2$var$Et : e.match(/\.(pdf)((\?|#).*)?$/i) && (i = "pdf")), (n = e.match(/(?:maps\.)?google\.([a-z]{2,3}(?:\.[a-z]{2})?)\/(?:(?:(?:maps\/(?:place\/(?:.*)\/)?\@(.*),(\d+.?\d+?)z))|(?:\?ll=))(.*)?/i)) ? (t.src = `https://maps.google.${n[1]}/?ll=${(n[2] ? n[2] + "&z=" + Math.floor(parseFloat(n[3])) + (n[4] ? n[4].replace(/^\//, "&") : "") : n[4] + "").replace(/\?/, "&")}&output=${n[4] && n[4].indexOf("layer=c") > 0 ? "svembed" : "embed"}`, i = $9970b34361e607e2$var$St) : (n = e.match(/(?:maps\.)?google\.([a-z]{2,3}(?:\.[a-z]{2})?)\/(?:maps\/search\/)(.*)/i)) && (t.src = `https://maps.google.${n[1]}/maps?q=${n[2].replace("query=", "q=").replace("api=1", "")}&output=embed`, i = $9970b34361e607e2$var$St), i = i || this.instance.option("defaultType"), t.type = i, i === $9970b34361e607e2$var$Et && (t.thumbSrc = t.thumbSrc || t.src);
    }
    setContent(t) {
        const e = this.instance.optionFor(t, "src") || "";
        if (t && t.type && e) {
            switch(t.type){
                case $9970b34361e607e2$var$xt:
                    this.instance.setContent(t, e);
                    break;
                case $9970b34361e607e2$var$Tt:
                    const i = this.option("videoTpl");
                    i && this.instance.setContent(t, i.replace(/\{\{src\}\}/gi, e + "").replace(/\{\{format\}\}/gi, this.optionFor(t, "videoFormat") || "").replace(/\{\{poster\}\}/gi, t.poster || t.thumbSrc || ""));
                    break;
                case "inline":
                case "clone":
                    this.setInlineContent(t);
                    break;
                case "ajax":
                    this.loadAjaxContent(t);
                    break;
                case "pdf":
                case $9970b34361e607e2$var$St:
                case $9970b34361e607e2$var$Pt:
                case $9970b34361e607e2$var$Ct:
                    t.preload = !1;
                case "iframe":
                    this.setIframeContent(t);
            }
            this.setAspectRatio(t);
        }
    }
    setAspectRatio(t) {
        const e = t.contentEl;
        if (!(t.el && e && t.type && [
            $9970b34361e607e2$var$Pt,
            $9970b34361e607e2$var$Ct,
            $9970b34361e607e2$var$Tt
        ].includes(t.type))) return;
        let i, n = t.width || "auto", s = t.height || "auto";
        if ("auto" === n || "auto" === s) {
            i = this.optionFor(t, "videoRatio");
            const e = (i + "").match(/(\d+)\s*\/\s?(\d+)/);
            i = e && e.length > 2 ? parseFloat(e[1]) / parseFloat(e[2]) : parseFloat(i + "");
        } else n && s && (i = n / s);
        if (!i) return;
        e.style.aspectRatio = "", e.style.width = "", e.style.height = "", e.offsetHeight;
        const o = e.getBoundingClientRect(), a = o.width || 1, r = o.height || 1;
        e.style.aspectRatio = i + "", i < a / r ? (s = "auto" === s ? r : Math.min(r, s), e.style.width = "auto", e.style.height = `${s}px`) : (n = "auto" === n ? a : Math.min(a, n), e.style.width = `${n}px`, e.style.height = "auto");
    }
    attach() {
        const t = this, e = t.instance;
        e.on("Carousel.beforeInitSlide", t.onBeforeInitSlide), e.on("Carousel.createSlide", t.onCreateSlide), e.on("Carousel.selectSlide", t.onSelectSlide), e.on("Carousel.unselectSlide", t.onUnselectSlide), e.on("Carousel.Panzoom.refresh", t.onRefresh), e.on("done", t.onDone), e.on("clearContent", t.onClearContent), window.addEventListener("message", t.onMessage);
    }
    detach() {
        const t = this, e = t.instance;
        e.off("Carousel.beforeInitSlide", t.onBeforeInitSlide), e.off("Carousel.createSlide", t.onCreateSlide), e.off("Carousel.selectSlide", t.onSelectSlide), e.off("Carousel.unselectSlide", t.onUnselectSlide), e.off("Carousel.Panzoom.refresh", t.onRefresh), e.off("done", t.onDone), e.off("clearContent", t.onClearContent), window.removeEventListener("message", t.onMessage);
    }
}
Object.defineProperty($9970b34361e607e2$var$Lt, "defaults", {
    enumerable: !0,
    configurable: !0,
    writable: !0,
    value: $9970b34361e607e2$var$Ot
});
const $9970b34361e607e2$var$zt = "play", $9970b34361e607e2$var$Rt = "pause", $9970b34361e607e2$var$kt = "ready";
class $9970b34361e607e2$var$It extends $9970b34361e607e2$var$_ {
    constructor(){
        super(...arguments), Object.defineProperty(this, "state", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: $9970b34361e607e2$var$kt
        }), Object.defineProperty(this, "inHover", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: !1
        }), Object.defineProperty(this, "timer", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: null
        }), Object.defineProperty(this, "progressBar", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: null
        });
    }
    get isActive() {
        return this.state !== $9970b34361e607e2$var$kt;
    }
    onReady(t) {
        this.option("autoStart") && (t.isInfinite || t.page < t.pages.length - 1) && this.start();
    }
    onChange() {
        this.removeProgressBar(), this.pause();
    }
    onSettle() {
        this.resume();
    }
    onVisibilityChange() {
        "visible" === document.visibilityState ? this.resume() : this.pause();
    }
    onMouseEnter() {
        this.inHover = !0, this.pause();
    }
    onMouseLeave() {
        var t;
        this.inHover = !1, (null === (t = this.instance.panzoom) || void 0 === t ? void 0 : t.isResting) && this.resume();
    }
    onTimerEnd() {
        const t = this.instance;
        "play" === this.state && (t.isInfinite || t.page !== t.pages.length - 1 ? t.slideNext() : t.slideTo(0));
    }
    removeProgressBar() {
        this.progressBar && (this.progressBar.remove(), this.progressBar = null);
    }
    createProgressBar() {
        var t;
        if (!this.option("showProgress")) return null;
        this.removeProgressBar();
        const e = this.instance, i = (null === (t = e.pages[e.page]) || void 0 === t ? void 0 : t.slides) || [];
        let n = this.option("progressParentEl");
        if (n || (n = (1 === i.length ? i[0].el : null) || e.viewport), !n) return null;
        const s = document.createElement("div");
        return $9970b34361e607e2$var$P(s, "f-progress"), n.prepend(s), this.progressBar = s, s.offsetHeight, s;
    }
    set() {
        const t = this, e = t.instance;
        if (e.pages.length < 2) return;
        if (t.timer) return;
        const i = t.option("timeout");
        t.state = $9970b34361e607e2$var$zt, $9970b34361e607e2$var$P(e.container, "has-autoplay");
        let n = t.createProgressBar();
        n && (n.style.transitionDuration = `${i}ms`, n.style.transform = "scaleX(1)"), t.timer = setTimeout(()=>{
            t.timer = null, t.inHover || t.onTimerEnd();
        }, i), t.emit("set");
    }
    clear() {
        const t = this;
        t.timer && (clearTimeout(t.timer), t.timer = null), t.removeProgressBar();
    }
    start() {
        const t = this;
        if (t.set(), t.state !== $9970b34361e607e2$var$kt) {
            if (t.option("pauseOnHover")) {
                const e = t.instance.container;
                e.addEventListener("mouseenter", t.onMouseEnter, !1), e.addEventListener("mouseleave", t.onMouseLeave, !1);
            }
            document.addEventListener("visibilitychange", t.onVisibilityChange, !1), t.emit("start");
        }
    }
    stop() {
        const t = this, e = t.state, i = t.instance.container;
        t.clear(), t.state = $9970b34361e607e2$var$kt, i.removeEventListener("mouseenter", t.onMouseEnter, !1), i.removeEventListener("mouseleave", t.onMouseLeave, !1), document.removeEventListener("visibilitychange", t.onVisibilityChange, !1), $9970b34361e607e2$var$S(i, "has-autoplay"), e !== $9970b34361e607e2$var$kt && t.emit("stop");
    }
    pause() {
        const t = this;
        t.state === $9970b34361e607e2$var$zt && (t.state = $9970b34361e607e2$var$Rt, t.clear(), t.emit($9970b34361e607e2$var$Rt));
    }
    resume() {
        const t = this, e = t.instance;
        if (e.isInfinite || e.page !== e.pages.length - 1) {
            if (t.state !== $9970b34361e607e2$var$zt) {
                if (t.state === $9970b34361e607e2$var$Rt && !t.inHover) {
                    const e = new Event("resume", {
                        bubbles: !0,
                        cancelable: !0
                    });
                    t.emit("resume", e), e.defaultPrevented || t.set();
                }
            } else t.set();
        } else t.stop();
    }
    toggle() {
        this.state === $9970b34361e607e2$var$zt || this.state === $9970b34361e607e2$var$Rt ? this.stop() : this.start();
    }
    attach() {
        const t = this, e = t.instance;
        e.on("ready", t.onReady), e.on("Panzoom.startAnimation", t.onChange), e.on("Panzoom.endAnimation", t.onSettle), e.on("Panzoom.touchMove", t.onChange);
    }
    detach() {
        const t = this, e = t.instance;
        e.off("ready", t.onReady), e.off("Panzoom.startAnimation", t.onChange), e.off("Panzoom.endAnimation", t.onSettle), e.off("Panzoom.touchMove", t.onChange), t.stop();
    }
}
Object.defineProperty($9970b34361e607e2$var$It, "defaults", {
    enumerable: !0,
    configurable: !0,
    writable: !0,
    value: {
        autoStart: !0,
        pauseOnHover: !0,
        progressParentEl: null,
        showProgress: !0,
        timeout: 3e3
    }
});
class $9970b34361e607e2$var$Dt extends $9970b34361e607e2$var$_ {
    constructor(){
        super(...arguments), Object.defineProperty(this, "ref", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: null
        });
    }
    onPrepare(t) {
        const e = t.carousel;
        if (!e) return;
        const i = t.container;
        i && (e.options.Autoplay = $9970b34361e607e2$var$u({
            autoStart: !1
        }, this.option("Autoplay") || {}, {
            pauseOnHover: !1,
            timeout: this.option("timeout"),
            progressParentEl: ()=>this.option("progressParentEl") || null,
            on: {
                start: ()=>{
                    t.emit("startSlideshow");
                },
                set: (e)=>{
                    var n;
                    i.classList.add("has-slideshow"), (null === (n = t.getSlide()) || void 0 === n ? void 0 : n.state) !== $9970b34361e607e2$var$lt.Ready && e.pause();
                },
                stop: ()=>{
                    i.classList.remove("has-slideshow"), t.isCompact || t.endIdle(), t.emit("endSlideshow");
                },
                resume: (e, i)=>{
                    var n, s, o;
                    !i || !i.cancelable || (null === (n = t.getSlide()) || void 0 === n ? void 0 : n.state) === $9970b34361e607e2$var$lt.Ready && (null === (o = null === (s = t.carousel) || void 0 === s ? void 0 : s.panzoom) || void 0 === o ? void 0 : o.isResting) || i.preventDefault();
                }
            }
        }), e.attachPlugins({
            Autoplay: $9970b34361e607e2$var$It
        }), this.ref = e.plugins.Autoplay);
    }
    onReady(t) {
        const e = t.carousel, i = this.ref;
        i && e && this.option("playOnStart") && (e.isInfinite || e.page < e.pages.length - 1) && i.start();
    }
    onDone(t, e) {
        const i = this.ref, n = t.carousel;
        if (!i || !n) return;
        const s = e.panzoom;
        s && s.on("startAnimation", ()=>{
            t.isCurrentSlide(e) && i.stop();
        }), t.isCurrentSlide(e) && i.resume();
    }
    onKeydown(t, e) {
        var i;
        const n = this.ref;
        n && e === this.option("key") && "BUTTON" !== (null === (i = document.activeElement) || void 0 === i ? void 0 : i.nodeName) && n.toggle();
    }
    attach() {
        const t = this, e = t.instance;
        e.on("Carousel.init", t.onPrepare), e.on("Carousel.ready", t.onReady), e.on("done", t.onDone), e.on("keydown", t.onKeydown);
    }
    detach() {
        const t = this, e = t.instance;
        e.off("Carousel.init", t.onPrepare), e.off("Carousel.ready", t.onReady), e.off("done", t.onDone), e.off("keydown", t.onKeydown);
    }
}
Object.defineProperty($9970b34361e607e2$var$Dt, "defaults", {
    enumerable: !0,
    configurable: !0,
    writable: !0,
    value: {
        key: " ",
        playOnStart: !1,
        progressParentEl: (t)=>{
            var e;
            return (null === (e = t.instance.container) || void 0 === e ? void 0 : e.querySelector(".fancybox__toolbar [data-fancybox-toggle-slideshow]")) || t.instance.container;
        },
        timeout: 3e3
    }
});
const $9970b34361e607e2$var$Ft = {
    classes: {
        container: "f-thumbs f-carousel__thumbs",
        viewport: "f-thumbs__viewport",
        track: "f-thumbs__track",
        slide: "f-thumbs__slide",
        isResting: "is-resting",
        isSelected: "is-selected",
        isLoading: "is-loading",
        hasThumbs: "has-thumbs"
    },
    minCount: 2,
    parentEl: null,
    thumbTpl: '<button class="f-thumbs__slide__button" tabindex="0" type="button" aria-label="{{GOTO}}" data-carousel-index="%i"><img class="f-thumbs__slide__img" data-lazy-src="{{%s}}" alt="" /></button>',
    type: "modern"
};
var $9970b34361e607e2$var$jt;
!function(t) {
    t[t.Init = 0] = "Init", t[t.Ready = 1] = "Ready", t[t.Hidden = 2] = "Hidden";
}($9970b34361e607e2$var$jt || ($9970b34361e607e2$var$jt = {}));
const $9970b34361e607e2$var$Bt = "isResting", $9970b34361e607e2$var$Ht = "thumbWidth", $9970b34361e607e2$var$Nt = "thumbHeight", $9970b34361e607e2$var$_t = "thumbClipWidth";
let $9970b34361e607e2$var$$t = class extends $9970b34361e607e2$var$_ {
    constructor(){
        super(...arguments), Object.defineProperty(this, "type", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: "modern"
        }), Object.defineProperty(this, "container", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: null
        }), Object.defineProperty(this, "track", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: null
        }), Object.defineProperty(this, "carousel", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: null
        }), Object.defineProperty(this, "thumbWidth", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: 0
        }), Object.defineProperty(this, "thumbClipWidth", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: 0
        }), Object.defineProperty(this, "thumbHeight", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: 0
        }), Object.defineProperty(this, "thumbGap", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: 0
        }), Object.defineProperty(this, "thumbExtraGap", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: 0
        }), Object.defineProperty(this, "state", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: $9970b34361e607e2$var$jt.Init
        });
    }
    get isModern() {
        return "modern" === this.type;
    }
    onInitSlide(t, e) {
        const i = e.el ? e.el.dataset : void 0;
        i && (e.thumbSrc = i.thumbSrc || e.thumbSrc || "", e[$9970b34361e607e2$var$_t] = parseFloat(i[$9970b34361e607e2$var$_t] || "") || e[$9970b34361e607e2$var$_t] || 0, e[$9970b34361e607e2$var$Nt] = parseFloat(i.thumbHeight || "") || e[$9970b34361e607e2$var$Nt] || 0), this.addSlide(e);
    }
    onInitSlides() {
        this.build();
    }
    onChange() {
        var t;
        if (!this.isModern) return;
        const e = this.container, i = this.instance, n = i.panzoom, s = this.carousel, a = s ? s.panzoom : null, r = i.page;
        if (n && s && a) {
            if (n.isDragging) {
                $9970b34361e607e2$var$S(e, this.cn($9970b34361e607e2$var$Bt));
                let n = (null === (t = s.pages[r]) || void 0 === t ? void 0 : t.pos) || 0;
                n += i.getProgress(r) * (this[$9970b34361e607e2$var$_t] + this.thumbGap);
                let o = a.getBounds();
                -1 * n > o.x.min && -1 * n < o.x.max && a.panTo({
                    x: -1 * n,
                    friction: .12
                });
            } else $9970b34361e607e2$var$o(e, this.cn($9970b34361e607e2$var$Bt), n.isResting);
            this.shiftModern();
        }
    }
    onRefresh() {
        this.updateProps();
        for (const t of this.instance.slides || [])this.resizeModernSlide(t);
        this.shiftModern();
    }
    isDisabled() {
        const t = this.option("minCount") || 0;
        if (t) {
            const e = this.instance;
            let i = 0;
            for (const t of e.slides || [])t.thumbSrc && i++;
            if (i < t) return !0;
        }
        const e = this.option("type");
        return [
            "modern",
            "classic"
        ].indexOf(e) < 0;
    }
    getThumb(t) {
        const e = this.option("thumbTpl") || "";
        return {
            html: this.instance.localize(e, [
                [
                    "%i",
                    t.index
                ],
                [
                    "%d",
                    t.index + 1
                ],
                [
                    "%s",
                    t.thumbSrc || "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
                ]
            ])
        };
    }
    addSlide(t) {
        const e = this.carousel;
        e && e.addSlide(t.index, this.getThumb(t));
    }
    getSlides() {
        const t = [];
        for (const e of this.instance.slides || [])t.push(this.getThumb(e));
        return t;
    }
    resizeModernSlide(t) {
        this.isModern && (t[$9970b34361e607e2$var$Ht] = t[$9970b34361e607e2$var$_t] && t[$9970b34361e607e2$var$Nt] ? Math.round(this[$9970b34361e607e2$var$Nt] * (t[$9970b34361e607e2$var$_t] / t[$9970b34361e607e2$var$Nt])) : this[$9970b34361e607e2$var$Ht]);
    }
    updateProps() {
        const t = this.container;
        if (!t) return;
        const e = (e)=>parseFloat(getComputedStyle(t).getPropertyValue("--f-thumb-" + e)) || 0;
        this.thumbGap = e("gap"), this.thumbExtraGap = e("extra-gap"), this[$9970b34361e607e2$var$Ht] = e("width") || 40, this[$9970b34361e607e2$var$_t] = e("clip-width") || 40, this[$9970b34361e607e2$var$Nt] = e("height") || 40;
    }
    build() {
        const t = this;
        if (t.state !== $9970b34361e607e2$var$jt.Init) return;
        if (t.isDisabled()) return void t.emit("disabled");
        const e = t.instance, i = e.container, n = t.getSlides(), s = t.option("type");
        t.type = s;
        const o = t.option("parentEl"), a = t.cn("container"), r = t.cn("track");
        let l = null == o ? void 0 : o.querySelector("." + a);
        l || (l = document.createElement("div"), $9970b34361e607e2$var$P(l, a), o ? o.appendChild(l) : i.after(l)), $9970b34361e607e2$var$P(l, `is-${s}`), $9970b34361e607e2$var$P(i, t.cn("hasThumbs")), t.container = l, t.updateProps();
        let c = l.querySelector("." + r);
        c || (c = document.createElement("div"), $9970b34361e607e2$var$P(c, t.cn("track")), l.appendChild(c)), t.track = c;
        const h = $9970b34361e607e2$var$u({}, {
            track: c,
            infinite: !1,
            center: !0,
            fill: "classic" === s,
            dragFree: !0,
            slidesPerPage: 1,
            transition: !1,
            preload: .25,
            friction: .12,
            Panzoom: {
                maxVelocity: 0
            },
            Dots: !1,
            Navigation: !1,
            classes: {
                container: "f-thumbs",
                viewport: "f-thumbs__viewport",
                track: "f-thumbs__track",
                slide: "f-thumbs__slide"
            }
        }, t.option("Carousel") || {}, {
            Sync: {
                target: e
            },
            slides: n
        }), d = new e.constructor(l, h);
        d.on("createSlide", (e, i)=>{
            t.setProps(i.index), t.emit("createSlide", i, i.el);
        }), d.on("ready", ()=>{
            t.shiftModern(), t.emit("ready");
        }), d.on("refresh", ()=>{
            t.shiftModern();
        }), d.on("Panzoom.click", (e, i, n)=>{
            t.onClick(n);
        }), t.carousel = d, t.state = $9970b34361e607e2$var$jt.Ready;
    }
    onClick(t) {
        t.preventDefault(), t.stopPropagation();
        const e = this.instance, { pages: i, page: n } = e, s = (t)=>{
            if (t) {
                const e = t.closest("[data-carousel-index]");
                if (e) return [
                    parseInt(e.dataset.carouselIndex || "", 10) || 0,
                    e
                ];
            }
            return [
                -1,
                void 0
            ];
        }, o = (t, e)=>{
            const i = document.elementFromPoint(t, e);
            return i ? s(i) : [
                -1,
                void 0
            ];
        };
        let [a, r] = s(t.target);
        if (a > -1) return;
        const l = this[$9970b34361e607e2$var$_t], c = t.clientX, h = t.clientY;
        let [d, u] = o(c - l, h), [p, f] = o(c + l, h);
        u && f ? (a = Math.abs(c - u.getBoundingClientRect().right) < Math.abs(c - f.getBoundingClientRect().left) ? d : p, a === n && (a = a === d ? p : d)) : u ? a = d : f && (a = p), a > -1 && i[a] && e.slideTo(a);
    }
    getShift(t) {
        var e;
        const i = this, { instance: n } = i, s = i.carousel;
        if (!n || !s) return 0;
        const o = i[$9970b34361e607e2$var$Ht], a = i[$9970b34361e607e2$var$_t], r = i.thumbGap, l = i.thumbExtraGap;
        if (!(null === (e = s.slides[t]) || void 0 === e ? void 0 : e.el)) return 0;
        const c = .5 * (o - a), h = n.pages.length - 1;
        let d = n.getProgress(0), u = n.getProgress(h), p = n.getProgress(t, !1, !0), f = 0, g = c + l + r;
        const m = d < 0 && d > -1, v = u > 0 && u < 1;
        return 0 === t ? (f = g * Math.abs(d), v && 1 === d && (f -= g * Math.abs(u))) : t === h ? (f = g * Math.abs(u) * -1, m && -1 === u && (f += g * Math.abs(d))) : m || v ? (f = -1 * g, f += g * Math.abs(d), f += g * (1 - Math.abs(u))) : f = g * p, f;
    }
    setProps(e) {
        var i;
        const n = this;
        if (!n.isModern) return;
        const { instance: s } = n, o = n.carousel;
        if (s && o) {
            const a = null === (i = o.slides[e]) || void 0 === i ? void 0 : i.el;
            if (a && a.childNodes.length) {
                let i = $9970b34361e607e2$var$t(1 - Math.abs(s.getProgress(e))), o = $9970b34361e607e2$var$t(n.getShift(e));
                a.style.setProperty("--progress", i ? i + "" : ""), a.style.setProperty("--shift", o + "");
            }
        }
    }
    shiftModern() {
        const t = this;
        if (!t.isModern) return;
        const { instance: e, track: i } = t, n = e.panzoom, s = t.carousel;
        if (!(e && i && n && s)) return;
        if (n.state === $9970b34361e607e2$var$m.Init || n.state === $9970b34361e607e2$var$m.Destroy) return;
        for (const i of e.slides)t.setProps(i.index);
        let o = (t[$9970b34361e607e2$var$_t] + t.thumbGap) * (s.slides.length || 0);
        i.style.setProperty("--width", o + "");
    }
    cleanup() {
        const t = this;
        t.carousel && t.carousel.destroy(), t.carousel = null, t.container && t.container.remove(), t.container = null, t.track && t.track.remove(), t.track = null, t.state = $9970b34361e607e2$var$jt.Init, $9970b34361e607e2$var$S(t.instance.container, t.cn("hasThumbs"));
    }
    attach() {
        const t = this, e = t.instance;
        e.on("initSlide", t.onInitSlide), e.state === $9970b34361e607e2$var$B.Init ? e.on("initSlides", t.onInitSlides) : t.onInitSlides(), e.on([
            "change",
            "Panzoom.afterTransform"
        ], t.onChange), e.on("Panzoom.refresh", t.onRefresh);
    }
    detach() {
        const t = this, e = t.instance;
        e.off("initSlide", t.onInitSlide), e.off("initSlides", t.onInitSlides), e.off([
            "change",
            "Panzoom.afterTransform"
        ], t.onChange), e.off("Panzoom.refresh", t.onRefresh), t.cleanup();
    }
};
Object.defineProperty($9970b34361e607e2$var$$t, "defaults", {
    enumerable: !0,
    configurable: !0,
    writable: !0,
    value: $9970b34361e607e2$var$Ft
});
const $9970b34361e607e2$var$Wt = Object.assign(Object.assign({}, $9970b34361e607e2$var$Ft), {
    key: "t",
    showOnStart: !0,
    parentEl: null
}), $9970b34361e607e2$var$Xt = "is-masked", $9970b34361e607e2$var$qt = "aria-hidden";
class $9970b34361e607e2$var$Yt extends $9970b34361e607e2$var$_ {
    constructor(){
        super(...arguments), Object.defineProperty(this, "ref", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: null
        }), Object.defineProperty(this, "hidden", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: !1
        });
    }
    get isEnabled() {
        const t = this.ref;
        return t && !t.isDisabled();
    }
    get isHidden() {
        return this.hidden;
    }
    onClick(t, e) {
        e.stopPropagation();
    }
    onCreateSlide(t, e) {
        var i, n, s;
        const o = (null === (s = null === (n = null === (i = this.instance) || void 0 === i ? void 0 : i.carousel) || void 0 === n ? void 0 : n.slides[e.index]) || void 0 === s ? void 0 : s.type) || "", a = e.el;
        if (a && o) {
            let t = `for-${o}`;
            [
                "video",
                "youtube",
                "vimeo",
                "html5video"
            ].includes(o) && (t += " for-video"), $9970b34361e607e2$var$P(a, t);
        }
    }
    onInit() {
        var t;
        const e = this, i = e.instance, n = i.carousel;
        if (e.ref || !n) return;
        const s = e.option("parentEl") || i.footer || i.container;
        if (!s) return;
        const o = $9970b34361e607e2$var$u({}, e.options, {
            parentEl: s,
            classes: {
                container: "f-thumbs fancybox__thumbs"
            },
            Carousel: {
                Sync: {
                    friction: i.option("Carousel.friction") || 0
                }
            },
            on: {
                ready: (t)=>{
                    const i = t.container;
                    i && this.hidden && (e.refresh(), i.style.transition = "none", e.hide(), i.offsetHeight, queueMicrotask(()=>{
                        i.style.transition = "", e.show();
                    }));
                }
            }
        });
        o.Carousel = o.Carousel || {}, o.Carousel.on = $9970b34361e607e2$var$u((null === (t = e.options.Carousel) || void 0 === t ? void 0 : t.on) || {}, {
            click: this.onClick,
            createSlide: this.onCreateSlide
        }), n.options.Thumbs = o, n.attachPlugins({
            Thumbs: $9970b34361e607e2$var$$t
        }), e.ref = n.plugins.Thumbs, e.option("showOnStart") || (e.ref.state = $9970b34361e607e2$var$jt.Hidden, e.hidden = !0);
    }
    onResize() {
        var t;
        const e = null === (t = this.ref) || void 0 === t ? void 0 : t.container;
        e && (e.style.maxHeight = "");
    }
    onKeydown(t, e) {
        const i = this.option("key");
        i && i === e && this.toggle();
    }
    toggle() {
        const t = this.ref;
        if (t && !t.isDisabled()) return t.state === $9970b34361e607e2$var$jt.Hidden ? (t.state = $9970b34361e607e2$var$jt.Init, void t.build()) : void (this.hidden ? this.show() : this.hide());
    }
    show() {
        const t = this.ref;
        if (!t || t.isDisabled()) return;
        const e = t.container;
        e && (this.refresh(), e.offsetHeight, e.removeAttribute($9970b34361e607e2$var$qt), e.classList.remove($9970b34361e607e2$var$Xt), this.hidden = !1);
    }
    hide() {
        const t = this.ref, e = t && t.container;
        e && (this.refresh(), e.offsetHeight, e.classList.add($9970b34361e607e2$var$Xt), e.setAttribute($9970b34361e607e2$var$qt, "true")), this.hidden = !0;
    }
    refresh() {
        const t = this.ref;
        if (!t || !t.state) return;
        const e = t.container, i = (null == e ? void 0 : e.firstChild) || null;
        e && i && i.childNodes.length && (e.style.maxHeight = `${i.getBoundingClientRect().height}px`);
    }
    attach() {
        const t = this, e = t.instance;
        e.state === $9970b34361e607e2$var$rt.Init ? e.on("Carousel.init", t.onInit) : t.onInit(), e.on("resize", t.onResize), e.on("keydown", t.onKeydown);
    }
    detach() {
        var t;
        const e = this, i = e.instance;
        i.off("Carousel.init", e.onInit), i.off("resize", e.onResize), i.off("keydown", e.onKeydown), null === (t = i.carousel) || void 0 === t || t.detachPlugins([
            "Thumbs"
        ]), e.ref = null;
    }
}
Object.defineProperty($9970b34361e607e2$var$Yt, "defaults", {
    enumerable: !0,
    configurable: !0,
    writable: !0,
    value: $9970b34361e607e2$var$Wt
});
const $9970b34361e607e2$var$Vt = {
    panLeft: {
        icon: '<svg><path d="M5 12h14M5 12l6 6M5 12l6-6"/></svg>',
        change: {
            panX: -100
        }
    },
    panRight: {
        icon: '<svg><path d="M5 12h14M13 18l6-6M13 6l6 6"/></svg>',
        change: {
            panX: 100
        }
    },
    panUp: {
        icon: '<svg><path d="M12 5v14M18 11l-6-6M6 11l6-6"/></svg>',
        change: {
            panY: -100
        }
    },
    panDown: {
        icon: '<svg><path d="M12 5v14M18 13l-6 6M6 13l6 6"/></svg>',
        change: {
            panY: 100
        }
    },
    zoomIn: {
        icon: '<svg><circle cx="11" cy="11" r="7.5"/><path d="m21 21-4.35-4.35M11 8v6M8 11h6"/></svg>',
        action: "zoomIn"
    },
    zoomOut: {
        icon: '<svg><circle cx="11" cy="11" r="7.5"/><path d="m21 21-4.35-4.35M8 11h6"/></svg>',
        action: "zoomOut"
    },
    toggle1to1: {
        icon: '<svg><path d="M3.51 3.07c5.74.02 11.48-.02 17.22.02 1.37.1 2.34 1.64 2.18 3.13 0 4.08.02 8.16 0 12.23-.1 1.54-1.47 2.64-2.79 2.46-5.61-.01-11.24.02-16.86-.01-1.36-.12-2.33-1.65-2.17-3.14 0-4.07-.02-8.16 0-12.23.1-1.36 1.22-2.48 2.42-2.46Z"/><path d="M5.65 8.54h1.49v6.92m8.94-6.92h1.49v6.92M11.5 9.4v.02m0 5.18v0"/></svg>',
        action: "toggleZoom"
    },
    toggleZoom: {
        icon: '<svg><g><line x1="11" y1="8" x2="11" y2="14"></line></g><circle cx="11" cy="11" r="7.5"/><path d="m21 21-4.35-4.35M8 11h6"/></svg>',
        action: "toggleZoom"
    },
    iterateZoom: {
        icon: '<svg><g><line x1="11" y1="8" x2="11" y2="14"></line></g><circle cx="11" cy="11" r="7.5"/><path d="m21 21-4.35-4.35M8 11h6"/></svg>',
        action: "iterateZoom"
    },
    rotateCCW: {
        icon: '<svg><path d="M15 4.55a8 8 0 0 0-6 14.9M9 15v5H4M18.37 7.16v.01M13 19.94v.01M16.84 18.37v.01M19.37 15.1v.01M19.94 11v.01"/></svg>',
        action: "rotateCCW"
    },
    rotateCW: {
        icon: '<svg><path d="M9 4.55a8 8 0 0 1 6 14.9M15 15v5h5M5.63 7.16v.01M4.06 11v.01M4.63 15.1v.01M7.16 18.37v.01M11 19.94v.01"/></svg>',
        action: "rotateCW"
    },
    flipX: {
        icon: '<svg style="stroke-width: 1.3"><path d="M12 3v18M16 7v10h5L16 7M8 7v10H3L8 7"/></svg>',
        action: "flipX"
    },
    flipY: {
        icon: '<svg style="stroke-width: 1.3"><path d="M3 12h18M7 16h10L7 21v-5M7 8h10L7 3v5"/></svg>',
        action: "flipY"
    },
    fitX: {
        icon: '<svg><path d="M4 12V6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v6M10 18H3M21 18h-7M6 15l-3 3 3 3M18 15l3 3-3 3"/></svg>',
        action: "fitX"
    },
    fitY: {
        icon: '<svg><path d="M12 20H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h6M18 14v7M18 3v7M15 18l3 3 3-3M15 6l3-3 3 3"/></svg>',
        action: "fitY"
    },
    reset: {
        icon: '<svg><path d="M20 11A8.1 8.1 0 0 0 4.5 9M4 5v4h4M4 13a8.1 8.1 0 0 0 15.5 2m.5 4v-4h-4"/></svg>',
        action: "reset"
    },
    toggleFS: {
        icon: '<svg><g><path d="M14.5 9.5 21 3m0 0h-6m6 0v6M3 21l6.5-6.5M3 21v-6m0 6h6"/></g><g><path d="m14 10 7-7m-7 7h6m-6 0V4M3 21l7-7m0 0v6m0-6H4"/></g></svg>',
        action: "toggleFS"
    }
};
var $9970b34361e607e2$var$Zt;
!function(t) {
    t[t.Init = 0] = "Init", t[t.Ready = 1] = "Ready", t[t.Disabled = 2] = "Disabled";
}($9970b34361e607e2$var$Zt || ($9970b34361e607e2$var$Zt = {}));
const $9970b34361e607e2$var$Ut = {
    absolute: "auto",
    display: {
        left: [
            "infobar"
        ],
        middle: [],
        right: [
            "iterateZoom",
            "slideshow",
            "fullscreen",
            "thumbs",
            "close"
        ]
    },
    enabled: "auto",
    items: {
        infobar: {
            tpl: '<div class="fancybox__infobar" tabindex="-1"><span data-fancybox-current-index></span>/<span data-fancybox-count></span></div>'
        },
        download: {
            tpl: '<a class="f-button" title="{{DOWNLOAD}}" data-fancybox-download href="javasript:;"><svg><path d="M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2M7 11l5 5 5-5M12 4v12"/></svg></a>'
        },
        prev: {
            tpl: '<button class="f-button" title="{{PREV}}" data-fancybox-prev><svg><path d="m15 6-6 6 6 6"/></svg></button>'
        },
        next: {
            tpl: '<button class="f-button" title="{{NEXT}}" data-fancybox-next><svg><path d="m9 6 6 6-6 6"/></svg></button>'
        },
        slideshow: {
            tpl: '<button class="f-button" title="{{TOGGLE_SLIDESHOW}}" data-fancybox-toggle-slideshow><svg><g><path d="M8 4v16l13 -8z"></path></g><g><path d="M8 4v15M17 4v15"/></g></svg></button>'
        },
        fullscreen: {
            tpl: '<button class="f-button" title="{{TOGGLE_FULLSCREEN}}" data-fancybox-toggle-fullscreen><svg><g><path d="M4 8V6a2 2 0 0 1 2-2h2M4 16v2a2 2 0 0 0 2 2h2M16 4h2a2 2 0 0 1 2 2v2M16 20h2a2 2 0 0 0 2-2v-2"/></g><g><path d="M15 19v-2a2 2 0 0 1 2-2h2M15 5v2a2 2 0 0 0 2 2h2M5 15h2a2 2 0 0 1 2 2v2M5 9h2a2 2 0 0 0 2-2V5"/></g></svg></button>'
        },
        thumbs: {
            tpl: '<button class="f-button" title="{{TOGGLE_THUMBS}}" data-fancybox-toggle-thumbs><svg><circle cx="5.5" cy="5.5" r="1"/><circle cx="12" cy="5.5" r="1"/><circle cx="18.5" cy="5.5" r="1"/><circle cx="5.5" cy="12" r="1"/><circle cx="12" cy="12" r="1"/><circle cx="18.5" cy="12" r="1"/><circle cx="5.5" cy="18.5" r="1"/><circle cx="12" cy="18.5" r="1"/><circle cx="18.5" cy="18.5" r="1"/></svg></button>'
        },
        close: {
            tpl: '<button class="f-button" title="{{CLOSE}}" data-fancybox-close><svg><path d="m19.5 4.5-15 15M4.5 4.5l15 15"/></svg></button>'
        }
    },
    parentEl: null
}, $9970b34361e607e2$var$Gt = {
    tabindex: "-1",
    width: "24",
    height: "24",
    viewBox: "0 0 24 24",
    xmlns: "http://www.w3.org/2000/svg"
}, $9970b34361e607e2$var$Kt = "has-toolbar", $9970b34361e607e2$var$Jt = "fancybox__toolbar";
class $9970b34361e607e2$var$Qt extends $9970b34361e607e2$var$_ {
    constructor(){
        super(...arguments), Object.defineProperty(this, "state", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: $9970b34361e607e2$var$Zt.Init
        }), Object.defineProperty(this, "container", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: null
        });
    }
    onReady(t) {
        var e;
        if (!t.carousel) return;
        let i = this.option("display"), n = this.option("absolute"), s = this.option("enabled");
        if ("auto" === s) {
            const t = this.instance.carousel;
            let e = 0;
            if (t) for (const i of t.slides)(i.panzoom || "image" === i.type) && e++;
            e || (s = !1);
        }
        s || (i = void 0);
        let o = 0;
        const a = {
            left: [],
            middle: [],
            right: []
        };
        if (i) for (const t of [
            "left",
            "middle",
            "right"
        ])for (const n of i[t]){
            const i = this.createEl(n);
            i && (null === (e = a[t]) || void 0 === e || e.push(i), o++);
        }
        let r = null;
        if (o && (r = this.createContainer()), r) {
            for (const [t, e] of Object.entries(a)){
                const i = document.createElement("div");
                $9970b34361e607e2$var$P(i, $9970b34361e607e2$var$Jt + "__column is-" + t);
                for (const t of e)i.appendChild(t);
                "auto" !== n || "middle" !== t || e.length || (n = !0), r.appendChild(i);
            }
            !0 === n && $9970b34361e607e2$var$P(r, "is-absolute"), this.state = $9970b34361e607e2$var$Zt.Ready, this.onRefresh();
        } else this.state = $9970b34361e607e2$var$Zt.Disabled;
    }
    onClick(t) {
        var e, i;
        const n = this.instance, s = n.getSlide(), o = null == s ? void 0 : s.panzoom, a = t.target, r = a && $9970b34361e607e2$var$E(a) ? a.dataset : null;
        if (!r) return;
        if (void 0 !== r.fancyboxToggleThumbs) return t.preventDefault(), t.stopPropagation(), void (null === (e = n.plugins.Thumbs) || void 0 === e || e.toggle());
        if (void 0 !== r.fancyboxToggleFullscreen) return t.preventDefault(), t.stopPropagation(), void this.instance.toggleFullscreen();
        if (void 0 !== r.fancyboxToggleSlideshow) {
            t.preventDefault(), t.stopPropagation();
            const e = null === (i = n.carousel) || void 0 === i ? void 0 : i.plugins.Autoplay;
            let s = e.isActive;
            return o && "mousemove" === o.panMode && !s && o.reset(), void (s ? e.stop() : e.start());
        }
        const l = r.panzoomAction, c = r.panzoomChange;
        if ((c || l) && (t.preventDefault(), t.stopPropagation()), c) {
            let t = {};
            try {
                t = JSON.parse(c);
            } catch (t) {}
            o && o.applyChange(t);
        } else l && o && o[l] && o[l]();
    }
    onChange() {
        this.onRefresh();
    }
    onRefresh() {
        if (this.instance.isClosing()) return;
        const t = this.container;
        if (!t) return;
        const e = this.instance.getSlide();
        if (!e || e.state !== $9970b34361e607e2$var$lt.Ready) return;
        const i = e && !e.error && e.panzoom;
        for (const e of t.querySelectorAll("[data-panzoom-action]"))i ? (e.removeAttribute("disabled"), e.removeAttribute("tabindex")) : (e.setAttribute("disabled", ""), e.setAttribute("tabindex", "-1"));
        let n = i && i.canZoomIn(), s = i && i.canZoomOut();
        for (const e of t.querySelectorAll('[data-panzoom-action="zoomIn"]'))n ? (e.removeAttribute("disabled"), e.removeAttribute("tabindex")) : (e.setAttribute("disabled", ""), e.setAttribute("tabindex", "-1"));
        for (const e of t.querySelectorAll('[data-panzoom-action="zoomOut"]'))s ? (e.removeAttribute("disabled"), e.removeAttribute("tabindex")) : (e.setAttribute("disabled", ""), e.setAttribute("tabindex", "-1"));
        for (const e of t.querySelectorAll('[data-panzoom-action="toggleZoom"],[data-panzoom-action="iterateZoom"]')){
            s || n ? (e.removeAttribute("disabled"), e.removeAttribute("tabindex")) : (e.setAttribute("disabled", ""), e.setAttribute("tabindex", "-1"));
            const t = e.querySelector("g");
            t && (t.style.display = n ? "" : "none");
        }
    }
    onDone(t, e) {
        var i;
        null === (i = e.panzoom) || void 0 === i || i.on("afterTransform", ()=>{
            this.instance.isCurrentSlide(e) && this.onRefresh();
        }), this.instance.isCurrentSlide(e) && this.onRefresh();
    }
    createContainer() {
        const t = this.instance.container;
        if (!t) return null;
        const e = this.option("parentEl") || t;
        let i = e.querySelector("." + $9970b34361e607e2$var$Jt);
        return i || (i = document.createElement("div"), $9970b34361e607e2$var$P(i, $9970b34361e607e2$var$Jt), e.prepend(i)), i.addEventListener("click", this.onClick, {
            passive: !1,
            capture: !0
        }), t && $9970b34361e607e2$var$P(t, $9970b34361e607e2$var$Kt), this.container = i, i;
    }
    createEl(t) {
        const e = this.instance, i = e.carousel;
        if (!i) return null;
        if ("toggleFS" === t) return null;
        if ("fullscreen" === t && !$9970b34361e607e2$var$ot()) return null;
        let s = null;
        const o = i.slides.length || 0;
        let a = 0, r = 0;
        for (const t of i.slides)(t.panzoom || "image" === t.type) && a++, ("image" === t.type || t.downloadSrc) && r++;
        if (o < 2 && [
            "infobar",
            "prev",
            "next"
        ].includes(t)) return s;
        if (void 0 !== $9970b34361e607e2$var$Vt[t] && !a) return null;
        if ("download" === t && !r) return null;
        if ("thumbs" === t) {
            const t = e.plugins.Thumbs;
            if (!t || !t.isEnabled) return null;
        }
        if ("slideshow" === t) {
            if (!i.plugins.Autoplay || o < 2) return null;
        }
        if (void 0 !== $9970b34361e607e2$var$Vt[t]) {
            const e = $9970b34361e607e2$var$Vt[t];
            s = document.createElement("button"), s.setAttribute("title", this.instance.localize(`{{${t.toUpperCase()}}}`)), $9970b34361e607e2$var$P(s, "f-button"), e.action && (s.dataset.panzoomAction = e.action), e.change && (s.dataset.panzoomChange = JSON.stringify(e.change)), s.appendChild($9970b34361e607e2$var$n(this.instance.localize(e.icon)));
        } else {
            const e = (this.option("items") || [])[t];
            e && (s = $9970b34361e607e2$var$n(this.instance.localize(e.tpl)), "function" == typeof e.click && s.addEventListener("click", (t)=>{
                t.preventDefault(), t.stopPropagation(), "function" == typeof e.click && e.click.call(this, this, t);
            }));
        }
        const l = null == s ? void 0 : s.querySelector("svg");
        if (l) for (const [t, e] of Object.entries($9970b34361e607e2$var$Gt))l.getAttribute(t) || l.setAttribute(t, String(e));
        return s;
    }
    removeContainer() {
        const t = this.container;
        t && t.remove(), this.container = null, this.state = $9970b34361e607e2$var$Zt.Disabled;
        const e = this.instance.container;
        e && $9970b34361e607e2$var$S(e, $9970b34361e607e2$var$Kt);
    }
    attach() {
        const t = this, e = t.instance;
        e.on("Carousel.initSlides", t.onReady), e.on("done", t.onDone), e.on([
            "reveal",
            "Carousel.change"
        ], t.onChange), t.onReady(t.instance);
    }
    detach() {
        const t = this, e = t.instance;
        e.off("Carousel.initSlides", t.onReady), e.off("done", t.onDone), e.off([
            "reveal",
            "Carousel.change"
        ], t.onChange), t.removeContainer();
    }
}
Object.defineProperty($9970b34361e607e2$var$Qt, "defaults", {
    enumerable: !0,
    configurable: !0,
    writable: !0,
    value: $9970b34361e607e2$var$Ut
});
const $9970b34361e607e2$var$te = {
    Hash: class extends $9970b34361e607e2$var$_ {
        onReady() {
            $9970b34361e607e2$var$ht = !1;
        }
        onChange(t) {
            $9970b34361e607e2$var$ut && clearTimeout($9970b34361e607e2$var$ut);
            const { hash: e } = $9970b34361e607e2$var$pt(), { hash: i } = $9970b34361e607e2$var$ft(), n = t.isOpeningSlide(t.getSlide());
            n && ($9970b34361e607e2$var$ct = i === e ? "" : i), e && e !== i && ($9970b34361e607e2$var$ut = setTimeout(()=>{
                try {
                    if (t.state === $9970b34361e607e2$var$rt.Ready) {
                        let t = "replaceState";
                        n && !$9970b34361e607e2$var$dt && (t = "pushState", $9970b34361e607e2$var$dt = !0), window.history[t]({}, document.title, window.location.pathname + window.location.search + e);
                    }
                } catch (t) {}
            }, 300));
        }
        onClose(t) {
            if ($9970b34361e607e2$var$ut && clearTimeout($9970b34361e607e2$var$ut), !$9970b34361e607e2$var$ht && $9970b34361e607e2$var$dt) return $9970b34361e607e2$var$dt = !1, $9970b34361e607e2$var$ht = !1, void window.history.back();
            if (!$9970b34361e607e2$var$ht) try {
                window.history.replaceState({}, document.title, window.location.pathname + window.location.search + ($9970b34361e607e2$var$ct || ""));
            } catch (t) {}
        }
        attach() {
            const t = this.instance;
            t.on("ready", this.onReady), t.on([
                "Carousel.ready",
                "Carousel.change"
            ], this.onChange), t.on("close", this.onClose);
        }
        detach() {
            const t = this.instance;
            t.off("ready", this.onReady), t.off([
                "Carousel.ready",
                "Carousel.change"
            ], this.onChange), t.off("close", this.onClose);
        }
        static parseURL() {
            return $9970b34361e607e2$var$ft();
        }
        static startFromUrl() {
            $9970b34361e607e2$var$gt();
        }
        static destroy() {
            window.removeEventListener("hashchange", $9970b34361e607e2$var$vt, !1);
        }
    },
    Html: $9970b34361e607e2$var$Lt,
    Images: $9970b34361e607e2$var$wt,
    Slideshow: $9970b34361e607e2$var$Dt,
    Thumbs: $9970b34361e607e2$var$Yt,
    Toolbar: $9970b34361e607e2$var$Qt
}, $9970b34361e607e2$var$ee = "with-fancybox", $9970b34361e607e2$var$ie = "hide-scrollbar", $9970b34361e607e2$var$ne = "--fancybox-scrollbar-compensate", $9970b34361e607e2$var$se = "--fancybox-body-margin", $9970b34361e607e2$var$oe = "aria-hidden", $9970b34361e607e2$var$ae = "is-using-tab", $9970b34361e607e2$var$re = "is-animated", $9970b34361e607e2$var$le = "is-compact", $9970b34361e607e2$var$ce = "is-loading", $9970b34361e607e2$var$he = "is-opening", $9970b34361e607e2$var$de = "has-caption", $9970b34361e607e2$var$ue = "disabled", $9970b34361e607e2$var$pe = "tabindex", $9970b34361e607e2$var$fe = "download", $9970b34361e607e2$var$ge = "href", $9970b34361e607e2$var$me = "src", $9970b34361e607e2$var$ve = (t)=>"string" == typeof t, $9970b34361e607e2$var$be = function() {
    var t = window.getSelection();
    return !!t && "Range" === t.type;
};
let $9970b34361e607e2$var$ye, $9970b34361e607e2$var$we = null, $9970b34361e607e2$var$xe = null, $9970b34361e607e2$var$Ee = 0, $9970b34361e607e2$var$Se = 0, $9970b34361e607e2$var$Pe = 0, $9970b34361e607e2$var$Ce = 0;
const $9970b34361e607e2$var$Te = new Map;
let $9970b34361e607e2$var$Me = 0;
class $9970b34361e607e2$export$cb45b08d97cdc4fd extends $9970b34361e607e2$var$g {
    get isIdle() {
        return this.idle;
    }
    get isCompact() {
        return this.option("compact");
    }
    constructor(t = [], e = {}, i = {}){
        super(e), Object.defineProperty(this, "userSlides", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: []
        }), Object.defineProperty(this, "userPlugins", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: {}
        }), Object.defineProperty(this, "idle", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: !1
        }), Object.defineProperty(this, "idleTimer", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: null
        }), Object.defineProperty(this, "clickTimer", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: null
        }), Object.defineProperty(this, "pwt", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: 0
        }), Object.defineProperty(this, "ignoreFocusChange", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: !1
        }), Object.defineProperty(this, "startedFs", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: !1
        }), Object.defineProperty(this, "state", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: $9970b34361e607e2$var$rt.Init
        }), Object.defineProperty(this, "id", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: 0
        }), Object.defineProperty(this, "container", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: null
        }), Object.defineProperty(this, "caption", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: null
        }), Object.defineProperty(this, "footer", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: null
        }), Object.defineProperty(this, "carousel", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: null
        }), Object.defineProperty(this, "lastFocus", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: null
        }), Object.defineProperty(this, "prevMouseMoveEvent", {
            enumerable: !0,
            configurable: !0,
            writable: !0,
            value: void 0
        }), $9970b34361e607e2$var$ye || ($9970b34361e607e2$var$ye = $9970b34361e607e2$var$ot()), this.id = e.id || ++$9970b34361e607e2$var$Me, $9970b34361e607e2$var$Te.set(this.id, this), this.userSlides = t, this.userPlugins = i, queueMicrotask(()=>{
            this.init();
        });
    }
    init() {
        if (this.state === $9970b34361e607e2$var$rt.Destroy) return;
        this.state = $9970b34361e607e2$var$rt.Init, this.attachPlugins(Object.assign(Object.assign({}, $9970b34361e607e2$export$cb45b08d97cdc4fd.Plugins), this.userPlugins)), this.emit("init"), this.emit("attachPlugins"), !0 === this.option("hideScrollbar") && (()=>{
            if (!$9970b34361e607e2$var$et) return;
            const t = document, e = t.body, i = t.documentElement;
            if (e.classList.contains($9970b34361e607e2$var$ie)) return;
            let n = window.innerWidth - i.getBoundingClientRect().width;
            const s = parseFloat(window.getComputedStyle(e).marginRight);
            n < 0 && (n = 0), i.style.setProperty($9970b34361e607e2$var$ne, `${n}px`), s && e.style.setProperty($9970b34361e607e2$var$se, `${s}px`), e.classList.add($9970b34361e607e2$var$ie);
        })(), this.initLayout(), this.scale();
        const t = ()=>{
            this.initCarousel(this.userSlides), this.state = $9970b34361e607e2$var$rt.Ready, this.attachEvents(), this.emit("ready"), setTimeout(()=>{
                this.container && this.container.setAttribute($9970b34361e607e2$var$oe, "false");
            }, 16);
        };
        this.option("Fullscreen.autoStart") && $9970b34361e607e2$var$ye && !$9970b34361e607e2$var$ye.isFullscreen() ? $9970b34361e607e2$var$ye.request().then(()=>{
            this.startedFs = !0, t();
        }).catch(()=>t()) : t();
    }
    initLayout() {
        var t, e;
        const i = this.option("parentEl") || document.body, s = $9970b34361e607e2$var$n(this.localize(this.option("tpl.main") || ""));
        if (s) {
            if (s.setAttribute("id", `fancybox-${this.id}`), s.setAttribute("aria-label", this.localize("{{MODAL}}")), s.classList.toggle($9970b34361e607e2$var$le, this.isCompact), $9970b34361e607e2$var$P(s, this.option("mainClass") || ""), $9970b34361e607e2$var$P(s, $9970b34361e607e2$var$he), this.container = s, this.footer = s.querySelector(".fancybox__footer"), i.appendChild(s), $9970b34361e607e2$var$P(document.documentElement, $9970b34361e607e2$var$ee), $9970b34361e607e2$var$we && $9970b34361e607e2$var$xe || ($9970b34361e607e2$var$we = document.createElement("span"), $9970b34361e607e2$var$P($9970b34361e607e2$var$we, "fancybox-focus-guard"), $9970b34361e607e2$var$we.setAttribute($9970b34361e607e2$var$pe, "0"), $9970b34361e607e2$var$we.setAttribute($9970b34361e607e2$var$oe, "true"), $9970b34361e607e2$var$we.setAttribute("aria-label", "Focus guard"), $9970b34361e607e2$var$xe = $9970b34361e607e2$var$we.cloneNode(), null === (t = s.parentElement) || void 0 === t || t.insertBefore($9970b34361e607e2$var$we, s), null === (e = s.parentElement) || void 0 === e || e.append($9970b34361e607e2$var$xe)), s.addEventListener("mousedown", (t)=>{
                $9970b34361e607e2$var$Ee = t.pageX, $9970b34361e607e2$var$Se = t.pageY, $9970b34361e607e2$var$S(s, $9970b34361e607e2$var$ae);
            }), this.option("closeExisting")) for (const t of $9970b34361e607e2$var$Te.values())t.id !== this.id && t.close();
            else this.option("animated") && ($9970b34361e607e2$var$P(s, $9970b34361e607e2$var$re), setTimeout(()=>{
                this.isClosing() || $9970b34361e607e2$var$S(s, $9970b34361e607e2$var$re);
            }, 350));
            this.emit("initLayout");
        }
    }
    initCarousel(t) {
        const i = this.container;
        if (!i) return;
        const n = i.querySelector(".fancybox__carousel");
        if (!n) return;
        const s = this.carousel = new $9970b34361e607e2$export$144901db2ea8e967(n, $9970b34361e607e2$var$u({}, {
            slides: t,
            transition: "fade",
            Panzoom: {
                lockAxis: this.option("dragToClose") ? "xy" : "x",
                infinite: !!this.option("dragToClose") && "y"
            },
            Dots: !1,
            Navigation: {
                classes: {
                    container: "fancybox__nav",
                    button: "f-button",
                    isNext: "is-next",
                    isPrev: "is-prev"
                }
            },
            initialPage: this.option("startIndex"),
            l10n: this.option("l10n")
        }, this.option("Carousel") || {}));
        s.on("*", (t, e, ...i)=>{
            this.emit(`Carousel.${e}`, t, ...i);
        }), s.on([
            "ready",
            "change"
        ], ()=>{
            this.manageCaption();
        }), this.on("Carousel.removeSlide", (t, e, i)=>{
            this.clearContent(i), i.state = void 0;
        }), s.on("Panzoom.touchStart", ()=>{
            var t, e;
            this.isCompact || this.endIdle(), (null === (t = document.activeElement) || void 0 === t ? void 0 : t.closest(".f-thumbs")) && (null === (e = this.container) || void 0 === e || e.focus());
        }), s.on("settle", ()=>{
            this.idleTimer || this.isCompact || !this.option("idle") || this.setIdle(), this.option("autoFocus") && !this.isClosing && this.checkFocus();
        }), this.option("dragToClose") && (s.on("Panzoom.afterTransform", (t, i)=>{
            const n = this.getSlide();
            if (n && $9970b34361e607e2$var$e(n.el)) return;
            const s = this.container;
            if (s) {
                const t = Math.abs(i.current.f), e = t < 1 ? "" : Math.max(.5, Math.min(1, 1 - t / i.contentRect.fitHeight * 1.5));
                s.style.setProperty("--fancybox-ts", e ? "0s" : ""), s.style.setProperty("--fancybox-opacity", e + "");
            }
        }), s.on("Panzoom.touchEnd", (t, i, n)=>{
            var s;
            const o = this.getSlide();
            if (o && $9970b34361e607e2$var$e(o.el)) return;
            if (i.isMobile && document.activeElement && -1 !== [
                "TEXTAREA",
                "INPUT"
            ].indexOf(null === (s = document.activeElement) || void 0 === s ? void 0 : s.nodeName)) return;
            const a = Math.abs(i.dragOffset.y);
            "y" === i.lockedAxis && (a >= 200 || a >= 50 && i.dragOffset.time < 300) && (n && n.cancelable && n.preventDefault(), this.close(n, "f-throwOut" + (i.current.f < 0 ? "Up" : "Down")));
        })), s.on("change", (t)=>{
            var e;
            let i = null === (e = this.getSlide()) || void 0 === e ? void 0 : e.triggerEl;
            if (i) {
                const e = new CustomEvent("slideTo", {
                    bubbles: !0,
                    cancelable: !0,
                    detail: t.page
                });
                i.dispatchEvent(e);
            }
        }), s.on([
            "refresh",
            "change"
        ], (t)=>{
            const e = this.container;
            if (!e) return;
            for (const i of e.querySelectorAll("[data-fancybox-current-index]"))i.innerHTML = t.page + 1;
            for (const i of e.querySelectorAll("[data-fancybox-count]"))i.innerHTML = t.pages.length;
            if (!t.isInfinite) {
                for (const i of e.querySelectorAll("[data-fancybox-next]"))t.page < t.pages.length - 1 ? (i.removeAttribute($9970b34361e607e2$var$ue), i.removeAttribute($9970b34361e607e2$var$pe)) : (i.setAttribute($9970b34361e607e2$var$ue, ""), i.setAttribute($9970b34361e607e2$var$pe, "-1"));
                for (const i of e.querySelectorAll("[data-fancybox-prev]"))t.page > 0 ? (i.removeAttribute($9970b34361e607e2$var$ue), i.removeAttribute($9970b34361e607e2$var$pe)) : (i.setAttribute($9970b34361e607e2$var$ue, ""), i.setAttribute($9970b34361e607e2$var$pe, "-1"));
            }
            const i = this.getSlide();
            if (!i) return;
            let n = i.downloadSrc || "";
            n || "image" !== i.type || i.error || !$9970b34361e607e2$var$ve(i[$9970b34361e607e2$var$me]) || (n = i[$9970b34361e607e2$var$me]);
            for (const t of e.querySelectorAll("[data-fancybox-download]")){
                const e = i.downloadFilename;
                n ? (t.removeAttribute($9970b34361e607e2$var$ue), t.removeAttribute($9970b34361e607e2$var$pe), t.setAttribute($9970b34361e607e2$var$ge, n), t.setAttribute($9970b34361e607e2$var$fe, e || n), t.setAttribute("target", "_blank")) : (t.setAttribute($9970b34361e607e2$var$ue, ""), t.setAttribute($9970b34361e607e2$var$pe, "-1"), t.removeAttribute($9970b34361e607e2$var$ge), t.removeAttribute($9970b34361e607e2$var$fe));
            }
        }), this.emit("initCarousel");
    }
    attachEvents() {
        const t = this, e = t.container;
        if (!e) return;
        e.addEventListener("click", t.onClick, {
            passive: !1,
            capture: !1
        }), e.addEventListener("wheel", t.onWheel, {
            passive: !1,
            capture: !1
        }), document.addEventListener("keydown", t.onKeydown, {
            passive: !1,
            capture: !0
        }), document.addEventListener("visibilitychange", t.onVisibilityChange, !1), document.addEventListener("mousemove", t.onMousemove), t.option("trapFocus") && document.addEventListener("focus", t.onFocus, !0), window.addEventListener("resize", t.onResize);
        const i = window.visualViewport;
        i && (i.addEventListener("scroll", t.onResize), i.addEventListener("resize", t.onResize));
    }
    detachEvents() {
        const t = this, e = t.container;
        if (!e) return;
        document.removeEventListener("keydown", t.onKeydown, {
            passive: !1,
            capture: !0
        }), e.removeEventListener("wheel", t.onWheel, {
            passive: !1,
            capture: !1
        }), e.removeEventListener("click", t.onClick, {
            passive: !1,
            capture: !1
        }), document.removeEventListener("mousemove", t.onMousemove), window.removeEventListener("resize", t.onResize);
        const i = window.visualViewport;
        i && (i.removeEventListener("resize", t.onResize), i.removeEventListener("scroll", t.onResize)), document.removeEventListener("visibilitychange", t.onVisibilityChange, !1), document.removeEventListener("focus", t.onFocus, !0);
    }
    scale() {
        const t = this.container;
        if (!t) return;
        const e = window.visualViewport, i = Math.max(1, (null == e ? void 0 : e.scale) || 1);
        let n = "", s = "", o = "";
        if (e && i > 1) {
            let t = `${e.offsetLeft}px`, a = `${e.offsetTop}px`;
            n = e.width * i + "px", s = e.height * i + "px", o = `translate3d(${t}, ${a}, 0) scale(${1 / i})`;
        }
        t.style.transform = o, t.style.width = n, t.style.height = s;
    }
    onClick(t) {
        var e;
        const { container: i, isCompact: n } = this;
        if (!i || this.isClosing()) return;
        !n && this.option("idle") && this.resetIdle();
        const s = t.composedPath()[0];
        if (s.closest(".fancybox-spinner") || s.closest("[data-fancybox-close]")) return t.preventDefault(), void this.close(t);
        if (s.closest("[data-fancybox-prev]")) return t.preventDefault(), void this.prev();
        if (s.closest("[data-fancybox-next]")) return t.preventDefault(), void this.next();
        if ("click" === t.type && 0 === t.detail) return;
        if (Math.abs(t.pageX - $9970b34361e607e2$var$Ee) > 30 || Math.abs(t.pageY - $9970b34361e607e2$var$Se) > 30) return;
        const o = document.activeElement;
        if ($9970b34361e607e2$var$be() && o && i.contains(o)) return;
        if (n && "image" === (null === (e = this.getSlide()) || void 0 === e ? void 0 : e.type)) return void (this.clickTimer ? (clearTimeout(this.clickTimer), this.clickTimer = null) : this.clickTimer = setTimeout(()=>{
            this.toggleIdle(), this.clickTimer = null;
        }, 350));
        if (this.emit("click", t), t.defaultPrevented) return;
        let a = !1;
        if (s.closest(".fancybox__content")) {
            if (o) {
                if (o.closest("[contenteditable]")) return;
                s.matches($9970b34361e607e2$var$nt) || o.blur();
            }
            if ($9970b34361e607e2$var$be()) return;
            a = this.option("contentClick");
        } else s.closest(".fancybox__carousel") && !s.matches($9970b34361e607e2$var$nt) && (a = this.option("backdropClick"));
        "close" === a ? (t.preventDefault(), this.close(t)) : "next" === a ? (t.preventDefault(), this.next()) : "prev" === a && (t.preventDefault(), this.prev());
    }
    onWheel(t) {
        const e = t.target;
        let n = this.option("wheel", t);
        e.closest(".fancybox__thumbs") && (n = "slide");
        const s = "slide" === n, o = [
            -t.deltaX || 0,
            -t.deltaY || 0,
            -t.detail || 0
        ].reduce(function(t, e) {
            return Math.abs(e) > Math.abs(t) ? e : t;
        }), a = Math.max(-1, Math.min(1, o)), r = Date.now();
        this.pwt && r - this.pwt < 300 ? s && t.preventDefault() : (this.pwt = r, this.emit("wheel", t, a), t.defaultPrevented || ("close" === n ? (t.preventDefault(), this.close(t)) : "slide" === n && ($9970b34361e607e2$var$i(e) || (t.preventDefault(), this[a > 0 ? "prev" : "next"]()))));
    }
    onScroll() {
        window.scrollTo($9970b34361e607e2$var$Pe, $9970b34361e607e2$var$Ce);
    }
    onKeydown(t) {
        if (!this.isTopmost()) return;
        this.isCompact || !this.option("idle") || this.isClosing() || this.resetIdle();
        const e = t.key, i = this.option("keyboard");
        if (!i) return;
        const n = t.composedPath()[0], s = document.activeElement && document.activeElement.classList, o = s && s.contains("f-button") || n.dataset.carouselPage || n.dataset.carouselIndex;
        if ("Escape" !== e && !o && $9970b34361e607e2$var$E(n)) {
            if (n.isContentEditable || -1 !== [
                "TEXTAREA",
                "OPTION",
                "INPUT",
                "SELECT",
                "VIDEO"
            ].indexOf(n.nodeName)) return;
        }
        if ("Tab" === t.key ? $9970b34361e607e2$var$P(this.container, $9970b34361e607e2$var$ae) : $9970b34361e607e2$var$S(this.container, $9970b34361e607e2$var$ae), t.ctrlKey || t.altKey || t.shiftKey) return;
        this.emit("keydown", e, t);
        const a = i[e];
        a && "function" == typeof this[a] && (t.preventDefault(), this[a]());
    }
    onResize() {
        const t = this.container;
        if (!t) return;
        const e = this.isCompact;
        t.classList.toggle($9970b34361e607e2$var$le, e), this.manageCaption(this.getSlide()), this.isCompact ? this.clearIdle() : this.endIdle(), this.scale(), this.emit("resize");
    }
    onFocus(t) {
        this.isTopmost() && this.checkFocus(t);
    }
    onMousemove(t) {
        this.prevMouseMoveEvent = t, !this.isCompact && this.option("idle") && this.resetIdle();
    }
    onVisibilityChange() {
        "visible" === document.visibilityState ? this.checkFocus() : this.endIdle();
    }
    manageCloseBtn(t) {
        const e = this.optionFor(t, "closeButton") || !1;
        if ("auto" === e) {
            const t = this.plugins.Toolbar;
            if (t && t.state === $9970b34361e607e2$var$Zt.Ready) return;
        }
        if (!e) return;
        if (!t.contentEl || t.closeBtnEl) return;
        const i = this.option("tpl.closeButton");
        if (i) {
            const e = $9970b34361e607e2$var$n(this.localize(i));
            t.closeBtnEl = t.contentEl.appendChild(e), t.el && $9970b34361e607e2$var$P(t.el, "has-close-btn");
        }
    }
    manageCaption(t) {
        var e, i;
        const n = "fancybox__caption", s = this.container;
        if (!s) return;
        $9970b34361e607e2$var$S(s, $9970b34361e607e2$var$de);
        const o = this.isCompact || this.option("commonCaption"), a = !o;
        if (this.caption && this.stop(this.caption), a && this.caption && (this.caption.remove(), this.caption = null), o && !this.caption) for (const t of (null === (e = this.carousel) || void 0 === e ? void 0 : e.slides) || [])t.captionEl && (t.captionEl.remove(), t.captionEl = void 0, $9970b34361e607e2$var$S(t.el, $9970b34361e607e2$var$de), null === (i = t.el) || void 0 === i || i.removeAttribute("aria-labelledby"));
        if (t || (t = this.getSlide()), !t || o && !this.isCurrentSlide(t)) return;
        const r = t.el;
        let l = this.optionFor(t, "caption", "");
        if (!l) return void (o && this.caption && this.animate(this.caption, "f-fadeOut", ()=>{
            this.caption && (this.caption.innerHTML = "");
        }));
        let c = null;
        if (a) {
            if (c = t.captionEl || null, r && !c) {
                const e = n + `_${this.id}_${t.index}`;
                c = document.createElement("div"), $9970b34361e607e2$var$P(c, n), c.setAttribute("id", e), t.captionEl = r.appendChild(c), $9970b34361e607e2$var$P(r, $9970b34361e607e2$var$de), r.setAttribute("aria-labelledby", e);
            }
        } else {
            if (c = this.caption, c || (c = s.querySelector("." + n)), !c) {
                c = document.createElement("div"), c.dataset.fancyboxCaption = "", $9970b34361e607e2$var$P(c, n);
                (this.footer || s).prepend(c);
            }
            $9970b34361e607e2$var$P(s, $9970b34361e607e2$var$de), this.caption = c;
        }
        c && (c.innerHTML = "", $9970b34361e607e2$var$ve(l) || "number" == typeof l ? c.innerHTML = l + "" : l instanceof HTMLElement && c.appendChild(l));
    }
    checkFocus(t) {
        this.focus(t);
    }
    focus(t) {
        var e;
        if (this.ignoreFocusChange) return;
        const i = document.activeElement || null, n = (null == t ? void 0 : t.target) || null, s = this.container, o = null === (e = this.carousel) || void 0 === e ? void 0 : e.viewport;
        if (!s || !o) return;
        if (!t && i && s.contains(i)) return;
        const a = this.getSlide(), r = a && a.state === $9970b34361e607e2$var$lt.Ready ? a.el : null;
        if (!r || r.contains(i) || s === i) return;
        t && t.cancelable && t.preventDefault(), this.ignoreFocusChange = !0;
        const l = Array.from(s.querySelectorAll($9970b34361e607e2$var$nt));
        let c = [], h = null;
        for (let t of l){
            const e = !t.offsetParent || !!t.closest('[aria-hidden="true"]'), i = r && r.contains(t), n = !o.contains(t);
            if (t === s || (i || n) && !e) {
                c.push(t);
                const e = t.dataset.origTabindex;
                void 0 !== e && e && (t.tabIndex = parseFloat(e)), t.removeAttribute("data-orig-tabindex"), !t.hasAttribute("autoFocus") && h || (h = t);
            } else {
                const e = void 0 === t.dataset.origTabindex ? t.getAttribute("tabindex") || "" : t.dataset.origTabindex;
                e && (t.dataset.origTabindex = e), t.tabIndex = -1;
            }
        }
        let d = null;
        t ? (!n || c.indexOf(n) < 0) && (d = h || s, c.length && (i === $9970b34361e607e2$var$xe ? d = c[0] : this.lastFocus !== s && i !== $9970b34361e607e2$var$we || (d = c[c.length - 1]))) : d = a && "image" === a.type ? s : h || s, d && $9970b34361e607e2$var$st(d), this.lastFocus = document.activeElement, this.ignoreFocusChange = !1;
    }
    next() {
        const t = this.carousel;
        t && t.pages.length > 1 && t.slideNext();
    }
    prev() {
        const t = this.carousel;
        t && t.pages.length > 1 && t.slidePrev();
    }
    jumpTo(...t) {
        this.carousel && this.carousel.slideTo(...t);
    }
    isTopmost() {
        var t;
        return (null === (t = $9970b34361e607e2$export$cb45b08d97cdc4fd.getInstance()) || void 0 === t ? void 0 : t.id) == this.id;
    }
    animate(t = null, e = "", i) {
        if (!t || !e) return void (i && i());
        this.stop(t);
        const n = (s)=>{
            s.target === t && t.dataset.animationName && (t.removeEventListener("animationend", n), delete t.dataset.animationName, i && i(), $9970b34361e607e2$var$S(t, e));
        };
        t.dataset.animationName = e, t.addEventListener("animationend", n), $9970b34361e607e2$var$P(t, e);
    }
    stop(t) {
        t && t.dispatchEvent(new CustomEvent("animationend", {
            bubbles: !1,
            cancelable: !0,
            currentTarget: t
        }));
    }
    setContent(t, e = "", i = !0) {
        if (this.isClosing()) return;
        const s = t.el;
        if (!s) return;
        let o = null;
        if ($9970b34361e607e2$var$E(e) ? o = e : (o = $9970b34361e607e2$var$n(e + ""), $9970b34361e607e2$var$E(o) || (o = document.createElement("div"), o.innerHTML = e + "")), [
            "img",
            "picture",
            "iframe",
            "video",
            "audio"
        ].includes(o.nodeName.toLowerCase())) {
            const t = document.createElement("div");
            t.appendChild(o), o = t;
        }
        $9970b34361e607e2$var$E(o) && t.filter && !t.error && (o = o.querySelector(t.filter)), o && $9970b34361e607e2$var$E(o) ? ($9970b34361e607e2$var$P(o, "fancybox__content"), t.id && o.setAttribute("id", t.id), s.classList.add(`has-${t.error ? "error" : t.type || "unknown"}`), s.prepend(o), "none" === o.style.display && (o.style.display = ""), "none" === getComputedStyle(o).getPropertyValue("display") && (o.style.display = t.display || this.option("defaultDisplay") || "flex"), t.contentEl = o, i && this.revealContent(t), this.manageCloseBtn(t), this.manageCaption(t)) : this.setError(t, "{{ELEMENT_NOT_FOUND}}");
    }
    revealContent(t, e) {
        const i = t.el, n = t.contentEl;
        i && n && (this.emit("reveal", t), this.hideLoading(t), t.state = $9970b34361e607e2$var$lt.Opening, (e = this.isOpeningSlide(t) ? void 0 === e ? this.optionFor(t, "showClass") : e : "f-fadeIn") ? this.animate(n, e, ()=>{
            this.done(t);
        }) : this.done(t));
    }
    done(t) {
        this.isClosing() || (t.state = $9970b34361e607e2$var$lt.Ready, this.emit("done", t), $9970b34361e607e2$var$P(t.el, "is-done"), this.isCurrentSlide(t) && this.option("autoFocus") && queueMicrotask(()=>{
            var e;
            null === (e = t.panzoom) || void 0 === e || e.updateControls(), this.option("autoFocus") && this.focus();
        }), this.isOpeningSlide(t) && ($9970b34361e607e2$var$S(this.container, $9970b34361e607e2$var$he), !this.isCompact && this.option("idle") && this.setIdle()));
    }
    isCurrentSlide(t) {
        const e = this.getSlide();
        return !(!t || !e) && e.index === t.index;
    }
    isOpeningSlide(t) {
        var e, i;
        return null === (null === (e = this.carousel) || void 0 === e ? void 0 : e.prevPage) && t && t.index === (null === (i = this.getSlide()) || void 0 === i ? void 0 : i.index);
    }
    showLoading(t) {
        t.state = $9970b34361e607e2$var$lt.Loading;
        const e = t.el;
        if (!e) return;
        $9970b34361e607e2$var$P(e, $9970b34361e607e2$var$ce), this.emit("loading", t), t.spinnerEl || setTimeout(()=>{
            if (!this.isClosing() && !t.spinnerEl && t.state === $9970b34361e607e2$var$lt.Loading) {
                let i = $9970b34361e607e2$var$n($9970b34361e607e2$var$x);
                $9970b34361e607e2$var$P(i, "fancybox-spinner"), t.spinnerEl = i, e.prepend(i), this.animate(i, "f-fadeIn");
            }
        }, 250);
    }
    hideLoading(t) {
        const e = t.el;
        if (!e) return;
        const i = t.spinnerEl;
        this.isClosing() ? null == i || i.remove() : ($9970b34361e607e2$var$S(e, $9970b34361e607e2$var$ce), i && this.animate(i, "f-fadeOut", ()=>{
            i.remove();
        }), t.state === $9970b34361e607e2$var$lt.Loading && (this.emit("loaded", t), t.state = $9970b34361e607e2$var$lt.Ready));
    }
    setError(t, e) {
        if (this.isClosing()) return;
        const i = new Event("error", {
            bubbles: !0,
            cancelable: !0
        });
        if (this.emit("error", i, t), i.defaultPrevented) return;
        t.error = e, this.hideLoading(t), this.clearContent(t);
        const n = document.createElement("div");
        n.classList.add("fancybox-error"), n.innerHTML = this.localize(e || "<p>{{ERROR}}</p>"), this.setContent(t, n);
    }
    clearContent(t) {
        if (void 0 === t.state) return;
        this.emit("clearContent", t), t.contentEl && (t.contentEl.remove(), t.contentEl = void 0);
        const e = t.el;
        e && ($9970b34361e607e2$var$S(e, "has-error"), $9970b34361e607e2$var$S(e, "has-unknown"), $9970b34361e607e2$var$S(e, `has-${t.type || "unknown"}`)), t.closeBtnEl && t.closeBtnEl.remove(), t.closeBtnEl = void 0, t.captionEl && t.captionEl.remove(), t.captionEl = void 0, t.spinnerEl && t.spinnerEl.remove(), t.spinnerEl = void 0;
    }
    getSlide() {
        var t;
        const e = this.carousel;
        return (null === (t = null == e ? void 0 : e.pages[null == e ? void 0 : e.page]) || void 0 === t ? void 0 : t.slides[0]) || void 0;
    }
    close(t, e) {
        if (this.isClosing()) return;
        const i = new Event("shouldClose", {
            bubbles: !0,
            cancelable: !0
        });
        if (this.emit("shouldClose", i, t), i.defaultPrevented) return;
        t && t.cancelable && (t.preventDefault(), t.stopPropagation());
        const n = ()=>{
            this.proceedClose(t, e);
        };
        this.startedFs && $9970b34361e607e2$var$ye && $9970b34361e607e2$var$ye.isFullscreen() ? Promise.resolve($9970b34361e607e2$var$ye.exit()).then(()=>n()) : n();
    }
    clearIdle() {
        this.idleTimer && clearTimeout(this.idleTimer), this.idleTimer = null;
    }
    setIdle(t = !1) {
        const e = ()=>{
            this.clearIdle(), this.idle = !0, $9970b34361e607e2$var$P(this.container, "is-idle"), this.emit("setIdle");
        };
        if (this.clearIdle(), !this.isClosing()) {
            if (t) e();
            else {
                const t = this.option("idle");
                t && (this.idleTimer = setTimeout(e, t));
            }
        }
    }
    endIdle() {
        this.clearIdle(), this.idle && !this.isClosing() && (this.idle = !1, $9970b34361e607e2$var$S(this.container, "is-idle"), this.emit("endIdle"));
    }
    resetIdle() {
        this.endIdle(), this.setIdle();
    }
    toggleIdle() {
        this.idle ? this.endIdle() : this.setIdle(!0);
    }
    toggleFullscreen() {
        $9970b34361e607e2$var$ye && ($9970b34361e607e2$var$ye.isFullscreen() ? $9970b34361e607e2$var$ye.exit() : $9970b34361e607e2$var$ye.request().then(()=>{
            this.startedFs = !0;
        }));
    }
    isClosing() {
        return [
            $9970b34361e607e2$var$rt.Closing,
            $9970b34361e607e2$var$rt.CustomClosing,
            $9970b34361e607e2$var$rt.Destroy
        ].includes(this.state);
    }
    proceedClose(t, e) {
        var i, n;
        this.state = $9970b34361e607e2$var$rt.Closing, this.clearIdle(), this.detachEvents();
        const s = this.container, o = this.carousel, a = this.getSlide(), r = a && this.option("placeFocusBack") ? a.triggerEl || this.option("triggerEl") : null;
        if (r && ($9970b34361e607e2$var$tt(r) ? $9970b34361e607e2$var$st(r) : r.focus()), s && ($9970b34361e607e2$var$S(s, $9970b34361e607e2$var$he), $9970b34361e607e2$var$P(s, "is-closing"), s.setAttribute($9970b34361e607e2$var$oe, "true"), this.option("animated") && $9970b34361e607e2$var$P(s, $9970b34361e607e2$var$re), s.style.pointerEvents = "none"), o) {
            o.clearTransitions(), null === (i = o.panzoom) || void 0 === i || i.destroy(), null === (n = o.plugins.Navigation) || void 0 === n || n.detach();
            for (const t of o.slides){
                t.state = $9970b34361e607e2$var$lt.Closing, this.hideLoading(t);
                const e = t.contentEl;
                e && this.stop(e);
                const i = null == t ? void 0 : t.panzoom;
                i && (i.stop(), i.detachEvents(), i.detachObserver()), this.isCurrentSlide(t) || o.emit("removeSlide", t);
            }
        }
        $9970b34361e607e2$var$Pe = window.scrollX, $9970b34361e607e2$var$Ce = window.scrollY, window.addEventListener("scroll", this.onScroll), this.emit("close", t), this.state !== $9970b34361e607e2$var$rt.CustomClosing ? (void 0 === e && a && (e = this.optionFor(a, "hideClass")), e && a ? (this.animate(a.contentEl, e, ()=>{
            o && o.emit("removeSlide", a);
        }), setTimeout(()=>{
            this.destroy();
        }, 500)) : this.destroy()) : setTimeout(()=>{
            this.destroy();
        }, 500);
    }
    destroy() {
        var t;
        if (this.state === $9970b34361e607e2$var$rt.Destroy) return;
        window.removeEventListener("scroll", this.onScroll), this.state = $9970b34361e607e2$var$rt.Destroy, null === (t = this.carousel) || void 0 === t || t.destroy();
        const e = this.container;
        e && e.remove(), $9970b34361e607e2$var$Te.delete(this.id);
        const i = $9970b34361e607e2$export$cb45b08d97cdc4fd.getInstance();
        i ? i.focus() : ($9970b34361e607e2$var$we && ($9970b34361e607e2$var$we.remove(), $9970b34361e607e2$var$we = null), $9970b34361e607e2$var$xe && ($9970b34361e607e2$var$xe.remove(), $9970b34361e607e2$var$xe = null), $9970b34361e607e2$var$S(document.documentElement, $9970b34361e607e2$var$ee), (()=>{
            if (!$9970b34361e607e2$var$et) return;
            const t = document, e = t.body;
            e.classList.remove($9970b34361e607e2$var$ie), e.style.setProperty($9970b34361e607e2$var$se, ""), t.documentElement.style.setProperty($9970b34361e607e2$var$ne, "");
        })(), this.emit("destroy"));
    }
    static bind(t, e, i) {
        if (!$9970b34361e607e2$var$et) return;
        let n, s = "", o = {};
        if (void 0 === t ? n = document.body : $9970b34361e607e2$var$ve(t) ? (n = document.body, s = t, "object" == typeof e && (o = e || {})) : (n = t, $9970b34361e607e2$var$ve(e) && (s = e), "object" == typeof i && (o = i || {})), !n || !$9970b34361e607e2$var$E(n)) return;
        s = s || "[data-fancybox]";
        const a = $9970b34361e607e2$export$cb45b08d97cdc4fd.openers.get(n) || new Map;
        a.set(s, o), $9970b34361e607e2$export$cb45b08d97cdc4fd.openers.set(n, a), 1 === a.size && n.addEventListener("click", $9970b34361e607e2$export$cb45b08d97cdc4fd.fromEvent);
    }
    static unbind(t, e) {
        let i, n = "";
        if ($9970b34361e607e2$var$ve(t) ? (i = document.body, n = t) : (i = t, $9970b34361e607e2$var$ve(e) && (n = e)), !i) return;
        const s = $9970b34361e607e2$export$cb45b08d97cdc4fd.openers.get(i);
        s && n && s.delete(n), n && s || ($9970b34361e607e2$export$cb45b08d97cdc4fd.openers.delete(i), i.removeEventListener("click", $9970b34361e607e2$export$cb45b08d97cdc4fd.fromEvent));
    }
    static destroy() {
        let t;
        for(; t = $9970b34361e607e2$export$cb45b08d97cdc4fd.getInstance();)t.destroy();
        for (const t of $9970b34361e607e2$export$cb45b08d97cdc4fd.openers.keys())t.removeEventListener("click", $9970b34361e607e2$export$cb45b08d97cdc4fd.fromEvent);
        $9970b34361e607e2$export$cb45b08d97cdc4fd.openers = new Map;
    }
    static fromEvent(t) {
        if (t.defaultPrevented) return;
        if (t.button && 0 !== t.button) return;
        if (t.ctrlKey || t.metaKey || t.shiftKey) return;
        let e = t.composedPath()[0];
        const i = e.closest("[data-fancybox-trigger]");
        if (i) {
            const t = i.dataset.fancyboxTrigger || "", n = document.querySelectorAll(`[data-fancybox="${t}"]`), s = parseInt(i.dataset.fancyboxIndex || "", 10) || 0;
            e = n[s] || e;
        }
        if (!(e && e instanceof Element)) return;
        let n, s, o, a;
        if ([
            ...$9970b34361e607e2$export$cb45b08d97cdc4fd.openers
        ].reverse().find(([t, i])=>!(!t.contains(e) || ![
            ...i
        ].reverse().find(([i, r])=>{
            let l = e.closest(i);
            return !!l && (n = t, s = i, o = l, a = r, !0);
        }))), !n || !s || !o) return;
        a = a || {}, t.preventDefault(), e = o;
        let r = [], l = $9970b34361e607e2$var$u({}, $9970b34361e607e2$var$at, a);
        l.event = t, l.triggerEl = e, l.delegate = i;
        const c = l.groupAll, h = l.groupAttr, d = h && e ? e.getAttribute(`${h}`) : "";
        if ((!e || d || c) && (r = [].slice.call(n.querySelectorAll(s))), e && !c && (r = d ? r.filter((t)=>t.getAttribute(`${h}`) === d) : [
            e
        ]), !r.length) return;
        const p = $9970b34361e607e2$export$cb45b08d97cdc4fd.getInstance();
        return p && p.options.triggerEl && r.indexOf(p.options.triggerEl) > -1 ? void 0 : (e && (l.startIndex = r.indexOf(e)), $9970b34361e607e2$export$cb45b08d97cdc4fd.fromNodes(r, l));
    }
    static fromSelector(t, e, i) {
        let n = null, s = "", o = {};
        if ($9970b34361e607e2$var$ve(t) ? (n = document.body, s = t, "object" == typeof e && (o = e || {})) : t instanceof HTMLElement && $9970b34361e607e2$var$ve(e) && (n = t, s = e, "object" == typeof i && (o = i || {})), !n || !s) return !1;
        const a = $9970b34361e607e2$export$cb45b08d97cdc4fd.openers.get(n);
        return !!a && (o = $9970b34361e607e2$var$u({}, a.get(s) || {}, o), !!o && $9970b34361e607e2$export$cb45b08d97cdc4fd.fromNodes(Array.from(n.querySelectorAll(s)), o));
    }
    static fromNodes(t, e) {
        e = $9970b34361e607e2$var$u({}, $9970b34361e607e2$var$at, e || {});
        const i = [];
        for (const n of t){
            const t = n.dataset || {}, s = t[$9970b34361e607e2$var$me] || n.getAttribute($9970b34361e607e2$var$ge) || n.getAttribute("currentSrc") || n.getAttribute($9970b34361e607e2$var$me) || void 0;
            let o;
            const a = e.delegate;
            let r;
            a && i.length === e.startIndex && (o = a instanceof HTMLImageElement ? a : a.querySelector("img:not([aria-hidden])")), o || (o = n instanceof HTMLImageElement ? n : n.querySelector("img:not([aria-hidden])")), o && (r = o.currentSrc || o[$9970b34361e607e2$var$me] || void 0, !r && o.dataset && (r = o.dataset.lazySrc || o.dataset[$9970b34361e607e2$var$me] || void 0));
            const l = {
                src: s,
                triggerEl: n,
                thumbEl: o,
                thumbElSrc: r,
                thumbSrc: r
            };
            for(const e in t){
                let i = t[e] + "";
                i = "false" !== i && ("true" === i || i), l[e] = i;
            }
            i.push(l);
        }
        return new $9970b34361e607e2$export$cb45b08d97cdc4fd(i, e);
    }
    static getInstance(t) {
        if (t) return $9970b34361e607e2$var$Te.get(t);
        return Array.from($9970b34361e607e2$var$Te.values()).reverse().find((t)=>!t.isClosing() && t) || null;
    }
    static getSlide() {
        var t;
        return (null === (t = $9970b34361e607e2$export$cb45b08d97cdc4fd.getInstance()) || void 0 === t ? void 0 : t.getSlide()) || null;
    }
    static show(t = [], e = {}) {
        return new $9970b34361e607e2$export$cb45b08d97cdc4fd(t, e);
    }
    static next() {
        const t = $9970b34361e607e2$export$cb45b08d97cdc4fd.getInstance();
        t && t.next();
    }
    static prev() {
        const t = $9970b34361e607e2$export$cb45b08d97cdc4fd.getInstance();
        t && t.prev();
    }
    static close(t = !0, ...e) {
        if (t) for (const t of $9970b34361e607e2$var$Te.values())t.close(...e);
        else {
            const t = $9970b34361e607e2$export$cb45b08d97cdc4fd.getInstance();
            t && t.close(...e);
        }
    }
}
Object.defineProperty($9970b34361e607e2$export$cb45b08d97cdc4fd, "version", {
    enumerable: !0,
    configurable: !0,
    writable: !0,
    value: "5.0.36"
}), Object.defineProperty($9970b34361e607e2$export$cb45b08d97cdc4fd, "defaults", {
    enumerable: !0,
    configurable: !0,
    writable: !0,
    value: $9970b34361e607e2$var$at
}), Object.defineProperty($9970b34361e607e2$export$cb45b08d97cdc4fd, "Plugins", {
    enumerable: !0,
    configurable: !0,
    writable: !0,
    value: $9970b34361e607e2$var$te
}), Object.defineProperty($9970b34361e607e2$export$cb45b08d97cdc4fd, "openers", {
    enumerable: !0,
    configurable: !0,
    writable: !0,
    value: new Map
});



(0, $9970b34361e607e2$export$cb45b08d97cdc4fd).bind("[data-fancybox]");


