{"version":3,"file":"bundle.js","mappings":"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","sources":["webpack://client-side/./node_modules/@popperjs/core/lib/enums.js","webpack://client-side/./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack://client-side/./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack://client-side/./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack://client-side/./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack://client-side/./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack://client-side/./node_modules/@popperjs/core/lib/utils/math.js","webpack://client-side/./node_modules/@popperjs/core/lib/utils/userAgent.js","webpack://client-side/./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","webpack://client-side/./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack://client-side/./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack://client-side/./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack://client-side/./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack://client-side/./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack://client-side/./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack://client-side/./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack://client-side/./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack://client-side/./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack://client-side/./node_modules/@popperjs/core/lib/utils/within.js","webpack://client-side/./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack://client-side/./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack://client-side/./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack://client-side/./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack://client-side/./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack://client-side/./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack://client-side/./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack://client-side/./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack://client-side/./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack://client-side/./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack://client-side/./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack://client-side/./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack://client-side/./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack://client-side/./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack://client-side/./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack://client-side/./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack://client-side/./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack://client-side/./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack://client-side/./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack://client-side/./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack://client-side/./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack://client-side/./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack://client-side/./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack://client-side/./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack://client-side/./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack://client-side/./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack://client-side/./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack://client-side/./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack://client-side/./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack://client-side/./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack://client-side/./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack://client-side/./node_modules/@popperjs/core/lib/createPopper.js","webpack://client-side/./node_modules/@popperjs/core/lib/utils/debounce.js","webpack://client-side/./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack://client-side/./node_modules/@popperjs/core/lib/popper.js","webpack://client-side/./node_modules/@popperjs/core/lib/popper-lite.js","webpack://client-side/./node_modules/bootstrap/dist/js/bootstrap.min.js","webpack://client-side/./node_modules/mmenu-js/dist/mmenu.js","webpack://client-side/./node_modules/vanilla-lazyload/dist/lazyload.min.js","webpack://client-side/webpack/bootstrap","webpack://client-side/webpack/runtime/compat get default export","webpack://client-side/webpack/runtime/define property getters","webpack://client-side/webpack/runtime/hasOwnProperty shorthand","webpack://client-side/webpack/runtime/make namespace object","webpack://client-side/./node_modules/ssr-window/ssr-window.esm.js","webpack://client-side/./node_modules/dom7/dom7.esm.js","webpack://client-side/./node_modules/swiper/shared/dom.js","webpack://client-side/./node_modules/swiper/shared/utils.js","webpack://client-side/./node_modules/swiper/shared/get-support.js","webpack://client-side/./node_modules/swiper/shared/get-device.js","webpack://client-side/./node_modules/swiper/shared/get-browser.js","webpack://client-side/./node_modules/swiper/core/events-emitter.js","webpack://client-side/./node_modules/swiper/core/update/index.js","webpack://client-side/./node_modules/swiper/core/update/updateSize.js","webpack://client-side/./node_modules/swiper/core/update/updateSlides.js","webpack://client-side/./node_modules/swiper/core/update/updateAutoHeight.js","webpack://client-side/./node_modules/swiper/core/update/updateSlidesOffset.js","webpack://client-side/./node_modules/swiper/core/update/updateSlidesProgress.js","webpack://client-side/./node_modules/swiper/core/update/updateProgress.js","webpack://client-side/./node_modules/swiper/core/update/updateSlidesClasses.js","webpack://client-side/./node_modules/swiper/core/update/updateActiveIndex.js","webpack://client-side/./node_modules/swiper/core/update/updateClickedSlide.js","webpack://client-side/./node_modules/swiper/core/translate/index.js","webpack://client-side/./node_modules/swiper/core/translate/getTranslate.js","webpack://client-side/./node_modules/swiper/core/translate/setTranslate.js","webpack://client-side/./node_modules/swiper/core/translate/minTranslate.js","webpack://client-side/./node_modules/swiper/core/translate/maxTranslate.js","webpack://client-side/./node_modules/swiper/core/translate/translateTo.js","webpack://client-side/./node_modules/swiper/core/transition/transitionEmit.js","webpack://client-side/./node_modules/swiper/core/transition/index.js","webpack://client-side/./node_modules/swiper/core/transition/setTransition.js","webpack://client-side/./node_modules/swiper/core/transition/transitionStart.js","webpack://client-side/./node_modules/swiper/core/transition/transitionEnd.js","webpack://client-side/./node_modules/swiper/core/slide/index.js","webpack://client-side/./node_modules/swiper/core/slide/slideTo.js","webpack://client-side/./node_modules/swiper/core/slide/slideToLoop.js","webpack://client-side/./node_modules/swiper/core/slide/slideNext.js","webpack://client-side/./node_modules/swiper/core/slide/slidePrev.js","webpack://client-side/./node_modules/swiper/core/slide/slideReset.js","webpack://client-side/./node_modules/swiper/core/slide/slideToClosest.js","webpack://client-side/./node_modules/swiper/core/slide/slideToClickedSlide.js","webpack://client-side/./node_modules/swiper/core/loop/index.js","webpack://client-side/./node_modules/swiper/core/loop/loopCreate.js","webpack://client-side/./node_modules/swiper/core/loop/loopFix.js","webpack://client-side/./node_modules/swiper/core/loop/loopDestroy.js","webpack://client-side/./node_modules/swiper/core/grab-cursor/index.js","webpack://client-side/./node_modules/swiper/core/grab-cursor/setGrabCursor.js","webpack://client-side/./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","webpack://client-side/./node_modules/swiper/core/events/onTouchStart.js","webpack://client-side/./node_modules/swiper/core/events/onTouchMove.js","webpack://client-side/./node_modules/swiper/core/events/onTouchEnd.js","webpack://client-side/./node_modules/swiper/core/events/onResize.js","webpack://client-side/./node_modules/swiper/core/events/onClick.js","webpack://client-side/./node_modules/swiper/core/events/onScroll.js","webpack://client-side/./node_modules/swiper/core/events/index.js","webpack://client-side/./node_modules/swiper/core/breakpoints/setBreakpoint.js","webpack://client-side/./node_modules/swiper/core/breakpoints/index.js","webpack://client-side/./node_modules/swiper/core/breakpoints/getBreakpoint.js","webpack://client-side/./node_modules/swiper/core/classes/index.js","webpack://client-side/./node_modules/swiper/core/classes/addClasses.js","webpack://client-side/./node_modules/swiper/core/classes/removeClasses.js","webpack://client-side/./node_modules/swiper/core/images/index.js","webpack://client-side/./node_modules/swiper/core/images/loadImage.js","webpack://client-side/./node_modules/swiper/core/images/preloadImages.js","webpack://client-side/./node_modules/swiper/core/check-overflow/index.js","webpack://client-side/./node_modules/swiper/core/defaults.js","webpack://client-side/./node_modules/swiper/core/moduleExtendParams.js","webpack://client-side/./node_modules/swiper/core/core.js","webpack://client-side/./node_modules/swiper/core/modules/resize/resize.js","webpack://client-side/./node_modules/swiper/core/modules/observer/observer.js","webpack://client-side/./node_modules/swiper/shared/create-element-if-not-defined.js","webpack://client-side/./node_modules/swiper/modules/navigation/navigation.js","webpack://client-side/./node_modules/swiper/shared/classes-to-selector.js","webpack://client-side/./node_modules/swiper/modules/pagination/pagination.js","webpack://client-side/./src/ts/classes/readmore.ts","webpack://client-side/./node_modules/uuid/dist/esm-browser/native.js","webpack://client-side/./node_modules/uuid/dist/esm-browser/rng.js","webpack://client-side/./node_modules/uuid/dist/esm-browser/stringify.js","webpack://client-side/./node_modules/uuid/dist/esm-browser/v4.js","webpack://client-side/./src/ts/classes/utility.ts","webpack://client-side/./src/ts/classes/header-pl.ts","webpack://client-side/./src/ts/classes/side-navigation.ts","webpack://client-side/./src/ts/classes/tabs.ts","webpack://client-side/./src/ts/classes/accordions.ts","webpack://client-side/./src/ts/classes/sliders.ts","webpack://client-side/./src/ts/classes/stats.ts","webpack://client-side/./src/ts/classes/slider-plugin.ts","webpack://client-side/./src/ts/classes/more-programs-slider-plugin.ts","webpack://client-side/./src/ts/classes/aoi-slider.ts","webpack://client-side/./src/ts/classes/testimonials-slider.ts","webpack://client-side/./src/ts/classes/image-slider.ts","webpack://client-side/./src/ts/classes/video-slider.ts","webpack://client-side/./src/ts/classes/wysiwyg-slider.ts","webpack://client-side/./src/ts/classes/library.ts","webpack://client-side/./src/ts/classes/cards.ts","webpack://client-side/./src/ts/classes/full-width.ts","webpack://client-side/./src/ts/classes/modal.ts","webpack://client-side/./src/ts/classes/student-groups.ts","webpack://client-side/./src/ts/classes/expert-bio-categories.ts","webpack://client-side/./src/ts/classes/multi-select.ts","webpack://client-side/./src/ts/classes/video.ts","webpack://client-side/./src/ts/classes/video-banner.ts","webpack://client-side/./src/ts/classes/video-modal.ts","webpack://client-side/./src/ts/classes/footer.ts","webpack://client-side/./src/ts/classes/sait-app.ts","webpack://client-side/./src/ts/index.ts"],"sourcesContent":["export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isHTMLElement(arrowElement)) {\n console.error(['Popper: \"arrow\" element must be an HTMLElement (not an SVGElement).', 'To use an SVG arrow, wrap it in an HTMLElement that will be used as', 'the arrow.'].join(' '));\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: \"arrow\" modifier\\'s `element` must be a child of the popper', 'element.'].join(' '));\n }\n\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref) {\n var x = _ref.x,\n y = _ref.y;\n var win = window;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n\n if (process.env.NODE_ENV !== \"production\") {\n var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';\n\n if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {\n return transitionProperty.indexOf(property) >= 0;\n })) {\n console.warn(['Popper: Detected CSS transitions on at least one of the following', 'CSS properties: \"transform\", \"top\", \"right\", \"bottom\", \"left\".', '\\n\\n', 'Disable the \"computeStyles\" modifier\\'s `adaptive` option to allow', 'for smooth transitions, or remove these properties from the CSS', 'transition declaration on the popper element if only transitioning', 'opacity or background-color for example.', '\\n\\n', 'We recommend using the popper element as a wrapper around an inner', 'element that can have any CSS property transitioned for animations.'].join(' '));\n }\n }\n\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: The `allowedAutoPlacements` option did not allow any', 'placements. Ensure the `placement` option matches the variation', 'of the allowed placements.', 'For example, \"auto\" cannot be used to allow \"bottom-start\".', 'Use \"auto-start\" instead.'].join(' '));\n }\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport getComputedStyle from \"./dom-utils/getComputedStyle.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport validateModifiers from \"./utils/validateModifiers.js\";\nimport uniqueBy from \"./utils/uniqueBy.js\";\nimport getBasePlacement from \"./utils/getBasePlacement.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nimport { auto } from \"./enums.js\";\nvar INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nvar INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n }); // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n\n if (process.env.NODE_ENV !== \"production\") {\n var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) {\n var name = _ref.name;\n return name;\n });\n validateModifiers(modifiers);\n\n if (getBasePlacement(state.options.placement) === auto) {\n var flipModifier = state.orderedModifiers.find(function (_ref2) {\n var name = _ref2.name;\n return name === 'flip';\n });\n\n if (!flipModifier) {\n console.error(['Popper: \"auto\" placements require the \"flip\" modifier be', 'present and enabled to work.'].join(' '));\n }\n }\n\n var _getComputedStyle = getComputedStyle(popper),\n marginTop = _getComputedStyle.marginTop,\n marginRight = _getComputedStyle.marginRight,\n marginBottom = _getComputedStyle.marginBottom,\n marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n\n\n if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {\n return parseFloat(margin);\n })) {\n console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));\n }\n }\n\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n var __debug_loops__ = 0;\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (process.env.NODE_ENV !== \"production\") {\n __debug_loops__ += 1;\n\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref3) {\n var name = _ref3.name,\n _ref3$options = _ref3.options,\n options = _ref3$options === void 0 ? {} : _ref3$options,\n effect = _ref3.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };","/*!\n * Bootstrap v5.2.3 (https://getbootstrap.com/)\n * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e(require(\"@popperjs/core\")):\"function\"==typeof define&&define.amd?define([\"@popperjs/core\"],e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).bootstrap=e(t.Popper)}(this,(function(t){\"use strict\";function e(t){if(t&&t.__esModule)return t;const e=Object.create(null,{[Symbol.toStringTag]:{value:\"Module\"}});if(t)for(const i in t)if(\"default\"!==i){const s=Object.getOwnPropertyDescriptor(t,i);Object.defineProperty(e,i,s.get?s:{enumerable:!0,get:()=>t[i]})}return e.default=t,Object.freeze(e)}const i=e(t),s=\"transitionend\",n=t=>{let e=t.getAttribute(\"data-bs-target\");if(!e||\"#\"===e){let i=t.getAttribute(\"href\");if(!i||!i.includes(\"#\")&&!i.startsWith(\".\"))return null;i.includes(\"#\")&&!i.startsWith(\"#\")&&(i=`#${i.split(\"#\")[1]}`),e=i&&\"#\"!==i?i.trim():null}return e},o=t=>{const e=n(t);return e&&document.querySelector(e)?e:null},r=t=>{const e=n(t);return e?document.querySelector(e):null},a=t=>{t.dispatchEvent(new Event(s))},l=t=>!(!t||\"object\"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),c=t=>l(t)?t.jquery?t[0]:t:\"string\"==typeof t&&t.length>0?document.querySelector(t):null,h=t=>{if(!l(t)||0===t.getClientRects().length)return!1;const e=\"visible\"===getComputedStyle(t).getPropertyValue(\"visibility\"),i=t.closest(\"details:not([open])\");if(!i)return e;if(i!==t){const e=t.closest(\"summary\");if(e&&e.parentNode!==i)return!1;if(null===e)return!1}return e},d=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains(\"disabled\")||(void 0!==t.disabled?t.disabled:t.hasAttribute(\"disabled\")&&\"false\"!==t.getAttribute(\"disabled\")),u=t=>{if(!document.documentElement.attachShadow)return null;if(\"function\"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?u(t.parentNode):null},_=()=>{},g=t=>{t.offsetHeight},f=()=>window.jQuery&&!document.body.hasAttribute(\"data-bs-no-jquery\")?window.jQuery:null,p=[],m=()=>\"rtl\"===document.documentElement.dir,b=t=>{var e;e=()=>{const e=f();if(e){const i=t.NAME,s=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=s,t.jQueryInterface)}},\"loading\"===document.readyState?(p.length||document.addEventListener(\"DOMContentLoaded\",(()=>{for(const t of p)t()})),p.push(e)):e()},v=t=>{\"function\"==typeof t&&t()},y=(t,e,i=!0)=>{if(!i)return void v(t);const n=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const s=Number.parseFloat(e),n=Number.parseFloat(i);return s||n?(e=e.split(\",\")[0],i=i.split(\",\")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(e)+5;let o=!1;const r=({target:i})=>{i===e&&(o=!0,e.removeEventListener(s,r),v(t))};e.addEventListener(s,r),setTimeout((()=>{o||a(e)}),n)},w=(t,e,i,s)=>{const n=t.length;let o=t.indexOf(e);return-1===o?!i&&s?t[n-1]:t[0]:(o+=i?1:-1,s&&(o=(o+n)%n),t[Math.max(0,Math.min(o,n-1))])},A=/[^.]*(?=\\..*)\\.|.*/,E=/\\..*/,C=/::\\d+$/,T={};let k=1;const L={mouseenter:\"mouseover\",mouseleave:\"mouseout\"},O=new Set([\"click\",\"dblclick\",\"mouseup\",\"mousedown\",\"contextmenu\",\"mousewheel\",\"DOMMouseScroll\",\"mouseover\",\"mouseout\",\"mousemove\",\"selectstart\",\"selectend\",\"keydown\",\"keypress\",\"keyup\",\"orientationchange\",\"touchstart\",\"touchmove\",\"touchend\",\"touchcancel\",\"pointerdown\",\"pointermove\",\"pointerup\",\"pointerleave\",\"pointercancel\",\"gesturestart\",\"gesturechange\",\"gestureend\",\"focus\",\"blur\",\"change\",\"reset\",\"select\",\"submit\",\"focusin\",\"focusout\",\"load\",\"unload\",\"beforeunload\",\"resize\",\"move\",\"DOMContentLoaded\",\"readystatechange\",\"error\",\"abort\",\"scroll\"]);function I(t,e){return e&&`${e}::${k++}`||t.uidEvent||k++}function S(t){const e=I(t);return t.uidEvent=e,T[e]=T[e]||{},T[e]}function D(t,e,i=null){return Object.values(t).find((t=>t.callable===e&&t.delegationSelector===i))}function N(t,e,i){const s=\"string\"==typeof e,n=s?i:e||i;let o=j(t);return O.has(o)||(o=t),[s,n,o]}function P(t,e,i,s,n){if(\"string\"!=typeof e||!t)return;let[o,r,a]=N(e,i,s);if(e in L){const t=t=>function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};r=t(r)}const l=S(t),c=l[a]||(l[a]={}),h=D(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&n);const d=I(r,e.replace(A,\"\")),u=o?function(t,e,i){return function s(n){const o=t.querySelectorAll(e);for(let{target:r}=n;r&&r!==this;r=r.parentNode)for(const a of o)if(a===r)return F(n,{delegateTarget:r}),s.oneOff&&$.off(t,n.type,e,i),i.apply(r,[n])}}(t,i,r):function(t,e){return function i(s){return F(s,{delegateTarget:t}),i.oneOff&&$.off(t,s.type,e),e.apply(t,[s])}}(t,r);u.delegationSelector=o?i:null,u.callable=r,u.oneOff=n,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function x(t,e,i,s,n){const o=D(e[i],s,n);o&&(t.removeEventListener(i,o,Boolean(n)),delete e[i][o.uidEvent])}function M(t,e,i,s){const n=e[i]||{};for(const o of Object.keys(n))if(o.includes(s)){const s=n[o];x(t,e,i,s.callable,s.delegationSelector)}}function j(t){return t=t.replace(E,\"\"),L[t]||t}const $={on(t,e,i,s){P(t,e,i,s,!1)},one(t,e,i,s){P(t,e,i,s,!0)},off(t,e,i,s){if(\"string\"!=typeof e||!t)return;const[n,o,r]=N(e,i,s),a=r!==e,l=S(t),c=l[r]||{},h=e.startsWith(\".\");if(void 0===o){if(h)for(const i of Object.keys(l))M(t,l,i,e.slice(1));for(const i of Object.keys(c)){const s=i.replace(C,\"\");if(!a||e.includes(s)){const e=c[i];x(t,l,r,e.callable,e.delegationSelector)}}}else{if(!Object.keys(c).length)return;x(t,l,r,o,n?i:null)}},trigger(t,e,i){if(\"string\"!=typeof e||!t)return null;const s=f();let n=null,o=!0,r=!0,a=!1;e!==j(e)&&s&&(n=s.Event(e,i),s(t).trigger(n),o=!n.isPropagationStopped(),r=!n.isImmediatePropagationStopped(),a=n.isDefaultPrevented());let l=new Event(e,{bubbles:o,cancelable:!0});return l=F(l,i),a&&l.preventDefault(),r&&t.dispatchEvent(l),l.defaultPrevented&&n&&n.preventDefault(),l}};function F(t,e){for(const[i,s]of Object.entries(e||{}))try{t[i]=s}catch(e){Object.defineProperty(t,i,{configurable:!0,get:()=>s})}return t}const z=new Map,H={set(t,e,i){z.has(t)||z.set(t,new Map);const s=z.get(t);s.has(e)||0===s.size?s.set(e,i):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(s.keys())[0]}.`)},get:(t,e)=>z.has(t)&&z.get(t).get(e)||null,remove(t,e){if(!z.has(t))return;const i=z.get(t);i.delete(e),0===i.size&&z.delete(t)}};function q(t){if(\"true\"===t)return!0;if(\"false\"===t)return!1;if(t===Number(t).toString())return Number(t);if(\"\"===t||\"null\"===t)return null;if(\"string\"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch(e){return t}}function B(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}const W={setDataAttribute(t,e,i){t.setAttribute(`data-bs-${B(e)}`,i)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${B(e)}`)},getDataAttributes(t){if(!t)return{};const e={},i=Object.keys(t.dataset).filter((t=>t.startsWith(\"bs\")&&!t.startsWith(\"bsConfig\")));for(const s of i){let i=s.replace(/^bs/,\"\");i=i.charAt(0).toLowerCase()+i.slice(1,i.length),e[i]=q(t.dataset[s])}return e},getDataAttribute:(t,e)=>q(t.getAttribute(`data-bs-${B(e)}`))};class R{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method \"NAME\", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,e){const i=l(e)?W.getDataAttribute(e,\"config\"):{};return{...this.constructor.Default,...\"object\"==typeof i?i:{},...l(e)?W.getDataAttributes(e):{},...\"object\"==typeof t?t:{}}}_typeCheckConfig(t,e=this.constructor.DefaultType){for(const s of Object.keys(e)){const n=e[s],o=t[s],r=l(o)?\"element\":null==(i=o)?`${i}`:Object.prototype.toString.call(i).match(/\\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(n).test(r))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option \"${s}\" provided type \"${r}\" but expected type \"${n}\".`)}var i}}class V extends R{constructor(t,e){super(),(t=c(t))&&(this._element=t,this._config=this._getConfig(e),H.set(this._element,this.constructor.DATA_KEY,this))}dispose(){H.remove(this._element,this.constructor.DATA_KEY),$.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,e,i=!0){y(t,e,i)}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return H.get(c(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,\"object\"==typeof e?e:null)}static get VERSION(){return\"5.2.3\"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(t){return`${t}${this.EVENT_KEY}`}}const K=(t,e=\"hide\")=>{const i=`click.dismiss${t.EVENT_KEY}`,s=t.NAME;$.on(document,i,`[data-bs-dismiss=\"${s}\"]`,(function(i){if([\"A\",\"AREA\"].includes(this.tagName)&&i.preventDefault(),d(this))return;const n=r(this)||this.closest(`.${s}`);t.getOrCreateInstance(n)[e]()}))};class Q extends V{static get NAME(){return\"alert\"}close(){if($.trigger(this._element,\"close.bs.alert\").defaultPrevented)return;this._element.classList.remove(\"show\");const t=this._element.classList.contains(\"fade\");this._queueCallback((()=>this._destroyElement()),this._element,t)}_destroyElement(){this._element.remove(),$.trigger(this._element,\"closed.bs.alert\"),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=Q.getOrCreateInstance(this);if(\"string\"==typeof t){if(void 0===e[t]||t.startsWith(\"_\")||\"constructor\"===t)throw new TypeError(`No method named \"${t}\"`);e[t](this)}}))}}K(Q,\"close\"),b(Q);const X='[data-bs-toggle=\"button\"]';class Y extends V{static get NAME(){return\"button\"}toggle(){this._element.setAttribute(\"aria-pressed\",this._element.classList.toggle(\"active\"))}static jQueryInterface(t){return this.each((function(){const e=Y.getOrCreateInstance(this);\"toggle\"===t&&e[t]()}))}}$.on(document,\"click.bs.button.data-api\",X,(t=>{t.preventDefault();const e=t.target.closest(X);Y.getOrCreateInstance(e).toggle()})),b(Y);const U={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter((t=>t.matches(e))),parents(t,e){const i=[];let s=t.parentNode.closest(e);for(;s;)i.push(s),s=s.parentNode.closest(e);return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},focusableChildren(t){const e=[\"a\",\"button\",\"input\",\"textarea\",\"select\",\"details\",\"[tabindex]\",'[contenteditable=\"true\"]'].map((t=>`${t}:not([tabindex^=\"-\"])`)).join(\",\");return this.find(e,t).filter((t=>!d(t)&&h(t)))}},G={endCallback:null,leftCallback:null,rightCallback:null},J={endCallback:\"(function|null)\",leftCallback:\"(function|null)\",rightCallback:\"(function|null)\"};class Z extends R{constructor(t,e){super(),this._element=t,t&&Z.isSupported()&&(this._config=this._getConfig(e),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return G}static get DefaultType(){return J}static get NAME(){return\"swipe\"}dispose(){$.off(this._element,\".bs.swipe\")}_start(t){this._supportPointerEvents?this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX):this._deltaX=t.touches[0].clientX}_end(t){this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX-this._deltaX),this._handleSwipe(),v(this._config.endCallback)}_move(t){this._deltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this._deltaX}_handleSwipe(){const t=Math.abs(this._deltaX);if(t<=40)return;const e=t/this._deltaX;this._deltaX=0,e&&v(e>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?($.on(this._element,\"pointerdown.bs.swipe\",(t=>this._start(t))),$.on(this._element,\"pointerup.bs.swipe\",(t=>this._end(t))),this._element.classList.add(\"pointer-event\")):($.on(this._element,\"touchstart.bs.swipe\",(t=>this._start(t))),$.on(this._element,\"touchmove.bs.swipe\",(t=>this._move(t))),$.on(this._element,\"touchend.bs.swipe\",(t=>this._end(t))))}_eventIsPointerPenTouch(t){return this._supportPointerEvents&&(\"pen\"===t.pointerType||\"touch\"===t.pointerType)}static isSupported(){return\"ontouchstart\"in document.documentElement||navigator.maxTouchPoints>0}}const tt=\"next\",et=\"prev\",it=\"left\",st=\"right\",nt=\"slid.bs.carousel\",ot=\"carousel\",rt=\"active\",at={ArrowLeft:st,ArrowRight:it},lt={interval:5e3,keyboard:!0,pause:\"hover\",ride:!1,touch:!0,wrap:!0},ct={interval:\"(number|boolean)\",keyboard:\"boolean\",pause:\"(string|boolean)\",ride:\"(boolean|string)\",touch:\"boolean\",wrap:\"boolean\"};class ht extends V{constructor(t,e){super(t,e),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=U.findOne(\".carousel-indicators\",this._element),this._addEventListeners(),this._config.ride===ot&&this.cycle()}static get Default(){return lt}static get DefaultType(){return ct}static get NAME(){return\"carousel\"}next(){this._slide(tt)}nextWhenVisible(){!document.hidden&&h(this._element)&&this.next()}prev(){this._slide(et)}pause(){this._isSliding&&a(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval((()=>this.nextWhenVisible()),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?$.one(this._element,nt,(()=>this.cycle())):this.cycle())}to(t){const e=this._getItems();if(t>e.length-1||t<0)return;if(this._isSliding)return void $.one(this._element,nt,(()=>this.to(t)));const i=this._getItemIndex(this._getActive());if(i===t)return;const s=t>i?tt:et;this._slide(s,e[t])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(t){return t.defaultInterval=t.interval,t}_addEventListeners(){this._config.keyboard&&$.on(this._element,\"keydown.bs.carousel\",(t=>this._keydown(t))),\"hover\"===this._config.pause&&($.on(this._element,\"mouseenter.bs.carousel\",(()=>this.pause())),$.on(this._element,\"mouseleave.bs.carousel\",(()=>this._maybeEnableCycle()))),this._config.touch&&Z.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const t of U.find(\".carousel-item img\",this._element))$.on(t,\"dragstart.bs.carousel\",(t=>t.preventDefault()));const t={leftCallback:()=>this._slide(this._directionToOrder(it)),rightCallback:()=>this._slide(this._directionToOrder(st)),endCallback:()=>{\"hover\"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((()=>this._maybeEnableCycle()),500+this._config.interval))}};this._swipeHelper=new Z(this._element,t)}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=at[t.key];e&&(t.preventDefault(),this._slide(this._directionToOrder(e)))}_getItemIndex(t){return this._getItems().indexOf(t)}_setActiveIndicatorElement(t){if(!this._indicatorsElement)return;const e=U.findOne(\".active\",this._indicatorsElement);e.classList.remove(rt),e.removeAttribute(\"aria-current\");const i=U.findOne(`[data-bs-slide-to=\"${t}\"]`,this._indicatorsElement);i&&(i.classList.add(rt),i.setAttribute(\"aria-current\",\"true\"))}_updateInterval(){const t=this._activeElement||this._getActive();if(!t)return;const e=Number.parseInt(t.getAttribute(\"data-bs-interval\"),10);this._config.interval=e||this._config.defaultInterval}_slide(t,e=null){if(this._isSliding)return;const i=this._getActive(),s=t===tt,n=e||w(this._getItems(),i,s,this._config.wrap);if(n===i)return;const o=this._getItemIndex(n),r=e=>$.trigger(this._element,e,{relatedTarget:n,direction:this._orderToDirection(t),from:this._getItemIndex(i),to:o});if(r(\"slide.bs.carousel\").defaultPrevented)return;if(!i||!n)return;const a=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(o),this._activeElement=n;const l=s?\"carousel-item-start\":\"carousel-item-end\",c=s?\"carousel-item-next\":\"carousel-item-prev\";n.classList.add(c),g(n),i.classList.add(l),n.classList.add(l),this._queueCallback((()=>{n.classList.remove(l,c),n.classList.add(rt),i.classList.remove(rt,c,l),this._isSliding=!1,r(nt)}),i,this._isAnimated()),a&&this.cycle()}_isAnimated(){return this._element.classList.contains(\"slide\")}_getActive(){return U.findOne(\".active.carousel-item\",this._element)}_getItems(){return U.find(\".carousel-item\",this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(t){return m()?t===it?et:tt:t===it?tt:et}_orderToDirection(t){return m()?t===et?it:st:t===et?st:it}static jQueryInterface(t){return this.each((function(){const e=ht.getOrCreateInstance(this,t);if(\"number\"!=typeof t){if(\"string\"==typeof t){if(void 0===e[t]||t.startsWith(\"_\")||\"constructor\"===t)throw new TypeError(`No method named \"${t}\"`);e[t]()}}else e.to(t)}))}}$.on(document,\"click.bs.carousel.data-api\",\"[data-bs-slide], [data-bs-slide-to]\",(function(t){const e=r(this);if(!e||!e.classList.contains(ot))return;t.preventDefault();const i=ht.getOrCreateInstance(e),s=this.getAttribute(\"data-bs-slide-to\");return s?(i.to(s),void i._maybeEnableCycle()):\"next\"===W.getDataAttribute(this,\"slide\")?(i.next(),void i._maybeEnableCycle()):(i.prev(),void i._maybeEnableCycle())})),$.on(window,\"load.bs.carousel.data-api\",(()=>{const t=U.find('[data-bs-ride=\"carousel\"]');for(const e of t)ht.getOrCreateInstance(e)})),b(ht);const dt=\"show\",ut=\"collapse\",_t=\"collapsing\",gt='[data-bs-toggle=\"collapse\"]',ft={parent:null,toggle:!0},pt={parent:\"(null|element)\",toggle:\"boolean\"};class mt extends V{constructor(t,e){super(t,e),this._isTransitioning=!1,this._triggerArray=[];const i=U.find(gt);for(const t of i){const e=o(t),i=U.find(e).filter((t=>t===this._element));null!==e&&i.length&&this._triggerArray.push(t)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return ft}static get DefaultType(){return pt}static get NAME(){return\"collapse\"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(\".collapse.show, .collapse.collapsing\").filter((t=>t!==this._element)).map((t=>mt.getOrCreateInstance(t,{toggle:!1})))),t.length&&t[0]._isTransitioning)return;if($.trigger(this._element,\"show.bs.collapse\").defaultPrevented)return;for(const e of t)e.hide();const e=this._getDimension();this._element.classList.remove(ut),this._element.classList.add(_t),this._element.style[e]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const i=`scroll${e[0].toUpperCase()+e.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(_t),this._element.classList.add(ut,dt),this._element.style[e]=\"\",$.trigger(this._element,\"shown.bs.collapse\")}),this._element,!0),this._element.style[e]=`${this._element[i]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if($.trigger(this._element,\"hide.bs.collapse\").defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,g(this._element),this._element.classList.add(_t),this._element.classList.remove(ut,dt);for(const t of this._triggerArray){const e=r(t);e&&!this._isShown(e)&&this._addAriaAndCollapsedClass([t],!1)}this._isTransitioning=!0,this._element.style[t]=\"\",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(_t),this._element.classList.add(ut),$.trigger(this._element,\"hidden.bs.collapse\")}),this._element,!0)}_isShown(t=this._element){return t.classList.contains(dt)}_configAfterMerge(t){return t.toggle=Boolean(t.toggle),t.parent=c(t.parent),t}_getDimension(){return this._element.classList.contains(\"collapse-horizontal\")?\"width\":\"height\"}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(gt);for(const e of t){const t=r(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}}_getFirstLevelChildren(t){const e=U.find(\":scope .collapse .collapse\",this._config.parent);return U.find(t,this._config.parent).filter((t=>!e.includes(t)))}_addAriaAndCollapsedClass(t,e){if(t.length)for(const i of t)i.classList.toggle(\"collapsed\",!e),i.setAttribute(\"aria-expanded\",e)}static jQueryInterface(t){const e={};return\"string\"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1),this.each((function(){const i=mt.getOrCreateInstance(this,e);if(\"string\"==typeof t){if(void 0===i[t])throw new TypeError(`No method named \"${t}\"`);i[t]()}}))}}$.on(document,\"click.bs.collapse.data-api\",gt,(function(t){(\"A\"===t.target.tagName||t.delegateTarget&&\"A\"===t.delegateTarget.tagName)&&t.preventDefault();const e=o(this),i=U.find(e);for(const t of i)mt.getOrCreateInstance(t,{toggle:!1}).toggle()})),b(mt);const bt=\"dropdown\",vt=\"ArrowUp\",yt=\"ArrowDown\",wt=\"click.bs.dropdown.data-api\",At=\"keydown.bs.dropdown.data-api\",Et=\"show\",Ct='[data-bs-toggle=\"dropdown\"]:not(.disabled):not(:disabled)',Tt=`${Ct}.show`,kt=\".dropdown-menu\",Lt=m()?\"top-end\":\"top-start\",Ot=m()?\"top-start\":\"top-end\",It=m()?\"bottom-end\":\"bottom-start\",St=m()?\"bottom-start\":\"bottom-end\",Dt=m()?\"left-start\":\"right-start\",Nt=m()?\"right-start\":\"left-start\",Pt={autoClose:!0,boundary:\"clippingParents\",display:\"dynamic\",offset:[0,2],popperConfig:null,reference:\"toggle\"},xt={autoClose:\"(boolean|string)\",boundary:\"(string|element)\",display:\"string\",offset:\"(array|string|function)\",popperConfig:\"(null|object|function)\",reference:\"(string|element|object)\"};class Mt extends V{constructor(t,e){super(t,e),this._popper=null,this._parent=this._element.parentNode,this._menu=U.next(this._element,kt)[0]||U.prev(this._element,kt)[0]||U.findOne(kt,this._parent),this._inNavbar=this._detectNavbar()}static get Default(){return Pt}static get DefaultType(){return xt}static get NAME(){return bt}toggle(){return this._isShown()?this.hide():this.show()}show(){if(d(this._element)||this._isShown())return;const t={relatedTarget:this._element};if(!$.trigger(this._element,\"show.bs.dropdown\",t).defaultPrevented){if(this._createPopper(),\"ontouchstart\"in document.documentElement&&!this._parent.closest(\".navbar-nav\"))for(const t of[].concat(...document.body.children))$.on(t,\"mouseover\",_);this._element.focus(),this._element.setAttribute(\"aria-expanded\",!0),this._menu.classList.add(Et),this._element.classList.add(Et),$.trigger(this._element,\"shown.bs.dropdown\",t)}}hide(){if(d(this._element)||!this._isShown())return;const t={relatedTarget:this._element};this._completeHide(t)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(t){if(!$.trigger(this._element,\"hide.bs.dropdown\",t).defaultPrevented){if(\"ontouchstart\"in document.documentElement)for(const t of[].concat(...document.body.children))$.off(t,\"mouseover\",_);this._popper&&this._popper.destroy(),this._menu.classList.remove(Et),this._element.classList.remove(Et),this._element.setAttribute(\"aria-expanded\",\"false\"),W.removeDataAttribute(this._menu,\"popper\"),$.trigger(this._element,\"hidden.bs.dropdown\",t)}}_getConfig(t){if(\"object\"==typeof(t=super._getConfig(t)).reference&&!l(t.reference)&&\"function\"!=typeof t.reference.getBoundingClientRect)throw new TypeError(`${bt.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`);return t}_createPopper(){if(void 0===i)throw new TypeError(\"Bootstrap's dropdowns require Popper (https://popper.js.org)\");let t=this._element;\"parent\"===this._config.reference?t=this._parent:l(this._config.reference)?t=c(this._config.reference):\"object\"==typeof this._config.reference&&(t=this._config.reference);const e=this._getPopperConfig();this._popper=i.createPopper(t,this._menu,e)}_isShown(){return this._menu.classList.contains(Et)}_getPlacement(){const t=this._parent;if(t.classList.contains(\"dropend\"))return Dt;if(t.classList.contains(\"dropstart\"))return Nt;if(t.classList.contains(\"dropup-center\"))return\"top\";if(t.classList.contains(\"dropdown-center\"))return\"bottom\";const e=\"end\"===getComputedStyle(this._menu).getPropertyValue(\"--bs-position\").trim();return t.classList.contains(\"dropup\")?e?Ot:Lt:e?St:It}_detectNavbar(){return null!==this._element.closest(\".navbar\")}_getOffset(){const{offset:t}=this._config;return\"string\"==typeof t?t.split(\",\").map((t=>Number.parseInt(t,10))):\"function\"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:\"preventOverflow\",options:{boundary:this._config.boundary}},{name:\"offset\",options:{offset:this._getOffset()}}]};return(this._inNavbar||\"static\"===this._config.display)&&(W.setDataAttribute(this._menu,\"popper\",\"static\"),t.modifiers=[{name:\"applyStyles\",enabled:!1}]),{...t,...\"function\"==typeof this._config.popperConfig?this._config.popperConfig(t):this._config.popperConfig}}_selectMenuItem({key:t,target:e}){const i=U.find(\".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)\",this._menu).filter((t=>h(t)));i.length&&w(i,e,t===yt,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=Mt.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===e[t])throw new TypeError(`No method named \"${t}\"`);e[t]()}}))}static clearMenus(t){if(2===t.button||\"keyup\"===t.type&&\"Tab\"!==t.key)return;const e=U.find(Tt);for(const i of e){const e=Mt.getInstance(i);if(!e||!1===e._config.autoClose)continue;const s=t.composedPath(),n=s.includes(e._menu);if(s.includes(e._element)||\"inside\"===e._config.autoClose&&!n||\"outside\"===e._config.autoClose&&n)continue;if(e._menu.contains(t.target)&&(\"keyup\"===t.type&&\"Tab\"===t.key||/input|select|option|textarea|form/i.test(t.target.tagName)))continue;const o={relatedTarget:e._element};\"click\"===t.type&&(o.clickEvent=t),e._completeHide(o)}}static dataApiKeydownHandler(t){const e=/input|textarea/i.test(t.target.tagName),i=\"Escape\"===t.key,s=[vt,yt].includes(t.key);if(!s&&!i)return;if(e&&!i)return;t.preventDefault();const n=this.matches(Ct)?this:U.prev(this,Ct)[0]||U.next(this,Ct)[0]||U.findOne(Ct,t.delegateTarget.parentNode),o=Mt.getOrCreateInstance(n);if(s)return t.stopPropagation(),o.show(),void o._selectMenuItem(t);o._isShown()&&(t.stopPropagation(),o.hide(),n.focus())}}$.on(document,At,Ct,Mt.dataApiKeydownHandler),$.on(document,At,kt,Mt.dataApiKeydownHandler),$.on(document,wt,Mt.clearMenus),$.on(document,\"keyup.bs.dropdown.data-api\",Mt.clearMenus),$.on(document,wt,Ct,(function(t){t.preventDefault(),Mt.getOrCreateInstance(this).toggle()})),b(Mt);const jt=\".fixed-top, .fixed-bottom, .is-fixed, .sticky-top\",$t=\".sticky-top\",Ft=\"padding-right\",zt=\"margin-right\";class Ht{constructor(){this._element=document.body}getWidth(){const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}hide(){const t=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,Ft,(e=>e+t)),this._setElementAttributes(jt,Ft,(e=>e+t)),this._setElementAttributes($t,zt,(e=>e-t))}reset(){this._resetElementAttributes(this._element,\"overflow\"),this._resetElementAttributes(this._element,Ft),this._resetElementAttributes(jt,Ft),this._resetElementAttributes($t,zt)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,\"overflow\"),this._element.style.overflow=\"hidden\"}_setElementAttributes(t,e,i){const s=this.getWidth();this._applyManipulationCallback(t,(t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+s)return;this._saveInitialAttribute(t,e);const n=window.getComputedStyle(t).getPropertyValue(e);t.style.setProperty(e,`${i(Number.parseFloat(n))}px`)}))}_saveInitialAttribute(t,e){const i=t.style.getPropertyValue(e);i&&W.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,(t=>{const i=W.getDataAttribute(t,e);null!==i?(W.removeDataAttribute(t,e),t.style.setProperty(e,i)):t.style.removeProperty(e)}))}_applyManipulationCallback(t,e){if(l(t))e(t);else for(const i of U.find(t,this._element))e(i)}}const qt=\"show\",Bt=\"mousedown.bs.backdrop\",Wt={className:\"modal-backdrop\",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:\"body\"},Rt={className:\"string\",clickCallback:\"(function|null)\",isAnimated:\"boolean\",isVisible:\"boolean\",rootElement:\"(element|string)\"};class Vt extends R{constructor(t){super(),this._config=this._getConfig(t),this._isAppended=!1,this._element=null}static get Default(){return Wt}static get DefaultType(){return Rt}static get NAME(){return\"backdrop\"}show(t){if(!this._config.isVisible)return void v(t);this._append();const e=this._getElement();this._config.isAnimated&&g(e),e.classList.add(qt),this._emulateAnimation((()=>{v(t)}))}hide(t){this._config.isVisible?(this._getElement().classList.remove(qt),this._emulateAnimation((()=>{this.dispose(),v(t)}))):v(t)}dispose(){this._isAppended&&($.off(this._element,Bt),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const t=document.createElement(\"div\");t.className=this._config.className,this._config.isAnimated&&t.classList.add(\"fade\"),this._element=t}return this._element}_configAfterMerge(t){return t.rootElement=c(t.rootElement),t}_append(){if(this._isAppended)return;const t=this._getElement();this._config.rootElement.append(t),$.on(t,Bt,(()=>{v(this._config.clickCallback)})),this._isAppended=!0}_emulateAnimation(t){y(t,this._getElement(),this._config.isAnimated)}}const Kt=\".bs.focustrap\",Qt=\"backward\",Xt={autofocus:!0,trapElement:null},Yt={autofocus:\"boolean\",trapElement:\"element\"};class Ut extends R{constructor(t){super(),this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return Xt}static get DefaultType(){return Yt}static get NAME(){return\"focustrap\"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),$.off(document,Kt),$.on(document,\"focusin.bs.focustrap\",(t=>this._handleFocusin(t))),$.on(document,\"keydown.tab.bs.focustrap\",(t=>this._handleKeydown(t))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,$.off(document,Kt))}_handleFocusin(t){const{trapElement:e}=this._config;if(t.target===document||t.target===e||e.contains(t.target))return;const i=U.focusableChildren(e);0===i.length?e.focus():this._lastTabNavDirection===Qt?i[i.length-1].focus():i[0].focus()}_handleKeydown(t){\"Tab\"===t.key&&(this._lastTabNavDirection=t.shiftKey?Qt:\"forward\")}}const Gt=\"hidden.bs.modal\",Jt=\"show.bs.modal\",Zt=\"modal-open\",te=\"show\",ee=\"modal-static\",ie={backdrop:!0,focus:!0,keyboard:!0},se={backdrop:\"(boolean|string)\",focus:\"boolean\",keyboard:\"boolean\"};class ne extends V{constructor(t,e){super(t,e),this._dialog=U.findOne(\".modal-dialog\",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new Ht,this._addEventListeners()}static get Default(){return ie}static get DefaultType(){return se}static get NAME(){return\"modal\"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||$.trigger(this._element,Jt,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(Zt),this._adjustDialog(),this._backdrop.show((()=>this._showElement(t))))}hide(){this._isShown&&!this._isTransitioning&&($.trigger(this._element,\"hide.bs.modal\").defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(te),this._queueCallback((()=>this._hideModal()),this._element,this._isAnimated())))}dispose(){for(const t of[window,this._dialog])$.off(t,\".bs.modal\");this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new Vt({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new Ut({trapElement:this._element})}_showElement(t){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display=\"block\",this._element.removeAttribute(\"aria-hidden\"),this._element.setAttribute(\"aria-modal\",!0),this._element.setAttribute(\"role\",\"dialog\"),this._element.scrollTop=0;const e=U.findOne(\".modal-body\",this._dialog);e&&(e.scrollTop=0),g(this._element),this._element.classList.add(te),this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,$.trigger(this._element,\"shown.bs.modal\",{relatedTarget:t})}),this._dialog,this._isAnimated())}_addEventListeners(){$.on(this._element,\"keydown.dismiss.bs.modal\",(t=>{if(\"Escape\"===t.key)return this._config.keyboard?(t.preventDefault(),void this.hide()):void this._triggerBackdropTransition()})),$.on(window,\"resize.bs.modal\",(()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()})),$.on(this._element,\"mousedown.dismiss.bs.modal\",(t=>{$.one(this._element,\"click.dismiss.bs.modal\",(e=>{this._element===t.target&&this._element===e.target&&(\"static\"!==this._config.backdrop?this._config.backdrop&&this.hide():this._triggerBackdropTransition())}))}))}_hideModal(){this._element.style.display=\"none\",this._element.setAttribute(\"aria-hidden\",!0),this._element.removeAttribute(\"aria-modal\"),this._element.removeAttribute(\"role\"),this._isTransitioning=!1,this._backdrop.hide((()=>{document.body.classList.remove(Zt),this._resetAdjustments(),this._scrollBar.reset(),$.trigger(this._element,Gt)}))}_isAnimated(){return this._element.classList.contains(\"fade\")}_triggerBackdropTransition(){if($.trigger(this._element,\"hidePrevented.bs.modal\").defaultPrevented)return;const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._element.style.overflowY;\"hidden\"===e||this._element.classList.contains(ee)||(t||(this._element.style.overflowY=\"hidden\"),this._element.classList.add(ee),this._queueCallback((()=>{this._element.classList.remove(ee),this._queueCallback((()=>{this._element.style.overflowY=e}),this._dialog)}),this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;if(i&&!t){const t=m()?\"paddingLeft\":\"paddingRight\";this._element.style[t]=`${e}px`}if(!i&&t){const t=m()?\"paddingRight\":\"paddingLeft\";this._element.style[t]=`${e}px`}}_resetAdjustments(){this._element.style.paddingLeft=\"\",this._element.style.paddingRight=\"\"}static jQueryInterface(t,e){return this.each((function(){const i=ne.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===i[t])throw new TypeError(`No method named \"${t}\"`);i[t](e)}}))}}$.on(document,\"click.bs.modal.data-api\",'[data-bs-toggle=\"modal\"]',(function(t){const e=r(this);[\"A\",\"AREA\"].includes(this.tagName)&&t.preventDefault(),$.one(e,Jt,(t=>{t.defaultPrevented||$.one(e,Gt,(()=>{h(this)&&this.focus()}))}));const i=U.findOne(\".modal.show\");i&&ne.getInstance(i).hide(),ne.getOrCreateInstance(e).toggle(this)})),K(ne),b(ne);const oe=\"show\",re=\"showing\",ae=\"hiding\",le=\".offcanvas.show\",ce=\"hidePrevented.bs.offcanvas\",he=\"hidden.bs.offcanvas\",de={backdrop:!0,keyboard:!0,scroll:!1},ue={backdrop:\"(boolean|string)\",keyboard:\"boolean\",scroll:\"boolean\"};class _e extends V{constructor(t,e){super(t,e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return de}static get DefaultType(){return ue}static get NAME(){return\"offcanvas\"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||$.trigger(this._element,\"show.bs.offcanvas\",{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||(new Ht).hide(),this._element.setAttribute(\"aria-modal\",!0),this._element.setAttribute(\"role\",\"dialog\"),this._element.classList.add(re),this._queueCallback((()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add(oe),this._element.classList.remove(re),$.trigger(this._element,\"shown.bs.offcanvas\",{relatedTarget:t})}),this._element,!0))}hide(){this._isShown&&($.trigger(this._element,\"hide.bs.offcanvas\").defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add(ae),this._backdrop.hide(),this._queueCallback((()=>{this._element.classList.remove(oe,ae),this._element.removeAttribute(\"aria-modal\"),this._element.removeAttribute(\"role\"),this._config.scroll||(new Ht).reset(),$.trigger(this._element,he)}),this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const t=Boolean(this._config.backdrop);return new Vt({className:\"offcanvas-backdrop\",isVisible:t,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:t?()=>{\"static\"!==this._config.backdrop?this.hide():$.trigger(this._element,ce)}:null})}_initializeFocusTrap(){return new Ut({trapElement:this._element})}_addEventListeners(){$.on(this._element,\"keydown.dismiss.bs.offcanvas\",(t=>{\"Escape\"===t.key&&(this._config.keyboard?this.hide():$.trigger(this._element,ce))}))}static jQueryInterface(t){return this.each((function(){const e=_e.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===e[t]||t.startsWith(\"_\")||\"constructor\"===t)throw new TypeError(`No method named \"${t}\"`);e[t](this)}}))}}$.on(document,\"click.bs.offcanvas.data-api\",'[data-bs-toggle=\"offcanvas\"]',(function(t){const e=r(this);if([\"A\",\"AREA\"].includes(this.tagName)&&t.preventDefault(),d(this))return;$.one(e,he,(()=>{h(this)&&this.focus()}));const i=U.findOne(le);i&&i!==e&&_e.getInstance(i).hide(),_e.getOrCreateInstance(e).toggle(this)})),$.on(window,\"load.bs.offcanvas.data-api\",(()=>{for(const t of U.find(le))_e.getOrCreateInstance(t).show()})),$.on(window,\"resize.bs.offcanvas\",(()=>{for(const t of U.find(\"[aria-modal][class*=show][class*=offcanvas-]\"))\"fixed\"!==getComputedStyle(t).position&&_e.getOrCreateInstance(t).hide()})),K(_e),b(_e);const ge=new Set([\"background\",\"cite\",\"href\",\"itemtype\",\"longdesc\",\"poster\",\"src\",\"xlink:href\"]),fe=/^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i,pe=/^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i,me=(t,e)=>{const i=t.nodeName.toLowerCase();return e.includes(i)?!ge.has(i)||Boolean(fe.test(t.nodeValue)||pe.test(t.nodeValue)):e.filter((t=>t instanceof RegExp)).some((t=>t.test(i)))},be={\"*\":[\"class\",\"dir\",\"id\",\"lang\",\"role\",/^aria-[\\w-]*$/i],a:[\"target\",\"href\",\"title\",\"rel\"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:[\"src\",\"srcset\",\"alt\",\"title\",\"width\",\"height\"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},ve={allowList:be,content:{},extraClass:\"\",html:!1,sanitize:!0,sanitizeFn:null,template:\"
\"},ye={allowList:\"object\",content:\"object\",extraClass:\"(string|function)\",html:\"boolean\",sanitize:\"boolean\",sanitizeFn:\"(null|function)\",template:\"string\"},we={entry:\"(string|element|function|null)\",selector:\"(string|element)\"};class Ae extends R{constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return ve}static get DefaultType(){return ye}static get NAME(){return\"TemplateFactory\"}getContent(){return Object.values(this._config.content).map((t=>this._resolvePossibleFunction(t))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(t){return this._checkContent(t),this._config.content={...this._config.content,...t},this}toHtml(){const t=document.createElement(\"div\");t.innerHTML=this._maybeSanitize(this._config.template);for(const[e,i]of Object.entries(this._config.content))this._setContent(t,i,e);const e=t.children[0],i=this._resolvePossibleFunction(this._config.extraClass);return i&&e.classList.add(...i.split(\" \")),e}_typeCheckConfig(t){super._typeCheckConfig(t),this._checkContent(t.content)}_checkContent(t){for(const[e,i]of Object.entries(t))super._typeCheckConfig({selector:e,entry:i},we)}_setContent(t,e,i){const s=U.findOne(i,t);s&&((e=this._resolvePossibleFunction(e))?l(e)?this._putElementInTemplate(c(e),s):this._config.html?s.innerHTML=this._maybeSanitize(e):s.textContent=e:s.remove())}_maybeSanitize(t){return this._config.sanitize?function(t,e,i){if(!t.length)return t;if(i&&\"function\"==typeof i)return i(t);const s=(new window.DOMParser).parseFromString(t,\"text/html\"),n=[].concat(...s.body.querySelectorAll(\"*\"));for(const t of n){const i=t.nodeName.toLowerCase();if(!Object.keys(e).includes(i)){t.remove();continue}const s=[].concat(...t.attributes),n=[].concat(e[\"*\"]||[],e[i]||[]);for(const e of s)me(e,n)||t.removeAttribute(e.nodeName)}return s.body.innerHTML}(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return\"function\"==typeof t?t(this):t}_putElementInTemplate(t,e){if(this._config.html)return e.innerHTML=\"\",void e.append(t);e.textContent=t.textContent}}const Ee=new Set([\"sanitize\",\"allowList\",\"sanitizeFn\"]),Ce=\"fade\",Te=\"show\",ke=\".modal\",Le=\"hide.bs.modal\",Oe=\"hover\",Ie=\"focus\",Se={AUTO:\"auto\",TOP:\"top\",RIGHT:m()?\"left\":\"right\",BOTTOM:\"bottom\",LEFT:m()?\"right\":\"left\"},De={allowList:be,animation:!0,boundary:\"clippingParents\",container:!1,customClass:\"\",delay:0,fallbackPlacements:[\"top\",\"right\",\"bottom\",\"left\"],html:!1,offset:[0,0],placement:\"top\",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'
',title:\"\",trigger:\"hover focus\"},Ne={allowList:\"object\",animation:\"boolean\",boundary:\"(string|element)\",container:\"(string|element|boolean)\",customClass:\"(string|function)\",delay:\"(number|object)\",fallbackPlacements:\"array\",html:\"boolean\",offset:\"(array|string|function)\",placement:\"(string|function)\",popperConfig:\"(null|object|function)\",sanitize:\"boolean\",sanitizeFn:\"(null|function)\",selector:\"(string|boolean)\",template:\"string\",title:\"(string|element|function)\",trigger:\"string\"};class Pe extends V{constructor(t,e){if(void 0===i)throw new TypeError(\"Bootstrap's tooltips require Popper (https://popper.js.org)\");super(t,e),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return De}static get DefaultType(){return Ne}static get NAME(){return\"tooltip\"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),$.off(this._element.closest(ke),Le,this._hideModalHandler),this._element.getAttribute(\"data-bs-original-title\")&&this._element.setAttribute(\"title\",this._element.getAttribute(\"data-bs-original-title\")),this._disposePopper(),super.dispose()}show(){if(\"none\"===this._element.style.display)throw new Error(\"Please use show on visible elements\");if(!this._isWithContent()||!this._isEnabled)return;const t=$.trigger(this._element,this.constructor.eventName(\"show\")),e=(u(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(t.defaultPrevented||!e)return;this._disposePopper();const i=this._getTipElement();this._element.setAttribute(\"aria-describedby\",i.getAttribute(\"id\"));const{container:s}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(s.append(i),$.trigger(this._element,this.constructor.eventName(\"inserted\"))),this._popper=this._createPopper(i),i.classList.add(Te),\"ontouchstart\"in document.documentElement)for(const t of[].concat(...document.body.children))$.on(t,\"mouseover\",_);this._queueCallback((()=>{$.trigger(this._element,this.constructor.eventName(\"shown\")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(this._isShown()&&!$.trigger(this._element,this.constructor.eventName(\"hide\")).defaultPrevented){if(this._getTipElement().classList.remove(Te),\"ontouchstart\"in document.documentElement)for(const t of[].concat(...document.body.children))$.off(t,\"mouseover\",_);this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,this._isHovered=null,this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute(\"aria-describedby\"),$.trigger(this._element,this.constructor.eventName(\"hidden\")))}),this.tip,this._isAnimated())}}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(t){const e=this._getTemplateFactory(t).toHtml();if(!e)return null;e.classList.remove(Ce,Te),e.classList.add(`bs-${this.constructor.NAME}-auto`);const i=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME).toString();return e.setAttribute(\"id\",i),this._isAnimated()&&e.classList.add(Ce),e}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new Ae({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{\".tooltip-inner\":this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute(\"data-bs-original-title\")}_initializeOnDelegatedTarget(t){return this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(Ce)}_isShown(){return this.tip&&this.tip.classList.contains(Te)}_createPopper(t){const e=\"function\"==typeof this._config.placement?this._config.placement.call(this,t,this._element):this._config.placement,s=Se[e.toUpperCase()];return i.createPopper(this._element,t,this._getPopperConfig(s))}_getOffset(){const{offset:t}=this._config;return\"string\"==typeof t?t.split(\",\").map((t=>Number.parseInt(t,10))):\"function\"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return\"function\"==typeof t?t.call(this._element):t}_getPopperConfig(t){const e={placement:t,modifiers:[{name:\"flip\",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:\"offset\",options:{offset:this._getOffset()}},{name:\"preventOverflow\",options:{boundary:this._config.boundary}},{name:\"arrow\",options:{element:`.${this.constructor.NAME}-arrow`}},{name:\"preSetPlacement\",enabled:!0,phase:\"beforeMain\",fn:t=>{this._getTipElement().setAttribute(\"data-popper-placement\",t.state.placement)}}]};return{...e,...\"function\"==typeof this._config.popperConfig?this._config.popperConfig(e):this._config.popperConfig}}_setListeners(){const t=this._config.trigger.split(\" \");for(const e of t)if(\"click\"===e)$.on(this._element,this.constructor.eventName(\"click\"),this._config.selector,(t=>{this._initializeOnDelegatedTarget(t).toggle()}));else if(\"manual\"!==e){const t=e===Oe?this.constructor.eventName(\"mouseenter\"):this.constructor.eventName(\"focusin\"),i=e===Oe?this.constructor.eventName(\"mouseleave\"):this.constructor.eventName(\"focusout\");$.on(this._element,t,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger[\"focusin\"===t.type?Ie:Oe]=!0,e._enter()})),$.on(this._element,i,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger[\"focusout\"===t.type?Ie:Oe]=e._element.contains(t.relatedTarget),e._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},$.on(this._element.closest(ke),Le,this._hideModalHandler)}_fixTitle(){const t=this._element.getAttribute(\"title\");t&&(this._element.getAttribute(\"aria-label\")||this._element.textContent.trim()||this._element.setAttribute(\"aria-label\",t),this._element.setAttribute(\"data-bs-original-title\",t),this._element.removeAttribute(\"title\"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(t,e){clearTimeout(this._timeout),this._timeout=setTimeout(t,e)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(t){const e=W.getDataAttributes(this._element);for(const t of Object.keys(e))Ee.has(t)&&delete e[t];return t={...e,...\"object\"==typeof t&&t?t:{}},t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t.container=!1===t.container?document.body:c(t.container),\"number\"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),\"number\"==typeof t.title&&(t.title=t.title.toString()),\"number\"==typeof t.content&&(t.content=t.content.toString()),t}_getDelegateConfig(){const t={};for(const e in this._config)this.constructor.Default[e]!==this._config[e]&&(t[e]=this._config[e]);return t.selector=!1,t.trigger=\"manual\",t}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(t){return this.each((function(){const e=Pe.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===e[t])throw new TypeError(`No method named \"${t}\"`);e[t]()}}))}}b(Pe);const xe={...Pe.Default,content:\"\",offset:[0,8],placement:\"right\",template:'

',trigger:\"click\"},Me={...Pe.DefaultType,content:\"(null|string|element|function)\"};class je extends Pe{static get Default(){return xe}static get DefaultType(){return Me}static get NAME(){return\"popover\"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{\".popover-header\":this._getTitle(),\".popover-body\":this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(t){return this.each((function(){const e=je.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===e[t])throw new TypeError(`No method named \"${t}\"`);e[t]()}}))}}b(je);const $e=\"click.bs.scrollspy\",Fe=\"active\",ze=\"[href]\",He={offset:null,rootMargin:\"0px 0px -25%\",smoothScroll:!1,target:null,threshold:[.1,.5,1]},qe={offset:\"(number|null)\",rootMargin:\"string\",smoothScroll:\"boolean\",target:\"element\",threshold:\"array\"};class Be extends V{constructor(t,e){super(t,e),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement=\"visible\"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return He}static get DefaultType(){return qe}static get NAME(){return\"scrollspy\"}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const t of this._observableSections.values())this._observer.observe(t)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(t){return t.target=c(t.target)||document.body,t.rootMargin=t.offset?`${t.offset}px 0px -30%`:t.rootMargin,\"string\"==typeof t.threshold&&(t.threshold=t.threshold.split(\",\").map((t=>Number.parseFloat(t)))),t}_maybeEnableSmoothScroll(){this._config.smoothScroll&&($.off(this._config.target,$e),$.on(this._config.target,$e,ze,(t=>{const e=this._observableSections.get(t.target.hash);if(e){t.preventDefault();const i=this._rootElement||window,s=e.offsetTop-this._element.offsetTop;if(i.scrollTo)return void i.scrollTo({top:s,behavior:\"smooth\"});i.scrollTop=s}})))}_getNewObserver(){const t={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver((t=>this._observerCallback(t)),t)}_observerCallback(t){const e=t=>this._targetLinks.get(`#${t.target.id}`),i=t=>{this._previousScrollData.visibleEntryTop=t.target.offsetTop,this._process(e(t))},s=(this._rootElement||document.documentElement).scrollTop,n=s>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=s;for(const o of t){if(!o.isIntersecting){this._activeTarget=null,this._clearActiveClass(e(o));continue}const t=o.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(n&&t){if(i(o),!s)return}else n||t||i(o)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const t=U.find(ze,this._config.target);for(const e of t){if(!e.hash||d(e))continue;const t=U.findOne(e.hash,this._element);h(t)&&(this._targetLinks.set(e.hash,e),this._observableSections.set(e.hash,t))}}_process(t){this._activeTarget!==t&&(this._clearActiveClass(this._config.target),this._activeTarget=t,t.classList.add(Fe),this._activateParents(t),$.trigger(this._element,\"activate.bs.scrollspy\",{relatedTarget:t}))}_activateParents(t){if(t.classList.contains(\"dropdown-item\"))U.findOne(\".dropdown-toggle\",t.closest(\".dropdown\")).classList.add(Fe);else for(const e of U.parents(t,\".nav, .list-group\"))for(const t of U.prev(e,\".nav-link, .nav-item > .nav-link, .list-group-item\"))t.classList.add(Fe)}_clearActiveClass(t){t.classList.remove(Fe);const e=U.find(\"[href].active\",t);for(const t of e)t.classList.remove(Fe)}static jQueryInterface(t){return this.each((function(){const e=Be.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===e[t]||t.startsWith(\"_\")||\"constructor\"===t)throw new TypeError(`No method named \"${t}\"`);e[t]()}}))}}$.on(window,\"load.bs.scrollspy.data-api\",(()=>{for(const t of U.find('[data-bs-spy=\"scroll\"]'))Be.getOrCreateInstance(t)})),b(Be);const We=\"ArrowLeft\",Re=\"ArrowRight\",Ve=\"ArrowUp\",Ke=\"ArrowDown\",Qe=\"active\",Xe=\"fade\",Ye=\"show\",Ue='[data-bs-toggle=\"tab\"], [data-bs-toggle=\"pill\"], [data-bs-toggle=\"list\"]',Ge=`.nav-link:not(.dropdown-toggle), .list-group-item:not(.dropdown-toggle), [role=\"tab\"]:not(.dropdown-toggle), ${Ue}`;class Je extends V{constructor(t){super(t),this._parent=this._element.closest('.list-group, .nav, [role=\"tablist\"]'),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),$.on(this._element,\"keydown.bs.tab\",(t=>this._keydown(t))))}static get NAME(){return\"tab\"}show(){const t=this._element;if(this._elemIsActive(t))return;const e=this._getActiveElem(),i=e?$.trigger(e,\"hide.bs.tab\",{relatedTarget:t}):null;$.trigger(t,\"show.bs.tab\",{relatedTarget:e}).defaultPrevented||i&&i.defaultPrevented||(this._deactivate(e,t),this._activate(t,e))}_activate(t,e){t&&(t.classList.add(Qe),this._activate(r(t)),this._queueCallback((()=>{\"tab\"===t.getAttribute(\"role\")?(t.removeAttribute(\"tabindex\"),t.setAttribute(\"aria-selected\",!0),this._toggleDropDown(t,!0),$.trigger(t,\"shown.bs.tab\",{relatedTarget:e})):t.classList.add(Ye)}),t,t.classList.contains(Xe)))}_deactivate(t,e){t&&(t.classList.remove(Qe),t.blur(),this._deactivate(r(t)),this._queueCallback((()=>{\"tab\"===t.getAttribute(\"role\")?(t.setAttribute(\"aria-selected\",!1),t.setAttribute(\"tabindex\",\"-1\"),this._toggleDropDown(t,!1),$.trigger(t,\"hidden.bs.tab\",{relatedTarget:e})):t.classList.remove(Ye)}),t,t.classList.contains(Xe)))}_keydown(t){if(![We,Re,Ve,Ke].includes(t.key))return;t.stopPropagation(),t.preventDefault();const e=[Re,Ke].includes(t.key),i=w(this._getChildren().filter((t=>!d(t))),t.target,e,!0);i&&(i.focus({preventScroll:!0}),Je.getOrCreateInstance(i).show())}_getChildren(){return U.find(Ge,this._parent)}_getActiveElem(){return this._getChildren().find((t=>this._elemIsActive(t)))||null}_setInitialAttributes(t,e){this._setAttributeIfNotExists(t,\"role\",\"tablist\");for(const t of e)this._setInitialAttributesOnChild(t)}_setInitialAttributesOnChild(t){t=this._getInnerElement(t);const e=this._elemIsActive(t),i=this._getOuterElement(t);t.setAttribute(\"aria-selected\",e),i!==t&&this._setAttributeIfNotExists(i,\"role\",\"presentation\"),e||t.setAttribute(\"tabindex\",\"-1\"),this._setAttributeIfNotExists(t,\"role\",\"tab\"),this._setInitialAttributesOnTargetPanel(t)}_setInitialAttributesOnTargetPanel(t){const e=r(t);e&&(this._setAttributeIfNotExists(e,\"role\",\"tabpanel\"),t.id&&this._setAttributeIfNotExists(e,\"aria-labelledby\",`#${t.id}`))}_toggleDropDown(t,e){const i=this._getOuterElement(t);if(!i.classList.contains(\"dropdown\"))return;const s=(t,s)=>{const n=U.findOne(t,i);n&&n.classList.toggle(s,e)};s(\".dropdown-toggle\",Qe),s(\".dropdown-menu\",Ye),i.setAttribute(\"aria-expanded\",e)}_setAttributeIfNotExists(t,e,i){t.hasAttribute(e)||t.setAttribute(e,i)}_elemIsActive(t){return t.classList.contains(Qe)}_getInnerElement(t){return t.matches(Ge)?t:U.findOne(Ge,t)}_getOuterElement(t){return t.closest(\".nav-item, .list-group-item\")||t}static jQueryInterface(t){return this.each((function(){const e=Je.getOrCreateInstance(this);if(\"string\"==typeof t){if(void 0===e[t]||t.startsWith(\"_\")||\"constructor\"===t)throw new TypeError(`No method named \"${t}\"`);e[t]()}}))}}$.on(document,\"click.bs.tab\",Ue,(function(t){[\"A\",\"AREA\"].includes(this.tagName)&&t.preventDefault(),d(this)||Je.getOrCreateInstance(this).show()})),$.on(window,\"load.bs.tab\",(()=>{for(const t of U.find('.active[data-bs-toggle=\"tab\"], .active[data-bs-toggle=\"pill\"], .active[data-bs-toggle=\"list\"]'))Je.getOrCreateInstance(t)})),b(Je);const Ze=\"hide\",ti=\"show\",ei=\"showing\",ii={animation:\"boolean\",autohide:\"boolean\",delay:\"number\"},si={animation:!0,autohide:!0,delay:5e3};class ni extends V{constructor(t,e){super(t,e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return si}static get DefaultType(){return ii}static get NAME(){return\"toast\"}show(){$.trigger(this._element,\"show.bs.toast\").defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add(\"fade\"),this._element.classList.remove(Ze),g(this._element),this._element.classList.add(ti,ei),this._queueCallback((()=>{this._element.classList.remove(ei),$.trigger(this._element,\"shown.bs.toast\"),this._maybeScheduleHide()}),this._element,this._config.animation))}hide(){this.isShown()&&($.trigger(this._element,\"hide.bs.toast\").defaultPrevented||(this._element.classList.add(ei),this._queueCallback((()=>{this._element.classList.add(Ze),this._element.classList.remove(ei,ti),$.trigger(this._element,\"hidden.bs.toast\")}),this._element,this._config.animation)))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(ti),super.dispose()}isShown(){return this._element.classList.contains(ti)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout((()=>{this.hide()}),this._config.delay)))}_onInteraction(t,e){switch(t.type){case\"mouseover\":case\"mouseout\":this._hasMouseInteraction=e;break;case\"focusin\":case\"focusout\":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const i=t.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){$.on(this._element,\"mouseover.bs.toast\",(t=>this._onInteraction(t,!0))),$.on(this._element,\"mouseout.bs.toast\",(t=>this._onInteraction(t,!1))),$.on(this._element,\"focusin.bs.toast\",(t=>this._onInteraction(t,!0))),$.on(this._element,\"focusout.bs.toast\",(t=>this._onInteraction(t,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=ni.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===e[t])throw new TypeError(`No method named \"${t}\"`);e[t](this)}}))}}return K(ni),b(ni),{Alert:Q,Button:Y,Carousel:ht,Collapse:mt,Dropdown:Mt,Modal:ne,Offcanvas:_e,Popover:je,ScrollSpy:Be,Tab:Je,Toast:ni,Tooltip:Pe}}));\n//# sourceMappingURL=bootstrap.min.js.map","/*! For license information please see mmenu.js.LICENSE.txt */\n(()=>{\"use strict\";const e={hooks:{},navbar:{add:!0,title:\"Menu\",titleLink:\"parent\"},slidingSubmenus:!0},t={classNames:{divider:\"Divider\",nolistview:\"NoListview\",nopanel:\"NoPanel\",panel:\"Panel\",selected:\"Selected\",vertical:\"Vertical\"},language:null,panelNodetype:[\"ul\",\"ol\",\"div\"],screenReader:{closeSubmenu:\"Close submenu\",openSubmenu:\"Open submenu\",toggleSubmenu:\"Toggle submenu\"}},n=(e,t)=>{\"object\"!=s(e)&&(e={}),\"object\"!=s(t)&&(t={});for(let i in t)t.hasOwnProperty(i)&&(void 0===e[i]?e[i]=t[i]:\"object\"==s(e[i])&&n(e[i],t[i]));return e},s=e=>({}.toString.call(e).match(/\\s([a-zA-Z]+)/)[1].toLowerCase()),i=()=>\"mm-\"+a++;let a=0;const o=e=>\"mm-clone-\"==e.slice(0,9)?e:`mm-clone-${e}`,r=e=>\"mm-clone-\"==e.slice(0,9)?e.slice(9):e,l={},m=(e,t)=>{void 0===l[t]&&(l[t]={}),n(l[t],e)},c=e=>{const t=e.split(\".\"),n=document.createElement(t.shift());return n.classList.add(...t),n},d=(e,t)=>t.length?[].slice.call(e.querySelectorAll(t)):[],h=(e,t)=>{const n=Array.prototype.slice.call(e.children);return t?n.filter((e=>e.matches(t))):n},p=(e,t)=>{let n=[],s=e.parentElement;for(;s;)n.push(s),s=s.parentElement;return t?n.filter((e=>e.matches(t))):n},u=e=>e.filter((e=>!e.matches(\".mm-hidden\"))),f=e=>{let t=[];return u(e).forEach((e=>{t.push(...h(e,\"a.mm-listitem__text\"))})),t.filter((e=>!e.matches(\".mm-btn--next\")))},b=(e,t,n)=>{e.matches(\".\"+t)&&e.classList.add(n)};let v={};const g=(e,t,n)=>{\"number\"==typeof e&&(e=\"(min-width: \"+e+\"px)\"),v[e]=v[e]||[],v[e].push({yes:t,no:n})},L=(e,t)=>{var n=t.matches?\"yes\":\"no\";for(let t=0;t{for(let e in v){let t=window.matchMedia(e);L(e,t),t.onchange=n=>{L(e,t)}}})(),this.trigger(\"init:after\"),this}openPanel(e,t=!0,n=!0){if(!e)return;e=e.closest(\".mm-panel\"),this.trigger(\"openPanel:before\",[e,{animation:t,setfocus:n}]);const s=e.closest(\".mm-listitem--vertical\");if(s){s.classList.add(\"mm-listitem--opened\");const e=s.closest(\".mm-panel\");this.openPanel(e)}else{const n=h(this.node.pnls,\".mm-panel--opened\")[0];e.matches(\".mm-panel--parent\")&&n&&n.classList.add(\"mm-panel--highest\");const s=[\"mm-panel--opened\",\"mm-panel--parent\"],i=[];t?s.push(\"mm-panel--noanimation\"):i.push(\"mm-panel--noanimation\"),h(this.node.pnls,\".mm-panel\").forEach((t=>{t.classList.add(...i),t.classList.remove(...s),t!==n&&t.classList.remove(\"mm-panel--highest\"),t===e?t.removeAttribute(\"inert\"):t.setAttribute(\"inert\",\"true\")})),e.classList.add(\"mm-panel--opened\");let a=d(this.node.pnls,`#${e.dataset.mmParent}`)[0];for(;a;)a=a.closest(\".mm-panel\"),a.classList.add(\"mm-panel--parent\"),a=d(this.node.pnls,`#${a.dataset.mmParent}`)[0]}this.trigger(\"openPanel:after\",[e,{animation:t,setfocus:n}])}closePanel(e,t=!0,n=!0){if(e&&(e.matches(\".mm-panel--opened\")||e.parentElement.matches(\".mm-listitem--opened\"))){if(this.trigger(\"closePanel:before\",[e]),e.parentElement.matches(\".mm-listitem--vertical\"))e.parentElement.classList.remove(\"mm-listitem--opened\");else if(e.dataset.mmParent){const s=d(this.node.pnls,`#${e.dataset.mmParent}`)[0];this.openPanel(s,t,n)}else{const s=h(this.node.pnls,\".mm-panel--parent\").pop();if(s&&s!==e)this.openPanel(s,t,n);else{const s=h(this.node.pnls,\".mm-panel\")[0];s&&s!==e&&this.openPanel(s,t,n)}}this.trigger(\"closePanel:after\",[e])}}togglePanel(e){let t=\"openPanel\";(e.parentElement.matches(\".mm-listitem--opened\")||e.matches(\".mm-panel--opened\"))&&(t=\"closePanel\"),this[t](e)}setSelected(e){this.trigger(\"setSelected:before\",[e]),d(this.node.menu,\".mm-listitem--selected\").forEach((e=>{e.classList.remove(\"mm-listitem--selected\")})),e.classList.add(\"mm-listitem--selected\"),this.trigger(\"setSelected:after\",[e])}bind(e,t){this.hook[e]=this.hook[e]||[],this.hook[e].push(t)}trigger(e,t){if(this.hook[e])for(var n=0,s=this.hook[e].length;n{e.forEach((e=>{e.addedNodes.forEach((e=>{e.matches(this.conf.panelNodetype.join(\", \"))&&this._initListview(e)}))}))}))),P(this,E,new MutationObserver((e=>{e.forEach((e=>{e.addedNodes.forEach((e=>{this._initListitem(e)}))}))}))),P(this,w,new MutationObserver((e=>{e.forEach((e=>{e.addedNodes.forEach((e=>{(null==e?void 0:e.matches(this.conf.panelNodetype.join(\", \")))&&this._initSubPanel(e)}))}))})))}_initAPI(){const e=this;this.API={},this._api.forEach((t=>{this.API[t]=function(){return e[t].apply(e,arguments)}})),this.node.menu.mmApi=this.API}_initHooks(){for(let e in this.opts.hooks)this.bind(e,this.opts.hooks[e])}_initAddons(){this.trigger(\"initAddons:before\");for(let e in S.addons)S.addons[e].call(this);this.trigger(\"initAddons:after\")}_initMenu(){this.trigger(\"initMenu:before\"),this.node.wrpr=this.node.wrpr||this.node.menu.parentElement,this.node.wrpr.classList.add(\"mm-wrapper\"),this.node.menu.classList.add(\"mm-menu\"),this.node.menu.id=this.node.menu.id||i(),this.node.menu.setAttribute(\"aria-label\",this.i18n(this.opts.navbar.title||\"Menu\")),this.node.menu.setAttribute(\"aria-modal\",\"true\"),this.node.menu.setAttribute(\"role\",\"dialog\");const e=h(this.node.menu).filter((e=>e.matches(this.conf.panelNodetype.join(\", \"))));this.node.pnls=c(\"div.mm-panels\"),this.node.menu.append(this.node.pnls),e.forEach((e=>{this._initPanel(e)})),this.trigger(\"initMenu:after\")}_initPanels(){this.trigger(\"initPanels:before\"),this.node.menu.addEventListener(\"click\",(e=>{var t,n;const s=(null===(n=null===(t=e.target)||void 0===t?void 0:t.closest(\"a[href]\"))||void 0===n?void 0:n.getAttribute(\"href\"))||\"\";if(\"#\"===s.slice(0,1))try{const t=d(this.node.menu,s)[0];t&&(e.preventDefault(),this.togglePanel(t))}catch(e){}}),{capture:!0}),this.trigger(\"initPanels:after\")}_initPanel(e){var t;if(!e.matches(\".mm-panel\")&&(b(e,this.conf.classNames.panel,\"mm-panel\"),b(e,this.conf.classNames.nopanel,\"mm-nopanel\"),!e.matches(\".mm-nopanel\"))){if(this.trigger(\"initPanel:before\",[e]),e.id=e.id||i(),e.matches(\"ul, ol\")){const t=c(\"div\");t.id=e.id,e.removeAttribute(\"id\"),[].slice.call(e.classList).filter((e=>\"mm-\"===e.slice(0,3))).forEach((n=>{t.classList.add(n),e.classList.remove(n)})),Object.keys(e.dataset).filter((e=>\"mm\"===e.slice(0,2))).forEach((n=>{t.dataset[n]=e.dataset[n],delete e.dataset[n]})),e.before(t),t.append(e),e=t}return e.classList.add(\"mm-panel\"),(null===(t=e.parentElement)||void 0===t?void 0:t.matches(\".mm-listitem--vertical\"))||this.node.pnls.append(e),this._initNavbar(e),h(e,\"ul, ol\").forEach((e=>{this._initListview(e)})),y(this,_).observe(e,{childList:!0}),this.trigger(\"initPanel:after\",[e]),e}}_initNavbar(e){if(h(e,\".mm-navbar\").length)return;let t=null,n=null;if(e.dataset.mmParent)for(t=d(this.node.pnls,`#${e.dataset.mmParent}`)[0],n=t.closest(\".mm-panel\");n.closest(\".mm-listitem--vertical\");)n=n.parentElement.closest(\".mm-panel\");if(null==t?void 0:t.matches(\".mm-listitem--vertical\"))return;this.trigger(\"initNavbar:before\",[e]);const s=c(\"div.mm-navbar\");if(this.opts.navbar.add||s.classList.add(\"mm-hidden\"),n){const e=c(\"a.mm-btn.mm-btn--prev.mm-navbar__btn\");e.href=`#${n.id}`,e.setAttribute(\"aria-label\",this.i18n(this.conf.screenReader.closeSubmenu)),s.append(e)}let i=null;t?i=h(t,\".mm-listitem__text\")[0]:n&&(i=d(n,'a[href=\"#'+e.id+'\"]')[0]);const a=c(\"a.mm-navbar__title\");switch(a.tabIndex=-1,a.setAttribute(\"aria-hidden\",\"true\"),this.opts.navbar.titleLink){case\"anchor\":i&&(a.href=i.getAttribute(\"href\"));break;case\"parent\":n&&(a.href=`#${n.id}`)}const o=c(\"span\");var r;o.innerHTML=e.dataset.mmTitle||((r=i)?[].slice.call(r.childNodes).filter((e=>e.nodeType===Node.TEXT_NODE)).map((e=>e.nodeValue.trim())).join(\" \"):\"\")||this.i18n(this.opts.navbar.title||\"Menu\"),e.prepend(s),s.append(a),a.append(o),this.trigger(\"initNavbar:after\",[e])}_initListview(e){[\"htmlulistelement\",\"htmlolistelement\"].includes(s(e))&&(e.matches(\".mm-listview\")||(b(e,this.conf.classNames.nolistview,\"mm-nolistview\"),e.matches(\".mm-nolistview\")||(this.trigger(\"initListview:before\",[e]),e.classList.add(\"mm-listview\"),h(e).forEach((e=>{this._initListitem(e)})),y(this,E).observe(e,{childList:!0}),this.trigger(\"initListview:after\",[e]))))}_initListitem(e){[\"htmllielement\"].includes(s(e))&&(e.matches(\".mm-listitem\")||(b(e,this.conf.classNames.divider,\"mm-divider\"),e.matches(\".mm-divider\")||(this.trigger(\"initListitem:before\",[e]),e.classList.add(\"mm-listitem\"),b(e,this.conf.classNames.selected,\"mm-listitem--selected\"),h(e,\"a, span\").forEach((e=>{e.classList.add(\"mm-listitem__text\")})),h(e,this.conf.panelNodetype.join(\", \")).forEach((e=>{this._initSubPanel(e)})),y(this,w).observe(e,{childList:!0}),this.trigger(\"initListitem:after\",[e]))))}_initSubPanel(e){if(e.matches(\".mm-panel\"))return;const t=e.parentElement;(e.matches(\".\"+this.conf.classNames.vertical)||!this.opts.slidingSubmenus)&&t.classList.add(\"mm-listitem--vertical\"),t.id=t.id||i(),e.id=e.id||i(),t.dataset.mmChild=e.id,e.dataset.mmParent=t.id;let n=h(t,\".mm-btn\")[0];n||(n=c(\"a.mm-btn.mm-btn--next.mm-listitem__btn\"),h(t,\"a, span\").forEach((e=>{e.matches(\"span\")?(n.classList.add(\"mm-listitem__text\"),n.innerHTML=e.innerHTML,t.insertBefore(n,e.nextElementSibling),e.remove()):t.insertBefore(n,e.nextElementSibling)})),n.setAttribute(\"aria-label\",this.i18n(this.conf.screenReader[t.matches(\".mm-listitem--vertical\")?\"toggleSubmenu\":\"openSubmenu\"]))),n.href=`#${e.id}`,this._initPanel(e)}_initOpened(){this.trigger(\"initOpened:before\");const e=d(this.node.pnls,\".mm-listitem--selected\").pop();let t=h(this.node.pnls,\".mm-panel\")[0];e&&(this.setSelected(e),t=e.closest(\".mm-panel\")),this.openPanel(t,!1,!1),this.trigger(\"initOpened:after\")}i18n(e){return((e,t)=>\"string\"==typeof t&&void 0!==l[t]&&l[t][e]||e)(e,this.conf.language)}static i18n(e={},t=\"\"){if(!e||!t)return l;m(e,t)}}_=new WeakMap,E=new WeakMap,w=new WeakMap,S.addons={},S.node={},S.vars={};const M={use:!0,position:\"left\"},k={clone:!1,menu:{insertMethod:\"append\",insertSelector:\"body\"},page:{nodetype:\"div\",selector:null,noSelector:[]},screenReader:{closeMenu:\"Close menu\",openMenu:\"Open menu\"}},T=[\"left\",\"left-front\",\"right\",\"right-front\",\"top\",\"bottom\"];S.prototype.open=function(){this.node.menu.matches(\".mm-menu--opened\")||(this.trigger(\"open:before\"),this.node.wrpr.classList.add(\"mm-wrapper--opened\",`mm-wrapper--position-${this.opts.offCanvas.position}`),this.node.menu.classList.add(\"mm-menu--opened\"),this.node.menu.removeAttribute(\"inert\"),S.node.blck.removeAttribute(\"inert\"),S.node.page.setAttribute(\"inert\",\"true\"),this.node.open=document.activeElement,this.trigger(\"open:after\"))},S.prototype.close=function(){var e;this.node.menu.matches(\".mm-menu--opened\")&&(this.trigger(\"close:before\"),this.node.wrpr.classList.remove(\"mm-wrapper--opened\",`mm-wrapper--position-${this.opts.offCanvas.position}`),this.node.menu.classList.remove(\"mm-menu--opened\"),this.node.menu.setAttribute(\"inert\",\"true\"),S.node.blck.setAttribute(\"inert\",\"true\"),S.node.page.removeAttribute(\"inert\"),null===(e=this.node.open||document.querySelector(`[href=\"#${this.node.menu.id}\"]`)||null)||void 0===e||e.focus(),document.body.scrollLeft=0,document.documentElement.scrollLeft=0,this.trigger(\"close:after\"))},S.prototype.setPage=function(e){const t=this.conf.offCanvas;if(!e){let n=\"string\"==typeof t.page.selector?d(document.body,t.page.selector):h(document.body,t.page.nodetype);if(n=n.filter((e=>!e.matches(\".mm-menu, .mm-wrapper__blocker\"))),t.page.noSelector.length&&(n=n.filter((e=>!e.matches(t.page.noSelector.join(\", \"))))),n.length>1){let e=c(\"div\");n[0].before(e),n.forEach((t=>{e.append(t)})),n=[e]}e=n[0]}this.trigger(\"setPage:before\",[e]),e.classList.add(\"mm-page\",\"mm-slideout\"),e.id=e.id||i(),S.node.blck.setAttribute(\"href\",`#${e.id}`),S.node.page=e,this.trigger(\"setPage:after\",[e])};const x={fix:!0},A=\"ontouchstart\"in window||!!navigator.msMaxTouchPoints||!1,C=[\"light\",\"dark\",\"white\",\"black\",\"light-contrast\",\"dark-contrast\",\"white-contrast\",\"black-contrast\"];S.prototype.theme=function(e=null){const t=this.opts.theme;if(!e)return t;C.includes(e)&&(this.node.menu.classList.remove(`mm-menu--theme-${t}`),this.node.menu.classList.add(`mm-menu--theme-${e}`),this.opts.theme=e)};const N={close:!1,open:!1},$={add:!1},O={use:!1,top:[],bottom:[],position:\"left\",type:\"default\"},H={add:!1,blockPanel:!0,visible:3},q={breadcrumbs:{separator:\"/\",removeFirst:!1}};function I(){this.opts.navbars=this.opts.navbars||[],this.conf.navbars=this.conf.navbars||{},n(this.conf.navbars,q);let e=this.opts.navbars;if(void 0!==e&&(e instanceof Array||(e=[e]),e.length)){var t={};e.forEach((e=>{if(!(e=function(e){return\"boolean\"==typeof e&&e&&(e={}),\"object\"!=typeof e&&(e={}),void 0===e.content&&(e.content=[\"prev\",\"title\"]),e.content instanceof Array||(e.content=[e.content]),void 0===e.use&&(e.use=!0),e}(e)).use)return;const n=c(\"div.mm-navbar\");let{position:s}=e;\"bottom\"!==s&&(s=\"top\"),t[s]||(t[s]=c(\"div.mm-navbars.mm-navbars--\"+s)),t[s].append(n);for(let t=0,s=e.content.length;t{n.classList.remove(\"mm-hidden\")};\"boolean\"==typeof e.use?this.bind(\"initMenu:after\",i):g(e.use,i,(()=>{n.classList.add(\"mm-hidden\")}))})),this.bind(\"initMenu:after\",(()=>{for(let e in t)this.node.pnls[\"bottom\"==e?\"after\":\"before\"](t[e])}))}}I.navbarContents={breadcrumbs:function(e){var t=c(\"div.mm-navbar__breadcrumbs\");e.append(t),this.bind(\"initNavbar:after\",(e=>{if(!e.querySelector(\".mm-navbar__breadcrumbs\")){h(e,\".mm-navbar\")[0].classList.add(\"mm-hidden\");for(var t=[],n=c(\"span.mm-navbar__breadcrumbs\"),s=e,i=!0;s;){if(!(s=s.closest(\".mm-panel\")).parentElement.matches(\".mm-listitem--vertical\")){let e=d(s,\".mm-navbar__title span\")[0];if(e){let n=e.textContent;n.length&&t.unshift(i?`${n}`:`${n}`)}i=!1}s=d(this.node.pnls,`#${s.dataset.mmParent}`)[0]}this.conf.navbars.breadcrumbs.removeFirst&&t.shift(),n.innerHTML=t.join(''+this.conf.navbars.breadcrumbs.separator+\"\"),h(e,\".mm-navbar\")[0].append(n)}})),this.bind(\"openPanel:before\",(e=>{var n=e.querySelector(\".mm-navbar__breadcrumbs\");t.innerHTML=n?n.innerHTML:\"\"}))},close:function(e){const t=c(\"a.mm-btn.mm-btn--close.mm-navbar__btn\");t.setAttribute(\"aria-label\",this.i18n(this.conf.offCanvas.screenReader.closeMenu)),e.append(t),this.bind(\"setPage:after\",(e=>{t.href=`#${e.id}`}))},prev:function(e){let t=c(\"a.mm-btn.mm-hidden\");e.append(t),this.bind(\"initNavbar:after\",(e=>{h(e,\".mm-navbar\")[0].classList.add(\"mm-hidden\")})),this.bind(\"openPanel:before\",(e=>{if(e.parentElement.matches(\".mm-listitem--vertical\"))return;t.classList.add(\"mm-hidden\");const n=e.querySelector(\".mm-navbar__btn.mm-btn--prev\");if(n){const e=n.cloneNode(!0);t.after(e),t.remove(),t=e}}))},searchfield:function(e){let t=c(\"div.mm-navbar__searchfield\");t.id=i(),e.append(t),this.opts.searchfield=this.opts.searchfield||{},this.opts.searchfield.add=!0,this.opts.searchfield.addTo=`#${t.id}`},title:function(e){let t=c(\"a.mm-navbar__title\");e.append(t),this.bind(\"openPanel:before\",(e=>{if(e.parentElement.matches(\".mm-listitem--vertical\"))return;const n=e.querySelector(\".mm-navbar__title\");if(n){const e=n.cloneNode(!0);t.after(e),t.remove(),t=e}}))}},I.navbarTypes={tabs:function(e){function t(n){const s=h(e,`.mm-navbar__tab[href=\"#${n.id}\"]`)[0];if(s)s.classList.add(\"mm-navbar__tab--selected\"),s.ariaExpanded=\"true\";else{const e=d(this.node.pnls,`#${n.dataset.mmParent}`)[0];e&&t.call(this,e.closest(\".mm-panel\"))}}e.classList.add(\"mm-navbar--tabs\"),e.closest(\".mm-navbars\").classList.add(\"mm-navbars--has-tabs\"),h(e,\"a\").forEach((e=>{e.classList.add(\"mm-navbar__tab\")})),this.bind(\"openPanel:before\",(n=>{h(e,\"a\").forEach((e=>{e.classList.remove(\"mm-navbar__tab--selected\"),e.ariaExpanded=\"false\"})),t.call(this,n)})),this.bind(\"initPanels:after\",(()=>{e.addEventListener(\"click\",(e=>{var t,n,s;const i=null===(n=null===(t=e.target)||void 0===t?void 0:t.closest(\".mm-navbar__tab\"))||void 0===n?void 0:n.getAttribute(\"href\");try{null===(s=d(this.node.pnls,`${i}.mm-panel`)[0])||void 0===s||s.classList.add(\"mm-panel--noanimation\")}catch(e){}}),{capture:!0})}))}};const j={scroll:!1,update:!1},B={scrollOffset:0,updateOffset:50},R={add:!1,addTo:\"panels\",noResults:\"No results found.\",placeholder:\"Search\",search:!0,searchIn:\"panels\",splash:\"\",title:\"Search\"},D={cancel:!0,clear:!0,form:{},input:{},panel:{},submit:!1};m({cancel:\"abbrechen\",\"Cancel searching\":\"Suche abbrechen\",\"Clear searchfield\":\"Suchfeld löschen\",\"No results found.\":\"Keine Ergebnisse gefunden.\",Search:\"Suche\"},\"de\"),m({cancel:\"انصراف\",\"Cancel searching\":\"لغو جستجو\",\"Clear searchfield\":\"پاک کردن فیلد جستجو\",\"No results found.\":\"نتیجه‌ای یافت نشد.\",Search:\"جستجو\"},\"fa\"),m({cancel:\"annuleren\",\"Cancel searching\":\"Zoeken annuleren\",\"Clear searchfield\":\"Zoekveld leeg maken\",\"No results found.\":\"Geen resultaten gevonden.\",Search:\"Zoeken\"},\"nl\"),m({cancel:\"cancelar\",\"Cancel searching\":\"Cancelar pesquisa\",\"Clear searchfield\":\"Limpar campo de pesquisa\",\"No results found.\":\"Nenhum resultado encontrado.\",Search:\"Buscar\"},\"pt_br\"),m({cancel:\"отменить\",\"Cancel searching\":\"Отменить поиск\",\"Clear searchfield\":\"Очистить поле поиска\",\"No results found.\":\"Ничего не найдено.\",Search:\"Найти\"},\"ru\"),m({cancel:\"zrušiť\",\"Cancel searching\":\"Zrušiť vyhľadávanie\",\"Clear searchfield\":\"Vymazať pole vyhľadávania\",\"No results found.\":\"Neboli nájdené žiadne výsledky.\",Search:\"Vyhľadávanie\"},\"sk\"),m({cancel:\"скасувати\",\"Cancel searching\":\"Скасувати пошук\",\"Clear searchfield\":\"Очистити поле пошуку\",\"No results found.\":\"Нічого не знайдено.\",Search:\"Пошук\"},\"uk\");const F=function(){const e=this.opts.searchfield,t=this.conf.searchfield;let n=h(this.node.pnls,\".mm-panel--search\")[0];return n||(n=c(\"div.mm-panel--search\"),K(n,t.panel),e.title.length&&(n.dataset.mmTitle=this.i18n(e.title)),n.append(c(\"ul\")),this._initPanel(n),n)},Z=function(e){const t=this.opts.searchfield;if(e.matches(t.addTo)){const t=e.matches(\".mm-panel--search\");if(!d(e,\".mm-searchfield\").length){const n=W.call(this,t);t&&n.classList.add(\"mm-searchfield--cancelable\"),e.prepend(n),z.call(this,n)}}if(t.splash.length&&e.matches(\".mm-panel--search\")&&!d(e,\".mm-panel__splash\").length){const n=c(\"div.mm-panel__splash\");n.innerHTML=t.splash,e.append(n)}if(t.noResults.length&&!d(e,\".mm-panel__noresults\").length){const n=c(\"div.mm-panel__noresults\");n.innerHTML=this.i18n(t.noResults),e.append(n)}},W=function(e=!1){const t=this.opts.searchfield,n=this.conf.searchfield,s=c(\"form.mm-searchfield\");K(s,n.form);const i=c(\"div.mm-searchfield__input\");s.append(i);const a=c(\"input\");if(i.append(a),a.type=\"text\",a.autocomplete=\"off\",a.placeholder=this.i18n(t.placeholder),a.setAttribute(\"aria-label\",this.i18n(t.placeholder)),K(a,n.input),n.submit){const e=c(\"button.mm-btnreset.mm-btn.mm-btn--next.mm-searchfield__btn\");e.type=\"submit\",i.append(e)}else if(n.clear){const e=c(\"button.mm-btnreset.mm-btn.mm-btn--close.mm-searchfield__btn\");e.type=\"reset\",e.setAttribute(\"aria-label\",this.i18n(\"Clear searchfield\")),i.append(e),s.addEventListener(\"reset\",(()=>{window.requestAnimationFrame((()=>{a.dispatchEvent(new Event(\"input\"))}))}))}if(n.cancel&&e){const e=c(\"a.mm-searchfield__cancel\");e.href=\"#\",e.setAttribute(\"aria-label\",this.i18n(\"Cancel searching\")),e.textContent=this.i18n(\"cancel\"),s.append(e),e.addEventListener(\"click\",(e=>{e.preventDefault(),this.closePanel(h(this.node.pnls,\".mm-panel--search\")[0],!1)}))}return s},z=function(e){const t=this.opts.searchfield,n=e.closest(\".mm-panel\")||d(this.node.pnls,\".mm-panel--search\")[0],s=d(e,\"input\")[0];let i=n.matches(\".mm-panel--search\")?h(this.node.pnls,t.searchIn):[n];i=i.filter((e=>!e.matches(\".mm-panel--search\")));const a=()=>{const a=s.value.toLowerCase().trim();if(a.length?e.classList.add(\"mm-searchfield--searching\"):e.classList.remove(\"mm-searchfield--searching\"),!t.search)return;const o=[];if(i.forEach((e=>{e.scrollTop=0,o.push(...d(e,\".mm-listitem\"))})),a.length){this.trigger(\"search:before\"),n.classList.add(\"mm-panel--searching\"),o.forEach((e=>{const t=h(e,\".mm-listitem__text\")[0];var n;(!t||(n=t,[].slice.call(n.childNodes).filter((e=>!e.ariaHidden)).map((e=>e.textContent)).join(\" \")).toLowerCase().indexOf(a)>-1)&&(e.dataset.mmSearchresult=a)}));let e=0;e=n.matches(\".mm-panel--search\")?V(n,a,i):Y(a,i),n.classList[0==e?\"add\":\"remove\"](\"mm-panel--noresults\"),this.trigger(\"search:after\")}else this.trigger(\"clear:before\"),n.classList.remove(\"mm-panel--searching\",\"mm-panel--noresults\"),n.matches(\".mm-panel--search\")?(U(n),t.splash||this.closePanel(n,!1,!1)):G(i),this.trigger(\"clear:after\")};s.addEventListener(\"input\",a),a()},V=(e,t,n)=>{const s=d(e,\".mm-listview\")[0];s.innerHTML=\"\";let i=0;return n.forEach((e=>{const n=d(e,`[data-mm-searchresult=\"${t}\"]`);if(i+=n.length,n.length){const t=d(e,\".mm-navbar__title\")[0];if(t){const e=c(\"li.mm-divider\");e.innerHTML=t.innerHTML,s.append(e)}n.forEach((e=>{const t=e.cloneNode(!0);s.append(t)}))}})),d(s,\".mm-panel\").forEach((e=>{e.remove()})),[\"id\",\"data-mm-parent\",\"data-mm-child\"].forEach((e=>{d(s,`[${e}]`).forEach((t=>{t.removeAttribute(e)}))})),d(s,\".mm-listitem--opened\").forEach((e=>{e.classList.remove(\"mm-listitem--opened\")})),i},U=e=>{d(e,\".mm-listview\")[0].innerHTML=\"\"},Y=(e,t)=>{let n=0;return t.forEach((t=>{const s=d(t,`[data-mm-searchresult=\"${e}\"]`);n+=s.length,s.length&&s.forEach((t=>{const n=((e,t)=>{let n=[],s=e.previousElementSibling;for(;s;)t&&!s.matches(t)||n.push(s),s=s.previousElementSibling;return n})(t,\".mm-divider\")[0];n&&(n.dataset.mmSearchresult=e)})),d(t,\".mm-listitem, .mm-divider\").forEach((t=>{t.classList.add(\"mm-hidden\"),t.dataset.mmSearchresult===e&&[t,...p(t,\".mm-listitem\")].forEach((e=>{e.classList.remove(\"mm-hidden\")}))}))})),n},G=e=>{e.forEach((e=>{d(e,\".mm-listitem, .mm-divider\").forEach((e=>{e.classList.remove(\"mm-hidden\")}))}))},K=(e,t)=>{t&&Object.keys(t).forEach((n=>{e[n]=t[n]}))},X={add:!1,addTo:\"panels\"},J={current:!0,hover:!1,parent:!1},Q={collapsed:{use:!1},expanded:{use:!1,initial:\"open\"}};S.addons={offcanvas:function(){this.opts.offCanvas=this.opts.offCanvas||{},this.conf.offCanvas=this.conf.offCanvas||{};const e=n(this.opts.offCanvas,M),t=n(this.conf.offCanvas,k);e.use&&(T.includes(e.position)||(e.position=T[0]),this._api.push(\"open\",\"close\",\"setPage\",\"position\"),t.clone&&(this.node.menu=this.node.menu.cloneNode(!0),this.node.menu.id&&(this.node.menu.id=o(this.node.menu.id)),d(this.node.menu,\"[id]\").forEach((e=>{e.id=o(e.id)}))),this.bind(\"initMenu:before\",(()=>{this.node.wrpr=document.querySelector(t.menu.insertSelector),this.node.wrpr[t.menu.insertMethod](this.node.menu)})),S.node.blck||this.bind(\"initMenu:before\",(()=>{const e=c(\"a.mm-wrapper__blocker.mm-blocker.mm-slideout\");e.id=i(),e.setAttribute(\"aria-label\",this.i18n(t.screenReader.closeMenu)),e.setAttribute(\"inert\",\"true\"),document.querySelector(t.menu.insertSelector).append(e),S.node.blck=e})),this.bind(\"initMenu:after\",(()=>{this.setPage(S.node.page),this.node.menu.classList.add(\"mm-menu--offcanvas\"),this.node.menu.setAttribute(\"inert\",\"true\"),T.includes(e.position)&&(this.node.wrpr.classList.add(`mm-wrapper--position-${e.position}`),this.node.menu.classList.add(`mm-menu--position-${e.position}`));let t=window.location.hash;if(t){let e=r(this.node.menu.id);e&&e==t.slice(1)&&setTimeout((()=>{this.open()}),1e3)}})),document.addEventListener(\"click\",(e=>{var t;switch(null===(t=e.target.closest(\"a\"))||void 0===t?void 0:t.getAttribute(\"href\")){case`#${r(this.node.menu.id)}`:e.preventDefault(),this.open();break;case`#${r(S.node.page.id)}`:e.preventDefault(),this.close()}})),document.addEventListener(\"keyup\",(e=>{\"Escape\"==e.key&&this.close()})))},scrollBugFix:function(){if(!A||!this.opts.offCanvas.use)return;if(this.opts.scrollBugFix=this.opts.scrollBugFix||{},!n(this.opts.scrollBugFix,x).fix)return;const e=(e=>{let t=\"\",n=null;return e.addEventListener(\"touchstart\",(e=>{1===e.touches.length&&(t=\"\",n=e.touches[0].pageY)})),e.addEventListener(\"touchend\",(e=>{0===e.touches.length&&(t=\"\",n=null)})),e.addEventListener(\"touchmove\",(e=>{if(t=\"\",n&&1===e.touches.length){const s=e.changedTouches[0].pageY;s>n?t=\"down\":st}})(this.node.menu);this.node.menu.addEventListener(\"scroll\",(e=>{e.preventDefault(),e.stopPropagation()}),{passive:!1}),this.node.menu.addEventListener(\"touchmove\",(t=>{let n=t.target.closest(\".mm-panel, .mm-iconbar__top, .mm-iconbar__bottom\");n&&n.closest(\".mm-listitem--vertical\")&&(n=p(n,\".mm-panel\").pop()),n?(n.scrollHeight===n.offsetHeight||0==n.scrollTop&&\"down\"==e.get()||n.scrollHeight==n.scrollTop+n.offsetHeight&&\"up\"==e.get())&&t.stopPropagation():t.stopPropagation()}),{passive:!1}),this.bind(\"open:after\",(()=>{var e=h(this.node.pnls,\".mm-panel--opened\")[0];e&&(e.scrollTop=0)})),window.addEventListener(\"orientationchange\",(e=>{var t=h(this.node.pnls,\".mm-panel--opened\")[0];t&&(t.scrollTop=0,t.style[\"-webkit-overflow-scrolling\"]=\"auto\",t.style[\"-webkit-overflow-scrolling\"]=\"touch\")}))},theme:function(){this.opts.theme=this.opts.theme||\"light\";const e=this.opts.theme;C.includes(e)||(this.opts.theme=C[0]),this._api.push(\"theme\"),this.bind(\"initMenu:after\",(()=>{this.theme(this.opts.theme)}))},backButton:function(){if(this.opts.backButton=this.opts.backButton||{},!this.opts.offCanvas.use)return;const e=n(this.opts.backButton,N),t=`#${this.node.menu.id}`;if(e.close){let e=[];const n=()=>{e=[t],h(this.node.pnls,\".mm-panel--opened, .mm-panel--parent\").forEach((t=>{e.push(\"#\"+t.id)}))};this.bind(\"open:after\",(()=>{history.pushState(null,\"\",location.pathname+location.search+t)})),this.bind(\"open:after\",n),this.bind(\"openPanel:after\",n),this.bind(\"close:after\",(()=>{e=[],history.back(),history.pushState(null,\"\",location.pathname+location.search)})),window.addEventListener(\"popstate\",(()=>{if(this.node.menu.matches(\".mm-menu--opened\")&&e.length){e=e.slice(0,-1);const n=e[e.length-1];n==t?this.close():(this.openPanel(this.node.menu.querySelector(n)),history.pushState(null,\"\",location.pathname+location.search+t))}}))}e.open&&window.addEventListener(\"popstate\",(e=>{this.node.menu.matches(\".mm-menu--opened\")||location.hash!=t||this.open()}))},counters:function(){if(this.opts.counters=this.opts.counters||{},!n(this.opts.counters,$).add)return;const e=e=>{const t=this.node.pnls.querySelector(`#${e.dataset.mmParent}`);if(!t)return;const n=t.querySelector(\".mm-counter\");if(!n)return;const s=[];h(e,\".mm-listview\").forEach((e=>{s.push(...h(e,\".mm-listitem\"))})),n.innerHTML=u(s).length.toString()},t=new MutationObserver((t=>{t.forEach((t=>{\"class\"==t.attributeName&&e(t.target.closest(\".mm-panel\"))}))}));this.bind(\"initListview:after\",(t=>{const n=t.closest(\".mm-panel\"),s=this.node.pnls.querySelector(`#${n.dataset.mmParent}`);if(!s)return;const i=h(s,\".mm-btn\")[0];if(i){if(!h(i,\".mm-counter\").length){const e=c(\"span.mm-counter\");e.setAttribute(\"aria-hidden\",\"true\"),i.prepend(e)}e(n)}})),this.bind(\"initListitem:after\",(e=>{const n=e.closest(\".mm-panel\");n&&this.node.pnls.querySelector(`#${n.dataset.mmParent}`)&&t.observe(e,{attributes:!0})}))},iconbar:function(){this.opts.iconbar=this.opts.iconbar||{};const e=n(this.opts.iconbar,O);if(!e.use)return;let t;if([\"top\",\"bottom\"].forEach(((n,i)=>{let a=e[n];\"array\"!=s(a)&&(a=[a]);const o=c(\"div.mm-iconbar__\"+n);for(let e=0,t=a.length;e{this.node.menu.prepend(t)}));let n=\"mm-menu--iconbar-\"+e.position,s=()=>{this.node.menu.classList.add(n)},i=()=>{this.node.menu.classList.remove(n)};if(\"boolean\"==typeof e.use?this.bind(\"initMenu:after\",s):g(e.use,s,i),\"tabs\"==e.type){t.classList.add(\"mm-iconbar--tabs\"),t.addEventListener(\"click\",(e=>{const t=e.target.closest(\".mm-iconbar__tab\");if(t)if(t.matches(\".mm-iconbar__tab--selected\"))e.stopImmediatePropagation();else try{const n=d(this.node.menu,`${t.getAttribute(\"href\")}.mm-panel`)[0];n&&(e.preventDefault(),e.stopImmediatePropagation(),this.openPanel(n,!1))}catch(e){}}));const e=n=>{d(t,\"a\").forEach((e=>{e.classList.remove(\"mm-iconbar__tab--selected\")}));const s=d(t,'[href=\"#'+n.id+'\"]')[0];if(s)s.classList.add(\"mm-iconbar__tab--selected\");else{const t=d(this.node.pnls,`#${n.dataset.mmParent}`)[0];t&&e(t.closest(\".mm-panel\"))}};this.bind(\"openPanel:before\",e)}}},iconPanels:function(){this.opts.iconPanels=this.opts.iconPanels||{};const e=n(this.opts.iconPanels,H);let t=!1;if(\"first\"==e.visible&&(t=!0,e.visible=1),e.visible=Math.min(3,Math.max(1,e.visible)),e.visible++,e.add){this.bind(\"initMenu:after\",(()=>{this.node.menu.classList.add(\"mm-menu--iconpanel\")}));const n=[\"mm-panel--iconpanel-0\",\"mm-panel--iconpanel-1\",\"mm-panel--iconpanel-2\",\"mm-panel--iconpanel-3\"];t?this.bind(\"initMenu:after\",(()=>{var e;null===(e=h(this.node.pnls,\".mm-panel\")[0])||void 0===e||e.classList.add(\"mm-panel--iconpanel-first\")})):this.bind(\"openPanel:after\",(t=>{if(t.closest(\".mm-listitem--vertical\"))return;let s=h(this.node.pnls,\".mm-panel\");s=s.filter((e=>e.matches(\".mm-panel--parent\"))),s.push(t),s=s.slice(-e.visible),s.forEach(((e,t)=>{e.classList.remove(\"mm-panel--iconpanel-first\",...n),e.classList.add(`mm-panel--iconpanel-${t}`)}))}))}},navbars:I,pageScroll:function(){this.opts.pageScroll=this.opts.pageScroll||{},this.conf.pageScroll=this.conf.pageScroll||{};const e=n(this.opts.pageScroll,j),t=n(this.conf.pageScroll,B);var s;function i(){s&&window.scrollTo({top:s.getBoundingClientRect().top+document.scrollingElement.scrollTop-t.scrollOffset,behavior:\"smooth\"}),s=null}function a(e){try{if(\"#\"==e.slice(0,1))return d(S.node.page,e)[0]}catch(e){}return null}if(this.opts.offCanvas.use&&e.scroll&&(this.bind(\"close:after\",(()=>{i()})),this.node.menu.addEventListener(\"click\",(e=>{var t,n;const o=(null===(n=null===(t=e.target)||void 0===t?void 0:t.closest(\"a[href]\"))||void 0===n?void 0:n.getAttribute(\"href\"))||\"\";(s=a(o))&&(e.preventDefault(),this.node.menu.matches(\".mm-menu--sidebar-expanded\")&&this.node.wrpr.matches(\".mm-wrapper--sidebar-expanded\")?i():this.close())}))),e.update){let e=[];this.bind(\"initListview:after\",(t=>{const n=h(t,\".mm-listitem\");f(n).forEach((t=>{const n=a(t.getAttribute(\"href\"));n&&e.unshift(n)}))}));let n=-1;window.addEventListener(\"scroll\",(s=>{const i=window.scrollY;for(var a=0;at.matches('[href=\"#'+e[a].id+'\"]'))),i.length&&this.setSelected(i[0].parentElement)}break}}),{passive:!0})}},searchfield:function(){this.opts.searchfield=this.opts.searchfield||{},this.conf.searchfield=this.conf.searchfield||{};const e=n(this.opts.searchfield,R);if(n(this.conf.searchfield,D),e.add){switch(e.addTo){case\"panels\":e.addTo=\".mm-panel\";break;case\"searchpanel\":e.addTo=\".mm-panel--search\"}\"panels\"===e.searchIn&&(e.searchIn=\".mm-panel\"),this.bind(\"initPanel:after\",(t=>{t.matches(e.addTo)&&!t.closest(\".mm-listitem--vertical\")&&Z.call(this,t)})),this.bind(\"initMenu:after\",(()=>{const t=F.call(this);Z.call(this,t),d(this.node.menu,e.addTo).forEach((n=>{if(!n.matches(\".mm-panel\")){const s=W.call(this,!0);n.append(s);const i=d(s,\"input\")[0];e.splash.length?(i.addEventListener(\"focusin\",(()=>{this.openPanel(t,!1,!1)})),this.bind(\"openPanel:after\",(e=>{e.matches(\".mm-panel--search\")?s.classList.add(\"mm-searchfield--cancelable\"):s.classList.remove(\"mm-searchfield--cancelable\")}))):(this.bind(\"search:after\",(()=>{this.openPanel(t,!1,!1)})),i.addEventListener(\"focusout\",(()=>{i.value.length||this.closePanel(t,!1)}))),z.call(this,s)}}))})),this.bind(\"close:before\",(()=>{d(this.node.menu,\".mm-searchfield input\").forEach((e=>{e.blur()}))}))}},sectionIndexer:function(){this.opts.sectionIndexer=this.opts.sectionIndexer||{},n(this.opts.sectionIndexer,X).add&&this.bind(\"initPanels:after\",(()=>{if(!this.node.indx){let e=\"\";\"abcdefghijklmnopqrstuvwxyz\".split(\"\").forEach((t=>{e+=''+t+\"\"}));let t=c(\"div.mm-sectionindexer\");t.innerHTML=e,this.node.pnls.prepend(t),this.node.indx=t,this.node.indx.addEventListener(\"click\",(e=>{e.target.matches(\"a\")&&e.preventDefault()}));let n=e=>{if(!e.target.matches(\"a\"))return;const t=e.target.textContent,n=h(this.node.pnls,\".mm-panel--opened\")[0];let s=-1,i=n.scrollTop;n.scrollTop=0,d(n,\".mm-divider\").filter((e=>!e.matches(\".mm-hidden\"))).forEach((e=>{s<0&&t==e.textContent.trim().slice(0,1).toLowerCase()&&(s=e.offsetTop)})),n.scrollTop=s>-1?s:i};A?(this.node.indx.addEventListener(\"touchstart\",n),this.node.indx.addEventListener(\"touchmove\",n)):this.node.indx.addEventListener(\"mouseover\",n)}this.bind(\"openPanel:before\",(e=>{const t=d(e,\".mm-divider\").filter((e=>!e.matches(\".mm-hidden\"))).length;this.node.indx.classList[t?\"add\":\"remove\"](\"mm-sectionindexer--active\")}))}))},setSelected:function(){this.opts.setSelected=this.opts.setSelected||{};const e=n(this.opts.setSelected,J);if(\"detect\"==e.current){const e=t=>{t=t.split(\"?\")[0].split(\"#\")[0];const n=this.node.menu.querySelector('a[href=\"'+t+'\"], a[href=\"'+t+'/\"]');if(n)this.setSelected(n.parentElement);else{const n=t.split(\"/\").slice(0,-1);n.length&&e(n.join(\"/\"))}};this.bind(\"initMenu:after\",(()=>{e.call(this,window.location.href)}))}else e.current||this.bind(\"initListview:after\",(e=>{h(e,\".mm-listitem--selected\").forEach((e=>{e.classList.remove(\"mm-listitem--selected\")}))}));e.hover&&this.bind(\"initMenu:after\",(()=>{this.node.menu.classList.add(\"mm-menu--selected-hover\")})),e.parent&&(this.bind(\"openPanel:after\",(e=>{d(this.node.pnls,\".mm-listitem--selected-parent\").forEach((e=>{e.classList.remove(\"mm-listitem--selected-parent\")}));let t=e;for(;t;){let e=d(this.node.pnls,`#${t.dataset.mmParent}`)[0];t=null==e?void 0:e.closest(\".mm-panel\"),e&&!e.matches(\".mm-listitem--vertical\")&&e.classList.add(\"mm-listitem--selected-parent\")}})),this.bind(\"initMenu:after\",(()=>{this.node.menu.classList.add(\"mm-menu--selected-parent\")})))},sidebar:function(){if(!this.opts.offCanvas.use)return;this.opts.sidebar=this.opts.sidebar||{};const e=n(this.opts.sidebar,Q);if(e.collapsed.use){this.bind(\"initMenu:after\",(()=>{this.node.menu.classList.add(\"mm-menu--sidebar-collapsed\")}));let t=()=>{this.node.wrpr.classList.add(\"mm-wrapper--sidebar-collapsed\")},n=()=>{this.node.wrpr.classList.remove(\"mm-wrapper--sidebar-collapsed\")};\"boolean\"==typeof e.collapsed.use?this.bind(\"initMenu:after\",t):g(e.collapsed.use,t,n)}if(e.expanded.use){this.bind(\"initMenu:after\",(()=>{this.node.menu.classList.add(\"mm-menu--sidebar-expanded\")}));let t=!1,n=()=>{t=!0,this.node.wrpr.classList.add(\"mm-wrapper--sidebar-expanded\"),this.node.menu.removeAttribute(\"aria-modal\"),this.open(),S.node.page.removeAttribute(\"inert\")},s=()=>{t=!1,this.node.wrpr.classList.remove(\"mm-wrapper--sidebar-expanded\"),this.node.menu.setAttribute(\"aria-modal\",\"true\"),this.close()};\"boolean\"==typeof e.expanded.use?this.bind(\"initMenu:after\",n):g(e.expanded.use,n,s),this.bind(\"close:after\",(()=>{t&&window.sessionStorage.setItem(\"mmenuExpandedState\",\"closed\")})),this.bind(\"open:after\",(()=>{t&&(window.sessionStorage.setItem(\"mmenuExpandedState\",\"open\"),S.node.page.removeAttribute(\"inert\"))}));let i=e.expanded.initial;const a=window.sessionStorage.getItem(\"mmenuExpandedState\");switch(a){case\"open\":case\"closed\":i=a}\"closed\"===i&&this.bind(\"init:after\",(()=>{this.close()}))}}},window&&(window.Mmenu=S)})();","!function(n,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(n=\"undefined\"!=typeof globalThis?globalThis:n||self).LazyLoad=t()}(this,(function(){\"use strict\";function n(){return n=Object.assign||function(n){for(var t=1;t1,r={elements_selector:\".lazy\",container:e||t?document:null,threshold:300,thresholds:null,data_src:\"src\",data_srcset:\"srcset\",data_sizes:\"sizes\",data_bg:\"bg\",data_bg_hidpi:\"bg-hidpi\",data_bg_multi:\"bg-multi\",data_bg_multi_hidpi:\"bg-multi-hidpi\",data_bg_set:\"bg-set\",data_poster:\"poster\",class_applied:\"applied\",class_loading:\"loading\",class_loaded:\"loaded\",class_error:\"error\",class_entered:\"entered\",class_exited:\"exited\",unobserve_completed:!0,unobserve_entered:!1,cancel_on_exit:!0,callback_enter:null,callback_exit:null,callback_applied:null,callback_loading:null,callback_loaded:null,callback_error:null,callback_finish:null,callback_cancel:null,use_native:!1,restore_on_error:!1},c=function(t){return n({},r,t)},l=function(n,t){var e,i=\"LazyLoad::Initialized\",o=new n(t);try{e=new CustomEvent(i,{detail:{instance:o}})}catch(n){(e=document.createEvent(\"CustomEvent\")).initCustomEvent(i,!1,!1,{instance:o})}window.dispatchEvent(e)},u=\"src\",s=\"srcset\",d=\"sizes\",f=\"poster\",_=\"llOriginalAttrs\",g=\"data\",v=\"loading\",b=\"loaded\",m=\"applied\",p=\"error\",h=\"native\",E=\"data-\",I=\"ll-status\",y=function(n,t){return n.getAttribute(E+t)},k=function(n){return y(n,I)},w=function(n,t){return function(n,t,e){var i=\"data-ll-status\";null!==e?n.setAttribute(i,e):n.removeAttribute(i)}(n,0,t)},A=function(n){return w(n,null)},L=function(n){return null===k(n)},O=function(n){return k(n)===h},x=[v,b,m,p],C=function(n,t,e,i){n&&(void 0===i?void 0===e?n(t):n(t,e):n(t,e,i))},N=function(n,t){o?n.classList.add(t):n.className+=(n.className?\" \":\"\")+t},M=function(n,t){o?n.classList.remove(t):n.className=n.className.replace(new RegExp(\"(^|\\\\s+)\"+t+\"(\\\\s+|$)\"),\" \").replace(/^\\s+/,\"\").replace(/\\s+$/,\"\")},z=function(n){return n.llTempImage},T=function(n,t){if(t){var e=t._observer;e&&e.unobserve(n)}},R=function(n,t){n&&(n.loadingCount+=t)},G=function(n,t){n&&(n.toLoadCount=t)},j=function(n){for(var t,e=[],i=0;t=n.children[i];i+=1)\"SOURCE\"===t.tagName&&e.push(t);return e},D=function(n,t){var e=n.parentNode;e&&\"PICTURE\"===e.tagName&&j(e).forEach(t)},H=function(n,t){j(n).forEach(t)},V=[u],F=[u,f],B=[u,s,d],J=[g],P=function(n){return!!n[_]},S=function(n){return n[_]},U=function(n){return delete n[_]},$=function(n,t){if(!P(n)){var e={};t.forEach((function(t){e[t]=n.getAttribute(t)})),n[_]=e}},q=function(n,t){if(P(n)){var e=S(n);t.forEach((function(t){!function(n,t,e){e?n.setAttribute(t,e):n.removeAttribute(t)}(n,t,e[t])}))}},K=function(n,t,e){N(n,t.class_applied),w(n,m),e&&(t.unobserve_completed&&T(n,t),C(t.callback_applied,n,e))},Q=function(n,t,e){N(n,t.class_loading),w(n,v),e&&(R(e,1),C(t.callback_loading,n,e))},W=function(n,t,e){e&&n.setAttribute(t,e)},X=function(n,t){W(n,d,y(n,t.data_sizes)),W(n,s,y(n,t.data_srcset)),W(n,u,y(n,t.data_src))},Y={IMG:function(n,t){D(n,(function(n){$(n,B),X(n,t)})),$(n,B),X(n,t)},IFRAME:function(n,t){$(n,V),W(n,u,y(n,t.data_src))},VIDEO:function(n,t){H(n,(function(n){$(n,V),W(n,u,y(n,t.data_src))})),$(n,F),W(n,f,y(n,t.data_poster)),W(n,u,y(n,t.data_src)),n.load()},OBJECT:function(n,t){$(n,J),W(n,g,y(n,t.data_src))}},Z=[\"IMG\",\"IFRAME\",\"VIDEO\",\"OBJECT\"],nn=function(n,t){!t||function(n){return n.loadingCount>0}(t)||function(n){return n.toLoadCount>0}(t)||C(n.callback_finish,t)},tn=function(n,t,e){n.addEventListener(t,e),n.llEvLisnrs[t]=e},en=function(n,t,e){n.removeEventListener(t,e)},on=function(n){return!!n.llEvLisnrs},an=function(n){if(on(n)){var t=n.llEvLisnrs;for(var e in t){var i=t[e];en(n,e,i)}delete n.llEvLisnrs}},rn=function(n,t,e){!function(n){delete n.llTempImage}(n),R(e,-1),function(n){n&&(n.toLoadCount-=1)}(e),M(n,t.class_loading),t.unobserve_completed&&T(n,e)},cn=function(n,t,e){var i=z(n)||n;on(i)||function(n,t,e){on(n)||(n.llEvLisnrs={});var i=\"VIDEO\"===n.tagName?\"loadeddata\":\"load\";tn(n,i,t),tn(n,\"error\",e)}(i,(function(o){!function(n,t,e,i){var o=O(t);rn(t,e,i),N(t,e.class_loaded),w(t,b),C(e.callback_loaded,t,i),o||nn(e,i)}(0,n,t,e),an(i)}),(function(o){!function(n,t,e,i){var o=O(t);rn(t,e,i),N(t,e.class_error),w(t,p),C(e.callback_error,t,i),e.restore_on_error&&q(t,B),o||nn(e,i)}(0,n,t,e),an(i)}))},ln=function(n,t,e){!function(n){return Z.indexOf(n.tagName)>-1}(n)?function(n,t,e){!function(n){n.llTempImage=document.createElement(\"IMG\")}(n),cn(n,t,e),function(n){P(n)||(n[_]={backgroundImage:n.style.backgroundImage})}(n),function(n,t,e){var i=y(n,t.data_bg),o=y(n,t.data_bg_hidpi),r=a&&o?o:i;r&&(n.style.backgroundImage='url(\"'.concat(r,'\")'),z(n).setAttribute(u,r),Q(n,t,e))}(n,t,e),function(n,t,e){var i=y(n,t.data_bg_multi),o=y(n,t.data_bg_multi_hidpi),r=a&&o?o:i;r&&(n.style.backgroundImage=r,K(n,t,e))}(n,t,e),function(n,t,e){var i=y(n,t.data_bg_set);if(i){var o=i.split(\"|\"),a=o.map((function(n){return\"image-set(\".concat(n,\")\")}));n.style.backgroundImage=a.join(),\"\"===n.style.backgroundImage&&(a=o.map((function(n){return\"-webkit-image-set(\".concat(n,\")\")})),n.style.backgroundImage=a.join()),K(n,t,e)}}(n,t,e)}(n,t,e):function(n,t,e){cn(n,t,e),function(n,t,e){var i=Y[n.tagName];i&&(i(n,t),Q(n,t,e))}(n,t,e)}(n,t,e)},un=function(n){n.removeAttribute(u),n.removeAttribute(s),n.removeAttribute(d)},sn=function(n){D(n,(function(n){q(n,B)})),q(n,B)},dn={IMG:sn,IFRAME:function(n){q(n,V)},VIDEO:function(n){H(n,(function(n){q(n,V)})),q(n,F),n.load()},OBJECT:function(n){q(n,J)}},fn=function(n,t){(function(n){var t=dn[n.tagName];t?t(n):function(n){if(P(n)){var t=S(n);n.style.backgroundImage=t.backgroundImage}}(n)})(n),function(n,t){L(n)||O(n)||(M(n,t.class_entered),M(n,t.class_exited),M(n,t.class_applied),M(n,t.class_loading),M(n,t.class_loaded),M(n,t.class_error))}(n,t),A(n),U(n)},_n=[\"IMG\",\"IFRAME\",\"VIDEO\"],gn=function(n){return n.use_native&&\"loading\"in HTMLImageElement.prototype},vn=function(n,t,e){n.forEach((function(n){return function(n){return n.isIntersecting||n.intersectionRatio>0}(n)?function(n,t,e,i){var o=function(n){return x.indexOf(k(n))>=0}(n);w(n,\"entered\"),N(n,e.class_entered),M(n,e.class_exited),function(n,t,e){t.unobserve_entered&&T(n,e)}(n,e,i),C(e.callback_enter,n,t,i),o||ln(n,e,i)}(n.target,n,t,e):function(n,t,e,i){L(n)||(N(n,e.class_exited),function(n,t,e,i){e.cancel_on_exit&&function(n){return k(n)===v}(n)&&\"IMG\"===n.tagName&&(an(n),function(n){D(n,(function(n){un(n)})),un(n)}(n),sn(n),M(n,e.class_loading),R(i,-1),A(n),C(e.callback_cancel,n,t,i))}(n,t,e,i),C(e.callback_exit,n,t,i))}(n.target,n,t,e)}))},bn=function(n){return Array.prototype.slice.call(n)},mn=function(n){return n.container.querySelectorAll(n.elements_selector)},pn=function(n){return function(n){return k(n)===p}(n)},hn=function(n,t){return function(n){return bn(n).filter(L)}(n||mn(t))},En=function(n,e){var o=c(n);this._settings=o,this.loadingCount=0,function(n,t){i&&!gn(n)&&(t._observer=new IntersectionObserver((function(e){vn(e,n,t)}),function(n){return{root:n.container===document?null:n.container,rootMargin:n.thresholds||n.threshold+\"px\"}}(n)))}(o,this),function(n,e){t&&(e._onlineHandler=function(){!function(n,t){var e;(e=mn(n),bn(e).filter(pn)).forEach((function(t){M(t,n.class_error),A(t)})),t.update()}(n,e)},window.addEventListener(\"online\",e._onlineHandler))}(o,this),this.update(e)};return En.prototype={update:function(n){var t,o,a=this._settings,r=hn(n,a);G(this,r.length),!e&&i?gn(a)?function(n,t,e){n.forEach((function(n){-1!==_n.indexOf(n.tagName)&&function(n,t,e){n.setAttribute(\"loading\",\"lazy\"),cn(n,t,e),function(n,t){var e=Y[n.tagName];e&&e(n,t)}(n,t),w(n,h)}(n,t,e)})),G(e,0)}(r,a,this):(o=r,function(n){n.disconnect()}(t=this._observer),function(n,t){t.forEach((function(t){n.observe(t)}))}(t,o)):this.loadAll(r)},destroy:function(){this._observer&&this._observer.disconnect(),t&&window.removeEventListener(\"online\",this._onlineHandler),mn(this._settings).forEach((function(n){U(n)})),delete this._observer,delete this._settings,delete this._onlineHandler,delete this.loadingCount,delete this.toLoadCount},loadAll:function(n){var t=this,e=this._settings;hn(n,e).forEach((function(n){T(n,t),ln(n,e,t)}))},restoreAll:function(){var n=this._settings;mn(n).forEach((function(t){fn(t,n)}))}},En.load=function(n,t){var e=c(t);ln(n,e)},En.resetStatus=function(n){A(n)},t&&function(n,t){if(t)if(t.length)for(var e,i=0;e=t[i];i+=1)l(n,e);else l(n,t)}(En,window.lazyLoadOptions),En}));\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target = {}, src = {}) {\n Object.keys(src).forEach((key) => {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nconst ssrDocument = {\n body: {},\n addEventListener() { },\n removeEventListener() { },\n activeElement: {\n blur() { },\n nodeName: '',\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() { },\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() { },\n getElementsByTagName() {\n return [];\n },\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState() { },\n pushState() { },\n go() { },\n back() { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() { },\n removeEventListener() { },\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n },\n };\n },\n Image() { },\n Date() { },\n screen: {},\n setTimeout() { },\n clearTimeout() { },\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","/**\n * Dom7 4.0.4\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2022, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: January 11, 2022\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n const proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get() {\n return proto;\n },\n\n set(value) {\n proto.__proto__ = value;\n }\n\n });\n}\n\nclass Dom7 extends Array {\n constructor(items) {\n if (typeof items === 'number') {\n super(items);\n } else {\n super(...(items || []));\n makeReactive(this);\n }\n }\n\n}\n\nfunction arrayFlat(arr = []) {\n const res = [];\n arr.forEach(el => {\n if (Array.isArray(el)) {\n res.push(...arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n const uniqueArray = [];\n\n for (let i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, (match, group) => group.toUpperCase());\n}\n\n// eslint-disable-next-line\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n const a = [];\n const res = context.querySelectorAll(selector);\n\n for (let i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n const window = getWindow();\n const document = getDocument();\n let arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n const html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf(' c.split(' ')));\n this.forEach(el => {\n el.classList.add(...classNames);\n });\n return this;\n}\n\nfunction removeClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n el.classList.remove(...classNames);\n });\n return this;\n}\n\nfunction toggleClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n classNames.forEach(className => {\n el.classList.toggle(className);\n });\n });\n}\n\nfunction hasClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n return arrayFilter(this, el => {\n return classNames.filter(className => el.classList.contains(className)).length > 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (const attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (const propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n let el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n const dataKey = el.getAttribute(`data-${key}`);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (const dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (let i = 0; i < el.attributes.length; i += 1) {\n const attr = el.attributes[i];\n\n if (attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\n }\n }\n }\n\n for (const key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n const el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n const values = [];\n\n for (let i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\n for (let j = 0; j < el.options.length; j += 1) {\n el.options[j].selected = value.indexOf(el.options[j].value) >= 0;\n }\n } else {\n el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? `${duration}ms` : duration;\n }\n\n return this;\n}\n\nfunction on(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n const target = e.target;\n if (!target) return;\n const eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n const parents = $(target).parents(); // eslint-disable-line\n\n for (let k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n const events = eventType.split(' ');\n let j;\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n el.dom7LiveListeners[event].push({\n listener,\n proxyListener: handleLiveEvent\n });\n el.addEventListener(event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n const events = eventType.split(' ');\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (let k = handlers.length - 1; k >= 0; k -= 1) {\n const handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once(...args) {\n const dom = this;\n let [eventName, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\n }\n\n function onceHandler(...eventArgs) {\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger(...args) {\n const window = getWindow();\n const events = args[0].split(' ');\n const eventData = args[1];\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n\n if (window.CustomEvent) {\n const evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n const window = getWindow();\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n const window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n const window = getWindow();\n let i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (const prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach((el, index) => {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n const result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n let compareWith;\n let i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n let child = this[0];\n let i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n const length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n const returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append(...els) {\n let newChild;\n const document = getDocument();\n\n for (let k = 0; k < els.length; k += 1) {\n newChild = els[k];\n\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (let j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n const document = getDocument();\n let i;\n let j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n const before = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (let j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n const after = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (let j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n const nextEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(next).is(selector)) nextEls.push(next);\n } else nextEls.push(next);\n\n el = next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n const el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n const prevEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(prev).is(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n\n el = prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n let parent = this[i].parentNode; // eslint-disable-line\n\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n\n parent = parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n let closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n const foundElements = [];\n\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n const children = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].children;\n\n for (let j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add(...els) {\n const dom = this;\n let i;\n let j;\n\n for (i = 0; i < els.length; i += 1) {\n const toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.nodeType === 1) {\n for (let j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\n// eslint-disable-next-line\n\nfunction scrollTo(...args) {\n const window = getWindow();\n let [left, top, duration, easing, callback] = args;\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n const el = this;\n let currentTop;\n let currentLeft;\n let maxTop;\n let maxLeft;\n let newTop;\n let newLeft;\n let scrollTop; // eslint-disable-line\n\n let scrollLeft; // eslint-disable-line\n\n let animateTop = top > 0 || top === 0;\n let animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time = new Date().getTime()) {\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n let done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop(...args) {\n let [top, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft(...args) {\n let [left, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\n// eslint-disable-next-line\n\nfunction animate(initialProps, initialParams) {\n const window = getWindow();\n const els = this;\n const a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n\n easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n\n stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n\n done(complete) {\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n const elements = []; // Define & Cache Initials & Units\n\n a.elements.each((el, index) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(prop => {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue,\n initialValue,\n unit,\n finalValue,\n finalFullValue,\n currentValue: initialValue\n };\n });\n });\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n let progress;\n let easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(element => {\n const el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(prop => {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n const {\n initialValue,\n finalValue,\n unit\n } = el[prop];\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n const currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n let animateInstance;\n\n for (let i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n const els = this;\n\n for (let i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nconst noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler(...args) {\n if (typeof args[0] === 'undefined') {\n for (let i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on(name, ...args);\n }\n\n return eventHandler;\n}\n\nconst click = shortcut('click');\nconst blur = shortcut('blur');\nconst focus = shortcut('focus');\nconst focusin = shortcut('focusin');\nconst focusout = shortcut('focusout');\nconst keyup = shortcut('keyup');\nconst keydown = shortcut('keydown');\nconst keypress = shortcut('keypress');\nconst submit = shortcut('submit');\nconst change = shortcut('change');\nconst mousedown = shortcut('mousedown');\nconst mousemove = shortcut('mousemove');\nconst mouseup = shortcut('mouseup');\nconst mouseenter = shortcut('mouseenter');\nconst mouseleave = shortcut('mouseleave');\nconst mouseout = shortcut('mouseout');\nconst mouseover = shortcut('mouseover');\nconst touchstart = shortcut('touchstart');\nconst touchend = shortcut('touchend');\nconst touchmove = shortcut('touchmove');\nconst resize = shortcut('resize');\nconst scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };\n","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nconst Methods = {\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n transform,\n transition,\n on,\n off,\n trigger,\n transitionEnd,\n outerWidth,\n outerHeight,\n styles,\n offset,\n css,\n each,\n html,\n text,\n is,\n index,\n eq,\n append,\n prepend,\n next,\n nextAll,\n prev,\n prevAll,\n parent,\n parents,\n closest,\n find,\n children,\n filter,\n remove\n};\nObject.keys(Methods).forEach(methodName => {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nexport default $;","import { getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n\n if (!style) {\n style = el.style;\n }\n\n return style;\n}\n\nfunction getTranslate(el, axis = 'x') {\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\n\nfunction extend(...args) {\n const to = Object(args[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[i];\n\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\n return to;\n}\n\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\n\nfunction animateCSSModeScroll({\n swiper,\n targetPosition,\n side\n}) {\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n\n const animate = () => {\n time = new Date().getTime();\n\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n\n animate();\n}\n\nexport { animateCSSModeScroll, deleteProps, nextTick, now, getTranslate, isObject, extend, getComputedStyle, setCSSProperty };","import { getWindow, getDocument } from 'ssr-window';\nlet support;\n\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n passiveListener: function checkPassiveListener() {\n let supportsPassive = false;\n\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n }\n\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support.js';\nlet deviceCached;\n\nfunction calcDevice({\n userAgent\n} = {}) {\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides = {}) {\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n\n return deviceCached;\n}\n\nexport { getDevice };","import { getWindow } from 'ssr-window';\nlet browser;\n\nfunction calcBrowser() {\n const window = getWindow();\n\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\nexport { getBrowser };","/* eslint-disable no-underscore-dangle */\nexport default {\n on(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n\n once(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n\n function onceHandler(...args) {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n\n onAny(handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n\n offAny(handler) {\n const self = this;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n\n emit(...args) {\n const self = this;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n\n};","import updateSize from './updateSize.js';\nimport updateSlides from './updateSlides.js';\nimport updateAutoHeight from './updateAutoHeight.js';\nimport updateSlidesOffset from './updateSlidesOffset.js';\nimport updateSlidesProgress from './updateSlidesProgress.js';\nimport updateProgress from './updateProgress.js';\nimport updateSlidesClasses from './updateSlidesClasses.js';\nimport updateActiveIndex from './updateActiveIndex.js';\nimport updateClickedSlide from './updateClickedSlide.js';\nexport default {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};","export default function updateSize() {\n const swiper = this;\n let width;\n let height;\n const $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { setCSSProperty } from '../../shared/utils.js';\nexport default function updateSlides() {\n const swiper = this;\n\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n } // prettier-ignore\n\n\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n\n const params = swiper.params;\n const {\n $wrapperEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n let offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginBottom: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: '',\n marginTop: ''\n }); // reset cssMode offsets\n\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', '');\n }\n\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n\n if (gridEnabled) {\n swiper.grid.initSlides(slidesLength);\n } // Calc slides\n\n\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n const slide = slides.eq(i);\n\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[getDirectionLabel('width')] = ``;\n }\n\n const slideStyles = getComputedStyle(slide[0]);\n const currentTransform = slide[0].style.transform;\n const currentWebKitTransform = slide[0].style.webkitTransform;\n\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide[0];\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (params.setWrapperSize) {\n $wrapperEl.css({\n [getDirectionLabel('width')]: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }).css({\n [key]: `${spaceBetween}px`\n });\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(snap => {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n}","export default function updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides.filter(el => parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index)[0];\n }\n\n return swiper.slides.eq(index)[0];\n }; // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n } // Find new height from highest slide in view\n\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight || newHeight === 0) swiper.$wrapperEl.css('height', `${newHeight}px`);\n}","export default function updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateSlidesProgress(translate = this && this.translate || 0) {\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","export default function updateProgress(translate) {\n const swiper = this;\n\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n Object.assign(swiper, {\n progress,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n $wrapperEl,\n activeIndex,\n realIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\n let activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`);\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}","export default function updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n slidesGrid,\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n Object.assign(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = $(e).closest(`.${params.slideClass}`)[0];\n let slideFound = false;\n let slideIndex;\n\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","import getTranslate from './getTranslate.js';\nimport setTranslate from './setTranslate.js';\nimport minTranslate from './minTranslate.js';\nimport maxTranslate from './maxTranslate.js';\nimport translateTo from './translateTo.js';\nexport default {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};","import { getTranslate } from '../../shared/utils.js';\nexport default function getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') {\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n $wrapperEl\n } = swiper;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n let currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n $wrapperEl,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function translateTo(translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","export default function transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step\n}) {\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit(`transition${step}`);\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n\n swiper.emit(`slideChangeTransition${step}`);\n\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}","import setTransition from './setTransition.js';\nimport transitionStart from './transitionStart.js';\nimport transitionEnd from './transitionEnd.js';\nexport default {\n setTransition,\n transitionStart,\n transitionEnd\n};","export default function setTransition(duration, byController) {\n const swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionStart(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionEnd(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}","import slideTo from './slideTo.js';\nimport slideToLoop from './slideToLoop.js';\nimport slideNext from './slideNext.js';\nimport slidePrev from './slidePrev.js';\nimport slideReset from './slideReset.js';\nimport slideToClosest from './slideToClosest.js';\nimport slideToClickedSlide from './slideToClickedSlide.js';\nexport default {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function slideTo(index = 0, speed = this.params.speed, runCallbacks = true, internal, initial) {\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(`The 'index' argument cannot have type other than 'number' or 'string'. [${typeof index}] given.`);\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n const indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n const isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n const translate = -snapGrid[snapIndex]; // Update progress\n\n swiper.updateProgress(translate); // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._swiperImmediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n\n return true;\n}","export default function slideToLoop(index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n let newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n animating,\n enabled,\n params\n } = swiper;\n if (!enabled) return swiper;\n let perGroup = params.slidesPerGroup;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n params,\n animating,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return swiper;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n\n let prevIndex = 0;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n\n if (params.rewind && swiper.isBeginning) {\n return swiper.slideTo(swiper.slides.length - 1, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed = this.params.speed, runCallbacks = true, internal, threshold = 0.5) {\n const swiper = this;\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import $ from '../../shared/dom.js';\nimport { nextTick } from '../../shared/utils.js';\nexport default function slideToClickedSlide() {\n const swiper = this;\n const {\n params,\n $wrapperEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import loopCreate from './loopCreate.js';\nimport loopFix from './loopFix.js';\nimport loopDestroy from './loopDestroy.js';\nexport default {\n loopCreate,\n loopFix,\n loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loopCreate() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n $wrapperEl\n } = swiper; // Remove duplicated slides\n\n const $selector = $wrapperEl.children().length > 0 ? $($wrapperEl.children()[0].parentNode) : $wrapperEl;\n $selector.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n let slides = $selector.children(`.${params.slideClass}`);\n\n if (params.loopFillGroupWithBlank) {\n const blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankNode = $(document.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`);\n $selector.append(blankNode);\n }\n\n slides = $selector.children(`.${params.slideClass}`);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n const prependSlides = [];\n const appendSlides = [];\n slides.each((el, index) => {\n const slide = $(el);\n\n if (index < swiper.loopedSlides) {\n appendSlides.push(el);\n }\n\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\n prependSlides.push(el);\n }\n\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (let i = 0; i < appendSlides.length; i += 1) {\n $selector.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n $selector.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n const swiper = this;\n swiper.emit('beforeLoopFix');\n const {\n activeIndex,\n slides,\n loopedSlides,\n allowSlidePrev,\n allowSlideNext,\n snapGrid,\n rtlTranslate: rtl\n } = swiper;\n let newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n const snapTranslate = -snapGrid[activeIndex];\n const diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n const swiper = this;\n const {\n $wrapperEl,\n params,\n slides\n } = swiper;\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import setGrabCursor from './setGrabCursor.js';\nimport unsetGrabCursor from './unsetGrabCursor.js';\nexport default {\n setGrabCursor,\n unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n const swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n const swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n}","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js'; // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\n\nfunction closestElement(selector, base = this) {\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n return found || __closestFrom(el.getRootNode().host);\n }\n\n return __closestFrom(base);\n}\n\nexport default function onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root component\n\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) {\n $targetEl = $(event.path[0]);\n }\n\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element\n\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, e.target) : $targetEl.closest(noSwipingSelector)[0])) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n let preventDefault = true;\n if ($targetEl.is(data.focusableElements)) preventDefault = false;\n\n if (document.activeElement && $(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js';\nexport default function onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n return;\n }\n\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n const targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n const pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n const pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n\n if (!data.startMoving) {\n return;\n }\n\n swiper.allowClick = false;\n\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop && !params.cssMode) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n let diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../shared/utils.js';\nexport default function onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n\n data.allowTouchCallbacks = false;\n\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n } // Find current slide\n\n\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n } // Find current slide size\n\n\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === -0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart.js';\nimport onTouchMove from './onTouchMove.js';\nimport onTouchEnd from './onTouchEnd.js';\nimport onResize from './onResize.js';\nimport onClick from './onClick.js';\nimport onScroll from './onScroll.js';\nlet dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n touchEvents,\n el,\n wrapperEl,\n device,\n support\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method; // Touch Events\n\n if (!support.touch) {\n el[domMethod](touchEvents.start, swiper.onTouchStart, false);\n document[domMethod](touchEvents.move, swiper.onTouchMove, capture);\n document[domMethod](touchEvents.end, swiper.onTouchEnd, false);\n } else {\n const passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el[domMethod](touchEvents.start, swiper.onTouchStart, passiveListener);\n el[domMethod](touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture\n } : capture);\n el[domMethod](touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el[domMethod](touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n};\n\nfunction attachEvents() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n support\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n\n if (support.touch && !dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n\n events(swiper, 'on');\n}\n\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\n\nexport default {\n attachEvents,\n detachEvents\n};","import { extend } from '../../shared/utils.js';\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\n\nexport default function setBreakpoint() {\n const swiper = this;\n const {\n activeIndex,\n initialized,\n loopedSlides = 0,\n params,\n $el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasEnabled = params.enabled;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(`${params.containerModifierClass}grid ${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(`${params.containerModifierClass}grid`);\n\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n $el.addClass(`${params.containerModifierClass}grid-column`);\n }\n\n swiper.emitContainerClasses();\n }\n\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n}","import setBreakpoint from './setBreakpoint.js';\nimport getBreakpoint from './getBreakpoint.js';\nexport default {\n setBreakpoint,\n getBreakpoint\n};","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base = 'window', containerEl) {\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}","import addClasses from './addClasses.js';\nimport removeClasses from './removeClasses.js';\nexport default {\n addClasses,\n removeClasses\n};","function prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\n\nexport default function addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n $el,\n device,\n support\n } = swiper; // prettier-ignore\n\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': !support.touch\n }, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n $el.addClass([...classNames].join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n const swiper = this;\n const {\n $el,\n classNames\n } = swiper;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","import loadImage from './loadImage.js';\nimport preloadImages from './preloadImages.js';\nexport default {\n loadImage,\n preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n const window = getWindow();\n let image;\n\n function onReady() {\n if (callback) callback();\n }\n\n const isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n const swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n const imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","function checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\n\nexport default {\n checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","import { extend } from '../shared/utils.js';\nexport default function moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj = {}) {\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}","/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport $ from '../shared/dom.js';\nimport { extend, now, deleteProps } from '../shared/utils.js';\nimport { getSupport } from '../shared/get-support.js';\nimport { getDevice } from '../shared/get-device.js';\nimport { getBrowser } from '../shared/get-browser.js';\nimport Resize from './modules/resize/resize.js';\nimport Observer from './modules/observer/observer.js';\nimport eventsEmitter from './events-emitter.js';\nimport update from './update/index.js';\nimport translate from './translate/index.js';\nimport transition from './transition/index.js';\nimport slide from './slide/index.js';\nimport loop from './loop/index.js';\nimport grabCursor from './grab-cursor/index.js';\nimport events from './events/index.js';\nimport breakpoints from './breakpoints/index.js';\nimport classes from './classes/index.js';\nimport images from './images/index.js';\nimport checkOverflow from './check-overflow/index.js';\nimport defaults from './defaults.js';\nimport moduleExtendParams from './moduleExtendParams.js';\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events,\n breakpoints,\n checkOverflow,\n classes,\n images\n};\nconst extendedDefaults = {};\n\nclass Swiper {\n constructor(...args) {\n let el;\n let params;\n\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n\n if (params.el && $(params.el).length > 1) {\n const swipers = [];\n $(params.el).each(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n } // Swiper Instance\n\n\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n }); // Extend defaults with modules params\n\n const swiperParams = extend({}, defaults, allModulesParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = $; // Extend Swiper\n\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n const touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n const desktop = ['pointerdown', 'pointermove', 'pointerup'];\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n\n\n return swiper;\n }\n\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n swiper.emit('enable');\n }\n\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n\n swiper.emit('disable');\n }\n\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n\n getSlideClasses(slideEl) {\n const swiper = this;\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.each(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n\n slidesPerViewDynamic(view = 'current', exact = false) {\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n\n return spv;\n }\n\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n let translated;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n }\n\n changeDirection(newDirection, needUpdate = true) {\n const swiper = this;\n const currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(`${swiper.params.containerModifierClass}${currentDirection}`).addClass(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n\n mount(el) {\n const swiper = this;\n if (swiper.mounted) return true; // Find el\n\n const $el = $(el || swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return false;\n }\n\n el.swiper = swiper;\n\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = $(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n res.children = options => $el.children(options);\n\n return res;\n }\n\n return $el.children(getWrapperSelector());\n }; // Find Wrapper\n\n\n let $wrapperEl = getWrapper();\n\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n const document = getDocument();\n const wrapper = document.createElement('div');\n $wrapperEl = $(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(`.${swiper.params.slideClass}`).each(slideEl => {\n $wrapperEl.append(slideEl);\n });\n }\n\n Object.assign(swiper, {\n $el,\n el,\n $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n });\n return true;\n }\n\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n\n destroy(deleteInstance = true, cleanStyles = true) {\n const swiper = this;\n const {\n params,\n $el,\n $wrapperEl,\n slides\n } = swiper;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n }\n\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n\n static get extendedDefaults() {\n return extendedDefaults;\n }\n\n static get defaults() {\n return defaults;\n }\n\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n }\n\n}\n\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import { getWindow } from 'ssr-window';\nexport default function Resize({\n swiper,\n on,\n emit\n}) {\n const window = getWindow();\n let observer = null;\n\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(({\n contentBoxSize,\n contentRect,\n target\n }) => {\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n observer.observe(swiper.el);\n };\n\n const removeObserver = () => {\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}","import { getWindow } from 'ssr-window';\nexport default function Observer({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const observers = [];\n const window = getWindow();\n\n const attach = (target, options = {}) => {\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n\n const init = () => {\n if (!swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n const containerParents = swiper.$el.parents();\n\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n } // Observe container\n\n\n attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n };\n\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}","import { getDocument } from 'ssr-window';\nexport default function createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n const document = getDocument();\n\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = swiper.$el.children(`.${checkProps[key]}`)[0];\n\n if (!element) {\n element = document.createElement('div');\n element.className = checkProps[key];\n swiper.$el.append(element);\n }\n\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n\n return params;\n}","import createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nimport $ from '../../shared/dom.js';\nexport default function Navigation({\n swiper,\n extendParams,\n on,\n emit\n}) {\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock'\n }\n });\n swiper.navigation = {\n nextEl: null,\n $nextEl: null,\n prevEl: null,\n $prevEl: null\n };\n\n function getEl(el) {\n let $el;\n\n if (el) {\n $el = $(el);\n\n if (swiper.params.uniqueNavElements && typeof el === 'string' && $el.length > 1 && swiper.$el.find(el).length === 1) {\n $el = swiper.$el.find(el);\n }\n }\n\n return $el;\n }\n\n function toggleEl($el, disabled) {\n const params = swiper.params.navigation;\n\n if ($el && $el.length > 0) {\n $el[disabled ? 'addClass' : 'removeClass'](params.disabledClass);\n if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n }\n\n function update() {\n // Update Navigation Buttons\n if (swiper.params.loop) return;\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n toggleEl($prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl($nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n }\n\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n }\n\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n const $nextEl = getEl(params.nextEl);\n const $prevEl = getEl(params.prevEl);\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', onNextClick);\n }\n\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', onPrevClick);\n }\n\n Object.assign(swiper.navigation, {\n $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl,\n prevEl: $prevEl && $prevEl[0]\n });\n\n if (!swiper.enabled) {\n if ($nextEl) $nextEl.addClass(params.lockClass);\n if ($prevEl) $prevEl.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n\n on('init', () => {\n init();\n update();\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($nextEl) {\n $nextEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n\n if ($prevEl) {\n $prevEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n });\n on('click', (_s, e) => {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n const targetEl = e.target;\n\n if (swiper.params.navigation.hideOnClick && !$(targetEl).is($prevEl) && !$(targetEl).is($nextEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n });\n Object.assign(swiper.navigation, {\n update,\n init,\n destroy\n });\n}","export default function classesToSelector(classes = '') {\n return `.${classes.trim().replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}","import $ from '../../shared/dom.js';\nimport classesToSelector from '../../shared/classes-to-selector.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Pagination({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`\n }\n });\n swiper.pagination = {\n el: null,\n $el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0;\n }\n\n function setSideBullets($bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n $bulletEl[position]().addClass(`${bulletActiveClass}-${position}`)[position]().addClass(`${bulletActiveClass}-${position}-${position}`);\n }\n\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el; // Current/Total\n\n let current;\n const total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\n\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n } // Types\n\n\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n\n if (params.dynamicBullets) {\n bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', `${bulletSize * (params.dynamicMainBullets + 4)}px`);\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n dynamicBulletIndex += current - (swiper.previousIndex - swiper.loopedSlides || 0);\n\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n\n bullets.removeClass(['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`).join(' '));\n\n if ($el.length > 1) {\n bullets.each(bullet => {\n const $bullet = $(bullet);\n const bulletIndex = $bullet.index();\n\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(`${params.bulletActiveClass}-main`);\n }\n\n if (bulletIndex === firstIndex) {\n setSideBullets($bullet, 'prev');\n }\n\n if (bulletIndex === lastIndex) {\n setSideBullets($bullet, 'next');\n }\n }\n });\n } else {\n const $bullet = bullets.eq(current);\n const bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n\n if (params.dynamicBullets) {\n const $firstDisplayedBullet = bullets.eq(firstIndex);\n const $lastDisplayedBullet = bullets.eq(lastIndex);\n\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(`${params.bulletActiveClass}-main`);\n }\n\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length) {\n for (let i = params.dynamicMainBullets; i >= 0; i -= 1) {\n bullets.eq(bullets.length - i).addClass(`${params.bulletActiveClass}-main`);\n }\n\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(`${params.bulletActiveClass}-prev`);\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n }\n }\n\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`);\n }\n }\n\n if (params.type === 'fraction') {\n $el.find(classesToSelector(params.currentClass)).text(params.formatFractionCurrent(current + 1));\n $el.find(classesToSelector(params.totalClass)).text(params.formatFractionTotal(total));\n }\n\n if (params.type === 'progressbar') {\n let progressbarDirection;\n\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n\n $el.find(classesToSelector(params.progressbarFillClass)).transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed);\n }\n\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n emit('paginationRender', $el[0]);\n } else {\n emit('paginationUpdate', $el[0]);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el;\n let paginationHTML = '';\n\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.loop && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\">`;\n }\n }\n\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(classesToSelector(params.bulletClass));\n }\n\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `` + ' / ' + ``;\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type !== 'custom') {\n emit('paginationRender', swiper.pagination.$el[0]);\n }\n }\n\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let $el = $(params.el);\n if ($el.length === 0) return;\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n $el = swiper.$el.find(params.el); // check if it belongs to another nested Swiper\n\n if ($el.length > 1) {\n $el = $el.filter(el => {\n if ($(el).parents('.swiper')[0] !== swiper.el) return false;\n return true;\n });\n }\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n $el.addClass(params.modifierClass + swiper.params.direction);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', classesToSelector(params.bulletClass), function onClick(e) {\n e.preventDefault();\n let index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n Object.assign(swiper.pagination, {\n $el,\n el: $el[0]\n });\n\n if (!swiper.enabled) {\n $el.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n $el.removeClass(params.modifierClass + swiper.params.direction);\n if (swiper.pagination.bullets && swiper.pagination.bullets.removeClass) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n if (params.clickable) {\n $el.off('click', classesToSelector(params.bulletClass));\n }\n }\n\n on('init', () => {\n init();\n render();\n update();\n });\n on('activeIndexChange', () => {\n if (swiper.params.loop) {\n update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n if (!swiper.params.loop) {\n update();\n }\n });\n on('slidesLengthChange', () => {\n if (swiper.params.loop) {\n render();\n update();\n }\n });\n on('snapGridLengthChange', () => {\n if (!swiper.params.loop) {\n render();\n update();\n }\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $el\n } = swiper.pagination;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n const {\n $el\n } = swiper.pagination;\n\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && $el.length > 0 && !$(targetEl).hasClass(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = $el.hasClass(swiper.params.pagination.hiddenClass);\n\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n\n $el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n });\n Object.assign(swiper.pagination, {\n render,\n update,\n init,\n destroy\n });\n}","import Swiper, { Navigation, Pagination } from 'swiper';\nSwiper.use([Navigation, Pagination]);\n\nclass Readmore\n{\n className: string;\n readmore: HTMLElement;\n contentContainer: HTMLElement;\n viewHeight: number;\n fullHeight: number;\n buttonOpenText: string = ' Read Less';\n buttonClosedText: string = ' Read More';\n readmoreButton: HTMLButtonElement;\n\n constructor(className: string)\n {\n // used to find the correct readmore on page\n this.className = className;\n this.init();\n }\n\n init()\n {\n /* without ids use class init foreach \n // this could be a global querySelectorAll to find all readmores but lets just init by id\n const readmores = document.querySelectorAll('.readmore-container');\n readmores.forEach(function(readmore: HTMLElement)\n {\n\n });\n */\n this.readmore = document.querySelector(`.${this.className}[data-readmore=\"true\"]`);\n\n if (this.readmore) {\n this.contentContainer = this.readmore.querySelector('.content-container') as HTMLElement;\n this.fullHeight = this.contentContainer.offsetHeight;\n this.displayView();\n }\n }\n\n private displayView()\n {\n const ps: NodeListOf = this.readmore.querySelectorAll('p');\n if (ps)\n {\n // hide logic, TODO: use data-readmore-p=\"x\" to hide extra\n if (ps.length > 2){\n //set collapsed container height based on amount of paragraphs\n this.viewHeight = (ps[0].offsetHeight + ps[1].offsetHeight) + 30;\n } else if (ps.length > 1) {\n this.viewHeight = ps[0].offsetHeight + 30;\n }\n this.contentContainer.style.height = `${this.viewHeight}px`;\n this.contentContainer.classList.add('collapsed');\n\n // append the new button to document\n this.createButton();\n this.readmore.append(this.readmoreButton);\n }\n }\n\n private createButton(): HTMLButtonElement\n {\n const self = this;\n // create readmore toggle button\n this.readmoreButton = document.createElement(\"button\");\n this.readmoreButton.classList.add('btn');\n this.readmoreButton.classList.add('btn-outline-primary');\n this.readmoreButton.classList.add('readmore');\n this.readmoreButton.innerHTML = this.buttonClosedText;\n\n //readmore toggle button click event to toggle height\n this.readmoreButton.addEventListener('click', function(e)\n {\n self.toggle();\n });\n return this.readmoreButton;\n }\n\n toggle()\n {\n if (this.contentContainer.classList.contains('collapsed')){\n this.contentContainer.classList.remove('collapsed');\n this.contentContainer.style.height = `${this.fullHeight}px`;\n this.readmoreButton.innerHTML = this.buttonOpenText;\n } else {\n this.contentContainer.classList.add('collapsed');\n this.contentContainer.style.height = `${this.viewHeight}px`;\n this.readmoreButton.innerHTML = this.buttonClosedText;\n }\n }\n}\n\nexport default Readmore;","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","import { v4 as uuidv4 } from 'uuid';\n\nclass Utility {\n\n static htmlDecode(value) {\n var doc = new DOMParser().parseFromString(value, \"text/html\");\n if (doc) {\n return doc.documentElement.textContent;\n }\n return \"\";\n }\n\n static getUrlParameter(name) {\n let url = new URL(window.location.href);\n return url.searchParams.get(name);\n }\n\n static setUrlParameter(name, value) {\n let url = new URL(window.location.href);\n if(!url.searchParams.get(name)) {\n url.searchParams.append(name, value);\n }\n url.searchParams.set(name, value);\n \n // push to browser url\n if (history.pushState) {\n // window.history.pushState({ path: url.href }, '', url.href);\n window.history.replaceState({}, document.title, url.href);\n }\n }\n\n static removeUrlParameter(name) {\n let url = new URL(window.location.href);\n if(url.searchParams.get(name)) {\n url.searchParams.delete(name);\n }\n if (history.pushState) {\n // window.history.pushState({ path: url.href }, '', url.href);\n window.history.replaceState({}, document.title, url.href);\n }\n }\n\n static detectBrowserOS() {\n let browserAppVer : string = window.navigator.appVersion;\n let osName : string = \"Unknown\";\n if (browserAppVer.indexOf(\"Win\") > -1) osName = \"Windows\";\n if (browserAppVer.indexOf(\"Mac\") > -1) osName = \"MacOS\";\n if (browserAppVer.indexOf(\"X11\") > -1) osName = \"UNIX\";\n if (browserAppVer.indexOf(\"Linux\") > -1) osName = \"Linux\";\n if (browserAppVer.indexOf(\"Android\") > -1) osName = \"Android\";\n return osName;\n }\n\n static validateUrl(url:string) {\n let isValid : boolean = false;\n if (url.length <= 500) {\n if (url.indexOf('www') > -1 || url.indexOf('http') > -1 || url.indexOf('https') || url.indexOf('.ca') || url.indexOf('.com')) {\n isValid = true;\n }\n }\n return isValid;\n }\n \n static removeInjectedTags(strContent : string){\n if(strContent === '' || strContent === null){\n return '';\n }\n return strContent.replace( /(<([^>]+)>)/ig, '');\n }\n\n static detectBrowserVersion() {\n let browserVersion = (function () {\n var useragent = navigator.userAgent, tem,\n M = useragent.match(/(opera|chrome|safari|firefox|msie|trident(?=\\/))\\/?\\s*(\\d+)/i) || [];\n if (/trident/i.test(M[1])) {\n tem = /\\brv[ :]+(\\d+)/g.exec(useragent) || [];\n return 'IE ' + (tem[1] || '');\n }\n if (M[1] === 'Chrome') {\n tem = useragent.match(/\\b(OPR|Edge)\\/(\\d+)/);\n if (tem !== null) return tem.slice(1).join(' ').replace('OPR', 'Opera');\n }\n M = M[2] ? [M[1], M[2]] : [navigator.appName, navigator.appVersion, '-?'];\n if ((tem = useragent.match(/version\\/(\\d+)/i)) !== null) M.splice(1, 1, tem[1]);\n return M.join(' ').toString();\n })();\n if (browserVersion)\n return browserVersion;\n else\n return \"unknown\";\n }\n\n static async sha256(message) {\n // encode as UTF-8\n const msgBuffer = new TextEncoder().encode(message);\n const hashBuffer = await crypto.subtle.digest('SHA-256', msgBuffer);\n // convert ArrayBuffer to Array\n const hashArray = Array.from(new Uint8Array(hashBuffer));\n // convert bytes to hex string\n const hashHex = hashArray.map(b => ('00' + b.toString(16)).slice(-2)).join('');\n return hashHex;\n }\n\n static asyncLocalStorage = {\n setItem: function (key, value) {\n return Promise.resolve().then(function () {\n localStorage.setItem(key, value);\n });\n },\n getItem: function (key) {\n return Promise.resolve().then(function () {\n return localStorage.getItem(key);\n });\n }\n }\n\n static randomLetters(length) {\n let result = '';\n let characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';\n let charactersLength = characters.length;\n for ( let i = 0; i < length; i++ ) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n }\n return result;\n }\n\n static isTouchDevice() {\n return (('ontouchstart' in window) ||\n (navigator.maxTouchPoints > 0));\n }\n\n static removeAfterHyphen(value: string) {\n if (value.includes(\" -\"))\n {\n return value.split(\" -\")[0];\n }\n return value;\n }\n\n static uuidv4() {\n return uuidv4();\n }\n}\nexport default Utility;","import Utility from \"./utility\";\nimport 'mmenu-js/dist/mmenu.js';\ndeclare const Mmenu: any;\n\n// interface RecentlyViewedProgram {\n// title: string;\n// url: string;\n// date: string;\n// }\n\nclass Header {\n menuElement: HTMLElement;\n //sitewidebanner: HTMLElement | null;\n menu;\n utility = Utility;\n\n constructor() {\n this.init();\n }\n\n init() {\n // set up our universal constants\n const secondaryNav = document.querySelector('.secondary-nav') as HTMLElement | null;\n const bannerCloseButton = document.getElementById('sitewide-banner-close');\n const slideMenu = document.querySelector('.slide-menu');\n \n let sitewideBannerHeight: number;\n let secondaryNavHeight: number;\n let combinedHeight: number;\n let spacerHeight: number;\n \n let isBannerClosed = false;\n\n const infoDropdown: HTMLSelectElement = document.querySelector('.info-dropdown select');\n const infoDropdownBtn: HTMLButtonElement = document.querySelector('.info-dropdown button')\n\n // utility function to calculate the combined height of the sitewide banner and secondary nav\n function calculateCombinedHeight() {\n const sitewideBanner = document.querySelector('.sitewide-banner') as HTMLElement | null;\n sitewideBannerHeight = sitewideBanner ? sitewideBanner.clientHeight : 0;\n secondaryNavHeight = secondaryNav ? secondaryNav.clientHeight : 0;\n combinedHeight = window.innerWidth < 1200 ? sitewideBannerHeight : sitewideBannerHeight + secondaryNavHeight;\n spacerHeight = sitewideBannerHeight + secondaryNavHeight;\n\n const fixedMenuSpacer = document.querySelector('.fixed-menu-spacer') as HTMLElement | null;\n if (fixedMenuSpacer) {\n fixedMenuSpacer.style.height = `${spacerHeight}px`;\n }\n }\n\n // handle mobile menu top position dynamic value\n function setSlideMenuAttributes() {\n calculateCombinedHeight();\n \n const totalHeight = secondaryNavHeight;\n const slideMenuHeight = window.innerHeight - totalHeight;\n\n const mobileNavCloseButtons = document.querySelectorAll('.mobile-nav-close');\n\n if (slideMenu) {\n const slideMenuTop = window.scrollY >= combinedHeight ? secondaryNavHeight + 1 : totalHeight + 1;\n slideMenu.style.top = `${slideMenuTop}px`;\n slideMenu.style.height = `${slideMenuHeight - 1}px`;\n }\n\n //this was causing close button to disapear when alert was present but I am assuming it was here for a reason so I just commented it out \n //const closeButtonTop = window.scrollY >= combinedHeight || 18 ;\n const closeButtonTop = 18;\n mobileNavCloseButtons.forEach(btn => {\n //console.log(btn);\n btn.style.top = `${closeButtonTop}px`; \n });\n }\n\n // handle insertion of the close button for the mobile menu\n function insertContentIntoBlockerElement(elementId: string, content: string): void {\n // First, select the element with the specified ID.\n const targetElement = document.getElementById(elementId);\n\n if (!targetElement) {\n console.error(`No element with ID \"${elementId}\" found.`);\n return; // Exit the function if the element is not found\n }\n\n // Set the innerHTML of the element with the provided content.\n // This will replace any existing content inside the element with the new content.\n targetElement.innerHTML = content;\n }\n\n function updateBlockerElementWithContent(): void {\n // Define the ID of the target element.\n const elementId = 'mm-0';\n\n // Define the content to be inserted.\n // Using a template literal here for clarity and multiline string.\n const newContent = `\n \n Close\n \n \n `;\n\n // Call the function to insert content into the element.\n insertContentIntoBlockerElement(elementId, newContent);\n }\n\n // set the right position of '.mobile-nav-close' based on '#slide-nav-toggle'\n function setCloseButtonPosition(): void {\n // Select the reference element\n const referenceElement = document.getElementById('slide-nav-toggle');\n\n if (!referenceElement) {\n console.error('Reference element not found.');\n return; // Exit if the reference element isn't found\n }\n\n // Get the right position of the reference element relative to the viewport\n const rightPosition = window.innerWidth - referenceElement.getBoundingClientRect().right;\n\n // Iterate over all elements with the 'mobile-nav-close' class to adjust their 'right' position\n document.querySelectorAll('.mobile-nav-close').forEach(element => {\n element.style.right = `${rightPosition}px`;\n });\n }\n\n // handle close mobile menu button and toggle visibility based on the inert attribute of #mm-0.\n function handleMobileNavButtonVisibility(): void {\n const mobileNavToggleButton = document.getElementById('slide-nav-toggle') as HTMLElement;\n const mobileNavCloseButton = document.querySelector('.mobile-nav-close') as HTMLElement;\n const mm0Element = document.getElementById('mm-0');\n\n // Check if the elements exist\n if (!mobileNavToggleButton || !mm0Element) {\n console.error('Required elements not found.');\n return; // Exit the function early if the elements aren't found\n }\n\n // Create a MutationObserver to watch for changes in the 'inert' attribute\n const observer = new MutationObserver((mutationsList) => {\n // Loop through the mutations list to handle changes\n for (const mutation of mutationsList) {\n if (mutation.type === 'attributes' && mutation.attributeName === 'inert') {\n // Check if the 'inert' attribute is present and adjust visibility based on it\n if (mm0Element.hasAttribute('inert')) {\n // If 'inert' is present, make the button visible\n mobileNavToggleButton.style.visibility = 'visible';\n mobileNavCloseButton.style.display = 'none';\n } else {\n // If 'inert' is not present, hide the button\n mobileNavToggleButton.style.visibility = 'hidden';\n mobileNavCloseButton.style.display = 'inline-flex';\n }\n\n break; // If the relevant mutation is found and handled, we can break out of the loop\n }\n }\n });\n\n // Configure the MutationObserver to watch for attribute changes\n observer.observe(mm0Element, { attributes: true });\n }\n\n // handle mobile menu backlinks classes\n function mobileMenuBacklinksClasses(): void {\n // handle mobile menu backlinks classes\n const mmNavbars = document.querySelectorAll('.mm-navbar');\n\n mmNavbars.forEach((mmNavbar) => {\n // Get the parent of the .mm-navbar element\n const parent = mmNavbar.parentElement;\n\n const primary = parent.querySelector('.primary');\n if (primary === mmNavbar.nextElementSibling) {\n mmNavbar.classList.add('primary');\n }\n\n const secondary = parent.querySelector('.secondary');\n if (secondary === mmNavbar.nextElementSibling) {\n mmNavbar.classList.add('secondary');\n }\n\n const tertiary = parent.querySelector('.tertiary');\n if (tertiary === mmNavbar.nextElementSibling) {\n mmNavbar.classList.add('tertiary');\n }\n });\n }\n\n // handle mobile menu backlink content label\n function changeTextContentOfBacklinks(selector: string, newContent: string): void {\n // First, select all elements that match the given CSS selector.\n const elements = document.querySelectorAll(selector);\n\n // Iterate over every element and change its text content to the specified string.\n elements.forEach((element: Element) => {\n element.textContent = newContent;\n });\n }\n\n // handle classes for first and last instances of primary, secondary, tertiary
  • elements in mobile menu\n function assignFirstAndLastClasses(parentId: string, className: string): void {\n // Select the container element\n const container = document.getElementById(parentId);\n\n if (!container) {\n console.error(`No element with ID \"${parentId}\" found.`);\n return; // Exit the function if container is not found\n }\n \n // Get all the elements with the specific class\n const items = container.getElementsByClassName(className);\n\n if (items.length === 0) {\n console.log(`No elements with the class \"${className}\" found.`);\n return; // Exit the function if no elements are found\n }\n \n // Logic to add 'first' class, considering the 'label' exception\n for (let i = 0; i < items.length; i++) {\n const item = items[i] as HTMLElement; // As we're dealing with HTML elements\n\n // If it's the 'secondary' class and the item has a 'label' class, we skip\n if (className === 'secondary' && item.classList.contains('label')) {\n continue; // Skip this item and continue with the next one\n }\n\n // If it's the first item that doesn't have 'label' (for 'secondary'), or any item for other classes\n if (item) {\n item.classList.add('first');\n break; // Exit the loop after marking the first valid item\n }\n }\n\n // Add 'last' class to the last element, if it exists\n if (items[items.length - 1]) {\n (items[items.length - 1] as HTMLElement).classList.add('last'); // Ensure it's treated as an HTMLElement\n }\n }\n\n // execute the function for the 'primary', 'secondary', and 'tertiary' classes\n function assignFirstLastClassesToElements(): void {\n const parentId = 'mm-1';\n const classes = ['primary', 'secondary', 'tertiary'];\n\n classes.forEach((className) => {\n assignFirstAndLastClasses(parentId, className);\n });\n }\n\n // handle equalization of dropdown heights for desktop nav\n function equalizeDropdownHeights() {\n // Handle main nav dropdown height equalization for child menus\n const topLevelDropdowns: NodeListOf = document.querySelectorAll('.main-nav .nav-item.dropdown');\n\n topLevelDropdowns.forEach(topDropdown => {\n // Getting the immediate submenu (direct child) using .dropdown-menu directly within topDropdown.\n const parentMenu: HTMLElement | null = topDropdown.querySelector('.main-nav .dropdown-menu');\n\n if (!parentMenu) return; // If no parent menu found, skip this iteration\n\n // Store the original styles of the parent menu\n const originalParentStyle = {\n display: parentMenu.style.display,\n visibility: parentMenu.style.visibility\n };\n\n // Temporarily set display:block and visibility:hidden to measure its height\n parentMenu.style.display = 'block';\n parentMenu.style.visibility = 'hidden';\n\n // Get the height of the parent menu using getBoundingClientRect\n const parentMenuHeight = parentMenu.getBoundingClientRect().height;\n\n // Reset the parent menu to its original styles\n parentMenu.style.display = originalParentStyle.display;\n parentMenu.style.visibility = originalParentStyle.visibility;\n\n // Getting the deeper nested submenus within the topDropdown\n const childSubmenus: NodeListOf = topDropdown.querySelectorAll('.main-nav .dropdown-submenu .dropdown-menu');\n\n // Set min-height of child submenus to the parent's height\n childSubmenus.forEach(childSubmenu => {\n childSubmenu.style.minHeight = `${parentMenuHeight}px`;\n });\n });\n }\n\n // handle main nav desktop dropdowns potentially up to five levels -- top level items and up to 4 submenus deep -- including top position\n function desktopDropdownHandlers() {\n // Handle submenus\n document.querySelectorAll('.main-nav .dropdown-submenu a.dropdown-toggle').forEach((element: HTMLAnchorElement) => {\n element.addEventListener('click', (e: Event) => {\n e.stopPropagation();\n e.preventDefault();\n\n const nextSibling = element.nextElementSibling as HTMLElement;\n if (nextSibling) {\n // Hide other submenus at the same level when one is clicked\n element.closest('.dropdown-menu')?.querySelectorAll('.dropdown-menu.show').forEach((siblingSubmenu: HTMLElement) => {\n if (siblingSubmenu !== nextSibling) {\n siblingSubmenu.classList.remove('show');\n }\n });\n\n // Calculate top position for the submenu\n const mainNavBottom = (document.querySelector('.main-nav')?.getBoundingClientRect().bottom) || 0;\n const toggleLinkTop = element.getBoundingClientRect().top;\n const desiredTop = mainNavBottom - toggleLinkTop;\n nextSibling.style.top = `${desiredTop}px`;\n\n // Toggle clicked submenu\n nextSibling.classList.toggle('show');\n }\n });\n });\n\n // Handle top-level items\n document.querySelectorAll('.main-nav .nav-item.dropdown > a.dropdown-toggle').forEach((topLevelElement: HTMLAnchorElement) => {\n topLevelElement.addEventListener('click', () => {\n // Hide all submenus when a top-level item is clicked\n document.querySelectorAll('.main-nav .dropdown-submenu .dropdown-menu.show').forEach((submenu: HTMLElement) => {\n submenu.classList.remove('show');\n });\n });\n });\n }\n\n // adjust top position and height of various elements depending on whether parts of the nav around offscreen\n function adjustHeaderNav() {\n calculateCombinedHeight();\n const sitewideBanner = document.querySelector('.sitewide-banner') as HTMLElement | null;\n const sitewideBannerHeight = sitewideBanner ? sitewideBanner.clientHeight : 0;\n const totalHeight = secondaryNavHeight;\n const slideMenuHeight = window.innerHeight - totalHeight;\n\n const headerNav = document.querySelector('.header-nav');\n const logoWrapper = document.querySelector('.main-nav .logo-wrapper');\n const mobileNavCloseButtons = document.querySelectorAll('.mobile-nav-close');\n \n if (headerNav) {\n let slideMenuTop: number;\n if (window.innerWidth < 1200 && isBannerClosed) {\n headerNav.style.transform = 'translateY(0px)';\n slideMenuTop = secondaryNavHeight + 1;\n } else if (window.scrollY >= combinedHeight) {\n headerNav.style.transform = `translateY(-${combinedHeight}px)`;\n\n if (logoWrapper) {\n logoWrapper.classList.add('logo-show');\n }\n slideMenuTop = secondaryNavHeight + 1;\n } else {\n headerNav.style.transform = `translateY(0px)`;\n \n if (logoWrapper) {\n logoWrapper.classList.remove('logo-show');\n }\n slideMenuTop = totalHeight + 1;\n }\n\n if (slideMenu) {\n slideMenu.style.top = `${slideMenuTop}px`;\n slideMenu.style.height = window.scrollY >= combinedHeight ? `${slideMenuHeight + combinedHeight - 1}px` : `${slideMenuHeight - 1}px`;\n }\n\n //this was causing close button to disapear when alert was present but I am assuming it was here for a reason so I just commneted it out \n //const closeButtonTop = window.scrollY >= combinedHeight || isBannerClosed ? 18 : sitewideBannerHeight + 18;\n const closeButtonTop = 18; \n mobileNavCloseButtons.forEach(btn => {\n btn.style.top = `${closeButtonTop}px`; \n });\n }\n }\n\n // Debouncer and throttle functions for improved performance\n let debounceTimer;\n function debouncer(fn, delay = 250) {\n clearTimeout(debounceTimer);\n debounceTimer = setTimeout(() => {\n fn();\n }, delay);\n }\n\n function throttle(func, wait) {\n let context, args, result;\n let previous = 0;\n\n return function() {\n let now;\n if ((now = Date.now() - previous) < wait) {\n clearTimeout(context);\n context = setTimeout(() => {\n previous = now;\n result = func.apply(this, args);\n }, wait - now);\n } else {\n previous = now;\n result = func.apply(this, args);\n }\n return result;\n };\n }\n\n document.addEventListener('DOMContentLoaded', () => {\n // Initialize the mobile nav slide menu\n new Mmenu(\"#slide-nav\", {\n navbar: {\n title: \"Menu\"\n },\n offCanvas: {\n position: \"right-front\"\n }\n });\n const sitewideBanner = document.querySelector('.sitewide-banner');\n\n calculateCombinedHeight();\n setSlideMenuAttributes();\n updateBlockerElementWithContent();\n setCloseButtonPosition();\n handleMobileNavButtonVisibility();\n mobileMenuBacklinksClasses();\n changeTextContentOfBacklinks('.mm-navbar__title span', 'Back');\n assignFirstLastClassesToElements();\n desktopDropdownHandlers();\n equalizeDropdownHeights(); // Call the function immediately to apply the heights\n adjustHeaderNav();\n\n // Event listeners\n document.addEventListener('closed', () => {\n isBannerClosed = true;\n calculateCombinedHeight();\n });\n\n // Window event listeners with debouncer\n window.addEventListener('resize', () => debouncer(() => {\n equalizeDropdownHeights();\n setSlideMenuAttributes();\n setCloseButtonPosition();\n adjustHeaderNav();\n }));\n \n window.addEventListener('scroll', throttle(adjustHeaderNav, 100));\n\n // This will trigger whenever the visual viewport changes, including when the address bar appears/disappears\n window.visualViewport.addEventListener('resize', () => {\n setSlideMenuAttributes();\n setCloseButtonPosition();\n adjustHeaderNav();\n });\n\n if (infoDropdownBtn != null) {\n infoDropdownBtn.addEventListener(\"click\", function () {\n window.open(infoDropdown.options[infoDropdown.selectedIndex].value, '_parent');\n })\n }\n \n if (infoDropdown != null) {\n infoDropdown.addEventListener(\"change\", function (e) {\n window.open((e.target).value, '_parent');\n })\n }\n });\n }\n\n isMobile() {\n let vw = window.innerWidth;\n return vw <= 992;\n }\n\n goToPage(url) {\n window.open(url, '_parent');\n }\n}\n\nexport default Header;","import bootstrap from 'bootstrap';\n\n// offsets the target element's position when using on-page scroll nav for mobile\n// will need to modify this script for desktop as well once the main nav menu is in place\nclass SideNav\n{\n navLinks: NodeListOf;\n storiesLink: HTMLElement;\n storiesSection: HTMLElement;\n \n constructor()\n {\n this.init();\n }\n\n init()\n {\n this.navLinks = document.querySelectorAll('#scroll-nav-mobile .nav-link');\n\n // Call the function for each nav\n this.handleNavScroll('#scroll-nav-mobile', 59); // this value will need adjustment once main nav is built in\n this.handleNavScroll('#scroll-nav', 160); // this value might need adjustment\n\n this.navLinks.forEach(link => {\n link.addEventListener('click', this.handleNavLinkClick);\n }); \n }\n\n \n handleNavScroll = (navId: string, positionFromTop: number) => {\n const navLinks = document.querySelectorAll(`${navId} .nav-link`);\n\n const onScroll = () => {\n let currentActive: Element | null = null;\n const overviewLink = Array.from(navLinks).find(link => link.getAttribute('href') === '#overview');\n \n // Initially set the #overview nav-link as active\n currentActive = overviewLink;\n\n navLinks.forEach(link => {\n const target = document.querySelector(link.getAttribute('href') as string) as HTMLElement;\n \n if (target) {\n const rect = target.getBoundingClientRect();\n let currentThreshold = positionFromTop;\n \n if (rect.top <= currentThreshold && (rect.top + rect.height) > currentThreshold) {\n currentActive = link;\n }\n\n link.classList.remove('d-none');\n } else{\n link.classList.add('d-none');\n }\n });\n\n // Remove active class from all links\n navLinks.forEach(link => link.classList.remove('active'));\n \n // Add active class to the current link\n if (currentActive) {\n currentActive.classList.add('active');\n }\n };\n \n // Attach the scroll event listener\n window.addEventListener('scroll', onScroll);\n\n // Attach the resize event listener\n window.addEventListener('resize', onScroll);\n \n // Call the onScroll function initially to set the correct state\n onScroll();\n };\n \n handleNavLinkClick(event: Event) {\n event.preventDefault();\n\n const targetId = (event.currentTarget as HTMLAnchorElement).getAttribute('href');\n if (!targetId) return;\n\n const targetElement = document.querySelector(targetId) as HTMLElement;\n if (!targetElement) return;\n\n let offsetTop = 58; // Default value\n if (targetId === \"#overview\" && targetElement.classList.contains('has-mandatory')) {\n offsetTop = 95;\n }\n\n // Simulate a click on the accordion button\n const accordionBtn = document.querySelector('[data-bs-target=\"#scroll-nav-mobile-accordion\"]');\n if (accordionBtn) {\n accordionBtn.dispatchEvent(new Event('click'));\n // console.log('mobile nav clicked');\n }\n\n const topPosition = targetElement.getBoundingClientRect().top + window.scrollY - offsetTop;\n window.scrollTo({\n top: topPosition,\n behavior: \"smooth\"\n });\n }\n}\n\nexport default SideNav;\n","import bootstrap from 'bootstrap';\nimport Utility from \"./utility\";\n\nclass Tabs {\n\n tabContainers: NodeListOf;\n stickyTabs: NodeListOf;\n defaultTabs: NodeListOf;\n defaultTabsActive: NodeListOf;\n utility = Utility;\n\n constructor() {\n this.init();\n }\n\n init() {\n this.tabContainers = document.querySelectorAll('.tabs-container');\n this.stickyTabs = document.querySelectorAll('.tabs-container.banner-tabs');\n this.defaultTabs = document.querySelectorAll('.tabs-container.default-tabs');\n this.defaultTabsActive = document.querySelectorAll('.default-tabs button.active');\n \n }\n\n start() {\n const urlHash = window.location.hash;\n\n // Add arrow to active tabs (only for default tabs)\n this.defaultTabsActive.forEach(function(activeTab){\n const tabArrowHTML = '';\n const tabArrow = document.createElement(\"div\");\n tabArrow.className = \"active-tab-arrow\";\n tabArrow.innerHTML = tabArrowHTML;\n activeTab.appendChild(tabArrow);\n });\n\n // Add current tab name to mobile bar for sticky tabs (\"banner-tabs\")\n this.stickyTabs.forEach(function(stickyTab){\n let activeTab = stickyTab.querySelector(\"ul.nav button.active\").innerHTML;\n let activeTabTitle = stickyTab.querySelector(\".tab-group-title h4\");\n if(activeTabTitle != null){\n activeTabTitle.innerHTML = activeTab;\n }\n });\n \n // Fire events on Bootstrap show event\n document.addEventListener('shown.bs.tab', function(e: Event)\n {\n let target: HTMLElement = e.target as HTMLElement;\n let targetParent: HTMLElement = target.closest(\".tabs-container\");\n \n // Add active tab ID to url when shown\n // remove scroll class\n // window.location.hash = target.id;\n \n // Move arrow to active tab on default tabs\n if ( !target.hasAttribute(\"data-shown\") && targetParent.classList.contains(\"default-tabs\"))\n {\n let tabArrow = target.closest('ul.nav').querySelector('.active-tab-arrow');\n target.appendChild(tabArrow);\n }\n\n // Add current tab name to mobile bar for sticky tabs (\"banner-tabs\")\n if (targetParent.classList.contains(\"banner-tabs\"))\n {\n let targetTitle = target.innerHTML;\n let activeTabTitle = targetParent.querySelector('.tab-group-title h4');\n let parentNav = target.closest('.navbar-collapse');\n \n if(activeTabTitle != null){\n activeTabTitle.innerHTML = targetTitle;\n }\n if(parentNav != null){\n if(window.innerWidth <= 768){\n let bsCollapse = new bootstrap.Collapse(parentNav, {\n toggle: true\n })\n bsCollapse.hide();\n }\n }\n \n }\n\n });\n\n this.tabContainers.forEach(function(container) {\n let eNav: HTMLElement = container.querySelector('.nav-placeholder-container');\n let parentSection: HTMLElement;\n\n if (container.dataset.sticky && eNav != null)\n {\n parentSection = eNav.closest('section');\n //need to add overflow visible to parent section for position:sticky to work\n parentSection.style.overflow = \"visible\"; \n document.addEventListener('scroll', function(e)\n {\n let viewPortTop: number = eNav.getBoundingClientRect().top;\n\n if (viewPortTop < 46.88 && !eNav.classList.contains('is-fixed'))\n {\n //console.log('add')\n // get elements that need to be hidden or shown based on if nav is fixed\n // this is not in the main scroll area to save memory on scrolling\n let fixedShownElements: NodeListOf = container.querySelectorAll('[data-shown=\"fixed\"]');\n fixedShownElements.forEach(function(element) {\n element.style.display = 'block';\n });\n eNav.dataset.offset = (eNav.getBoundingClientRect().top + scrollY - 30).toString();\n eNav.classList.add('is-fixed');\n container.querySelectorAll('button').forEach(function(item){\n item.classList.add('no-outline');\n });\n } else if (eNav.classList.contains('is-fixed') && (scrollY < parseFloat(eNav.dataset.offset))) {\n let fixedShownElements: NodeListOf = container.querySelectorAll('[data-shown=\"fixed\"]');\n fixedShownElements.forEach(function(element) {\n element.style.display = 'none';\n });\n eNav.classList.remove('is-fixed');\n container.querySelectorAll('button').forEach(function(item){\n item.classList.remove('no-outline');\n });\n }\n });\n }\n });\n\n // TODO: Testing Tab on load\n if (window.location.hash)\n {\n loadTabActive();\n }\n\n function loadTabActive(){\n const urlHash = window.location.hash.substring(1);\n if(urlHash){\n let tabExists = false;\n let thisTab;\n //is there a better way to do this lol\n const generalTab: HTMLElement = document.querySelector('#tab-' + urlHash);\n const activeIntakeTab: HTMLElement = document.querySelector('button#'+urlHash);\n \n if(generalTab != null){\n thisTab = generalTab;\n tabExists = true;\n } else if(activeIntakeTab != null){\n thisTab = activeIntakeTab;\n tabExists = true;\n }\n if(tabExists){\n const tabContainer = thisTab.offsetParent as HTMLElement;\n thisTab.click();\n window.scrollTo(0, tabContainer.offsetTop);\n }\n }\n }\n\n // Change view on load/resize\n\n let tabContainers = this.tabContainers;\n\n window.addEventListener('resize', function(){\n tabCollapse(tabContainers);\n });\n\n document.addEventListener('DOMContentLoaded', function(){\n tabCollapse(tabContainers);\n });\n\n function tabCollapse(containers: NodeListOf) {\n\n containers.forEach(function(container: HTMLElement) {\n\n let containerNav: HTMLElement = container.querySelector('ul.nav');\n let containerTabs = container.querySelectorAll('ul.nav li');\n\n if (container.classList.contains(\"default-tabs\")) {\n\n let containerNavWidth = containerNav.offsetWidth;\n let containerTabsWidth = 0;\n \n containerTabs.forEach(function(tab: HTMLElement){\n containerTabsWidth+=tab.offsetWidth;\n });\n\n if (containerTabsWidth > containerNavWidth) {\n document.querySelector('.active-tab-arrow').classList.add('d-none');\n if(this.utility.isTouchDevice()){\n //Add scroll if on touch device\n container.classList.add(\"mobile-tabs\");\n }\n } else {\n if (container.classList.contains(\"mobile-tabs\")) \n {\n container.classList.remove(\"mobile-tabs\");\n document.querySelector('.active-tab-arrow').classList.remove('d-none');\n }\n }\n\n }\n\n });\n }\n\n //\n let aHrefs = document.querySelectorAll('[href$=\"-bs-tab\"]');\n if(aHrefs !== null){\n aHrefs.forEach((ele : HTMLAnchorElement)=>{\n if(ele !== null)\n {\n ele.addEventListener(\"click\", () =>{\n let ahref = new URL(ele.href);\n let tabElHash = document.querySelector('button[data-bs-target=\"'+ ahref.hash +'\"]');\n var tab = new bootstrap.Tab(tabElHash);\n tab.show();\n });\n }\n })\n }\n \n }\n\n}\n\nexport default Tabs;","import bootstrap from 'bootstrap';\n\nclass Accordion {\n constructor() {\n this.init();\n }\n \n init() {\n \n }\n\n start(){\n const urlHash = window.location.hash;\n if(urlHash){\n openAccordtion();\n }\n\n function openAccordtion(){\n const thisAccordion: HTMLElement = document.querySelector(window.location.hash + '.accordion-header');\n if(thisAccordion != null){\n const section = thisAccordion.offsetParent as HTMLElement;\n window.scrollTo(0, (section.offsetTop + thisAccordion.offsetTop - 130));\n thisAccordion.querySelector('button').click();\n }\n }\n\n let aHrefs = document.querySelectorAll('[href^=\"#-acco\"]');\n if(aHrefs !== null){\n aHrefs.forEach((ele : HTMLAnchorElement)=>{\n // console.log(ele);\n if(ele !== null)\n {\n ele.addEventListener(\"click\", () =>{\n let ahref = new URL(ele.href);\n let accordionElHash = document.querySelector(ahref.hash);\n let accordionBtn = accordionElHash.querySelector(\"button\");\n if(accordionBtn){\n accordionBtn.click();\n }\n });\n }\n })\n }\n\n }\n}\n\nexport default Accordion;","//swiper\nclass Sliders {\n plugins: Array = [];\n swipers: NodeListOf;\n activeSwipers: Array = [];\n\n constructor(plugins: Array) {\n this.plugins = plugins;\n this.init();\n }\n\n init() {\n let self = this;\n this.swipers = document.querySelectorAll('.swiper');\n this.swipers.forEach(function (swiper) {\n // if (!swiper.id) {\n // swiper.id = crypto[\"randomUUID\"]();\n // }\n let type = swiper.dataset.type;\n var plugin = self.plugins.find(plugins => plugins.type === type)\n if (plugin) {\n self.activeSwipers.push(new plugin(swiper));\n }\n });\n }\n}\nexport default Sliders;","class Stats {\n statsWrappers: NodeListOf;\n statCircles: NodeListOf;\n\n constructor() {\n this.init();\n }\n\n init() {\n this.statsWrappers = document.querySelectorAll('.stats-wrap');\n //this.statCircles = document.querySelectorAll('.underlay-chart[data-triggered=\"0\"]');\n }\n\n start() {\n const self = this;\n window.addEventListener('scroll', function(){\n const bottomOfScreen = this.innerHeight;\n const topOfScreen = this.scrollY;\n if(self.statsWrappers != null){\n self.statsWrappers.forEach(stat => {\n const circle = stat.querySelector('.underlay-chart');\n const topOfStat = stat.getBoundingClientRect().top;\n const bottomOfStat = stat.getBoundingClientRect().bottom;\n if (typeof Element.prototype.getBoundingClientRect === 'function') {\n //Client supports getBoundingClientRect()\n if((bottomOfScreen > (topOfStat - 20))){\n self.animateStat(stat, circle);\n }\n } else {\n //no animation for old browsers !!\n stat.classList.add('animated');\n stat.dataset.triggered = '1';\n circle.dataset.triggered = '1';\n }\n \n })\n }\n\n //if(self.statCircles != null){\n // self.statCircles.forEach(circle => {\n // const topOfCircle = circle.getBoundingClientRect().top;\n // const bottomOfCircle = circle.getBoundingClientRect().bottom;\n // if((bottomOfScreen > topOfCircle) && (topOfScreen < bottomOfCircle)){\n // if(circle.dataset.triggered === undefined){\n // circle.dataset.triggered = '0';\n // }\n // if(circle.dataset.triggered == '0'){\n // circle.dataset.triggered = '1';\n // }\n // }\n // });\n //}\n })\n window.addEventListener('load', function(){\n const bottomOfScreen = this.innerHeight;\n const topOfScreen = this.scrollY;\n if(self.statsWrappers != null){\n self.statsWrappers.forEach(stat => {\n const circle = stat.querySelector('.underlay-chart');\n const topOfStat = stat.getBoundingClientRect().top;\n const bottomOfStat = stat.getBoundingClientRect().bottom;\n if (typeof Element.prototype.getBoundingClientRect === 'function') {\n //Client supports getBoundingClientRect()\n if((bottomOfScreen > (topOfStat - 20)) && (topOfScreen < bottomOfStat)){\n self.animateStat(stat, circle);\n }\n } else {\n //no animation for old browsers !!\n stat.classList.add('animated');\n stat.dataset.triggered = '1';\n circle.dataset.triggered = '1';\n }\n })\n }\n })\n }\n\n animateStat(stat, circle){\n if(stat.dataset.triggered === undefined){\n stat.dataset.triggered = '0';\n circle.dataset.triggered = '0';\n }\n if(stat.dataset.triggered == '0'){\n stat.classList.add('animated');\n stat.dataset.triggered = '1';\n circle.dataset.triggered = '1';\n }\n }\n}\n\nexport default Stats;","import Swiper, { Navigation, Pagination } from 'swiper';\nSwiper.use([Navigation, Pagination]);\n\ninterface UniqueSliderModel {\n prevBtn: String;\n nextBtn: String;\n pagiBtn: String;\n}\n\nclass SliderPlugin {\n\n static type: String = \"\"\n swiper: Swiper;\n element: HTMLElement;\n\n constructor(element: HTMLElement) {\n this.element = element;\n this.init();\n }\n\n getClassPath(): string {\n return `.${this.element.classList.toString().replaceAll(\" \", \".\")}`\n }\n\n // Now made unique in velocity\n // makeUnique(): UniqueSliderModel {\n // let uuid = this.makeCssSelector(10);\n // let nextBtn = \".swiper-button-next\";\n // let prevBtn = \".swiper-button-prev\";\n // let pagiBtn = \".swiper-pagination\";\n // this.element.classList.add(uuid);\n // this.element.parentNode.querySelector(\".swiper-button-next\")\n // .classList.add(`${nextBtn}-${uuid}`.replace(\".\", \"\"))\n // this.element.parentNode.querySelector(\".swiper-button-prev\")\n // .classList.add(`${prevBtn}-${uuid}`.replace(\".\", \"\"))\n // this.element.parentNode.querySelector(\".swiper-pagination\")\n // .classList.add(`${pagiBtn}-${uuid}`.replace(\".\", \"\"))\n // return {\n // prevBtn: `${pagiBtn}-${uuid}`,\n // nextBtn: `${nextBtn}-${uuid}`,\n // pagiBtn: `${prevBtn}-${uuid}`\n // }\n // }\n // makeCssSelector(length) {\n // // brought to you by |_Genos_|\n // var result = '';\n // var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';\n // var charactersLength = characters.length;\n // for ( var i = 0; i < length; i++ ) {\n // result += characters.charAt(Math.floor(Math.random() * \n // charactersLength));\n // }\n // return result;\n // }\n\n getButtons(): UniqueSliderModel {\n let sliderId = this.element.dataset.sliderId;\n return {\n prevBtn: `.${sliderId}-prev`,\n nextBtn: `.${sliderId}-next`,\n pagiBtn: `.${sliderId}-pagi`\n }\n }\n\n init() {\n // do init things\n }\n}\nexport default SliderPlugin;","import { auto } from '@popperjs/core';\nimport Swiper, { Navigation, Pagination } from 'swiper';\nimport SliderPlugin from './slider-plugin';\nSwiper.use([Navigation, Pagination]);\n\nclass MoreProgramsSliderPlugin extends SliderPlugin {\n\n static type: String = \"more-programs-slider\"\n\n constructor(element: HTMLElement) {\n super(element);\n }\n\n init() {\n //let cssClasses = this.makeUnique();\n let buttons = this.getButtons();\n this.swiper = new Swiper(this.getClassPath(), {\n slidesPerView: auto,\n spaceBetween: 10,\n navigation: {\n nextEl: buttons.nextBtn,\n prevEl: buttons.prevBtn,\n },\n breakpointsBase: 'container',\n breakpoints: {\n 640: {\n slidesPerView: 1,\n spaceBetween: 20,\n },\n 722: {\n slidesPerView: 2,\n spaceBetween: 5,\n },\n 1024: {\n slidesPerView: 4,\n spaceBetween: 0,\n },\n },\n });\n\n \n this.swiper.on('slideChange', function () {\n window.lazyload.update();\n });\n\n }\n}\n\nexport default MoreProgramsSliderPlugin;","import { auto } from '@popperjs/core';\nimport Swiper, { Navigation, Pagination } from 'swiper';\nimport SliderPlugin from './slider-plugin';\nSwiper.use([Navigation, Pagination]);\n\nclass AOISlider extends SliderPlugin {\n\n static type: String = \"aoi-image-bg-slider\"\n\n constructor(element: HTMLElement) {\n super(element);\n }\n\n init() {\n let buttons = this.getButtons();\n this.swiper = new Swiper(this.getClassPath(), {\n slidesPerView: 'auto',\n slidesPerGroup: 1,\n spaceBetween: 0,\n speed: 100,\n loop: false,\n loopFillGroupWithBlank: false,\n pagination: false,\n navigation: {\n nextEl: buttons.nextBtn,\n prevEl: buttons.prevBtn,\n },\n breakpoints: {\n 576: {\n slidesPerView: 'auto',\n slidesPerGroup: 2,\n speed: 300,\n spaceBetween: 0,\n },\n /*768: {\n slidesPerView: 3,\n slidesPerGroup: 1,\n spaceBetween: 5,\n },\n 1024: {\n slidesPerView: 4,\n spaceBetween: 0,\n },\n 1200: {\n slidesPerView: 5,\n spaceBetween: 0,\n }*/\n },\n });\n\n this.swiper.on('slideChange', function () {\n window.lazyload.update();\n });\n }\n}\n\nexport default AOISlider;","import { auto } from '@popperjs/core';\nimport Swiper, { Navigation, Pagination } from 'swiper';\nSwiper.use([Navigation, Pagination]);\nimport SliderPlugin from './slider-plugin';\n\nclass TestimonialsSliderPlugin extends SliderPlugin {\n\n static type: String = \"testimonials\";\n\n constructor(element: HTMLElement) {\n super(element);\n }\n\n init() {\n let buttons = this.getButtons();\n \n this.swiper = new Swiper(this.getClassPath(), {\n slidesPerView: 1,\n spaceBetween: 30,\n loop: false,\n pagination: {\n el: buttons.pagiBtn,\n clickable: true,\n },\n navigation: {\n nextEl: buttons.nextBtn,\n prevEl: buttons.prevBtn\n },\n });\n }\n}\n\nexport default TestimonialsSliderPlugin;","import Swiper, { Navigation, Pagination } from 'swiper';\nSwiper.use([Navigation, Pagination]);\nimport SliderPlugin from './slider-plugin';\n\nclass ImageSliderPlugin extends SliderPlugin {\n\n static type: String = \"images\";\n\n constructor(element: HTMLElement) {\n super(element);\n }\n\n init() {\n let buttons = this.getButtons();\n\n this.swiper = new Swiper(this.getClassPath(), {\n slidesPerView: 1,\n spaceBetween: 30,\n loop: false,\n pagination: {\n el: buttons.pagiBtn,\n clickable: true,\n },\n navigation: {\n nextEl: buttons.nextBtn,\n prevEl: buttons.prevBtn,\n },\n });\n this.swiper.on('slideChange', function () {\n window.lazyload.update();\n });\n }\n\n}\n\nexport default ImageSliderPlugin;","import { auto } from '@popperjs/core';\nimport Swiper, { Navigation, Pagination } from 'swiper';\nSwiper.use([Navigation, Pagination]);\nimport SliderPlugin from './slider-plugin';\n\nclass VideoSliderPlugin extends SliderPlugin {\n\n static type: String = \"videos\";\n\n constructor(element: HTMLElement) {\n super(element);\n }\n\n init() {\n let buttons = this.getButtons();\n this.swiper = new Swiper(this.getClassPath(), {\n slidesPerView: 1,\n spaceBetween: 30,\n loop: false,\n pagination: {\n el: \".video-slider-pagination\" + buttons.pagiBtn,\n clickable: true,\n },\n navigation: {\n nextEl: \".video-slider-next-btn\" + buttons.nextBtn,\n prevEl: \".video-slider-prev-btn\" + buttons.prevBtn,\n },\n });\n }\n}\n\nexport default VideoSliderPlugin;","import { auto } from '@popperjs/core';\nimport Swiper, { Navigation, Pagination } from 'swiper';\nSwiper.use([Navigation, Pagination]);\nimport SliderPlugin from './slider-plugin';\n\nclass WysiwygSliderPlugin extends SliderPlugin {\n\n static type: String = \"wysiwygs\";\n\n constructor(element: HTMLElement) {\n super(element);\n }\n\n init() {\n let buttons = this.getButtons();\n\n this.swiper = new Swiper(this.getClassPath(), {\n slidesPerView: 1,\n spaceBetween: 30,\n loop: false,\n pagination: {\n el: buttons.pagiBtn,\n clickable: true,\n },\n navigation: {\n nextEl: buttons.nextBtn,\n prevEl: buttons.prevBtn,\n },\n });\n }\n}\n\nexport default WysiwygSliderPlugin;","class Library{\n\n init(){\n const libraryHelperSubmit = document.getElementById(\"libraryHelperSubmit\");\n if(libraryHelperSubmit != null){\n libraryHelperSubmit.addEventListener('click', this.helperLinkClick);\n }\n const libraryChatNow = document.querySelectorAll('.libraryRegEChatBtn');\n if(libraryChatNow!= null){\n libraryChatNow.forEach(lib =>\n lib.addEventListener('click', this.libraryRegChatNowOnClick)\n );\n }\n }\n helperLinkClick = () => {\n const libraryLink = document.getElementById(\"libECorrLink\") as HTMLLinkElement;\n const textCopyLink = document.getElementById(\"libECorrInput\") as HTMLInputElement;\n if(libraryLink !== null){\n if(textCopyLink.value){\n let linkVal = libraryLink.href + textCopyLink.value;\n let copylink = document.getElementById(\"copylink\");\n copylink.innerText = linkVal;\n }\n }\n }\n libraryRegChatNowOnClick = () =>{\n window.open('https://libraryh3lp.com/html/chat-box.html?queue=saitlibrary&skin=26541&email=https%3A%2F%2Fwww.sait.ca%2Fstudent-life%2Freg-erhardt-library%2Freg-erhardt-library%2Fconnect%2Fdepartments-and-staff', 'AskUs', 'resizable=1,width=450,height=400'); \n return false;\n }\n}\nexport default Library;","class Cards {\n flipCards: NodeListOf;\n\n constructor(){\n this.init();\n }\n\n init() {\n this.flipCards = document.querySelectorAll(\".flip-card\");\n this.flipCards.forEach(function(flip: HTMLElement){\n flip.dataset.flipped = \"false\";\n var transitionType = flip.dataset.transition;\n var inner = flip.querySelector(\".flip-card-inner\") as HTMLElement;\n var front = inner.querySelector(\".flip-card-front\") as HTMLElement;\n var frontBody = front.querySelector(\".card-body\") as HTMLElement;\n var back = inner.querySelector(\".flip-card-back\") as HTMLElement;\n var backBody = back.querySelector(\".card-body\") as HTMLElement;\n var flipbutton = flip.querySelector(\".flip-card-button\") as HTMLElement;\n \n // set card height\n var height = Math.round((backBody.offsetHeight / 16) + 11); // 11 is the height constant of everything else\n\n if (transitionType == \"flip\") {\n back.style.transform = \"rotateY(180deg)\";\n } else if (transitionType == \"fade\") {\n back.style.opacity = \"0\";\n front.style.transition = \"opacity 0.3s ease-in-out\";\n back.style.transition = \"opacity 0.3s ease-in-out\";\n }\n\n // do things\n back.style.position = \"absolute\";\n back.style.top = \"0\";\n // flip.style.height = `${height}rem`;\n // inner.dataset.frontSize = `${height}rem`;\n inner.dataset.backSize = `${height}rem`;\n\n flipbutton.addEventListener(\"click\", function(event: MouseEvent) {\n var innerCard = inner;\n var flipCard = flip;\n var frontCard = front;\n var backCard = back;\n var checked = flip.dataset.flipped;\n var flipBtn = flipbutton;\n var transitionType = flip.dataset.transition;\n //rotateY(180deg)\n //opacity\n\n var flipTransition = function(innerCard: HTMLElement, frontCard: HTMLElement, backCard: HTMLElement, flipping: Boolean)\n {\n if (flipping) {\n innerCard.style.transform = \"rotateY(180deg)\";\n backCard.style.transform = \"rotateY(180deg)\";\n } else {\n innerCard.style.transform = \"\";\n backCard.style.transform = \"rotateY(180deg)\";\n }\n }\n\n var fadeTransition = function(innerCard: HTMLElement, frontCard: HTMLElement, backCard: HTMLElement, flipping: Boolean)\n {\n if (flipping) {\n frontCard.style.opacity = \"0\";\n backCard.style.opacity = \"1\";\n } else {\n frontCard.style.opacity = \"1\";\n backCard.style.opacity = \"0\";\n }\n }\n\n if (checked == \"true\") {\n flipCard.dataset.flipped = \"false\";\n flipCard.style.marginTop = \"1rem\";\n innerCard.style.minHeight = \"unset\";\n flipBtn.style.height = \"100%\";\n if (transitionType == \"fade\") {\n fadeTransition(innerCard, frontCard, backCard, false);\n } else if(transitionType == \"flip\") {\n flipTransition(innerCard, frontCard, backCard, false);\n }\n } else {\n flipCard.dataset.flipped = \"true\";\n flipCard.style.marginTop = \"2.5rem\";\n innerCard.style.minHeight = innerCard.dataset.backSize;\n flipBtn.style.height = \"4.5rem\";\n\n if (transitionType == \"fade\") {\n fadeTransition(innerCard, frontCard, backCard, true);\n } else if(transitionType == \"flip\") {\n flipTransition(innerCard, frontCard, backCard, true);\n }\n }\n });\n });\n }\n}\n\nexport default Cards;\n","class FullWidth {\n fullWidthChildren: NodeListOf;\n\n constructor() {\n this.init();\n }\n\n init() {\n this.fullWidthChildren = document.querySelectorAll(\".full-section\");\n if (this.fullWidthChildren != null) {\n\n if (this.fullWidthChildren.length > 0) {\n this.fullWidthChildren.forEach(el => {\n const thisContainer = el.closest(\"section > div\");\n if (thisContainer != null) {\n thisContainer.classList.remove(\"container-xxl\");\n thisContainer.classList.add(\"container-fluid\", \"p-0\");\n }\n })\n }\n }\n\n }\n}\n\nexport default FullWidth;","import bootstrap from 'bootstrap';\n\nclass Modal {\n\n constructor(){\n this.init();\n }\n\n init() {\n const cardModals = document.querySelectorAll('.card .card-body .modalLink');\n const carouselLinks = document.querySelectorAll('.carousel-link'); //links that open a carousel in a modal\n\n if(cardModals!== null)\n {\n cardModals.forEach((item, index) => {\n const targetId = item.getAttribute('data-bs-target');\n const targetToggleType = item.getAttribute('data-bs-toggle');\n if(targetId !== null){\n var imageLinks = document.querySelectorAll('.modalContainerCards .card')[index];\n if(imageLinks!=null)\n { \n var links = imageLinks.querySelectorAll('.card-link');\n links.forEach(link =>\n {\n if(link!==null && link!== undefined)\n {\n link.setAttribute(\"data-bs-target\", targetId);\n link.setAttribute(\"data-bs-toggle\", targetToggleType);\n }\n })\n }\n }\n });\n }\n if(carouselLinks != null){\n carouselLinks.forEach((link) => {\n const targetModal = link.getAttribute('data-bs-target');\n const targetCarouselId = document.querySelector(targetModal + ' .carousel').id;\n const targetSlide = link.getAttribute('data-bs-slide-to');\n let carousel = new bootstrap.Carousel(document.getElementById(targetCarouselId));\n \n link.addEventListener('click', ()=>{\n carousel.to(targetSlide);\n }) \n \n })\n }\n }\n}\n\nexport default Modal;","class StudentGroups {\n\n studentInternationalGroupElements: NodeListOf;\n studentDomesticGroupElements: NodeListOf;\n currentGroup: String = \"domestic\";\n\n constructor() {\n // do something\n this.init();\n }\n\n init() {\n // do more\n this.studentInternationalGroupElements = document.querySelectorAll(\"[data-student-group=\\\"international\\\"]\");\n this.studentDomesticGroupElements = document.querySelectorAll(\"[data-student-group=\\\"domestic\\\"]\");\n }\n\n toggleGroup() {\n if (this.currentGroup == \"domestic\") {\n this.currentGroup = \"international\";\n } else if (this.currentGroup == \"international\") {\n this.currentGroup = \"domestic\";\n }\n }\n\n update() {\n let self = this;\n // var studentInternationalGroupElements = document.querySelectorAll(\"[data-student-group=\\\"international\\\"]\");\n // var studentDomesticGroupElements = document.querySelectorAll(\"[data-student-group=\\\"domestic\\\"]\");\n let intakeTitle = document.querySelectorAll(\".d-none-international\");\n this.studentInternationalGroupElements.forEach(function(element: HTMLElement){\n let displayValue = element.dataset.display? element.dataset.display : \"inline-block\";\n if (self.currentGroup == \"international\") {\n element.dataset.toggled = \"1\";\n element.style.display = displayValue;\n if(intakeTitle){\n intakeTitle.forEach(function(elemTitle: HTMLElement){ \n elemTitle.style.display = \"none\";\n });\n }\n } else {\n element.dataset.toggled = \"0\";\n element.style.display = \"none\";\n }\n });\n\n this.studentDomesticGroupElements.forEach(function(element: HTMLElement){\n let displayValue = element.dataset.display? element.dataset.display : \"inline-block\";\n if (self.currentGroup == \"domestic\") {\n element.dataset.toggled = \"1\";\n element.style.display = displayValue;\n if(intakeTitle){\n intakeTitle.forEach(function(elemTitle: HTMLElement){\n elemTitle.style.display = displayValue;\n });\n }\n } else {\n element.dataset.toggled = \"0\";\n element.style.display = \"none\";\n }\n });\n }\n}\n\nexport default StudentGroups;","class ExpertBioCategories {\n\n listBioTags: NodeListOf;\n lessLink: HTMLElement;\n moreLink: HTMLElement;\n\n constructor() {\n this.init();\n }\n\n init() {\n this.lessLink = document.getElementById('aless-bio-cat');\n this.moreLink = document.getElementById('amore-bio-cat');\n this.listBioTags = document.querySelectorAll('.expert-tag-list li');\n if (this.lessLink != null) {\n this.lessLink.addEventListener(\"click\", () => this.ShowlessBioCategory());\n }\n if (this.moreLink != null) {\n this.moreLink.addEventListener(\"click\", () => this.GetMoreBioCategory());\n }\n }\n\n GetMoreBioCategory() {\n if (this.listBioTags != null) {\n this.listBioTags.forEach(item => {\n item.classList.remove('item-hidden');\n });\n this.moreLink.classList.add(\"item-hidden\");\n this.lessLink.classList.remove(\"item-hidden\");\n }\n }\n\n ShowlessBioCategory() {\n if (this.lessLink.style.display !== 'none') {\n this.moreLink.classList.remove(\"item-hidden\");\n this.lessLink.classList.add(\"item-hidden\");\n this.listBioTags.forEach((tag, index) => {\n if (index >= 2) {\n tag.classList.add(\"item-hidden\");\n }\n });\n }\n }\n}\n\nexport default ExpertBioCategories;","class MultiSelect {\n\n multiSelects: NodeListOf;\n tagBtns: NodeListOf;\n\n constructor(){\n this.init();\n }\n\n init(){\n this.multiSelects = document.querySelectorAll('select.multi');\n \n if(this.multiSelects.length > 0){\n \n this.multiSelects.forEach(select => {\n let selectedFilters = [];\n select.addEventListener('change', (e) => {\n //Information Sessions\n if(!selectedFilters.includes(select.value)){\n selectedFilters.push(select.value);\n this.renderTag(selectedFilters, select.id);\n }\n })\n document.addEventListener('click', (e) => {\n let thisBtn = e.target as HTMLAnchorElement;\n if(thisBtn.classList.contains('tag')){\n const selectId = thisBtn.parentElement.id.replace(\"Selects\", \"\");\n if(selectedFilters.includes(thisBtn.dataset.tag)){\n selectedFilters = selectedFilters.filter((filter) =>{\n return filter !== thisBtn.dataset.tag;\n })\n this.renderTag(selectedFilters, selectId);\n }\n }\n })\n })\n\n \n }\n }\n\n renderTag(tags, id) {\n const tagWrapper: HTMLDivElement = document.querySelector('#' + id + 'Selects');\n if(tagWrapper != null){\n tagWrapper.innerHTML = \"\";\n tags.forEach(tag => {\n let newTag = document.createElement('a');\n newTag.classList.add('tag', 'me-2', 'my-1');\n newTag.setAttribute('data-tag', tag);\n newTag.id = 'tag' + tag.replaceAll(' ', '');\n newTag.innerHTML = tag + ' ';\n tagWrapper.appendChild(newTag);\n })\n\n if(tags.length > 0){\n tagWrapper.classList.remove('d-none');\n } else {\n tagWrapper.classList.add('d-none');\n }\n } \n }\n}\n\nexport default MultiSelect;","import { getInsightsAnonymousUserTokenInternal } from \"instantsearch.js/es/helpers\";\nimport { checkIndexUiState } from \"instantsearch.js/es/lib/utils\";\n\nclass videoIframe {\n ytIframes: NodeListOf;\n\n\n constructor() {\n this.init();\n }\n\n init() {\n this.ytIframes = document.querySelectorAll('iframe[src*=\"youtube.com\"]');\n let imgUrl = '';\n const self = this;\n \n\n this.ytIframes.forEach(frame => {\n const isInModal = frame.parentElement.classList.contains('modal-content');\n let ytFrame = frame;\n let ytKey;\n let ytPath = ytFrame.getAttribute('src').split(/\\//);\n let tmp = ytPath[ytPath.length - 1].split('?');\n ytKey = tmp[0];\n let vidSrc;\n const ytLoader = document.createElement('div');\n let imgSrc;\n\n //get thumbnail from youtube, if no image, use SAIT default\n this.getImg(ytKey,(load)=>{\n imgSrc = load ? 'https://www.sait.ca/assets/app/sait/images/bg/bg-video-default.jpg' : `https://i.ytimg.com/vi/${ytKey}/maxresdefault.jpg`;\n self.createVideoWrapper(frame, imgSrc, ytLoader);\n });\n \n vidSrc = ytFrame.getAttribute('src');\n ytLoader.setAttribute('data-src', vidSrc);\n\n //play video in frame if not in popup\n if (!isInModal) {\n ytLoader.addEventListener('click', (e) => {\n self.replaceWithVideo(vidSrc, ytLoader, ytFrame);\n });\n }\n\n })\n\n }\n\n createVideoWrapper(frame, imgSrc, wrapper) {\n const ytImg = document.createElement('div');\n const playBtn = document.createElement('div');\n \n \n //add classes, set wrapper height/width same as video, set background, add playbtn\n wrapper.setAttribute('class', 'yt-loader');\n ytImg.setAttribute('class', 'yt-cover');\n \n ytImg.style.backgroundImage = `url('${imgSrc}')`;\n //use svg play button\n playBtn.setAttribute('class', 'play-btn-wrap');\n playBtn.innerHTML = \"