{"version":3,"file":"script.js","mappings":"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","sources":["webpack://advanced-post-block/webpack/bootstrap","webpack://advanced-post-block/webpack/runtime/compat get default export","webpack://advanced-post-block/webpack/runtime/define property getters","webpack://advanced-post-block/webpack/runtime/hasOwnProperty shorthand","webpack://advanced-post-block/external var \"ReactDOM\"","webpack://advanced-post-block/external var \"React\"","webpack://advanced-post-block/../bpl-tools/utils/getCSS.js","webpack://advanced-post-block/../bpl-tools/utils/functions.js","webpack://advanced-post-block/../bpl-tools/utils/data.js","webpack://advanced-post-block/./src/Components/Common/Style.js","webpack://advanced-post-block/./src/Components/Common/Single/FeatureImage.js","webpack://advanced-post-block/./src/Components/Common/Single/MetaAuthor.js","webpack://advanced-post-block/./src/Components/Common/Single/MetaDate.js","webpack://advanced-post-block/./src/utils/functions.js","webpack://advanced-post-block/./src/Components/Common/Single/MetaCategory.js","webpack://advanced-post-block/./src/Components/Common/Single/MetaTaxonomies.js","webpack://advanced-post-block/./src/Components/Common/Single/MetaReadTime.js","webpack://advanced-post-block/./src/Components/Common/Single/MetaComment.js","webpack://advanced-post-block/./src/Components/Common/Single/Meta.js","webpack://advanced-post-block/./src/Components/Common/Single/Title.js","webpack://advanced-post-block/./src/Components/Common/Single/TitleMeta.js","webpack://advanced-post-block/./src/Components/Common/Single/Excerpt.js","webpack://advanced-post-block/./src/Components/Common/Single/ReadMore.js","webpack://advanced-post-block/./src/Components/Common/SubLayout/Default.js","webpack://advanced-post-block/./src/Components/Common/SubLayout/SideImage.js","webpack://advanced-post-block/./src/Components/Common/SubLayout/Overlay.js","webpack://advanced-post-block/./src/Components/Common/SubLayout/SubLayout.js","webpack://advanced-post-block/../block-directory/node_modules/react-responsive-masonry/es/Masonry/index.js","webpack://advanced-post-block/../block-directory/node_modules/react-responsive-masonry/es/ResponsiveMasonry/index.js","webpack://advanced-post-block/../block-directory/node_modules/react-responsive-masonry/es/index.js","webpack://advanced-post-block/./src/Components/Common/Layout/Masonry.js","webpack://advanced-post-block/./src/Components/Common/DisplayPosts.js","webpack://advanced-post-block/./src/Components/Common/Pagination/usePagination.js","webpack://advanced-post-block/./src/Components/Common/Pagination/index.js","webpack://advanced-post-block/../block-directory/node_modules/swiper/shared/ssr-window.esm.mjs","webpack://advanced-post-block/../block-directory/node_modules/swiper/shared/utils.mjs","webpack://advanced-post-block/../block-directory/node_modules/swiper/shared/swiper-core.mjs","webpack://advanced-post-block/../block-directory/node_modules/swiper/shared/update-swiper.mjs","webpack://advanced-post-block/../block-directory/node_modules/swiper/swiper-react.mjs","webpack://advanced-post-block/../block-directory/node_modules/swiper/shared/update-on-virtual-data.mjs","webpack://advanced-post-block/../block-directory/node_modules/swiper/shared/create-element-if-not-defined.mjs","webpack://advanced-post-block/../block-directory/node_modules/swiper/modules/navigation.mjs","webpack://advanced-post-block/../block-directory/node_modules/swiper/shared/classes-to-selector.mjs","webpack://advanced-post-block/../block-directory/node_modules/swiper/modules/pagination.mjs","webpack://advanced-post-block/../block-directory/node_modules/swiper/modules/autoplay.mjs","webpack://advanced-post-block/../block-directory/node_modules/swiper/shared/effect-init.mjs","webpack://advanced-post-block/../block-directory/node_modules/swiper/shared/effect-target.mjs","webpack://advanced-post-block/../block-directory/node_modules/swiper/shared/effect-virtual-transition-end.mjs","webpack://advanced-post-block/../block-directory/node_modules/swiper/modules/effect-fade.mjs","webpack://advanced-post-block/../block-directory/node_modules/swiper/shared/create-shadow.mjs","webpack://advanced-post-block/../block-directory/node_modules/swiper/modules/effect-creative.mjs","webpack://advanced-post-block/./src/utils/configs.js","webpack://advanced-post-block/./src/Components/Common/Layout/Slider.js","webpack://advanced-post-block/./src/Components/Frontend/Layout/Ticker.js","webpack://advanced-post-block/../react-utils/hooks/useWPAjax.js","webpack://advanced-post-block/./src/hooks/useAjaxPosts.js","webpack://advanced-post-block/./src/hooks/usePremium.js","webpack://advanced-post-block/./src/Components/Frontend/APBPosts.js","webpack://advanced-post-block/./src/script.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(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 = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var __WEBPACK_NAMESPACE_OBJECT__ = ReactDOM;","var __WEBPACK_NAMESPACE_OBJECT__ = React;","import { mobileBreakpoint, tabBreakpoint } from './data';\r\nimport { isExist } from './functions';\r\n\r\nexport const isValidCSS = (p, v) => isExist(v) ? `${p}: ${v};` : '';\r\n\r\nexport const getBackgroundCSS = (bg, isSolid = true, isGradient = true, isImage = true) => {\r\n\tconst { type = 'solid', color = '', gradient = '', image = {}, position = '', attachment = '', repeat = '', size = '', overlayColor = '' } = bg || {};\r\n\r\n\tconst styles = ('gradient' === type && isGradient) ? isValidCSS('background', gradient) :\r\n\t\t('image' === type && isImage) ?\r\n\t\t\t`background: url(${image?.url});\r\n\t\t\t\t${isValidCSS('background-color', overlayColor)}\r\n\t\t\t\t${isValidCSS('background-position', position)}\r\n\t\t\t\t${isValidCSS('background-size', size)}\r\n\t\t\t\t${isValidCSS('background-repeat', repeat)}\r\n\t\t\t\t${isValidCSS('background-attachment', attachment)}\r\n\t\t\t\t${isValidCSS('background-repeat', repeat)}\r\n\t\t\t\tbackground-blend-mode: overlay;` :\r\n\t\t\tisSolid && isValidCSS('background', color);\r\n\r\n\treturn styles;\r\n} // PHP version in Stepped Content\r\n\r\nexport const getBorderCSS = (border) => {\r\n\tconst { width = '0px', style = 'solid', color = '', side = 'all', radius = '0px' } = border || {};\r\n\r\n\tconst borderSideCheck = s => {\r\n\t\tconst bSide = side?.toLowerCase();\r\n\t\treturn bSide?.includes('all') || bSide?.includes(s);\r\n\t}\r\n\r\n\tconst noWidth = width === '0px' || !width;\r\n\tconst borderCSS = `${width} ${style} ${color}`;\r\n\r\n\tconst styles = `\r\n\t\t${noWidth ? '' : ['top', 'right', 'bottom', 'left'].map(side => borderSideCheck(side) ? `border-${side}: ${borderCSS};` : '').join('')}\r\n\t\t${!radius ? '' : `border-radius: ${radius};`}\r\n\t`;\r\n\r\n\treturn styles;\r\n}\r\n\r\nexport const getBorderBoxCSS = (border) => {\r\n\tif (!border) return '';\r\n\r\n\tconst generateBorderCSS = (borderObj) => {\r\n\t\tconst { color = '#000000', style = 'solid', width = '0px' } = borderObj;\r\n\t\treturn `${width} ${style} ${color}`;\r\n\t};\r\n\r\n\tif ('object' === typeof border && !Array.isArray(border)) {\r\n\t\tif (border.hasOwnProperty('top') || border.hasOwnProperty('right') || border.hasOwnProperty('bottom') || border.hasOwnProperty('left')) {\r\n\t\t\tconst sides = ['top', 'right', 'bottom', 'left'];\r\n\t\t\treturn sides.map(side =>\r\n\t\t\t\tborder[side] ? `border-${side}: ${generateBorderCSS(border[side])};` : ''\r\n\t\t\t).join(' ').trim();\r\n\t\t} else {\r\n\t\t\treturn isValidCSS('border', generateBorderCSS(border));\r\n\t\t}\r\n\t}\r\n\r\n\treturn '';\r\n}\r\n\r\nexport const getColorsCSS = (colors) => {\r\n\tconst { color = '#333', bgType = 'solid', bg = '', gradient = 'linear-gradient(135deg, #4527a4, #8344c5)' } = colors || {};\r\n\r\n\tconst styles = `\r\n\t\t${color ? `color: ${color};` : ''}\r\n\t\t${gradient || bg ? isValidCSS('background', 'gradient' === bgType ? gradient : bg) : ''}\r\n\t`;\r\n\r\n\treturn styles;\r\n}\r\n\r\nexport const getIconCSS = (icon, isSize = true, isColor = true) => {\r\n\tconst { fontSize = 16, colorType = 'solid', color = 'inherit', gradient = 'linear-gradient(135deg, #4527a4, #8344c5)' } = icon || {};\r\n\r\n\tconst colorCSS = 'gradient' === colorType ?\r\n\t\t`color: transparent; background-image: ${gradient}; -webkit-background-clip: text; background-clip: text;` : isValidCSS('color', color);\r\n\r\n\tconst styles = `\r\n\t\t${!fontSize || !isSize ? '' : isValidCSS('font-size', fontSize ? `${fontSize}px` : '')}\r\n\t\t${isColor ? colorCSS : ''}\r\n\t`;\r\n\r\n\treturn styles;\r\n}\r\n\r\nexport const getMultiShadowCSS = (value, type = 'box') => {\r\n\tlet styles = '';\r\n\r\n\tvalue?.map((item, index) => {\r\n\t\tconst { hOffset = '0px', vOffset = '0px', blur = '0px', spreed = '0px', color = '#7090b0', isInset = false } = item || {};\r\n\r\n\t\tconst inset = isInset ? 'inset' : '';\r\n\t\tconst offsetBlur = `${hOffset} ${vOffset} ${blur}`;\r\n\t\tconst isComa = index + 1 >= value.length ? '' : ', ';\r\n\r\n\t\tstyles += 'text' === type ? `${offsetBlur} ${color}${isComa}` : `${offsetBlur} ${spreed} ${color} ${inset}${isComa}`;\r\n\t});\r\n\r\n\treturn styles || 'none';\r\n}\r\n\r\nexport const getSeparatorCSS = (separator) => {\r\n\tconst { width = '50%', height = '2px', style = 'solid', color = '#bbb' } = separator || {};\r\n\r\n\tconst styles = `\r\n\t\twidth: ${width};\r\n\t\t${'0px' === height && '0em' === height && '0rem' === height ? '' : `border-top: ${height} ${style} ${color};`}\r\n\t`;\r\n\r\n\treturn styles;\r\n}\r\n\r\nexport const getShadowCSS = (shadow, type = 'box') => {\r\n\tconst { hOffset = '0px', vOffset = '0px', blur = '0px', spreed = '0px', color = '#7090b0', isInset = false } = shadow || {};\r\n\r\n\tconst inset = isInset ? 'inset' : '';\r\n\tconst offsetBlur = `${hOffset} ${vOffset} ${blur}`;\r\n\r\n\tconst styles = 'text' === type ? `${offsetBlur} ${color}` : `${offsetBlur} ${spreed} ${color} ${inset}`;\r\n\r\n\treturn styles || 'none';\r\n}\r\n\r\nexport const getSpaceCSS = (space) => {\r\n\tconst { side = 2, vertical = '0px', horizontal = '0px', top = '0px', right = '0px', bottom = '0px', left = '0px' } = space || {};\r\n\r\n\tconst styles = 2 === side ? `${vertical} ${horizontal}` : `${top} ${right} ${bottom} ${left}`;\r\n\r\n\treturn styles;\r\n}\r\n\r\nexport const getTypoCSS = (selector, typo, isFamily = true) => {\r\n\tconst { fontFamily = 'Default', fontCategory = 'sans-serif', fontVariant = 400, fontWeight = 400, isUploadFont = true, fontSize = { desktop: 15, tablet: 15, mobile: 15 }, fontStyle = 'normal', textTransform = 'none', textDecoration = 'auto', lineHeight = '135%', letterSpace = '0px' } = typo || {};\r\n\r\n\tconst isEmptyFamily = !isFamily || !fontFamily || 'Default' === fontFamily;\r\n\tconst desktopFontSize = fontSize?.desktop || fontSize;\r\n\tconst tabletFontSize = fontSize?.tablet || desktopFontSize;\r\n\tconst mobileFontSize = fontSize?.mobile || tabletFontSize;\r\n\r\n\tconst styles = `\r\n\t\t${isEmptyFamily ? '' : `font-family: '${fontFamily}', ${fontCategory};`}\r\n\t\t${isValidCSS('font-weight', fontWeight)}\r\n\t\t${isValidCSS('font-size', desktopFontSize ? `${desktopFontSize}px` : '')}\r\n\t\t${isValidCSS('font-style', fontStyle)}\r\n\t\t${isValidCSS('text-transform', textTransform)}\r\n\t\t${isValidCSS('text-decoration', textDecoration)}\r\n\t\t${isValidCSS('line-height', lineHeight)}\r\n\t\t${isValidCSS('letter-spacing', letterSpace)}\r\n\t`;\r\n\r\n\t// Google font link\r\n\tconst linkQuery = !fontVariant || 400 === fontVariant ? '' : '400i' === fontVariant ? ':ital@1' : fontVariant?.includes('00i') ? `: ital, wght@1, ${fontVariant?.replace('00i', '00')} ` : `: wght@${fontVariant} `;\r\n\r\n\tconst link = isEmptyFamily ? '' : `https://fonts.googleapis.com/css2?family=${fontFamily?.split(' ').join('+')}${linkQuery.replace(/ /g, '')}&display=swap`;\r\n\r\n\treturn {\r\n\t\tgoogleFontLink: !isUploadFont || isEmptyFamily ? '' : `@import url(${link});`,\r\n\t\tstyles: `${selector}{\r\n\t\t\t${styles}\r\n\t\t}\r\n\t\t${tabBreakpoint} {\r\n\t\t\t${selector}{\r\n\t\t\t\t${isValidCSS('font-size', tabletFontSize ? `${tabletFontSize}px` : '')}\r\n\t\t\t}\r\n\t\t}\r\n\t\t${mobileBreakpoint} {\r\n\t\t\t${selector}{\r\n\t\t\t\t${isValidCSS('font-size', mobileFontSize ? `${mobileFontSize}px` : '')}\r\n\t\t\t}\r\n\t\t}`.replace(/\\s+/g, ' ').trim()\r\n\t}\r\n}\r\n\r\nexport const getBoxCSS = (val) => {\r\n\tif (!val) return '';\r\n\r\n\tif (typeof val === 'string') return val;\r\n\r\n\tif (typeof val === 'object' && !Array.isArray(val)) {\r\n\t\tconst order = ['top', 'right', 'bottom', 'left'];\r\n\r\n\t\tconst values = order.map(side => val[side] || '');\r\n\r\n\t\tconst allEmpty = values.every(value => !value);\r\n\r\n\t\treturn allEmpty ? '' : order.map(side => val[side] || '0').join(' ');\r\n\t}\r\n\r\n\treturn '';\r\n};\r\n\r\n// Murad Wahid\r\nexport const getGradientCSS = (gradient) => {\r\n\tconst { type, radialType, colors, centerPositions, angel } = gradient || {};\r\n\r\n\tif (gradient) {\r\n\t\tconst gradientColors = colors?.map(({ color, position }) => `${color} ${position}%`);\r\n\t\tconst liner = `linear-gradient(${angel}deg, ${gradientColors})`;\r\n\t\tconst radial = `radial-gradient(${radialType} at ${centerPositions?.x}% ${centerPositions?.y}%,${gradientColors})`;\r\n\r\n\t\treturn isValidCSS('background', type === 'linear' ? liner : radial);\r\n\t}\r\n\treturn '';\r\n};\r\n\r\nconst getImagePosition = (img) => {\r\n\tconst { position = 'center center', xPosition = 0, yPosition = 0, attachment = '', repeat = 'no-repeat', size = 'cover', customSize = '0px' } = img || {};\r\n\r\n\tconst cd = v => 'initial' !== v || isExist(v);\r\n\r\n\treturn `\r\n\t\t${cd(position) ? `background-position: ${'custom' === position ? `${xPosition} ${yPosition}` : position};` : ''}\r\n\t\t${attachment && cd(attachment) ? `background-attachment: ${attachment};` : ''}\r\n\t\t${cd(repeat) ? `background-repeat: ${repeat};` : ''}\r\n\t\t${cd(size) ? `background-size: ${'custom' === size ? `${customSize} auto` : size};` : ''}\r\n\t`;\r\n};\r\nconst getImageCSS = (img = {}) => {\r\n\tif (img) {\r\n\t\treturn {\r\n\t\t\tdesktop: isExist(img.url) ? `background-image: url(${img.url}); ${getImagePosition(img?.desktop)}` : '',\r\n\t\t\ttablet: isExist(img.url) ? getImagePosition(img?.tablet) : '',\r\n\t\t\tmobile: isExist(img.url) ? getImagePosition(img?.mobile) : '',\r\n\t\t};\r\n\t}\r\n\treturn '';\r\n};\r\n\r\nconst getVideoCSS = (video, selector) => {\r\n\tconst { url, loop } = video || {};\r\n\tconst parentEl = document.querySelector(selector);\r\n\r\n\tconst el = parentEl?.querySelector('.bPlVideo');\r\n\tconst videoEl = document.createElement('video');\r\n\tvideoEl.muted = true;\r\n\tvideoEl.autoplay = true;\r\n\tvideoEl.classList.add('bPlVideo');\r\n\r\n\tif (!el) {\r\n\t\tif (parentEl && url) {\r\n\t\t\tvideoEl.innerHTML = `<source src=${url}></source>`;\r\n\t\t\tparentEl.appendChild(videoEl);\r\n\t\t}\r\n\t}\r\n\tvideoEl.loop = loop;\r\n\tvideoEl.play();\r\n\r\n\treturn `${selector} .bPlVideo{\r\n\t\tleft: 0;\r\n\t\tmin-height: 100%;\r\n\t\tmin-width: 100%;\r\n\t\tposition: absolute;\r\n\t\twidth: -webkit-fill-available;\r\n\t\ttop: 0;\r\n\t\tz-index: 0;\r\n\t}`;\r\n}\r\nexport const getAdvBGCSS = (background, selector, isHover = false) => {\r\n\tconst { type = 'color', color, gradient, img, video } = background || {};\r\n\r\n\tconst bgCSS =\r\n\t\ttype === 'color'\r\n\t\t\t? isValidCSS('background', color)\r\n\t\t\t: type === 'gradient'\r\n\t\t\t\t? getGradientCSS(gradient)\r\n\t\t\t\t: type === 'image'\r\n\t\t\t\t\t? getImageCSS(img).desktop\r\n\t\t\t\t\t: '';\r\n\r\n\tconst tablet = type === 'image' ? getImageCSS(img).tablet : '';\r\n\tconst mobile = type === 'image' ? getImageCSS(img).mobile : '';\r\n\r\n\tconst sl = isHover ? `${selector}:hover` : selector;\r\n\r\n\treturn `\r\n\t\t${type === 'video' ? getVideoCSS(video, selector) : ''}\r\n\r\n\t\t${bgCSS ? `${sl}{\r\n\t\t\t${bgCSS}\r\n\t\t}` : ''}\r\n\r\n\t\t${tablet ? `${tabBreakpoint} {\r\n\t\t\t${sl}{\r\n\t\t\t\t${tablet}\r\n\t\t\t}\r\n\t\t}` : ''}\r\n\r\n\t\t${mobile ? `${mobileBreakpoint} {\r\n\t\t\t${sl}{\r\n\t\t\t\t${mobile}\r\n\t\t\t}\r\n\t\t}` : ''}\r\n\t`.replace(/\\s+/g, ' ').trim()\r\n};\r\n\r\nexport const getOverlayCSS = (overlay, selector, isHover = false) => {\r\n\tconst { isEnabled, colors, opacity = 1, blend, filter = '', blur = 0, brightness = 100, contrast = 100, saturation = 100, hue = 0 } = overlay || {};\r\n\r\n\tconst filterCSSValue = `${100 !== brightness ? `brightness(${brightness}%)` : ''} ${100 !== contrast ? `contrast(${contrast}%)` : ''} ${100 !== saturation ? `saturate(${saturation}%)` : ''} ${0 !== blur ? `blur(${blur}px)` : ''} ${0 !== hue ? `hue-rotate(${hue}deg)` : ''}`;\r\n\tconst filterCSS = `${filter}: ${filter ? filterCSSValue : ''}; -webkit-${filter}: ${filter ? filterCSSValue : ''};`;\r\n\r\n\tconst sl = isHover ? `${selector}:hover::after` : `${selector}::after`;\r\n\r\n\treturn isEnabled ? `\r\n\t\t${selector}::after{\r\n\t\t\tcontent: '';\r\n\t\t\tposition: absolute;\r\n\t\t\tinset: 0;\r\n\t\t}\r\n\t\t${getAdvBGCSS(colors, sl, false)}\r\n\t\t${sl}{\r\n\t\t\t${isValidCSS('opacity', opacity)}\r\n\t\t\t${isValidCSS('mix-blend-mode', blend)}\r\n\t\t\t${filterCSS}\r\n\t\t}\r\n\t`.replace(/\\s+/g, ' ').trim() : ''\r\n};","import { produce } from 'immer';\r\n\r\nexport const getBoxValue = object => Object.values(object).join(' ');\r\n\r\nexport const getImageSizes = (image, imageSizes) => {\r\n\tif (!image) return [];\r\n\tlet options = [];\r\n\tconst sizes = image.media_details.sizes;\r\n\r\n\tfor (const key in sizes) {\r\n\t\tconst imageSize = imageSizes.find(s => s.slug === key);\r\n\t\tif (imageSize) {\r\n\t\t\toptions.push({ label: imageSize.name, value: sizes[key].source_url });\r\n\t\t}\r\n\t}\r\n\treturn options;\r\n}\r\n\r\nexport const tabController = () => {\r\n\tsetTimeout(() => {\r\n\t\tconst panelBodies = document.querySelectorAll('.bPlPanelBody:not(.itemPanelBody) > h2 > button');\r\n\t\tpanelBodies.forEach(item => {\r\n\t\t\titem.addEventListener('click', clickEveryItem);\r\n\t\t});\r\n\r\n\t\tfunction clickEveryItem() {\r\n\r\n\t\t\tthis.removeEventListener('click', clickEveryItem);\r\n\t\t\tpanelBodies.forEach(item => {\r\n\t\t\t\tif (item.getAttribute('aria-expanded') === 'true' && !item.isEqualNode(this)) {\r\n\t\t\t\t\titem.click();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tthis.addEventListener('click', clickEveryItem);\r\n\t\t\t}, 500);\r\n\t\t}\r\n\t}, 500);\r\n};\r\n\r\nexport const updateData = (attr, value, ...props) => {\r\n\tif (props.length === 0) {\r\n\t\treturn value;\r\n\t}\r\n\tconst [currentProp, ...remainingProps] = props;\r\n\tif (remainingProps.length === 0) {\r\n\t\treturn produce(attr, draft => {\r\n\t\t\tif (Array.isArray(draft[currentProp]) && (draft === null || draft === undefined)) {\r\n\t\t\t\tdraft = {};\r\n\t\t\t}\r\n\t\t\tdraft[currentProp] = value;\r\n\t\t});\r\n\t}\r\n\treturn produce(attr, draft => {\r\n\t\tif (draft === null || draft === undefined) {\r\n\t\t\tdraft = {};\r\n\t\t}\r\n\t\tif (!Object.prototype.hasOwnProperty.call(draft, currentProp)) {\r\n\t\t\tdraft[currentProp] = {};\r\n\t\t}\r\n\t\tdraft[currentProp] = updateData(draft[currentProp], value, ...remainingProps);\r\n\t});\r\n}\r\n\r\nexport const debounce = (fn, delay) => {\r\n\tlet timeoutId;\r\n\treturn (...args) => {\r\n\t\tclearTimeout(timeoutId);\r\n\t\ttimeoutId = setTimeout(() => {\r\n\t\t\tfn(...args);\r\n\t\t}, delay);\r\n\t};\r\n};\r\n\r\nexport const isExist = (value) => {\r\n\tif (value === undefined || value === null || value === '') {\r\n\t\treturn false;\r\n\t}\r\n\tif (Array.isArray(value) && value.length === 0) {\r\n\t\treturn false;\r\n\t}\r\n\tif (typeof value === 'object' && Object.keys(value).length === 0) {\r\n\t\treturn false;\r\n\t}\r\n\tif (typeof value === 'string' && value.trim() === '') {\r\n\t\treturn false;\r\n\t}\r\n\tif (typeof value === 'number' && value === 0) {\r\n\t\treturn false;\r\n\t}\r\n\treturn true;\r\n};","export const deskBreakpoint = '@media only screen and (min-width: 1025px)';\r\nexport const tabBreakpoint = '@media only screen and (min-width: 641px) and (max-width: 1024px)';\r\nexport const mobileBreakpoint = '@media only screen and (max-width: 640px)';","import { getBackgroundCSS, getBorderCSS, getColorsCSS, getSpaceCSS, getTypoCSS } from '../../../../bpl-tools/utils/getCSS';\r\n\r\nconst Style = ({ attributes, id }) => {\r\n\tconst { columnGap, rowGap, isContentEqualHight, sliderHeight, paginationColors, paginationHovColors, paginationPadding, paginationSpacing, fImgFitting = 'cover', contentAlign, contentBG, contentPadding, border, sliderPageColor, sliderPageWidth, sliderPageHeight, sliderPageBorder, sliderPrevNextColor, titleTypo, titleColor, titleMargin, metaTypo, metaTextColor, metaLinkColor, metaIconColor, metaColorsOnImage, metaMargin, excerptAlign, excerptTypo, excerptColor, excerptMargin, readMoreAlign, readMoreTypo, readMoreColors, readMoreHovColors, readMorePadding, readMoreBorder } = attributes;\r\n\r\n\tconst mainSl = `#${id}`;\r\n\tconst postSl = `${mainSl} .apbPost`;\r\n\tconst sliderPostsSl = `${mainSl} .apbSliderPosts`;\r\n\tconst postReadMoreSl = `${postSl} .apbReadMore`;\r\n\tconst postTitleSl = `${postSl} .apbTitle`;\r\n\tconst postMetaSl = `${postSl} .apbMeta`;\r\n\tconst paginationSl = `${mainSl} .apbPagination`;\r\n\r\n\treturn <style dangerouslySetInnerHTML={{\r\n\t\t__html: `\r\n\t\t${getTypoCSS('', titleTypo)?.googleFontLink}\r\n\t\t${getTypoCSS('', metaTypo)?.googleFontLink}\r\n\t\t${getTypoCSS('', excerptTypo)?.googleFontLink}\r\n\t\t${getTypoCSS('', readMoreTypo)?.googleFontLink}\r\n\t\t${getTypoCSS(`${postTitleSl}, ${postTitleSl} a`, titleTypo)?.styles}\r\n\t\t${getTypoCSS(`${postMetaSl}, ${postMetaSl} *, ${postSl} .apbThumbCats`, metaTypo)?.styles}\r\n\t\t${getTypoCSS(`${postSl} .apbExcerpt`, excerptTypo)?.styles}\r\n\t\t${getTypoCSS(`${postReadMoreSl} a`, readMoreTypo)?.styles}\r\n\r\n\t\t${paginationSl} .apbPagePrev,\r\n\t\t${paginationSl} .apbPageNumber,\r\n\t\t${paginationSl} .apbPageNext{\r\n\t\t\tfont-size: 15px;\r\n\t\t\t${getColorsCSS(paginationColors)}\r\n\t\t\tpadding: ${getSpaceCSS(paginationPadding)};\r\n\t\t\tmargin: 0 calc( ${paginationSpacing} / 2 );\r\n\t\t}\r\n\t\t@media (max-width: 576px) {\r\n\t\t\t${paginationSl} .apbPagePrev,\r\n\t\t\t${paginationSl} .apbPageNumber,\r\n\t\t\t${paginationSl} .apbPageNext{\r\n\t\t\t\tfont-size: 12px;\r\n\t\t\t\tpadding: ${getSpaceCSS(paginationPadding)?.split(' ').map(v => `calc( ${v} / 2 )`).join(' ')};\r\n\t\t\t\tmargin: 0 calc( ${paginationSpacing} / 4 );\r\n\t\t\t}\r\n\t\t}\r\n\t\t${paginationSl} .apbPagePrev:hover,\r\n\t\t${paginationSl} .apbPageNumber:hover,\r\n\t\t${paginationSl} .apbPageNext:hover,\r\n\t\t${paginationSl} .apbActivePage{\r\n\t\t\t${getColorsCSS(paginationHovColors)}\r\n\t\t}\r\n\r\n\t\t${postSl}{\r\n\t\t\t${getBorderCSS(border)}\r\n\t\t}\r\n\t\t${mainSl} .apbDefault,\r\n\t\t${mainSl} .apbSideImage{\r\n\t\t\ttext-align: ${contentAlign};\r\n\t\t\t${getBackgroundCSS(contentBG)}\r\n\t\t}\r\n\r\n\t\t${postSl} .apbText{\r\n\t\t\tpadding: ${getSpaceCSS(contentPadding)};\r\n\t\t}\r\n\t\t${mainSl} .apbOverlay .apbText{\r\n\t\t\t${getBackgroundCSS(contentBG)}\r\n\t\t\talign-items: ${'left' === contentAlign ? 'flex-start' : 'right' === contentAlign ? 'flex-end' : 'center' === contentAlign ? 'center' : ''}\r\n\t\t}\r\n\r\n\t\t${postTitleSl}, ${postTitleSl} a{\r\n\t\t\ttext-align: ${contentAlign};\r\n\t\t\tcolor: ${titleColor};\r\n\t\t}\r\n\t\t${postTitleSl}{\r\n\t\t\tmargin: ${getSpaceCSS(titleMargin)};\r\n\t\t}\r\n\t\t${postMetaSl}{\r\n\t\t\tjustify-content: ${'left' === contentAlign ? 'flex-start' : 'right' === contentAlign ? 'flex-end' : 'center'};\r\n\t\t\tcolor: ${metaTextColor};\r\n\t\t\tmargin: ${getSpaceCSS(metaMargin)};\r\n\t\t}\r\n\t\t${postMetaSl} a{\r\n\t\t\tcolor: ${metaLinkColor};\r\n\t\t}\r\n\t\t${postMetaSl} .dashicons{\r\n\t\t\tcolor: ${metaIconColor};\r\n\t\t}\r\n\t\t${postSl} .apbThumb img, ${postSl}.apbOverlay img{\r\n\t\t\tobject-fit: ${fImgFitting};\r\n\t\t}\r\n\t\t${postSl} .apbThumbCats a{\r\n\t\t\t${getColorsCSS(metaColorsOnImage)}\r\n\t\t}\r\n\t\t${postSl} .apbExcerpt{\r\n\t\t\ttext-align: ${excerptAlign};\r\n\t\t\tcolor: ${excerptColor};\r\n\t\t\tmargin: ${getSpaceCSS(excerptMargin)};\r\n\t\t}\r\n\t\t${postReadMoreSl}{\r\n\t\t\ttext-align: ${readMoreAlign};\r\n\t\t}\r\n\t\t${postReadMoreSl} a{\r\n\t\t\t${getColorsCSS(readMoreColors)}\r\n\t\t\tpadding: ${getSpaceCSS(readMorePadding)};\r\n\t\t\t${getBorderCSS(readMoreBorder)}\r\n\t\t}\r\n\t\t${postReadMoreSl} a:hover{\r\n\t\t\t${getColorsCSS(readMoreHovColors)}\r\n\t\t}\r\n\r\n\t\t${mainSl} .apbGridPosts,\r\n\t\t${mainSl} .apbGrid1Posts{\r\n\t\t\tgrid-gap: ${rowGap}px ${columnGap}px;\r\n\t\t\talign-items: ${false === isContentEqualHight ? 'start' : 'initial'};\r\n\t\t}\r\n\r\n\t\t${sliderPostsSl},\r\n\t\t${sliderPostsSl} .swiper-slide article{\r\n\t\t\tmin-height: ${sliderHeight};\r\n\t\t}\r\n\t\t${sliderPostsSl} .swiper-pagination .swiper-pagination-bullet{\r\n\t\t\tbackground: ${sliderPageColor};\r\n\t\t\twidth: ${sliderPageWidth};\r\n\t\t\theight: ${sliderPageHeight};\r\n\t\t\t${getBorderCSS(sliderPageBorder)}\r\n\t\t}\r\n\t\t${sliderPostsSl} .swiper-button-prev,\r\n\t\t${sliderPostsSl} .swiper-button-next{\r\n\t\t\tcolor: ${sliderPrevNextColor};\r\n\t\t}\r\n\t`.replace(/\\s+/g, ' ')\r\n\t}} />\r\n}\r\nexport default Style;","const FeatureImage = ({ post, attributes }) => {\r\n\tconst { link, thumbnail: { url: thumbUrl, alt: thumbAlt }, categories } = post;\r\n\tconst { isFImg, isFImgLink, isMeta, isMetaCategory, metaCategoryIn, isLinkNewTab } = attributes;\r\n\r\n\treturn (isFImg && thumbUrl) ? <figure className='apbThumb'>\r\n\t\t{isFImgLink ? <a href={link} target={isLinkNewTab ? '_blank' : '_self'} rel='noreferrer' aria-label={thumbAlt}>\r\n\t\t\t<img src={thumbUrl} alt={thumbAlt} />\r\n\t\t</a> : <img src={thumbUrl} alt={thumbAlt} />}\r\n\r\n\t\t{(isMeta && isMetaCategory && 'image' === metaCategoryIn && categories.space) && <div className='apbThumbCats' dangerouslySetInnerHTML={{ __html: categories.space }} />}\r\n\t</figure> : null;\r\n};\r\nexport default FeatureImage;","const MetaAuthor = ({ post, attributes }) => {\r\n\tconst { author } = post;\r\n\tconst { name, link } = author || {};\r\n\tconst { isMetaAuthor, isMetaAuthorLink = true, metaAuthorIcon } = attributes;\r\n\r\n\treturn (isMetaAuthor && name) ? <span>\r\n\t\t{metaAuthorIcon ?\r\n\t\t\t<img src={metaAuthorIcon} alt='Author' /> :\r\n\t\t\t<span className='dashicons dashicons-admin-users' />}\r\n\r\n\t\t{!isMetaAuthorLink ?\r\n\t\t\t<span>{name}</span> :\r\n\t\t\t<a href={link} target='_blank' rel='noreferrer' aria-label={name}>{name}</a>}\r\n\t</span> : null;\r\n};\r\nexport default MetaAuthor;","const PostMetaDate = ({ post, attributes }) => {\r\n\tconst { date } = post;\r\n\tconst { isMetaDate, metaDateIcon } = attributes;\r\n\r\n\treturn (isMetaDate && date) ? <span>\r\n\t\t{metaDateIcon ?\r\n\t\t\t<img src={metaDateIcon} alt='Date' /> :\r\n\t\t\t<span className='dashicons dashicons-calendar-alt' />}\r\n\r\n\t\t<span>{date}</span>\r\n\t</span> : null;\r\n};\r\nexport default PostMetaDate;","export const truncate = (str, nu_words) => {\r\n\tif (!str) return '';\r\n\r\n\tconst words = str.split(/\\s+/);\r\n\tconst truncatedWords = words.slice(0, nu_words);\r\n\treturn truncatedWords.join(' ');\r\n};\r\n\r\nexport const strToIntArr = str => str?.trim().split(',').map(id => id ? parseInt(id) : id);\r\nexport const filterNaN = array => array?.filter(id => id && !isNaN(id));\r\n\r\nexport const strLength = (str) => str ? str.split(' ').length : 0;\r\n\r\nexport const wordCount = content => content ? (content?.replace(/(<([^>]+)>)/gi, '').split(/\\s+/) || []).length : 0;\r\n\r\nexport const renderHTML = raw => <span dangerouslySetInnerHTML={{ __html: raw }} />;\r\n\r\nexport const filterObject = (obj, callback) => Object.fromEntries(Object.entries(obj).filter(([key, val]) => callback(key, val)));\r\n\r\nexport const omit = ({ [key]: _, ...obj }, key) => obj;\r\n\r\nexport const filterSelected = (taxonomy, selected) => taxonomy?.map(tax => tax.id)?.filter(tax => selected.indexOf(tax) !== -1);\r\n\r\nexport const dateFormat = (format, date) => {\r\n\tconst suffix = {\r\n\t\t'01': 'st',\r\n\t\t'02': 'nd',\r\n\t\t'03': 'rd'\r\n\t};\r\n\r\n\tif (!date || date === '') {\r\n\t\tdate = new Date();\r\n\t}\r\n\telse if (typeof (date) !== 'object') {\r\n\t\tdate = new Date(date.replace(/-/g, '/')); // attempt to convert string to date object\t\r\n\t}\r\n\r\n\tvar string = '',\r\n\t\tmo = date.getMonth(),\t// month (0-11)\r\n\t\tm1 = mo + 1,\t\t\t// month (1-12)\r\n\t\tdow = date.getDay(),\t// day of week (0-6)\r\n\t\td = date.getDate(),\t\t// day of the month (1-31)\r\n\t\ty = date.getFullYear(), // 1999 or 2003\r\n\t\th = date.getHours(),\t// hour (0-23)\r\n\t\tmi = date.getMinutes(), // minute (0-59)\r\n\t\ts = date.getSeconds(); // seconds (0-59)\r\n\r\n\tfor (var i = 0, len = format.length; i < len; i++) {\r\n\t\tswitch (format[i]) {\r\n\t\t\tcase 'j': // Day of the month without leading zeros (1 to 31)\r\n\t\t\t\tstring += d;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'd': // Day of the month, 2 digits with leading zeros (01 to 31)\r\n\t\t\t\tstring += (d < 10) ? '0' + d : d;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'S': // Day of the month, 2 digits with leading zeros (01 to 31)\r\n\t\t\t\tstring += suffix[d] || 'th';\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'l': // (lowercase 'L') A full textual representation of the day of the week\r\n\t\t\t\tvar days = Array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday');\r\n\t\t\t\tstring += days[dow];\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'w': // Numeric representation of the day of the week (0=Sunday,1=Monday,...6=Saturday)\r\n\t\t\t\tstring += dow;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'D': // A textual representation of a day, three letters\r\n\t\t\t\tdays = Array('Sun', 'Mon', 'Tue', 'Wed', 'Thr', 'Fri', 'Sat');\r\n\t\t\t\tstring += days[dow];\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'm': // Numeric representation of a month, with leading zeros (01 to 12)\r\n\t\t\t\tstring += (m1 < 10) ? '0' + m1 : m1;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'n': // Numeric representation of a month, without leading zeros (1 to 12)\r\n\t\t\t\tstring += m1;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'F': // A full textual representation of a month, such as January or March \r\n\t\t\t\tvar months = Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');\r\n\t\t\t\tstring += months[mo];\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'M': // A short textual representation of a month, three letters (Jan - Dec)\r\n\t\t\t\tmonths = Array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');\r\n\t\t\t\tstring += months[mo];\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'Y': // A full numeric representation of a year, 4 digits (1999 OR 2003)\t\r\n\t\t\t\tstring += y;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'y': // A two digit representation of a year (99 OR 03)\r\n\t\t\t\tstring += y.toString().slice(-2);\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'H': // 24-hour format of an hour with leading zeros (00 to 23)\r\n\t\t\t\tstring += (h < 10) ? '0' + h : h;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'g': // 12-hour format of an hour without leading zeros (1 to 12)\r\n\t\t\t\tvar hour = (h === 0) ? 12 : h;\r\n\t\t\t\tstring += (hour > 12) ? hour - 12 : hour;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'h': // 12-hour format of an hour with leading zeros (01 to 12)\r\n\t\t\t\thour = (h === 0) ? 12 : h;\r\n\t\t\t\thour = (hour > 12) ? hour - 12 : hour;\r\n\t\t\t\tstring += (hour < 10) ? '0' + hour : hour;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'a': // Lowercase Ante meridiem and Post meridiem (am or pm)\r\n\t\t\t\tstring += (h < 12) ? 'am' : 'pm';\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'i': // Minutes with leading zeros (00 to 59)\r\n\t\t\t\tstring += (mi < 10) ? '0' + mi : mi;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 's': // Seconds, with leading zeros (00 to 59)\r\n\t\t\t\tstring += (s < 10) ? '0' + s : s;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'c': // ISO 8601 date (eg: 2012-11-20T18:05:54.944Z)\r\n\t\t\t\tstring += date.toISOString();\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tdefault:\r\n\t\t\t\tstring += format[i];\r\n\t\t}\r\n\t}\r\n\r\n\treturn string;\r\n}\r\n\r\nexport const classNames = (...args) => {\r\n\tconst classes = args.reduce((acc, arg) => {\r\n\t\tif (typeof arg === 'string') {\r\n\t\t\tacc.push(arg);\r\n\t\t} else if (typeof arg === 'object') {\r\n\t\t\tObject.entries(arg).forEach(([key, value]) => {\r\n\t\t\t\tif (value) {\r\n\t\t\t\t\tacc.push(key);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn acc;\r\n\t}, []);\r\n\r\n\treturn classes.join(' ');\r\n}\r\n\r\nexport const filterPassword = (posts = [], has_password) => {\r\n\tswitch (has_password) {\r\n\t\tcase 'true':\r\n\t\t\treturn posts?.filter(p => p.password)\r\n\t\tcase 'false':\r\n\t\t\treturn posts?.filter(p => !p.password)\r\n\t\tdefault:\r\n\t\t\treturn posts\r\n\t}\r\n}","import { renderHTML } from '../../../utils/functions';\r\n\r\nconst MetaCategory = ({ post, attributes }) => {\r\n\tconst { categories } = post;\r\n\tconst { isMetaCategory, metaCategoryIn, metaCategoryIcon } = attributes;\r\n\r\n\treturn (isMetaCategory && 'content' === metaCategoryIn && categories.coma) ? <span>\r\n\t\t{metaCategoryIcon ?\r\n\t\t\t<img src={metaCategoryIcon} alt='Author' /> :\r\n\t\t\t<span className='dashicons dashicons-category' />}\r\n\r\n\t\t{renderHTML(categories.coma)}\r\n\t</span> : null;\r\n};\r\nexport default MetaCategory;","import { renderHTML } from '../../../utils/functions';\r\n\r\nconst MetaTaxonomies = ({ post, attributes }) => {\r\n\tconst { taxonomies = {} } = post;\r\n\tconst { metaTaxonomies = {} } = attributes;\r\n\tconst { selected = [] } = metaTaxonomies;\r\n\r\n\treturn selected.map(s => {\r\n\t\tconst tax = taxonomies[s];\r\n\t\tconst icon = metaTaxonomies[s]?.icon;\r\n\t\tconst iconEl = icon ? <img src={icon} alt={s} /> : <span className={`dashicons ${'post_tag' === s ? 'dashicons-tag' : 'dashicons-category'}`} />\r\n\r\n\t\tif (!tax) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\treturn <span key={s}>\r\n\t\t\t{iconEl}\r\n\t\t\t{renderHTML(tax?.split('a><a')?.join('a>, <a'))}\r\n\t\t</span>\r\n\t});\r\n};\r\nexport default MetaTaxonomies;","const MetaReadTime = ({ post, attributes }) => {\r\n\tconst { readTime, content } = post;\r\n\tconst { isMetaReadTime, metaReadTimeIcon, isMetaReadTimeSec, metaReadTimeLabel } = attributes;\r\n\r\n\tconst readTimeText = isMetaReadTimeSec ? `${readTime?.min}:${readTime?.sec}` : readTime?.min;\r\n\r\n\treturn (isMetaReadTime && content) ? <span>\r\n\t\t{metaReadTimeIcon ?\r\n\t\t\t<img src={metaReadTimeIcon} alt='Author' /> :\r\n\t\t\t<span className='dashicons dashicons-clock' />}\r\n\r\n\t\t<span>{readTimeText} {metaReadTimeLabel}</span>\r\n\t</span> : null;\r\n};\r\nexport default MetaReadTime;","const MetaComment = ({ post, attributes }) => {\r\n\tconst { link, title, commentCount, commentStatus } = post;\r\n\tconst { isMetaComment, metaCommentIcon } = attributes;\r\n\r\n\treturn (isMetaComment && 'open' === commentStatus) ? <span>\r\n\t\t{metaCommentIcon ?\r\n\t\t\t<img src={metaCommentIcon} alt='Author' /> :\r\n\t\t\t<span className='dashicons dashicons-admin-comments' />}\r\n\r\n\t\t<a href={`${link}/#comments`} target='_blank' rel='noreferrer' aria-label={`Comments of ${title}`}>{commentCount}</a>\r\n\t</span> : null;\r\n};\r\nexport default MetaComment;","import PostMetaAuthor from './MetaAuthor';\r\nimport PostMetaDate from './MetaDate';\r\nimport PostMetaCategory from './MetaCategory';\r\nimport MetaTaxonomies from './MetaTaxonomies';\r\nimport PostMetaReadTime from './MetaReadTime';\r\nimport PostMetaComment from './MetaComment';\r\n\r\nconst Meta = ({ post, attributes }) => {\r\n\tconst { isMeta } = attributes;\r\n\r\n\treturn isMeta && <div className='apbMeta'>\r\n\t\t<PostMetaAuthor post={post} attributes={attributes} />\r\n\t\t<PostMetaDate post={post} attributes={attributes} />\r\n\t\t<PostMetaCategory post={post} attributes={attributes} />\r\n\t\t<MetaTaxonomies post={post} attributes={attributes} />\r\n\t\t<PostMetaReadTime post={post} attributes={attributes} />\r\n\t\t<PostMetaComment post={post} attributes={attributes} />\r\n\t</div>;\r\n};\r\nexport default Meta;","const Title = ({ post, attributes }) => {\r\n\tconst { link, title } = post;\r\n\tconst { isTitle, isTitleLink, isLinkNewTab } = attributes;\r\n\r\n\treturn isTitle ? <>\r\n\t\t{isTitleLink ?\r\n\t\t\t<h3 className='apbTitle'>\r\n\t\t\t\t<a href={link} target={isLinkNewTab ? '_blank' : '_self'} rel='noreferrer' dangerouslySetInnerHTML={{ __html: title }} aria-label={title} />\r\n\t\t\t</h3> :\r\n\t\t\t<h3 className='apbTitle' dangerouslySetInnerHTML={{ __html: title }} />}\r\n\t</> : null;\r\n};\r\nexport default Title;","import Meta from './Meta';\r\nimport Title from './Title';\r\n\r\nconst TitleMeta = ({ post, attributes }) => {\r\n\tconst { elementsSort = ['title', 'meta'] } = attributes;\r\n\r\n\treturn elementsSort.map((el, index) => 'title' === el ? <Title key={index} post={post} attributes={attributes} /> : <Meta key={index} post={post} attributes={attributes} />)\r\n}\r\nexport default TitleMeta;","import { truncate, strLength } from '../../../utils/functions';\r\n\r\nconst Excerpt = ({ post, attributes }) => {\r\n\tconst { excerpt, content } = post;\r\n\tconst { isExcerpt, isExcerptFromContent, isEllipsisOnExcerpt, excerptLength } = attributes;\r\n\r\n\tconst finalExcerpt = (!isExcerptFromContent && excerpt) ? excerpt : content;\r\n\tconst ellipsis = (isEllipsisOnExcerpt && (strLength(finalExcerpt) > excerptLength)) ? '...' : '';\r\n\r\n\tconst excerptContent = -1 === excerptLength ? finalExcerpt : `${truncate(finalExcerpt, excerptLength)}${ellipsis}`;\r\n\r\n\treturn (isExcerpt && finalExcerpt) ? <div className='apbExcerpt apbInnerContent' dangerouslySetInnerHTML={{ __html: excerptContent }} /> : null;\r\n};\r\nexport default Excerpt;","const\r\n\tReadMore = ({ post, attributes }) => {\r\n\t\tconst { link } = post;\r\n\t\tconst { isReadMore, readMorePosition = 'auto', readMoreLabel, isLinkNewTab } = attributes;\r\n\r\n\t\treturn isReadMore ? <div className={`apbReadMore ${readMorePosition}`}>\r\n\t\t\t<a href={link} target={isLinkNewTab ? '_blank' : '_self'} rel='noreferrer' dangerouslySetInnerHTML={{ __html: readMoreLabel }} aria-label={readMoreLabel} />\r\n\t\t</div> : null;\r\n\t};\r\nexport default\r\n\tReadMore;","import FeatureImage from '../Single/FeatureImage';\r\nimport TitleMeta from '../Single/TitleMeta';\r\nimport Excerpt from '../Single/Excerpt';\r\nimport ReadMore from '../Single/ReadMore';\r\nimport { classNames } from '../../../utils/functions';\r\n\r\nconst Default = ({ post, attributes, postClass }) => {\r\n\tconst { subLayout } = attributes;\r\n\r\n\tconst className = classNames(postClass, 'apbDefault');\r\n\r\n\treturn <article className={className}>\r\n\t\t<FeatureImage post={post} attributes={attributes} />\r\n\r\n\t\t<div className='apbText'>\r\n\t\t\t<TitleMeta post={post} attributes={attributes} />\r\n\r\n\t\t\t{'title-meta' !== subLayout && <>\r\n\t\t\t\t<Excerpt post={post} attributes={attributes} />\r\n\t\t\t\t<ReadMore post={post} attributes={attributes} />\r\n\t\t\t</>}\r\n\t\t</div>\r\n\t</article>;\r\n};\r\nexport default Default;","import FeatureImage from '../Single/FeatureImage';\r\nimport TitleMeta from '../Single/TitleMeta';\r\nimport Excerpt from '../Single/Excerpt';\r\nimport ReadMore from '../Single/ReadMore';\r\nimport { classNames } from '../../../utils/functions';\r\n\r\nconst SideImage = ({ post, attributes, postClass }) => {\r\n\tconst { thumbnail } = post;\r\n\tconst { subLayout, isFImg } = attributes;\r\n\r\n\tconst isLeftImg = 'left-image' === subLayout;\r\n\tconst isRightImg = 'right-image' === subLayout;\r\n\tconst className = classNames(postClass, 'apbSideImage', {\r\n\t\t'grid': isFImg && thumbnail.url,\r\n\t\t'leftImage': isLeftImg,\r\n\t\t'rightImage': isRightImg\r\n\t});\r\n\r\n\treturn <article className={className}>\r\n\t\t{isLeftImg && <FeatureImage post={post} attributes={attributes} />}\r\n\r\n\t\t<div className='apbText'>\r\n\t\t\t<TitleMeta post={post} attributes={attributes} />\r\n\r\n\t\t\t<Excerpt post={post} attributes={attributes} />\r\n\t\t\t<ReadMore post={post} attributes={attributes} />\r\n\t\t</div>\r\n\r\n\t\t{isRightImg && <FeatureImage post={post} attributes={attributes} />}\r\n\t</article>;\r\n};\r\nexport default SideImage;","import TitleMeta from '../Single/TitleMeta';\r\nimport Excerpt from '../Single/Excerpt';\r\nimport ReadMore from '../Single/ReadMore';\r\nimport { classNames } from '../../../utils/functions';\r\n\r\nconst Overlay = ({ post, attributes, postClass }) => {\r\n\tconst { title, thumbnail: { url: thumbUrl } } = post;\r\n\tconst { subLayout } = attributes;\r\n\r\n\tconst className = classNames(postClass, 'apbOverlay', {\r\n\t\t'apbOverlayHover': 'overlay-content-hover' === subLayout && thumbUrl,\r\n\t\t'apbOverlayBox': 'overlay-box' === subLayout || 'overlay-content-box' === subLayout,\r\n\t\t'apbOverlayHalfContent': 'overlay-half-content' === subLayout\r\n\t});\r\n\r\n\treturn <article className={className}>\r\n\t\t{thumbUrl && <img src={thumbUrl} alt={title} />}\r\n\r\n\t\t<div className='apbText'>\r\n\t\t\t<TitleMeta post={post} attributes={attributes} />\r\n\r\n\t\t\t{'overlay-box' !== subLayout && 'overlay-half-content' !== subLayout && <>\r\n\t\t\t\t<Excerpt post={post} attributes={attributes} />\r\n\t\t\t\t<ReadMore post={post} attributes={attributes} />\r\n\t\t\t</>}\r\n\t\t</div>\r\n\t</article>;\r\n};\r\n\r\nexport default Overlay;","import Default from './Default';\r\nimport SideImage from './SideImage';\r\nimport Overlay from './Overlay';\r\nimport { classNames } from '../../../utils/functions';\r\n\r\nconst SubLayout = ({ post, attributes }) => {\r\n const { subLayout, content = { height: 'auto' } } = attributes;\r\n\r\n const { id, thumbnail } = post;\r\n const postClass = classNames('apbPost', `apbPost-${id}`, `${content?.height}ContentHeight`, {\r\n 'hasThumbnail': thumbnail.url\r\n });\r\n\r\n switch (subLayout) {\r\n case 'default':\r\n case 'title-meta':\r\n return <Default post={post} attributes={attributes} postClass={postClass} />;\r\n case 'left-image':\r\n case 'right-image':\r\n return <SideImage post={post} attributes={attributes} postClass={postClass} />;\r\n case 'overlay-content':\r\n case 'overlay-content-hover':\r\n case 'overlay-box':\r\n case 'overlay-content-box':\r\n case 'overlay-half-content':\r\n return <Overlay post={post} attributes={attributes} postClass={postClass} />;\r\n default:\r\n return null;\r\n }\r\n}\r\nexport default SubLayout;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\n\nvar Masonry = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Masonry, _React$Component);\n\n function Masonry() {\n var _this;\n\n _this = _React$Component.call(this) || this;\n _this.state = {\n columns: [],\n childRefs: [],\n hasDistributed: false\n };\n return _this;\n }\n\n var _proto = Masonry.prototype;\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n if (!this.state.hasDistributed && !this.props.sequential) this.distributeChildren();\n };\n\n Masonry.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {\n var children = props.children,\n columnsCount = props.columnsCount;\n if (state && children === state.children) return null;\n return _extends({}, Masonry.getEqualCountColumns(children, columnsCount), {\n children: children,\n hasDistributed: false\n });\n };\n\n _proto.distributeChildren = function distributeChildren() {\n var _this2 = this;\n\n var _this$props = this.props,\n children = _this$props.children,\n columnsCount = _this$props.columnsCount;\n var columnHeights = Array(columnsCount).fill(0);\n var isReady = this.state.childRefs.every(function (ref) {\n return ref.current.getBoundingClientRect().height;\n });\n if (!isReady) return;\n var columns = Array.from({\n length: columnsCount\n }, function () {\n return [];\n });\n var validIndex = 0;\n React.Children.forEach(children, function (child) {\n if (child && React.isValidElement(child)) {\n // .current is undefined if ref was passed to a functional component without forwardRef\n // now passing ref into a wrapper div so it should always be defined\n var childHeight = _this2.state.childRefs[validIndex].current.getBoundingClientRect().height;\n\n var minHeightColumnIndex = columnHeights.indexOf(Math.min.apply(Math, columnHeights));\n columnHeights[minHeightColumnIndex] += childHeight;\n columns[minHeightColumnIndex].push(child);\n validIndex++;\n }\n });\n this.setState(function (p) {\n return _extends({}, p, {\n columns: columns,\n hasDistributed: true\n });\n });\n };\n\n Masonry.getEqualCountColumns = function getEqualCountColumns(children, columnsCount) {\n var columns = Array.from({\n length: columnsCount\n }, function () {\n return [];\n });\n var validIndex = 0;\n var childRefs = [];\n React.Children.forEach(children, function (child) {\n if (child && React.isValidElement(child)) {\n var ref = React.createRef();\n childRefs.push(ref);\n columns[validIndex % columnsCount].push( /*#__PURE__*/React.createElement(\"div\", {\n style: {\n display: \"flex\",\n justifyContent: \"stretch\"\n },\n key: validIndex,\n ref: ref\n }, child) // React.cloneElement(child, {ref}) // cannot attach refs to functional components without forwardRef\n );\n validIndex++;\n }\n });\n return {\n columns: columns,\n childRefs: childRefs\n };\n };\n\n _proto.renderColumns = function renderColumns() {\n var _this$props2 = this.props,\n gutter = _this$props2.gutter,\n itemTag = _this$props2.itemTag,\n itemStyle = _this$props2.itemStyle;\n return this.state.columns.map(function (column, i) {\n return React.createElement(itemTag, {\n key: i,\n style: _extends({\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"flex-start\",\n alignContent: \"stretch\",\n flex: 1,\n width: 0,\n gap: gutter\n }, itemStyle)\n }, column.map(function (item) {\n return item;\n }));\n });\n };\n\n _proto.render = function render() {\n var _this$props3 = this.props,\n gutter = _this$props3.gutter,\n className = _this$props3.className,\n style = _this$props3.style,\n containerTag = _this$props3.containerTag;\n return React.createElement(containerTag, {\n style: _extends({\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"center\",\n alignContent: \"stretch\",\n boxSizing: \"border-box\",\n width: \"100%\",\n gap: gutter\n }, style),\n className: className\n }, this.renderColumns());\n };\n\n return Masonry;\n}(React.Component);\n\nMasonry.propTypes = process.env.NODE_ENV !== \"production\" ? {\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n columnsCount: PropTypes.number,\n gutter: PropTypes.string,\n className: PropTypes.string,\n style: PropTypes.object,\n containerTag: PropTypes.string,\n itemTag: PropTypes.string,\n itemStyle: PropTypes.object,\n sequential: PropTypes.bool\n} : {};\nMasonry.defaultProps = {\n columnsCount: 3,\n gutter: \"0\",\n className: null,\n style: {},\n containerTag: \"div\",\n itemTag: \"div\",\n itemStyle: {},\n sequential: false\n};\nexport default Masonry;","import React, { useCallback, useEffect, useLayoutEffect, useMemo, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nvar DEFAULT_COLUMNS_COUNT = 1;\nvar useIsomorphicLayoutEffect = typeof window !== \"undefined\" ? useLayoutEffect : useEffect;\n\nvar useHasMounted = function useHasMounted() {\n var _useState = useState(false),\n hasMounted = _useState[0],\n setHasMounted = _useState[1];\n\n useIsomorphicLayoutEffect(function () {\n setHasMounted(true);\n }, []);\n return hasMounted;\n};\n\nvar useWindowWidth = function useWindowWidth() {\n var hasMounted = useHasMounted();\n\n var _useState2 = useState(typeof window !== \"undefined\" ? window.innerWidth : 0),\n width = _useState2[0],\n setWidth = _useState2[1];\n\n var handleResize = useCallback(function () {\n if (!hasMounted) return;\n setWidth(window.innerWidth);\n }, [hasMounted]);\n useIsomorphicLayoutEffect(function () {\n if (hasMounted) {\n window.addEventListener(\"resize\", handleResize);\n handleResize();\n return function () {\n return window.removeEventListener(\"resize\", handleResize);\n };\n }\n }, [hasMounted, handleResize]);\n return width;\n};\n\nvar MasonryResponsive = function MasonryResponsive(_ref) {\n var _ref$columnsCountBrea = _ref.columnsCountBreakPoints,\n columnsCountBreakPoints = _ref$columnsCountBrea === void 0 ? {\n 350: 1,\n 750: 2,\n 900: 3\n } : _ref$columnsCountBrea,\n children = _ref.children,\n _ref$className = _ref.className,\n className = _ref$className === void 0 ? null : _ref$className,\n _ref$style = _ref.style,\n style = _ref$style === void 0 ? null : _ref$style;\n var windowWidth = useWindowWidth();\n var columnsCount = useMemo(function () {\n var breakPoints = Object.keys(columnsCountBreakPoints).sort(function (a, b) {\n return a - b;\n });\n var count = breakPoints.length > 0 ? columnsCountBreakPoints[breakPoints[0]] : DEFAULT_COLUMNS_COUNT;\n breakPoints.forEach(function (breakPoint) {\n if (breakPoint < windowWidth) {\n count = columnsCountBreakPoints[breakPoint];\n }\n });\n return count;\n }, [windowWidth, columnsCountBreakPoints]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n style: style\n }, React.Children.map(children, function (child, index) {\n return React.cloneElement(child, {\n key: index,\n columnsCount: columnsCount\n });\n }));\n};\n\nMasonryResponsive.propTypes = process.env.NODE_ENV !== \"production\" ? {\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n columnsCountBreakPoints: PropTypes.object,\n className: PropTypes.string,\n style: PropTypes.object\n} : {};\nexport default MasonryResponsive;","import Masonry from \"./Masonry\";\nimport ResponsiveMasonry from \"./ResponsiveMasonry\";\nexport default Masonry;\nexport { ResponsiveMasonry };","import Masonry, { ResponsiveMasonry } from 'react-responsive-masonry';\r\n\r\nimport SubLayout from '../SubLayout/SubLayout';\r\n\r\nconst MyMasonry = ({ posts, attributes }) => {\r\n\tconst { columns, columnGap, rowGap } = attributes;\r\n\tconst { desktop = 3, tablet = 2, mobile = 1 } = columns;\r\n\r\n\treturn <ResponsiveMasonry className='apbMasonryPosts' columnsCountBreakPoints={{ 0: mobile, 576: tablet, 768: desktop }}>\r\n\t\t<Masonry gutter={`${rowGap}px ${columnGap}px`}>\r\n\t\t\t{posts.map(post => <SubLayout key={post.id} post={post} attributes={attributes} />)}\r\n\t\t</Masonry>\r\n\t</ResponsiveMasonry>\r\n}\r\nexport default MyMasonry;","import SubLayout from './SubLayout/SubLayout';\r\nimport Masonry from './Layout/Masonry';\r\n\r\nconst DisplayPosts = ({ posts, attributes, id, Slider, Ticker }) => {\r\n\tconst { layout, columns } = attributes;\r\n\tconst { desktop = 3, tablet = 2, mobile = 1 } = columns;\r\n\r\n\tconst PostsLoop = () => posts.map(post => <SubLayout key={post.id} post={post} attributes={attributes} />)\r\n\r\n\tswitch (layout) {\r\n\t\tcase 'grid':\r\n\t\t\treturn <div className={`apbGridPosts columns-${desktop} columns-tablet-${tablet} columns-mobile-${mobile}`}>\r\n\t\t\t\t<PostsLoop />\r\n\t\t\t</div>;\r\n\r\n\t\tcase 'grid1':\r\n\t\t\treturn <div className='apbGrid1Posts'>\r\n\t\t\t\t<PostsLoop />\r\n\t\t\t</div>;\r\n\r\n\t\tcase 'masonry':\r\n\t\t\treturn <Masonry posts={posts} attributes={attributes} />;\r\n\r\n\t\tcase 'slider':\r\n\t\t\treturn <Slider posts={posts} attributes={attributes} id={id} />\r\n\r\n\t\tcase 'ticker':\r\n\t\t\treturn <Ticker posts={posts} attributes={attributes} id={id} />;\r\n\r\n\t\tdefault:\r\n\t\t\treturn null;\r\n\t}\r\n}\r\nexport default DisplayPosts;","import { useMemo } from 'react';\r\n\r\nexport const DOTS = '·';\r\n\r\nconst range = (start, end) => {\r\n\tlet length = end - start + 1;\r\n\treturn Array.from({ length }, (_, idx) => idx + start);\r\n};\r\n\r\nexport const usePagination = ({ currentPage, totalCount, pageSize, siblingCount = 1 }) => {\r\n\tconst paginationRange = useMemo(() => {\r\n\t\tconst totalPageCount = Math.ceil(totalCount / pageSize);\r\n\r\n\t\t// Pages count is determined as siblingCount + firstPage + lastPage + currentPage + 2*DOTS\r\n\t\tconst totalPageNumbers = siblingCount + 5;\r\n\r\n\t\t/*\r\n\t\t\tIf the number of pages is less than the page numbers we want to show in our\r\n\t\t\tpaginationComponent, we return the range [1..totalPageCount]\r\n\t\t*/\r\n\t\tif (totalPageNumbers >= totalPageCount) {\r\n\t\t\treturn range(1, totalPageCount);\r\n\t\t}\r\n\r\n\t\tconst leftSiblingIndex = Math.max(currentPage - siblingCount, 1);\r\n\t\tconst rightSiblingIndex = Math.min(\r\n\t\t\tcurrentPage + siblingCount,\r\n\t\t\ttotalPageCount\r\n\t\t);\r\n\r\n\t\t/*\r\n\t\t\tWe do not want to show dots if there is only one position left \r\n\t\t\tafter/before the left/right page count as that would lead to a change if our Pagination\r\n\t\t\tcomponent size which we do not want\r\n\t\t*/\r\n\t\tconst shouldShowLeftDots = leftSiblingIndex > 2;\r\n\t\tconst shouldShowRightDots = rightSiblingIndex < totalPageCount - 2;\r\n\r\n\t\tconst firstPageIndex = 1;\r\n\t\tconst lastPageIndex = totalPageCount;\r\n\r\n\t\tif (!shouldShowLeftDots && shouldShowRightDots) {\r\n\t\t\tlet leftItemCount = 3 + 2 * siblingCount;\r\n\t\t\tlet leftRange = range(1, leftItemCount);\r\n\t\t\treturn [...leftRange, DOTS, totalPageCount];\r\n\t\t}\r\n\r\n\t\tif (shouldShowLeftDots && !shouldShowRightDots) {\r\n\t\t\tlet rightItemCount = 3 + 2 * siblingCount;\r\n\t\t\tlet rightRange = range(\r\n\t\t\t\ttotalPageCount - rightItemCount + 1,\r\n\t\t\t\ttotalPageCount\r\n\t\t\t);\r\n\t\t\treturn [firstPageIndex, DOTS, ...rightRange];\r\n\t\t}\r\n\r\n\t\tif (shouldShowLeftDots && shouldShowRightDots) {\r\n\t\t\tlet middleRange = range(leftSiblingIndex, rightSiblingIndex);\r\n\t\t\treturn [firstPageIndex, DOTS, ...middleRange, DOTS, lastPageIndex];\r\n\t\t}\r\n\t}, [currentPage, totalCount, pageSize, siblingCount]);\r\n\r\n\treturn paginationRange;\r\n};","import { useState } from 'react';\r\n\r\nimport { usePagination, DOTS } from './usePagination';\r\n\r\nconst Pagination = ({ attributes, totalCount, onChange }) => {\r\n\tconst { layout, isPostsPerPageAll, postsPerPage, isPagination, paginationPrevLabel, paginationNextLabel } = attributes;\r\n\r\n\tconst [currentPage, setCurrentPage] = useState(1);\r\n\r\n\tconst paginationRange = usePagination({\r\n\t\tcurrentPage,\r\n\t\ttotalCount,\r\n\t\tpageSize: postsPerPage,\r\n\t\tsiblingCount: 1\r\n\t});\r\n\r\n\tif (currentPage === 0 || paginationRange.length < 2) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tlet lastPage = paginationRange[paginationRange.length - 1];\r\n\r\n\tconst setPageNumber = pageNumber => {\r\n\t\tonChange(pageNumber);\r\n\t\tsetCurrentPage(pageNumber);\r\n\t}\r\n\r\n\treturn isPagination && !isPostsPerPageAll && 'slider' !== layout && 'ticker' !== layout ? <ul className={`apbPagination`}>\r\n\t\t<li className={`apbPageNumber ${currentPage === 1 ? 'disabled' : ''}`}\r\n\t\t\tonClick={() => setPageNumber(currentPage - 1)}\r\n\t\t>{paginationPrevLabel}</li>\r\n\r\n\t\t{paginationRange.map((pageNumber, index) => {\r\n\t\t\tif (pageNumber === DOTS) {\r\n\t\t\t\treturn <li key={index} className='dots'>·····</li>;\r\n\t\t\t}\r\n\r\n\t\t\treturn <li key={index}\r\n\t\t\t\tclassName={`apbPageNumber ${pageNumber === currentPage ? 'apbActivePage' : ''}`}\r\n\t\t\t\tonClick={() => setPageNumber(pageNumber)}\r\n\t\t\t> {pageNumber}</li>;\r\n\t\t})}\r\n\r\n\t\t<li className={`apbPageNumber ${currentPage === lastPage ? 'disabled' : ''}`}\r\n\t\t\tonClick={() => setPageNumber(currentPage + 1)}\r\n\t\t>{paginationNextLabel}</li>\r\n\t</ul> : null;\r\n};\r\nexport default Pagination;","/**\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 && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;\n}\nfunction extend(target, src) {\n if (target === void 0) {\n target = {};\n }\n if (src === void 0) {\n src = {};\n }\n Object.keys(src).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\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}\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 { getWindow as a, getDocument as g };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\n\nfunction classesToTokens(classes) {\n if (classes === void 0) {\n classes = '';\n }\n return classes.trim().split(' ').filter(c => !!c.trim());\n}\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n}\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return setTimeout(callback, delay);\n}\nfunction now() {\n return Date.now();\n}\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n if (!style) {\n style = el.style;\n }\n return style;\n}\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el);\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\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 if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n}\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\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 return node && (node.nodeType === 1 || node.nodeType === 11);\n}\nfunction extend() {\n const to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n for (let i = 1; i < arguments.length; i += 1) {\n const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\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 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 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 return to;\n}\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\nfunction animateCSSModeScroll(_ref) {\n let {\n swiper,\n targetPosition,\n side\n } = _ref;\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 const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n const animate = () => {\n time = new Date().getTime();\n if (startTime === null) {\n startTime = time;\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 if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\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 swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n animate();\n}\nfunction getSlideTransformEl(slideEl) {\n return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowRoot && slideEl.shadowRoot.querySelector('.swiper-slide-transform') || slideEl;\n}\nfunction elementChildren(element, selector) {\n if (selector === void 0) {\n selector = '';\n }\n const children = [...element.children];\n if (element instanceof HTMLSlotElement) {\n children.push(...element.assignedElements());\n }\n if (!selector) {\n return children;\n }\n return children.filter(el => el.matches(selector));\n}\nfunction elementIsChildOf(el, parent) {\n const isChild = parent.contains(el);\n if (!isChild && parent instanceof HTMLSlotElement) {\n const children = [...parent.assignedElements()];\n return children.includes(el);\n }\n return isChild;\n}\nfunction showWarning(text) {\n try {\n console.warn(text);\n return;\n } catch (err) {\n // err\n }\n}\nfunction createElement(tag, classes) {\n if (classes === void 0) {\n classes = [];\n }\n const el = document.createElement(tag);\n el.classList.add(...(Array.isArray(classes) ? classes : classesToTokens(classes)));\n return el;\n}\nfunction elementOffset(el) {\n const window = getWindow();\n const document = getDocument();\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}\nfunction elementPrevAll(el, selector) {\n const prevEls = [];\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if (prev.matches(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n el = prev;\n }\n return prevEls;\n}\nfunction elementNextAll(el, selector) {\n const nextEls = [];\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if (next.matches(selector)) nextEls.push(next);\n } else nextEls.push(next);\n el = next;\n }\n return nextEls;\n}\nfunction elementStyle(el, prop) {\n const window = getWindow();\n return window.getComputedStyle(el, null).getPropertyValue(prop);\n}\nfunction elementIndex(el) {\n let child = el;\n let i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return undefined;\n}\nfunction elementParents(el, selector) {\n const parents = []; // eslint-disable-line\n let parent = el.parentElement; // eslint-disable-line\n while (parent) {\n if (selector) {\n if (parent.matches(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n parent = parent.parentElement;\n }\n return parents;\n}\nfunction elementTransitionEnd(el, callback) {\n function fireCallBack(e) {\n if (e.target !== el) return;\n callback.call(el, e);\n el.removeEventListener('transitionend', fireCallBack);\n }\n if (callback) {\n el.addEventListener('transitionend', fireCallBack);\n }\n}\nfunction elementOuterSize(el, size, includeMargins) {\n const window = getWindow();\n if (includeMargins) {\n return el[size === 'width' ? 'offsetWidth' : 'offsetHeight'] + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-right' : 'margin-top')) + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-left' : 'margin-bottom'));\n }\n return el.offsetWidth;\n}\nfunction makeElementsArray(el) {\n return (Array.isArray(el) ? el : [el]).filter(e => !!e);\n}\nfunction getRotateFix(swiper) {\n return v => {\n if (Math.abs(v) > 0 && swiper.browser && swiper.browser.need3dFix && Math.abs(v) % 90 === 0) {\n return v + 0.001;\n }\n return v;\n };\n}\n\nexport { elementParents as a, elementOffset as b, createElement as c, now as d, elementChildren as e, elementOuterSize as f, getSlideTransformEl as g, elementIndex as h, classesToTokens as i, getTranslate as j, elementTransitionEnd as k, isObject as l, makeElementsArray as m, nextTick as n, getRotateFix as o, elementStyle as p, elementNextAll as q, elementPrevAll as r, setCSSProperty as s, animateCSSModeScroll as t, showWarning as u, elementIsChildOf as v, extend as w, deleteProps as x };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\nimport { a as elementParents, p as elementStyle, e as elementChildren, s as setCSSProperty, f as elementOuterSize, q as elementNextAll, r as elementPrevAll, j as getTranslate, t as animateCSSModeScroll, n as nextTick, u as showWarning, c as createElement, v as elementIsChildOf, d as now, w as extend, h as elementIndex, x as deleteProps } from './utils.mjs';\n\nlet support;\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch)\n };\n}\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n return support;\n}\n\nlet deviceCached;\nfunction calcDevice(_temp) {\n let {\n userAgent\n } = _temp === void 0 ? {} : _temp;\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 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';\n\n // iPadOs 13 fix\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\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 }\n\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n\n // Export object\n return device;\n}\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n return deviceCached;\n}\n\nlet browser;\nfunction calcBrowser() {\n const window = getWindow();\n const device = getDevice();\n let needPerspectiveFix = false;\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 if (isSafari()) {\n const ua = String(window.navigator.userAgent);\n if (ua.includes('Version/')) {\n const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num));\n needPerspectiveFix = major < 16 || major === 16 && minor < 2;\n }\n }\n const isWebView = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent);\n const isSafariBrowser = isSafari();\n const need3dFix = isSafariBrowser || isWebView && device.ios;\n return {\n isSafari: needPerspectiveFix || isSafariBrowser,\n needPerspectiveFix,\n need3dFix,\n isWebView\n };\n}\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n return browser;\n}\n\nfunction Resize(_ref) {\n let {\n swiper,\n on,\n emit\n } = _ref;\n const window = getWindow();\n let observer = null;\n let animationFrame = null;\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n animationFrame = window.requestAnimationFrame(() => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(_ref2 => {\n let {\n contentBoxSize,\n contentRect,\n target\n } = _ref2;\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 if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\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}\n\nfunction Observer(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const observers = [];\n const window = getWindow();\n const attach = function (target, options) {\n if (options === void 0) {\n options = {};\n }\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 (swiper.__preventObserver__) return;\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\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: swiper.isElement || (typeof options.childList === 'undefined' ? true : options).childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n const init = () => {\n if (!swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = elementParents(swiper.hostEl);\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n }\n // Observe container\n attach(swiper.hostEl, {\n childList: swiper.params.observeSlideChildren\n });\n\n // Observe wrapper\n attach(swiper.wrapperEl, {\n attributes: false\n });\n };\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}\n\n/* eslint-disable no-underscore-dangle */\n\nvar eventsEmitter = {\n on(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\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 once(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n function onceHandler() {\n self.off(events, onceHandler);\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n handler.apply(self, args);\n }\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n return self;\n },\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n return self;\n },\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\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 emit() {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\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 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 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\nfunction updateSize() {\n const swiper = this;\n let width;\n let height;\n const el = swiper.el;\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = el.clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = el.clientHeight;\n }\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt(elementStyle(el, 'padding-left') || 0, 10) - parseInt(elementStyle(el, 'padding-right') || 0, 10);\n height = height - parseInt(elementStyle(el, 'padding-top') || 0, 10) - parseInt(elementStyle(el, '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}\n\nfunction updateSlides() {\n const swiper = this;\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(swiper.getDirectionLabel(label)) || 0);\n }\n const params = swiper.params;\n const {\n wrapperEl,\n slidesEl,\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 = elementChildren(slidesEl, `.${swiper.params.slideClass}, swiper-slide`);\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 if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\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 if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n slides.forEach(slideEl => {\n if (rtl) {\n slideEl.style.marginLeft = '';\n } else {\n slideEl.style.marginRight = '';\n }\n slideEl.style.marginBottom = '';\n slideEl.style.marginTop = '';\n });\n\n // reset cssMode offsets\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', '');\n }\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n if (gridEnabled) {\n swiper.grid.initSlides(slides);\n } else if (swiper.grid) {\n swiper.grid.unsetSlides();\n }\n\n // Calc slides\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 for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n let slide;\n if (slides[i]) slide = slides[i];\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slides);\n }\n if (slides[i] && elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[swiper.getDirectionLabel('width')] = ``;\n }\n const slideStyles = getComputedStyle(slide);\n const currentTransform = slide.style.transform;\n const currentWebKitTransform = slide.style.webkitTransform;\n if (currentTransform) {\n slide.style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? elementOuterSize(slide, 'width', true) : elementOuterSize(slide, 'height', 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 if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n if (currentTransform) {\n slide.style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = currentWebKitTransform;\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 if (slides[i]) {\n slides[i].style[swiper.getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\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 swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (params.setWrapperSize) {\n wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid);\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (isVirtual && params.loop) {\n const size = slidesSizesGrid[0] + spaceBetween;\n if (params.slidesPerGroup > 1) {\n const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup);\n const groupSize = size * params.slidesPerGroup;\n for (let i = 0; i < groups; i += 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);\n }\n }\n for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) {\n if (params.slidesPerGroup === 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + size);\n }\n slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);\n swiper.virtualSize += size;\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n if (spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : swiper.getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode || params.loop) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }).forEach(slideEl => {\n slideEl.style[key] = `${spaceBetween}px`;\n });\n }\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const maxSnap = allSlidesSize > swiperSize ? allSlidesSize - swiperSize : 0;\n snapGrid = snapGrid.map(snap => {\n if (snap <= 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const offsetSize = (params.slidesOffsetBefore || 0) + (params.slidesOffsetAfter || 0);\n if (allSlidesSize + offsetSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize - offsetSize) / 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 Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(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 if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n swiper.emit('slidesUpdated');\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass);\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.el.classList.remove(backFaceHiddenClass);\n }\n }\n}\n\nfunction 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 if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides[swiper.getSlideIndexByData(index)];\n }\n return swiper.slides[index];\n };\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || []).forEach(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 }\n\n // Find new height from highest slide in view\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 }\n\n // Update Height\n if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`;\n}\n\nfunction updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n // eslint-disable-next-line\n const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0;\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment();\n }\n}\n\nconst toggleSlideClasses$1 = (slideEl, condition, className) => {\n if (condition && !slideEl.classList.contains(className)) {\n slideEl.classList.add(className);\n } else if (!condition && slideEl.classList.contains(className)) {\n slideEl.classList.remove(className);\n }\n};\nfunction updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\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;\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n let spaceBetween = params.spaceBetween;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isFullyVisible = slideBefore >= 0 && slideBefore <= swiper.size - swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n }\n toggleSlideClasses$1(slide, isVisible, params.slideVisibleClass);\n toggleSlideClasses$1(slide, isFullyVisible, params.slideFullyVisibleClass);\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n}\n\nfunction updateProgress(translate) {\n const swiper = this;\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1;\n // eslint-disable-next-line\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd,\n progressLoop\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1;\n const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1;\n isBeginning = isBeginningRounded || progress <= 0;\n isEnd = isEndRounded || progress >= 1;\n if (isBeginningRounded) progress = 0;\n if (isEndRounded) progress = 1;\n }\n if (params.loop) {\n const firstSlideIndex = swiper.getSlideIndexByData(0);\n const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1);\n const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex];\n const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex];\n const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1];\n const translateAbs = Math.abs(translate);\n if (translateAbs >= firstSlideTranslate) {\n progressLoop = (translateAbs - firstSlideTranslate) / translateMax;\n } else {\n progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax;\n }\n if (progressLoop > 1) progressLoop -= 1;\n }\n Object.assign(swiper, {\n progress,\n progressLoop,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n swiper.emit('progress', progress);\n}\n\nconst toggleSlideClasses = (slideEl, condition, className) => {\n if (condition && !slideEl.classList.contains(className)) {\n slideEl.classList.add(className);\n } else if (!condition && slideEl.classList.contains(className)) {\n slideEl.classList.remove(className);\n }\n};\nfunction updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n slidesEl,\n activeIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n const getFilteredSlide = selector => {\n return elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];\n };\n let activeSlide;\n let prevSlide;\n let nextSlide;\n if (isVirtual) {\n if (params.loop) {\n let slideIndex = activeIndex - swiper.virtual.slidesBefore;\n if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex;\n if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length;\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${slideIndex}\"]`);\n } else {\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${activeIndex}\"]`);\n }\n } else {\n if (gridEnabled) {\n activeSlide = slides.filter(slideEl => slideEl.column === activeIndex)[0];\n nextSlide = slides.filter(slideEl => slideEl.column === activeIndex + 1)[0];\n prevSlide = slides.filter(slideEl => slideEl.column === activeIndex - 1)[0];\n } else {\n activeSlide = slides[activeIndex];\n }\n }\n if (activeSlide) {\n if (!gridEnabled) {\n // Next Slide\n nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !nextSlide) {\n nextSlide = slides[0];\n }\n\n // Prev Slide\n prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !prevSlide === 0) {\n prevSlide = slides[slides.length - 1];\n }\n }\n }\n slides.forEach(slideEl => {\n toggleSlideClasses(slideEl, slideEl === activeSlide, params.slideActiveClass);\n toggleSlideClasses(slideEl, slideEl === nextSlide, params.slideNextClass);\n toggleSlideClasses(slideEl, slideEl === prevSlide, params.slidePrevClass);\n });\n swiper.emitSlidesClasses();\n}\n\nconst processLazyPreloader = (swiper, imageEl) => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n const slideEl = imageEl.closest(slideSelector());\n if (slideEl) {\n let lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (!lazyEl && swiper.isElement) {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n } else {\n // init later\n requestAnimationFrame(() => {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (lazyEl) lazyEl.remove();\n }\n });\n }\n }\n if (lazyEl) lazyEl.remove();\n }\n};\nconst unlazy = (swiper, index) => {\n if (!swiper.slides[index]) return;\n const imageEl = swiper.slides[index].querySelector('[loading=\"lazy\"]');\n if (imageEl) imageEl.removeAttribute('loading');\n};\nconst preload = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n let amount = swiper.params.lazyPreloadPrevNext;\n const len = swiper.slides.length;\n if (!len || !amount || amount < 0) return;\n amount = Math.min(amount, len);\n const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView);\n const activeIndex = swiper.activeIndex;\n if (swiper.params.grid && swiper.params.grid.rows > 1) {\n const activeColumn = activeIndex;\n const preloadColumns = [activeColumn - amount];\n preloadColumns.push(...Array.from({\n length: amount\n }).map((_, i) => {\n return activeColumn + slidesPerView + i;\n }));\n swiper.slides.forEach((slideEl, i) => {\n if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i);\n });\n return;\n }\n const slideIndexLastInView = activeIndex + slidesPerView - 1;\n if (swiper.params.rewind || swiper.params.loop) {\n for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) {\n const realIndex = (i % len + len) % len;\n if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex);\n }\n } else {\n for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {\n if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) {\n unlazy(swiper, i);\n }\n }\n }\n};\n\nfunction getActiveIndexByTranslate(swiper) {\n const {\n slidesGrid,\n params\n } = swiper;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n let activeIndex;\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 }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n return activeIndex;\n}\nfunction updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n const getVirtualRealIndex = aIndex => {\n let realIndex = aIndex - swiper.virtual.slidesBefore;\n if (realIndex < 0) {\n realIndex = swiper.virtual.slides.length + realIndex;\n }\n if (realIndex >= swiper.virtual.slides.length) {\n realIndex -= swiper.virtual.slides.length;\n }\n return realIndex;\n };\n if (typeof activeIndex === 'undefined') {\n activeIndex = getActiveIndexByTranslate(swiper);\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 if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex && !swiper.params.loop) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n }\n if (activeIndex === previousIndex && swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.realIndex = getVirtualRealIndex(activeIndex);\n return;\n }\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n\n // Get real index\n let realIndex;\n if (swiper.virtual && params.virtual.enabled && params.loop) {\n realIndex = getVirtualRealIndex(activeIndex);\n } else if (gridEnabled) {\n const firstSlideInColumn = swiper.slides.filter(slideEl => slideEl.column === activeIndex)[0];\n let activeSlideIndex = parseInt(firstSlideInColumn.getAttribute('data-swiper-slide-index'), 10);\n if (Number.isNaN(activeSlideIndex)) {\n activeSlideIndex = Math.max(swiper.slides.indexOf(firstSlideInColumn), 0);\n }\n realIndex = Math.floor(activeSlideIndex / params.grid.rows);\n } else if (swiper.slides[activeIndex]) {\n const slideIndex = swiper.slides[activeIndex].getAttribute('data-swiper-slide-index');\n if (slideIndex) {\n realIndex = parseInt(slideIndex, 10);\n } else {\n realIndex = activeIndex;\n }\n } else {\n realIndex = activeIndex;\n }\n Object.assign(swiper, {\n previousSnapIndex,\n snapIndex,\n previousRealIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n if (swiper.initialized) {\n preload(swiper);\n }\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n swiper.emit('slideChange');\n }\n}\n\nfunction updateClickedSlide(el, path) {\n const swiper = this;\n const params = swiper.params;\n let slide = el.closest(`.${params.slideClass}, swiper-slide`);\n if (!slide && swiper.isElement && path && path.length > 1 && path.includes(el)) {\n [...path.slice(path.indexOf(el) + 1, path.length)].forEach(pathEl => {\n if (!slide && pathEl.matches && pathEl.matches(`.${params.slideClass}, swiper-slide`)) {\n slide = pathEl;\n }\n });\n }\n let slideFound = false;\n let slideIndex;\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 if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt(slide.getAttribute('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 if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}\n\nvar update = {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};\n\nfunction getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n wrapperEl\n } = swiper;\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n let currentTranslate = getTranslate(wrapperEl, axis);\n currentTranslate += swiper.cssOverflowAdjustment();\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}\n\nfunction setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n if (swiper.isHorizontal()) {\n x -= swiper.cssOverflowAdjustment();\n } else {\n y -= swiper.cssOverflowAdjustment();\n }\n wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;\n }\n\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n swiper.emit('setTranslate', swiper.translate, byController);\n}\n\nfunction minTranslate() {\n return -this.snapGrid[0];\n}\n\nfunction maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}\n\nfunction translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\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;\n\n // Update progress\n swiper.updateProgress(newTranslate);\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\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 wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n return true;\n }\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\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 if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\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.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n swiper.animating = false;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n return true;\n}\n\nvar translate = {\n getTranslate: getSwiperTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};\n\nfunction setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.params.cssMode) {\n swiper.wrapperEl.style.transitionDuration = `${duration}ms`;\n swiper.wrapperEl.style.transitionDelay = duration === 0 ? `0ms` : '';\n }\n swiper.emit('setTransition', duration, byController);\n}\n\nfunction transitionEmit(_ref) {\n let {\n swiper,\n runCallbacks,\n direction,\n step\n } = _ref;\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n swiper.emit(`transition${step}`);\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n swiper.emit(`slideChangeTransition${step}`);\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}\n\nfunction transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}\n\nfunction transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\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}\n\nvar transition = {\n setTransition,\n transitionStart,\n transitionEnd\n};\n\nfunction slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n index = parseInt(index, 10);\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 if (!enabled && !internal && !initial || swiper.destroyed || swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\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 const translate = -snapGrid[snapIndex];\n // Normalize slideIndex\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 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 }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) {\n return false;\n }\n }\n }\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n // Update progress\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';\n\n // initial virtual\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n const isInitialVirtual = isVirtual && initial;\n // Update Index\n if (!isInitialVirtual && (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate)) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n if (speed === 0) {\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) {\n swiper._cssModeVirtualInitialSet = true;\n requestAnimationFrame(() => {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._immediateVirtual = 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 wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n return true;\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 if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\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.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n }\n return true;\n}\n\nfunction slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n const indexAsNumber = parseInt(index, 10);\n index = indexAsNumber;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const gridEnabled = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1;\n let newIndex = index;\n if (swiper.params.loop) {\n if (swiper.virtual && swiper.params.virtual.enabled) {\n // eslint-disable-next-line\n newIndex = newIndex + swiper.virtual.slidesBefore;\n } else {\n let targetSlideIndex;\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n targetSlideIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column;\n } else {\n targetSlideIndex = swiper.getSlideIndexByData(newIndex);\n }\n const cols = gridEnabled ? Math.ceil(swiper.slides.length / swiper.params.grid.rows) : swiper.slides.length;\n const {\n centeredSlides\n } = swiper.params;\n let slidesPerView = swiper.params.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = swiper.slidesPerViewDynamic();\n } else {\n slidesPerView = Math.ceil(parseFloat(swiper.params.slidesPerView, 10));\n if (centeredSlides && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n let needLoopFix = cols - targetSlideIndex < slidesPerView;\n if (centeredSlides) {\n needLoopFix = needLoopFix || targetSlideIndex < Math.ceil(slidesPerView / 2);\n }\n if (internal && centeredSlides && swiper.params.slidesPerView !== 'auto' && !gridEnabled) {\n needLoopFix = false;\n }\n if (needLoopFix) {\n const direction = centeredSlides ? targetSlideIndex < swiper.activeIndex ? 'prev' : 'next' : targetSlideIndex - swiper.activeIndex - 1 < swiper.params.slidesPerView ? 'next' : 'prev';\n swiper.loopFix({\n direction,\n slideTo: true,\n activeSlideIndex: direction === 'next' ? targetSlideIndex + 1 : targetSlideIndex - cols + 1,\n slideRealIndex: direction === 'next' ? swiper.realIndex : undefined\n });\n }\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n newIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column;\n } else {\n newIndex = swiper.getSlideIndexByData(newIndex);\n }\n }\n }\n requestAnimationFrame(() => {\n swiper.slideTo(newIndex, speed, runCallbacks, internal);\n });\n return swiper;\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideNext(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n enabled,\n params,\n animating\n } = swiper;\n if (!enabled || swiper.destroyed) return swiper;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n let perGroup = params.slidesPerGroup;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'next'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n if (swiper.activeIndex === swiper.slides.length - 1 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n });\n return true;\n }\n }\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slidePrev(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled,\n animating\n } = swiper;\n if (!enabled || swiper.destroyed) return swiper;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'prev'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n }\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\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 if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n let prevIndex = 0;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\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 if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n } else if (params.loop && swiper.activeIndex === 0 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n });\n return true;\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideReset(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideToClosest(speed, runCallbacks, internal, threshold) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (threshold === void 0) {\n threshold = 0.5;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\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 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 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 if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\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}\n\nfunction slideToClickedSlide() {\n const swiper = this;\n if (swiper.destroyed) return;\n const {\n params,\n slidesEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\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 = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}\n\nvar slide = {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};\n\nfunction loopCreate(slideRealIndex) {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n const initSlides = () => {\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n slides.forEach((el, index) => {\n el.setAttribute('data-swiper-slide-index', index);\n });\n };\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n const slidesPerGroup = params.slidesPerGroup * (gridEnabled ? params.grid.rows : 1);\n const shouldFillGroup = swiper.slides.length % slidesPerGroup !== 0;\n const shouldFillGrid = gridEnabled && swiper.slides.length % params.grid.rows !== 0;\n const addBlankSlides = amountOfSlides => {\n for (let i = 0; i < amountOfSlides; i += 1) {\n const slideEl = swiper.isElement ? createElement('swiper-slide', [params.slideBlankClass]) : createElement('div', [params.slideClass, params.slideBlankClass]);\n swiper.slidesEl.append(slideEl);\n }\n };\n if (shouldFillGroup) {\n if (params.loopAddBlankSlides) {\n const slidesToAdd = slidesPerGroup - swiper.slides.length % slidesPerGroup;\n addBlankSlides(slidesToAdd);\n swiper.recalcSlides();\n swiper.updateSlides();\n } else {\n showWarning('Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n }\n initSlides();\n } else if (shouldFillGrid) {\n if (params.loopAddBlankSlides) {\n const slidesToAdd = params.grid.rows - swiper.slides.length % params.grid.rows;\n addBlankSlides(slidesToAdd);\n swiper.recalcSlides();\n swiper.updateSlides();\n } else {\n showWarning('Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n }\n initSlides();\n } else {\n initSlides();\n }\n swiper.loopFix({\n slideRealIndex,\n direction: params.centeredSlides ? undefined : 'next'\n });\n}\n\nfunction loopFix(_temp) {\n let {\n slideRealIndex,\n slideTo = true,\n direction,\n setTranslate,\n activeSlideIndex,\n byController,\n byMousewheel\n } = _temp === void 0 ? {} : _temp;\n const swiper = this;\n if (!swiper.params.loop) return;\n swiper.emit('beforeLoopFix');\n const {\n slides,\n allowSlidePrev,\n allowSlideNext,\n slidesEl,\n params\n } = swiper;\n const {\n centeredSlides\n } = params;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n if (swiper.virtual && params.virtual.enabled) {\n if (slideTo) {\n if (!params.centeredSlides && swiper.snapIndex === 0) {\n swiper.slideTo(swiper.virtual.slides.length, 0, false, true);\n } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) {\n swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true);\n } else if (swiper.snapIndex === swiper.snapGrid.length - 1) {\n swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n return;\n }\n let slidesPerView = params.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = swiper.slidesPerViewDynamic();\n } else {\n slidesPerView = Math.ceil(parseFloat(params.slidesPerView, 10));\n if (centeredSlides && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n const slidesPerGroup = params.slidesPerGroupAuto ? slidesPerView : params.slidesPerGroup;\n let loopedSlides = slidesPerGroup;\n if (loopedSlides % slidesPerGroup !== 0) {\n loopedSlides += slidesPerGroup - loopedSlides % slidesPerGroup;\n }\n loopedSlides += params.loopAdditionalSlides;\n swiper.loopedSlides = loopedSlides;\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n if (slides.length < slidesPerView + loopedSlides) {\n showWarning('Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled and not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters');\n } else if (gridEnabled && params.grid.fill === 'row') {\n showWarning('Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`');\n }\n const prependSlidesIndexes = [];\n const appendSlidesIndexes = [];\n let activeIndex = swiper.activeIndex;\n if (typeof activeSlideIndex === 'undefined') {\n activeSlideIndex = swiper.getSlideIndex(slides.filter(el => el.classList.contains(params.slideActiveClass))[0]);\n } else {\n activeIndex = activeSlideIndex;\n }\n const isNext = direction === 'next' || !direction;\n const isPrev = direction === 'prev' || !direction;\n let slidesPrepended = 0;\n let slidesAppended = 0;\n const cols = gridEnabled ? Math.ceil(slides.length / params.grid.rows) : slides.length;\n const activeColIndex = gridEnabled ? slides[activeSlideIndex].column : activeSlideIndex;\n const activeColIndexWithShift = activeColIndex + (centeredSlides && typeof setTranslate === 'undefined' ? -slidesPerView / 2 + 0.5 : 0);\n // prepend last slides before start\n if (activeColIndexWithShift < loopedSlides) {\n slidesPrepended = Math.max(loopedSlides - activeColIndexWithShift, slidesPerGroup);\n for (let i = 0; i < loopedSlides - activeColIndexWithShift; i += 1) {\n const index = i - Math.floor(i / cols) * cols;\n if (gridEnabled) {\n const colIndexToPrepend = cols - index - 1;\n for (let i = slides.length - 1; i >= 0; i -= 1) {\n if (slides[i].column === colIndexToPrepend) prependSlidesIndexes.push(i);\n }\n // slides.forEach((slide, slideIndex) => {\n // if (slide.column === colIndexToPrepend) prependSlidesIndexes.push(slideIndex);\n // });\n } else {\n prependSlidesIndexes.push(cols - index - 1);\n }\n }\n } else if (activeColIndexWithShift + slidesPerView > cols - loopedSlides) {\n slidesAppended = Math.max(activeColIndexWithShift - (cols - loopedSlides * 2), slidesPerGroup);\n for (let i = 0; i < slidesAppended; i += 1) {\n const index = i - Math.floor(i / cols) * cols;\n if (gridEnabled) {\n slides.forEach((slide, slideIndex) => {\n if (slide.column === index) appendSlidesIndexes.push(slideIndex);\n });\n } else {\n appendSlidesIndexes.push(index);\n }\n }\n }\n swiper.__preventObserver__ = true;\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n if (isPrev) {\n prependSlidesIndexes.forEach(index => {\n slides[index].swiperLoopMoveDOM = true;\n slidesEl.prepend(slides[index]);\n slides[index].swiperLoopMoveDOM = false;\n });\n }\n if (isNext) {\n appendSlidesIndexes.forEach(index => {\n slides[index].swiperLoopMoveDOM = true;\n slidesEl.append(slides[index]);\n slides[index].swiperLoopMoveDOM = false;\n });\n }\n swiper.recalcSlides();\n if (params.slidesPerView === 'auto') {\n swiper.updateSlides();\n } else if (gridEnabled && (prependSlidesIndexes.length > 0 && isPrev || appendSlidesIndexes.length > 0 && isNext)) {\n swiper.slides.forEach((slide, slideIndex) => {\n swiper.grid.updateSlide(slideIndex, slide, swiper.slides);\n });\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n if (slideTo) {\n if (prependSlidesIndexes.length > 0 && isPrev) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex + Math.ceil(slidesPrepended), 0, false, true);\n if (setTranslate) {\n swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n }\n }\n } else {\n if (setTranslate) {\n const shift = gridEnabled ? prependSlidesIndexes.length / params.grid.rows : prependSlidesIndexes.length;\n swiper.slideTo(swiper.activeIndex + shift, 0, false, true);\n swiper.touchEventsData.currentTranslate = swiper.translate;\n }\n }\n } else if (appendSlidesIndexes.length > 0 && isNext) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex - slidesAppended, 0, false, true);\n if (setTranslate) {\n swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n }\n }\n } else {\n const shift = gridEnabled ? appendSlidesIndexes.length / params.grid.rows : appendSlidesIndexes.length;\n swiper.slideTo(swiper.activeIndex - shift, 0, false, true);\n }\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.controller && swiper.controller.control && !byController) {\n const loopParams = {\n slideRealIndex,\n direction,\n setTranslate,\n activeSlideIndex,\n byController: true\n };\n if (Array.isArray(swiper.controller.control)) {\n swiper.controller.control.forEach(c => {\n if (!c.destroyed && c.params.loop) c.loopFix({\n ...loopParams,\n slideTo: c.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n });\n } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) {\n swiper.controller.control.loopFix({\n ...loopParams,\n slideTo: swiper.controller.control.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n }\n }\n swiper.emit('loopFix');\n}\n\nfunction loopDestroy() {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n swiper.recalcSlides();\n const newSlidesOrder = [];\n swiper.slides.forEach(slideEl => {\n const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex;\n newSlidesOrder[index] = slideEl;\n });\n swiper.slides.forEach(slideEl => {\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n newSlidesOrder.forEach(slideEl => {\n slidesEl.append(slideEl);\n });\n swiper.recalcSlides();\n swiper.slideTo(swiper.realIndex, 0);\n}\n\nvar loop = {\n loopCreate,\n loopFix,\n loopDestroy\n};\n\nfunction setGrabCursor(moving) {\n const swiper = this;\n if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}\n\nfunction unsetGrabCursor() {\n const swiper = this;\n if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}\n\nvar grabCursor = {\n setGrabCursor,\n unsetGrabCursor\n};\n\n// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\nfunction closestElement(selector, base) {\n if (base === void 0) {\n base = this;\n }\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 if (!found && !el.getRootNode) {\n return null;\n }\n return found || __closestFrom(el.getRootNode().host);\n }\n return __closestFrom(base);\n}\nfunction preventEdgeSwipe(swiper, event, startX) {\n const window = getWindow();\n const {\n params\n } = swiper;\n const edgeSwipeDetection = params.edgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold;\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n return true;\n }\n return false;\n }\n return true;\n}\nfunction onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n const data = swiper.touchEventsData;\n if (e.type === 'pointerdown') {\n if (data.pointerId !== null && data.pointerId !== e.pointerId) {\n return;\n }\n data.pointerId = e.pointerId;\n } else if (e.type === 'touchstart' && e.targetTouches.length === 1) {\n data.touchId = e.targetTouches[0].identifier;\n }\n if (e.type === 'touchstart') {\n // don't proceed touch event\n preventEdgeSwipe(swiper, e, e.targetTouches[0].pageX);\n return;\n }\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n let targetEl = e.target;\n if (params.touchEventsTarget === 'wrapper') {\n if (!elementIsChildOf(targetEl, swiper.wrapperEl)) return;\n }\n if ('which' in e && e.which === 3) return;\n if ('button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n\n // change target el for shadow root component\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n // eslint-disable-next-line\n const eventPath = e.composedPath ? e.composedPath() : e.path;\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n targetEl = eventPath[0];\n }\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot);\n\n // use closestElement for shadow root element to get the actual closest for nested shadow root element\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!targetEl.closest(params.swipeHandler)) return;\n }\n touches.currentX = e.pageX;\n touches.currentY = e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n if (!preventEdgeSwipe(swiper, e, startX)) {\n return;\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 let preventDefault = true;\n if (targetEl.matches(data.focusableElements)) {\n preventDefault = false;\n if (targetEl.nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl && (e.pointerType === 'mouse' || e.pointerType !== 'mouse' && !targetEl.matches(data.focusableElements))) {\n document.activeElement.blur();\n }\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) {\n e.preventDefault();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n swiper.emit('touchStart', e);\n}\n\nfunction 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 if (!params.simulateTouch && event.pointerType === 'mouse') return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (e.type === 'pointermove') {\n if (data.touchId !== null) return; // return from pointer if we use touch\n const id = e.pointerId;\n if (id !== data.pointerId) return;\n }\n let targetTouch;\n if (e.type === 'touchmove') {\n targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0];\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n } else {\n targetTouch = e;\n }\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n const pageX = targetTouch.pageX;\n const pageY = targetTouch.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n if (!e.target.matches(data.focusableElements)) {\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 return;\n }\n if (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 if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== e.target && e.pointerType !== 'mouse') {\n document.activeElement.blur();\n }\n if (document.activeElement) {\n if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n touches.previousX = touches.currentX;\n touches.previousY = touches.currentY;\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 if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\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 if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling || e.type === 'touchmove' && data.preventTouchMoveFromPointerMove) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n let diff = swiper.isHorizontal() ? diffX : diffY;\n let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY;\n if (params.oneWayMovement) {\n diff = Math.abs(diff) * (rtl ? 1 : -1);\n touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1);\n }\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) {\n diff = -diff;\n touchesDiff = -touchesDiff;\n }\n const prevTouchesDirection = swiper.touchesDirection;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next';\n const isLoop = swiper.params.loop && !params.cssMode;\n const allowLoopFix = swiper.touchesDirection === 'next' && swiper.allowSlideNext || swiper.touchesDirection === 'prev' && swiper.allowSlidePrev;\n if (!data.isMoved) {\n if (isLoop && allowLoopFix) {\n swiper.loopFix({\n direction: swiper.swipeDirection\n });\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true,\n detail: {\n bySwiperTouchMove: true\n }\n });\n swiper.wrapperEl.dispatchEvent(evt);\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n let loopFixed;\n new Date().getTime();\n if (data.isMoved && data.allowThresholdMove && prevTouchesDirection !== swiper.touchesDirection && isLoop && allowLoopFix && Math.abs(diff) >= 1) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY,\n startTranslate: data.currentTranslate\n });\n data.loopSwapReset = true;\n data.startTranslate = data.currentTranslate;\n return;\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if (diff > 0) {\n if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.slidesSizesGrid[swiper.activeIndex + 1] - (params.slidesPerView !== 'auto' && swiper.slides.length - params.slidesPerView >= 2 ? swiper.slidesSizesGrid[swiper.activeIndex + 1] + swiper.params.spaceBetween : 0) - swiper.params.spaceBetween : swiper.minTranslate())) {\n swiper.loopFix({\n direction: 'prev',\n setTranslate: true,\n activeSlideIndex: 0\n });\n }\n if (data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n }\n }\n } else if (diff < 0) {\n if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] + swiper.params.spaceBetween + (params.slidesPerView !== 'auto' && swiper.slides.length - params.slidesPerView >= 2 ? swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] + swiper.params.spaceBetween : 0) : swiper.maxTranslate())) {\n swiper.loopFix({\n direction: 'next',\n setTranslate: true,\n activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10)))\n });\n }\n if (data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n }\n }\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n }\n\n // Threshold\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 if (!params.followFinger || params.cssMode) return;\n\n // Update active index in free mode\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n}\n\nfunction onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let targetTouch;\n const isTouchEvent = e.type === 'touchend' || e.type === 'touchcancel';\n if (!isTouchEvent) {\n if (data.touchId !== null) return; // return from pointer if we use touch\n if (e.pointerId !== data.pointerId) return;\n targetTouch = e;\n } else {\n targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0];\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n }\n if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(e.type)) {\n const proceed = ['pointercancel', 'contextmenu'].includes(e.type) && (swiper.browser.isSafari || swiper.browser.isWebView);\n if (!proceed) {\n return;\n }\n }\n data.pointerId = null;\n data.touchId = null;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target, pathTree);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 && !data.loopSwapReset || data.currentTranslate === data.startTranslate && !data.loopSwapReset) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n if (params.cssMode) {\n return;\n }\n if (params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n }\n\n // Find current slide\n const swipeToLast = currentPos >= -swiper.maxTranslate() && !swiper.params.loop;\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\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 if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (swipeToLast || currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (swipeToLast || currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n }\n // Find current slide size\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}\n\nfunction onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n const isVirtualLoop = isVirtual && params.loop;\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n if (swiper.params.loop && !isVirtual) {\n swiper.slideToLoop(swiper.realIndex, 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 clearTimeout(swiper.autoplay.resizeTimeout);\n swiper.autoplay.resizeTimeout = setTimeout(() => {\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.resume();\n }\n }, 500);\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}\n\nfunction onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}\n\nfunction 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 if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n }\n // eslint-disable-next-line\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 if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n swiper.emit('setTranslate', swiper.translate, false);\n}\n\nfunction onLoad(e) {\n const swiper = this;\n processLazyPreloader(swiper, e.target);\n if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) {\n return;\n }\n swiper.update();\n}\n\nfunction onDocumentTouchStart() {\n const swiper = this;\n if (swiper.documentTouchHandlerProceeded) return;\n swiper.documentTouchHandlerProceeded = true;\n if (swiper.params.touchReleaseOnEdges) {\n swiper.el.style.touchAction = 'auto';\n }\n}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n el,\n wrapperEl,\n device\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method;\n if (!el || typeof el === 'string') return;\n\n // Touch Events\n document[domMethod]('touchstart', swiper.onDocumentTouchStart, {\n passive: false,\n capture\n });\n el[domMethod]('touchstart', swiper.onTouchStart, {\n passive: false\n });\n el[domMethod]('pointerdown', swiper.onTouchStart, {\n passive: false\n });\n document[domMethod]('touchmove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('pointermove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('touchend', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerup', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointercancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('touchcancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerout', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerleave', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('contextmenu', swiper.onTouchEnd, {\n passive: true\n });\n\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n }\n\n // Resize handler\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 // Images loader\n el[domMethod]('load', swiper.onLoad, {\n capture: true\n });\n};\nfunction attachEvents() {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n swiper.onDocumentTouchStart = onDocumentTouchStart.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n swiper.onClick = onClick.bind(swiper);\n swiper.onLoad = onLoad.bind(swiper);\n events(swiper, 'on');\n}\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\nvar events$1 = {\n attachEvents,\n detachEvents\n};\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\nfunction setBreakpoint() {\n const swiper = this;\n const {\n realIndex,\n initialized,\n params,\n el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;\n\n // Get breakpoint for window width and update parameters\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 wasGrabCursor = swiper.params.grabCursor;\n const isGrabCursor = breakpointParams.grabCursor;\n const wasEnabled = params.enabled;\n if (wasMultiRow && !isMultiRow) {\n el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n el.classList.add(`${params.containerModifierClass}grid`);\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n el.classList.add(`${params.containerModifierClass}grid-column`);\n }\n swiper.emitContainerClasses();\n }\n if (wasGrabCursor && !isGrabCursor) {\n swiper.unsetGrabCursor();\n } else if (!wasGrabCursor && isGrabCursor) {\n swiper.setGrabCursor();\n }\n\n // Toggle navigation, pagination, scrollbar\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n if (typeof breakpointParams[prop] === 'undefined') return;\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n const wasLoop = params.loop;\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n const hasLoop = swiper.params.loop;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n if (initialized) {\n if (needsReLoop) {\n swiper.loopDestroy();\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (!wasLoop && hasLoop) {\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (wasLoop && !hasLoop) {\n swiper.loopDestroy();\n }\n }\n swiper.emit('breakpoint', breakpointParams);\n}\n\nfunction getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\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 return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\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 return breakpoint || 'max';\n}\n\nvar breakpoints = {\n setBreakpoint,\n getBreakpoint\n};\n\nfunction 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}\nfunction addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n el,\n device\n } = swiper;\n // prettier-ignore\n const suffixes = prepareClasses(['initialized', params.direction, {\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 }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n el.classList.add(...classNames);\n swiper.emitContainerClasses();\n}\n\nfunction removeClasses() {\n const swiper = this;\n const {\n el,\n classNames\n } = swiper;\n if (!el || typeof el === 'string') return;\n el.classList.remove(...classNames);\n swiper.emitContainerClasses();\n}\n\nvar classes = {\n addClasses,\n removeClasses\n};\n\nfunction checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\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 if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\nvar checkOverflow$1 = {\n checkOverflow\n};\n\nvar defaults = {\n init: true,\n direction: 'horizontal',\n oneWayMovement: false,\n swiperElementNodeName: 'SWIPER-CONTAINER',\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 eventsPrefix: 'swiper',\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\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: 5,\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 // loop\n loop: false,\n loopAddBlankSlides: true,\n loopAdditionalSlides: 0,\n loopPreventsSliding: 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 maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-blank',\n slideActiveClass: 'swiper-slide-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideFullyVisibleClass: 'swiper-slide-fully-visible',\n slideNextClass: 'swiper-slide-next',\n slidePrevClass: 'swiper-slide-prev',\n wrapperClass: 'swiper-wrapper',\n lazyPreloaderClass: 'swiper-lazy-preloader',\n lazyPreloadPrevNext: 0,\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};\n\nfunction moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj) {\n if (obj === void 0) {\n obj = {};\n }\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n if (moduleParamName === 'navigation' && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].prevEl && !params[moduleParamName].nextEl) {\n params[moduleParamName].auto = true;\n }\n if (['pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].el) {\n params[moduleParamName].auto = true;\n }\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}\n\n/* eslint no-param-reassign: \"off\" */\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events: events$1,\n breakpoints,\n checkOverflow: checkOverflow$1,\n classes\n};\nconst extendedDefaults = {};\nclass Swiper {\n constructor() {\n let el;\n let params;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\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 if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n const document = getDocument();\n if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) {\n const swipers = [];\n document.querySelectorAll(params.el).forEach(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n // eslint-disable-next-line no-constructor-return\n return swipers;\n }\n\n // Swiper Instance\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 if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n params,\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 });\n\n // Extend defaults with modules params\n const swiperParams = extend({}, defaults, allModulesParams);\n\n // Extend defaults with passed params\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params);\n\n // add event listeners\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 if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n }\n\n // Extend Swiper\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 // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\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 cssOverflowAdjustment() {\n // Returns 0 unless `translate` is > 2**23\n // Should be subtracted from css values to prevent overflow\n return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;\n },\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\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: 0,\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n startMoving: undefined,\n pointerId: null,\n touchId: null\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');\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n // eslint-disable-next-line no-constructor-return\n return swiper;\n }\n getDirectionLabel(property) {\n if (this.isHorizontal()) {\n return property;\n }\n // prettier-ignore\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 getSlideIndex(slideEl) {\n const {\n slidesEl,\n params\n } = this;\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n const firstSlideIndex = elementIndex(slides[0]);\n return elementIndex(slideEl) - firstSlideIndex;\n }\n getSlideIndexByData(index) {\n return this.getSlideIndex(this.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index)[0]);\n }\n recalcSlides() {\n const swiper = this;\n const {\n slidesEl,\n params\n } = swiper;\n swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n }\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n swiper.emit('enable');\n }\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n swiper.emit('disable');\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 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 getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.forEach(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 slidesPerViewDynamic(view, exact) {\n if (view === void 0) {\n view = 'current';\n }\n if (exact === void 0) {\n exact = false;\n }\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 if (typeof params.slidesPerView === 'number') return params.slidesPerView;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex] ? Math.ceil(slides[activeIndex].swiperSlideSize) : 0;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += Math.ceil(slides[i].swiperSlideSize);\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\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 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 if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n return spv;\n }\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n }\n });\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\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 let translated;\n if (params.freeMode && params.freeMode.enabled && !params.cssMode) {\n setTranslate();\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) {\n const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides;\n translated = swiper.slideTo(slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n }\n changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`);\n swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.forEach(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 changeLanguageDirection(direction) {\n const swiper = this;\n if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n swiper.rtl = direction === 'rtl';\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n if (swiper.rtl) {\n swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'rtl';\n } else {\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'ltr';\n }\n swiper.update();\n }\n mount(element) {\n const swiper = this;\n if (swiper.mounted) return true;\n\n // Find el\n let el = element || swiper.params.el;\n if (typeof el === 'string') {\n el = document.querySelector(el);\n }\n if (!el) {\n return false;\n }\n el.swiper = swiper;\n if (el.parentNode && el.parentNode.host && el.parentNode.host.nodeName === swiper.params.swiperElementNodeName.toUpperCase()) {\n swiper.isElement = true;\n }\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = el.shadowRoot.querySelector(getWrapperSelector());\n // Children needs to return slot items\n return res;\n }\n return elementChildren(el, getWrapperSelector())[0];\n };\n // Find Wrapper\n let wrapperEl = getWrapper();\n if (!wrapperEl && swiper.params.createElements) {\n wrapperEl = createElement('div', swiper.params.wrapperClass);\n el.append(wrapperEl);\n elementChildren(el, `.${swiper.params.slideClass}`).forEach(slideEl => {\n wrapperEl.append(slideEl);\n });\n }\n Object.assign(swiper, {\n el,\n wrapperEl,\n slidesEl: swiper.isElement && !el.parentNode.host.slideSlots ? el.parentNode.host : wrapperEl,\n hostEl: swiper.isElement ? el.parentNode.host : el,\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'),\n wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box'\n });\n return true;\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');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n }\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Attach events\n swiper.attachEvents();\n const lazyElements = [...swiper.el.querySelectorAll('[loading=\"lazy\"]')];\n if (swiper.isElement) {\n lazyElements.push(...swiper.hostEl.querySelectorAll('[loading=\"lazy\"]'));\n }\n lazyElements.forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n } else {\n imageEl.addEventListener('load', e => {\n processLazyPreloader(swiper, e.target);\n });\n }\n });\n preload(swiper);\n\n // Init Flag\n swiper.initialized = true;\n preload(swiper);\n\n // Emit\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n const swiper = this;\n const {\n params,\n el,\n wrapperEl,\n slides\n } = swiper;\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n if (el && typeof el !== 'string') {\n el.removeAttribute('style');\n }\n if (wrapperEl) {\n wrapperEl.removeAttribute('style');\n }\n if (slides && slides.length) {\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n slideEl.removeAttribute('style');\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n }\n }\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n if (deleteInstance !== false) {\n if (swiper.el && typeof swiper.el !== 'string') {\n swiper.el.swiper = null;\n }\n deleteProps(swiper);\n }\n swiper.destroyed = true;\n return null;\n }\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n static get extendedDefaults() {\n return extendedDefaults;\n }\n static get defaults() {\n return defaults;\n }\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n Swiper.installModule(module);\n return Swiper;\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]);\n\nexport { Swiper as S, defaults as d };\n","/* underscore in name -> watch for changes */\nconst paramsList = ['eventsPrefix', 'injectStyles', 'injectStylesUrls', 'modules', 'init', '_direction', 'oneWayMovement', 'swiperElementNodeName', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', 'focusableElements', '_enabled', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', 'breakpointsBase', '_spaceBetween', '_slidesPerView', 'maxBackfaceHiddenSlides', '_grid', '_slidesPerGroup', '_slidesPerGroupSkip', '_slidesPerGroupAuto', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_loop', 'loopAdditionalSlides', 'loopAddBlankSlides', 'loopPreventsSliding', '_rewind', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideActiveClass', 'slideVisibleClass', 'slideFullyVisibleClass', 'slideNextClass', 'slidePrevClass', 'slideBlankClass', 'wrapperClass', 'lazyPreloaderClass', 'lazyPreloadPrevNext', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren',\n// modules\n'a11y', '_autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'creativeEffect', 'cardsEffect', 'hashNavigation', 'history', 'keyboard', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom', 'control'];\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object' && !o.__swiper__;\n}\nfunction extend(target, src) {\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n Object.keys(src).filter(key => noExtend.indexOf(key) < 0).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n if (src[key].__swiper__) target[key] = src[key];else extend(target[key], src[key]);\n } else {\n target[key] = src[key];\n }\n });\n}\nfunction needsNavigation(params) {\n if (params === void 0) {\n params = {};\n }\n return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined';\n}\nfunction needsPagination(params) {\n if (params === void 0) {\n params = {};\n }\n return params.pagination && typeof params.pagination.el === 'undefined';\n}\nfunction needsScrollbar(params) {\n if (params === void 0) {\n params = {};\n }\n return params.scrollbar && typeof params.scrollbar.el === 'undefined';\n}\nfunction uniqueClasses(classNames) {\n if (classNames === void 0) {\n classNames = '';\n }\n const classes = classNames.split(' ').map(c => c.trim()).filter(c => !!c);\n const unique = [];\n classes.forEach(c => {\n if (unique.indexOf(c) < 0) unique.push(c);\n });\n return unique.join(' ');\n}\nfunction attrToProp(attrName) {\n if (attrName === void 0) {\n attrName = '';\n }\n return attrName.replace(/-[a-z]/g, l => l.toUpperCase().replace('-', ''));\n}\nfunction wrapperClass(className) {\n if (className === void 0) {\n className = '';\n }\n if (!className) return 'swiper-wrapper';\n if (!className.includes('swiper-wrapper')) return `swiper-wrapper ${className}`;\n return className;\n}\n\nfunction updateSwiper(_ref) {\n let {\n swiper,\n slides,\n passedParams,\n changedParams,\n nextEl,\n prevEl,\n scrollbarEl,\n paginationEl\n } = _ref;\n const updateParams = changedParams.filter(key => key !== 'children' && key !== 'direction' && key !== 'wrapperClass');\n const {\n params: currentParams,\n pagination,\n navigation,\n scrollbar,\n virtual,\n thumbs\n } = swiper;\n let needThumbsInit;\n let needControllerInit;\n let needPaginationInit;\n let needScrollbarInit;\n let needNavigationInit;\n let loopNeedDestroy;\n let loopNeedEnable;\n let loopNeedReloop;\n if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && !passedParams.thumbs.swiper.destroyed && currentParams.thumbs && (!currentParams.thumbs.swiper || currentParams.thumbs.swiper.destroyed)) {\n needThumbsInit = true;\n }\n if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) {\n needControllerInit = true;\n }\n if (changedParams.includes('pagination') && passedParams.pagination && (passedParams.pagination.el || paginationEl) && (currentParams.pagination || currentParams.pagination === false) && pagination && !pagination.el) {\n needPaginationInit = true;\n }\n if (changedParams.includes('scrollbar') && passedParams.scrollbar && (passedParams.scrollbar.el || scrollbarEl) && (currentParams.scrollbar || currentParams.scrollbar === false) && scrollbar && !scrollbar.el) {\n needScrollbarInit = true;\n }\n if (changedParams.includes('navigation') && passedParams.navigation && (passedParams.navigation.prevEl || prevEl) && (passedParams.navigation.nextEl || nextEl) && (currentParams.navigation || currentParams.navigation === false) && navigation && !navigation.prevEl && !navigation.nextEl) {\n needNavigationInit = true;\n }\n const destroyModule = mod => {\n if (!swiper[mod]) return;\n swiper[mod].destroy();\n if (mod === 'navigation') {\n if (swiper.isElement) {\n swiper[mod].prevEl.remove();\n swiper[mod].nextEl.remove();\n }\n currentParams[mod].prevEl = undefined;\n currentParams[mod].nextEl = undefined;\n swiper[mod].prevEl = undefined;\n swiper[mod].nextEl = undefined;\n } else {\n if (swiper.isElement) {\n swiper[mod].el.remove();\n }\n currentParams[mod].el = undefined;\n swiper[mod].el = undefined;\n }\n };\n if (changedParams.includes('loop') && swiper.isElement) {\n if (currentParams.loop && !passedParams.loop) {\n loopNeedDestroy = true;\n } else if (!currentParams.loop && passedParams.loop) {\n loopNeedEnable = true;\n } else {\n loopNeedReloop = true;\n }\n }\n updateParams.forEach(key => {\n if (isObject(currentParams[key]) && isObject(passedParams[key])) {\n Object.assign(currentParams[key], passedParams[key]);\n if ((key === 'navigation' || key === 'pagination' || key === 'scrollbar') && 'enabled' in passedParams[key] && !passedParams[key].enabled) {\n destroyModule(key);\n }\n } else {\n const newValue = passedParams[key];\n if ((newValue === true || newValue === false) && (key === 'navigation' || key === 'pagination' || key === 'scrollbar')) {\n if (newValue === false) {\n destroyModule(key);\n }\n } else {\n currentParams[key] = passedParams[key];\n }\n }\n });\n if (updateParams.includes('controller') && !needControllerInit && swiper.controller && swiper.controller.control && currentParams.controller && currentParams.controller.control) {\n swiper.controller.control = currentParams.controller.control;\n }\n if (changedParams.includes('children') && slides && virtual && currentParams.virtual.enabled) {\n virtual.slides = slides;\n virtual.update(true);\n } else if (changedParams.includes('virtual') && virtual && currentParams.virtual.enabled) {\n if (slides) virtual.slides = slides;\n virtual.update(true);\n }\n if (changedParams.includes('children') && slides && currentParams.loop) {\n loopNeedReloop = true;\n }\n if (needThumbsInit) {\n const initialized = thumbs.init();\n if (initialized) thumbs.update(true);\n }\n if (needControllerInit) {\n swiper.controller.control = currentParams.controller.control;\n }\n if (needPaginationInit) {\n if (swiper.isElement && (!paginationEl || typeof paginationEl === 'string')) {\n paginationEl = document.createElement('div');\n paginationEl.classList.add('swiper-pagination');\n paginationEl.part.add('pagination');\n swiper.el.appendChild(paginationEl);\n }\n if (paginationEl) currentParams.pagination.el = paginationEl;\n pagination.init();\n pagination.render();\n pagination.update();\n }\n if (needScrollbarInit) {\n if (swiper.isElement && (!scrollbarEl || typeof scrollbarEl === 'string')) {\n scrollbarEl = document.createElement('div');\n scrollbarEl.classList.add('swiper-scrollbar');\n scrollbarEl.part.add('scrollbar');\n swiper.el.appendChild(scrollbarEl);\n }\n if (scrollbarEl) currentParams.scrollbar.el = scrollbarEl;\n scrollbar.init();\n scrollbar.updateSize();\n scrollbar.setTranslate();\n }\n if (needNavigationInit) {\n if (swiper.isElement) {\n if (!nextEl || typeof nextEl === 'string') {\n nextEl = document.createElement('div');\n nextEl.classList.add('swiper-button-next');\n nextEl.innerHTML = swiper.hostEl.constructor.nextButtonSvg;\n nextEl.part.add('button-next');\n swiper.el.appendChild(nextEl);\n }\n if (!prevEl || typeof prevEl === 'string') {\n prevEl = document.createElement('div');\n prevEl.classList.add('swiper-button-prev');\n prevEl.innerHTML = swiper.hostEl.constructor.prevButtonSvg;\n prevEl.part.add('button-prev');\n swiper.el.appendChild(prevEl);\n }\n }\n if (nextEl) currentParams.navigation.nextEl = nextEl;\n if (prevEl) currentParams.navigation.prevEl = prevEl;\n navigation.init();\n navigation.update();\n }\n if (changedParams.includes('allowSlideNext')) {\n swiper.allowSlideNext = passedParams.allowSlideNext;\n }\n if (changedParams.includes('allowSlidePrev')) {\n swiper.allowSlidePrev = passedParams.allowSlidePrev;\n }\n if (changedParams.includes('direction')) {\n swiper.changeDirection(passedParams.direction, false);\n }\n if (loopNeedDestroy || loopNeedReloop) {\n swiper.loopDestroy();\n }\n if (loopNeedEnable || loopNeedReloop) {\n swiper.loopCreate();\n }\n swiper.update();\n}\n\nexport { needsPagination as a, needsScrollbar as b, attrToProp as c, uniqueClasses as d, extend as e, isObject as i, needsNavigation as n, paramsList as p, updateSwiper as u, wrapperClass as w };\n","/**\n * Swiper React 11.1.15\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2024 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: November 18, 2024\n */\n\nimport React, { useEffect, useLayoutEffect, useContext, createContext, forwardRef, useState, useRef } from 'react';\nimport { S as Swiper$1 } from './shared/swiper-core.mjs';\nimport { g as getParams, m as mountSwiper, a as getChangedParams, u as updateOnVirtualData } from './shared/update-on-virtual-data.mjs';\nimport { d as uniqueClasses, w as wrapperClass, n as needsNavigation, b as needsScrollbar, a as needsPagination, e as extend, u as updateSwiper } from './shared/update-swiper.mjs';\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\nfunction isChildSwiperSlide(child) {\n return child.type && child.type.displayName && child.type.displayName.includes('SwiperSlide');\n}\nfunction processChildren(c) {\n const slides = [];\n React.Children.toArray(c).forEach(child => {\n if (isChildSwiperSlide(child)) {\n slides.push(child);\n } else if (child.props && child.props.children) {\n processChildren(child.props.children).forEach(slide => slides.push(slide));\n }\n });\n return slides;\n}\nfunction getChildren(c) {\n const slides = [];\n const slots = {\n 'container-start': [],\n 'container-end': [],\n 'wrapper-start': [],\n 'wrapper-end': []\n };\n React.Children.toArray(c).forEach(child => {\n if (isChildSwiperSlide(child)) {\n slides.push(child);\n } else if (child.props && child.props.slot && slots[child.props.slot]) {\n slots[child.props.slot].push(child);\n } else if (child.props && child.props.children) {\n const foundSlides = processChildren(child.props.children);\n if (foundSlides.length > 0) {\n foundSlides.forEach(slide => slides.push(slide));\n } else {\n slots['container-end'].push(child);\n }\n } else {\n slots['container-end'].push(child);\n }\n });\n return {\n slides,\n slots\n };\n}\n\nfunction renderVirtual(swiper, slides, virtualData) {\n if (!virtualData) return null;\n const getSlideIndex = index => {\n let slideIndex = index;\n if (index < 0) {\n slideIndex = slides.length + index;\n } else if (slideIndex >= slides.length) {\n // eslint-disable-next-line\n slideIndex = slideIndex - slides.length;\n }\n return slideIndex;\n };\n const style = swiper.isHorizontal() ? {\n [swiper.rtlTranslate ? 'right' : 'left']: `${virtualData.offset}px`\n } : {\n top: `${virtualData.offset}px`\n };\n const {\n from,\n to\n } = virtualData;\n const loopFrom = swiper.params.loop ? -slides.length : 0;\n const loopTo = swiper.params.loop ? slides.length * 2 : slides.length;\n const slidesToRender = [];\n for (let i = loopFrom; i < loopTo; i += 1) {\n if (i >= from && i <= to) {\n slidesToRender.push(slides[getSlideIndex(i)]);\n }\n }\n return slidesToRender.map((child, index) => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper,\n style,\n key: child.props.virtualIndex || child.key || `slide-${index}`\n });\n });\n}\n\nfunction useIsomorphicLayoutEffect(callback, deps) {\n // eslint-disable-next-line\n if (typeof window === 'undefined') return useEffect(callback, deps);\n return useLayoutEffect(callback, deps);\n}\n\nconst SwiperSlideContext = /*#__PURE__*/createContext(null);\nconst useSwiperSlide = () => {\n return useContext(SwiperSlideContext);\n};\nconst SwiperContext = /*#__PURE__*/createContext(null);\nconst useSwiper = () => {\n return useContext(SwiperContext);\n};\n\nconst Swiper = /*#__PURE__*/forwardRef(function (_temp, externalElRef) {\n let {\n className,\n tag: Tag = 'div',\n wrapperTag: WrapperTag = 'div',\n children,\n onSwiper,\n ...rest\n } = _temp === void 0 ? {} : _temp;\n let eventsAssigned = false;\n const [containerClasses, setContainerClasses] = useState('swiper');\n const [virtualData, setVirtualData] = useState(null);\n const [breakpointChanged, setBreakpointChanged] = useState(false);\n const initializedRef = useRef(false);\n const swiperElRef = useRef(null);\n const swiperRef = useRef(null);\n const oldPassedParamsRef = useRef(null);\n const oldSlides = useRef(null);\n const nextElRef = useRef(null);\n const prevElRef = useRef(null);\n const paginationElRef = useRef(null);\n const scrollbarElRef = useRef(null);\n const {\n params: swiperParams,\n passedParams,\n rest: restProps,\n events\n } = getParams(rest);\n const {\n slides,\n slots\n } = getChildren(children);\n const onBeforeBreakpoint = () => {\n setBreakpointChanged(!breakpointChanged);\n };\n Object.assign(swiperParams.on, {\n _containerClasses(swiper, classes) {\n setContainerClasses(classes);\n }\n });\n const initSwiper = () => {\n // init swiper\n Object.assign(swiperParams.on, events);\n eventsAssigned = true;\n const passParams = {\n ...swiperParams\n };\n delete passParams.wrapperClass;\n swiperRef.current = new Swiper$1(passParams);\n if (swiperRef.current.virtual && swiperRef.current.params.virtual.enabled) {\n swiperRef.current.virtual.slides = slides;\n const extendWith = {\n cache: false,\n slides,\n renderExternal: setVirtualData,\n renderExternalUpdate: false\n };\n extend(swiperRef.current.params.virtual, extendWith);\n extend(swiperRef.current.originalParams.virtual, extendWith);\n }\n };\n if (!swiperElRef.current) {\n initSwiper();\n }\n\n // Listen for breakpoints change\n if (swiperRef.current) {\n swiperRef.current.on('_beforeBreakpoint', onBeforeBreakpoint);\n }\n const attachEvents = () => {\n if (eventsAssigned || !events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.on(eventName, events[eventName]);\n });\n };\n const detachEvents = () => {\n if (!events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.off(eventName, events[eventName]);\n });\n };\n useEffect(() => {\n return () => {\n if (swiperRef.current) swiperRef.current.off('_beforeBreakpoint', onBeforeBreakpoint);\n };\n });\n\n // set initialized flag\n useEffect(() => {\n if (!initializedRef.current && swiperRef.current) {\n swiperRef.current.emitSlidesClasses();\n initializedRef.current = true;\n }\n });\n\n // mount swiper\n useIsomorphicLayoutEffect(() => {\n if (externalElRef) {\n externalElRef.current = swiperElRef.current;\n }\n if (!swiperElRef.current) return;\n if (swiperRef.current.destroyed) {\n initSwiper();\n }\n mountSwiper({\n el: swiperElRef.current,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n paginationEl: paginationElRef.current,\n scrollbarEl: scrollbarElRef.current,\n swiper: swiperRef.current\n }, swiperParams);\n if (onSwiper && !swiperRef.current.destroyed) onSwiper(swiperRef.current);\n // eslint-disable-next-line\n return () => {\n if (swiperRef.current && !swiperRef.current.destroyed) {\n swiperRef.current.destroy(true, false);\n }\n };\n }, []);\n\n // watch for params change\n useIsomorphicLayoutEffect(() => {\n attachEvents();\n const changedParams = getChangedParams(passedParams, oldPassedParamsRef.current, slides, oldSlides.current, c => c.key);\n oldPassedParamsRef.current = passedParams;\n oldSlides.current = slides;\n if (changedParams.length && swiperRef.current && !swiperRef.current.destroyed) {\n updateSwiper({\n swiper: swiperRef.current,\n slides,\n passedParams,\n changedParams,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n scrollbarEl: scrollbarElRef.current,\n paginationEl: paginationElRef.current\n });\n }\n return () => {\n detachEvents();\n };\n });\n\n // update on virtual update\n useIsomorphicLayoutEffect(() => {\n updateOnVirtualData(swiperRef.current);\n }, [virtualData]);\n\n // bypass swiper instance to slides\n function renderSlides() {\n if (swiperParams.virtual) {\n return renderVirtual(swiperRef.current, slides, virtualData);\n }\n return slides.map((child, index) => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper: swiperRef.current,\n swiperSlideIndex: index\n });\n });\n }\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: swiperElRef,\n className: uniqueClasses(`${containerClasses}${className ? ` ${className}` : ''}`)\n }, restProps), /*#__PURE__*/React.createElement(SwiperContext.Provider, {\n value: swiperRef.current\n }, slots['container-start'], /*#__PURE__*/React.createElement(WrapperTag, {\n className: wrapperClass(swiperParams.wrapperClass)\n }, slots['wrapper-start'], renderSlides(), slots['wrapper-end']), needsNavigation(swiperParams) && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n ref: prevElRef,\n className: \"swiper-button-prev\"\n }), /*#__PURE__*/React.createElement(\"div\", {\n ref: nextElRef,\n className: \"swiper-button-next\"\n })), needsScrollbar(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: scrollbarElRef,\n className: \"swiper-scrollbar\"\n }), needsPagination(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: paginationElRef,\n className: \"swiper-pagination\"\n }), slots['container-end']));\n});\nSwiper.displayName = 'Swiper';\n\nconst SwiperSlide = /*#__PURE__*/forwardRef(function (_temp, externalRef) {\n let {\n tag: Tag = 'div',\n children,\n className = '',\n swiper,\n zoom,\n lazy,\n virtualIndex,\n swiperSlideIndex,\n ...rest\n } = _temp === void 0 ? {} : _temp;\n const slideElRef = useRef(null);\n const [slideClasses, setSlideClasses] = useState('swiper-slide');\n const [lazyLoaded, setLazyLoaded] = useState(false);\n function updateClasses(_s, el, classNames) {\n if (el === slideElRef.current) {\n setSlideClasses(classNames);\n }\n }\n useIsomorphicLayoutEffect(() => {\n if (typeof swiperSlideIndex !== 'undefined') {\n slideElRef.current.swiperSlideIndex = swiperSlideIndex;\n }\n if (externalRef) {\n externalRef.current = slideElRef.current;\n }\n if (!slideElRef.current || !swiper) {\n return;\n }\n if (swiper.destroyed) {\n if (slideClasses !== 'swiper-slide') {\n setSlideClasses('swiper-slide');\n }\n return;\n }\n swiper.on('_slideClass', updateClasses);\n // eslint-disable-next-line\n return () => {\n if (!swiper) return;\n swiper.off('_slideClass', updateClasses);\n };\n });\n useIsomorphicLayoutEffect(() => {\n if (swiper && slideElRef.current && !swiper.destroyed) {\n setSlideClasses(swiper.getSlideClasses(slideElRef.current));\n }\n }, [swiper]);\n const slideData = {\n isActive: slideClasses.indexOf('swiper-slide-active') >= 0,\n isVisible: slideClasses.indexOf('swiper-slide-visible') >= 0,\n isPrev: slideClasses.indexOf('swiper-slide-prev') >= 0,\n isNext: slideClasses.indexOf('swiper-slide-next') >= 0\n };\n const renderChildren = () => {\n return typeof children === 'function' ? children(slideData) : children;\n };\n const onLoad = () => {\n setLazyLoaded(true);\n };\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: slideElRef,\n className: uniqueClasses(`${slideClasses}${className ? ` ${className}` : ''}`),\n \"data-swiper-slide-index\": virtualIndex,\n onLoad: onLoad\n }, rest), zoom && /*#__PURE__*/React.createElement(SwiperSlideContext.Provider, {\n value: slideData\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-zoom-container\",\n \"data-swiper-zoom\": typeof zoom === 'number' ? zoom : undefined\n }, renderChildren(), lazy && !lazyLoaded && /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-lazy-preloader\"\n }))), !zoom && /*#__PURE__*/React.createElement(SwiperSlideContext.Provider, {\n value: slideData\n }, renderChildren(), lazy && !lazyLoaded && /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-lazy-preloader\"\n })));\n});\nSwiperSlide.displayName = 'SwiperSlide';\n\nexport { Swiper, SwiperSlide, useSwiper, useSwiperSlide };\n","import { e as extend, p as paramsList, i as isObject, n as needsNavigation, a as needsPagination, b as needsScrollbar } from './update-swiper.mjs';\nimport { d as defaults } from './swiper-core.mjs';\n\nfunction getParams(obj, splitEvents) {\n if (obj === void 0) {\n obj = {};\n }\n if (splitEvents === void 0) {\n splitEvents = true;\n }\n const params = {\n on: {}\n };\n const events = {};\n const passedParams = {};\n extend(params, defaults);\n params._emitClasses = true;\n params.init = false;\n const rest = {};\n const allowedParams = paramsList.map(key => key.replace(/_/, ''));\n const plainObj = Object.assign({}, obj);\n Object.keys(plainObj).forEach(key => {\n if (typeof obj[key] === 'undefined') return;\n if (allowedParams.indexOf(key) >= 0) {\n if (isObject(obj[key])) {\n params[key] = {};\n passedParams[key] = {};\n extend(params[key], obj[key]);\n extend(passedParams[key], obj[key]);\n } else {\n params[key] = obj[key];\n passedParams[key] = obj[key];\n }\n } else if (key.search(/on[A-Z]/) === 0 && typeof obj[key] === 'function') {\n if (splitEvents) {\n events[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n } else {\n params.on[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n }\n } else {\n rest[key] = obj[key];\n }\n });\n ['navigation', 'pagination', 'scrollbar'].forEach(key => {\n if (params[key] === true) params[key] = {};\n if (params[key] === false) delete params[key];\n });\n return {\n params,\n passedParams,\n rest,\n events\n };\n}\n\nfunction mountSwiper(_ref, swiperParams) {\n let {\n el,\n nextEl,\n prevEl,\n paginationEl,\n scrollbarEl,\n swiper\n } = _ref;\n if (needsNavigation(swiperParams) && nextEl && prevEl) {\n swiper.params.navigation.nextEl = nextEl;\n swiper.originalParams.navigation.nextEl = nextEl;\n swiper.params.navigation.prevEl = prevEl;\n swiper.originalParams.navigation.prevEl = prevEl;\n }\n if (needsPagination(swiperParams) && paginationEl) {\n swiper.params.pagination.el = paginationEl;\n swiper.originalParams.pagination.el = paginationEl;\n }\n if (needsScrollbar(swiperParams) && scrollbarEl) {\n swiper.params.scrollbar.el = scrollbarEl;\n swiper.originalParams.scrollbar.el = scrollbarEl;\n }\n swiper.init(el);\n}\n\nfunction getChangedParams(swiperParams, oldParams, children, oldChildren, getKey) {\n const keys = [];\n if (!oldParams) return keys;\n const addKey = key => {\n if (keys.indexOf(key) < 0) keys.push(key);\n };\n if (children && oldChildren) {\n const oldChildrenKeys = oldChildren.map(getKey);\n const childrenKeys = children.map(getKey);\n if (oldChildrenKeys.join('') !== childrenKeys.join('')) addKey('children');\n if (oldChildren.length !== children.length) addKey('children');\n }\n const watchParams = paramsList.filter(key => key[0] === '_').map(key => key.replace(/_/, ''));\n watchParams.forEach(key => {\n if (key in swiperParams && key in oldParams) {\n if (isObject(swiperParams[key]) && isObject(oldParams[key])) {\n const newKeys = Object.keys(swiperParams[key]);\n const oldKeys = Object.keys(oldParams[key]);\n if (newKeys.length !== oldKeys.length) {\n addKey(key);\n } else {\n newKeys.forEach(newKey => {\n if (swiperParams[key][newKey] !== oldParams[key][newKey]) {\n addKey(key);\n }\n });\n oldKeys.forEach(oldKey => {\n if (swiperParams[key][oldKey] !== oldParams[key][oldKey]) addKey(key);\n });\n }\n } else if (swiperParams[key] !== oldParams[key]) {\n addKey(key);\n }\n }\n });\n return keys;\n}\n\nconst updateOnVirtualData = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params.virtual || swiper.params.virtual && !swiper.params.virtual.enabled) return;\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n if (swiper.parallax && swiper.params.parallax && swiper.params.parallax.enabled) {\n swiper.parallax.setTranslate();\n }\n};\n\nexport { getChangedParams as a, getParams as g, mountSwiper as m, updateOnVirtualData as u };\n","import { e as elementChildren, c as createElement } from './utils.mjs';\n\nfunction createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = elementChildren(swiper.el, `.${checkProps[key]}`)[0];\n if (!element) {\n element = createElement('div', checkProps[key]);\n element.className = checkProps[key];\n swiper.el.append(element);\n }\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n return params;\n}\n\nexport { createElementIfNotDefined as c };\n","import { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { m as makeElementsArray } from '../shared/utils.mjs';\n\nfunction Navigation(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\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 navigationDisabledClass: 'swiper-navigation-disabled'\n }\n });\n swiper.navigation = {\n nextEl: null,\n prevEl: null\n };\n function getEl(el) {\n let res;\n if (el && typeof el === 'string' && swiper.isElement) {\n res = swiper.el.querySelector(el) || swiper.hostEl.querySelector(el);\n if (res) return res;\n }\n if (el) {\n if (typeof el === 'string') res = [...document.querySelectorAll(el)];\n if (swiper.params.uniqueNavElements && typeof el === 'string' && res && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) {\n res = swiper.el.querySelector(el);\n } else if (res && res.length === 1) {\n res = res[0];\n }\n }\n if (el && !res) return el;\n // if (Array.isArray(res) && res.length === 1) res = res[0];\n return res;\n }\n function toggleEl(el, disabled) {\n const params = swiper.params.navigation;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (subEl) {\n subEl.classList[disabled ? 'add' : 'remove'](...params.disabledClass.split(' '));\n if (subEl.tagName === 'BUTTON') subEl.disabled = disabled;\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n }\n });\n }\n function update() {\n // Update Navigation Buttons\n const {\n nextEl,\n prevEl\n } = swiper.navigation;\n if (swiper.params.loop) {\n toggleEl(prevEl, false);\n toggleEl(nextEl, false);\n return;\n }\n toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n emit('navigationPrev');\n }\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n emit('navigationNext');\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 let nextEl = getEl(params.nextEl);\n let prevEl = getEl(params.prevEl);\n Object.assign(swiper.navigation, {\n nextEl,\n prevEl\n });\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const initButton = (el, dir) => {\n if (el) {\n el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n }\n if (!swiper.enabled && el) {\n el.classList.add(...params.lockClass.split(' '));\n }\n };\n nextEl.forEach(el => initButton(el, 'next'));\n prevEl.forEach(el => initButton(el, 'prev'));\n }\n function destroy() {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const destroyButton = (el, dir) => {\n el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n el.classList.remove(...swiper.params.navigation.disabledClass.split(' '));\n };\n nextEl.forEach(el => destroyButton(el, 'next'));\n prevEl.forEach(el => destroyButton(el, 'prev'));\n }\n on('init', () => {\n if (swiper.params.navigation.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n update();\n }\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (swiper.enabled) {\n update();\n return;\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.add(swiper.params.navigation.lockClass));\n });\n on('click', (_s, e) => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const targetEl = e.target;\n let targetIsButton = prevEl.includes(targetEl) || nextEl.includes(targetEl);\n if (swiper.isElement && !targetIsButton) {\n const path = e.path || e.composedPath && e.composedPath();\n if (path) {\n targetIsButton = path.find(pathEl => nextEl.includes(pathEl) || prevEl.includes(pathEl));\n }\n }\n if (swiper.params.navigation.hideOnClick && !targetIsButton) {\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 if (nextEl.length) {\n isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n } else if (prevEl.length) {\n isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n }\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.toggle(swiper.params.navigation.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(...swiper.params.navigation.navigationDisabledClass.split(' '));\n init();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(...swiper.params.navigation.navigationDisabledClass.split(' '));\n destroy();\n };\n Object.assign(swiper.navigation, {\n enable,\n disable,\n update,\n init,\n destroy\n });\n}\n\nexport { Navigation as default };\n","function classesToSelector(classes) {\n if (classes === void 0) {\n classes = '';\n }\n return `.${classes.trim().replace(/([\\.:!+\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}\n\nexport { classesToSelector as c };\n","import { c as classesToSelector } from '../shared/classes-to-selector.mjs';\nimport { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { m as makeElementsArray, f as elementOuterSize, h as elementIndex, a as elementParents } from '../shared/utils.mjs';\n\nfunction Pagination(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\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 paginationDisabledClass: `${pfx}-disabled`\n }\n });\n swiper.pagination = {\n el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0;\n }\n function setSideBullets(bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n if (!bulletEl) return;\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}`);\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`);\n }\n }\n }\n function getMoveDirection(prevIndex, nextIndex, length) {\n prevIndex = prevIndex % length;\n nextIndex = nextIndex % length;\n if (nextIndex === prevIndex + 1) {\n return 'next';\n } else if (nextIndex === prevIndex - 1) {\n return 'previous';\n }\n return;\n }\n function onBulletClick(e) {\n const bulletEl = e.target.closest(classesToSelector(swiper.params.pagination.bulletClass));\n if (!bulletEl) {\n return;\n }\n e.preventDefault();\n const index = elementIndex(bulletEl) * swiper.params.slidesPerGroup;\n if (swiper.params.loop) {\n if (swiper.realIndex === index) return;\n const moveDirection = getMoveDirection(swiper.realIndex, index, swiper.slides.length);\n if (moveDirection === 'next') {\n swiper.slideNext();\n } else if (moveDirection === 'previous') {\n swiper.slidePrev();\n } else {\n swiper.slideToLoop(index);\n }\n } else {\n swiper.slideTo(index);\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 let el = swiper.pagination.el;\n el = makeElementsArray(el);\n // Current/Total\n let current;\n let previousIndex;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n previousIndex = swiper.previousRealIndex || 0;\n current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n previousIndex = swiper.previousSnapIndex;\n } else {\n previousIndex = swiper.previousIndex || 0;\n current = swiper.activeIndex || 0;\n }\n // Types\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 if (params.dynamicBullets) {\n bulletSize = elementOuterSize(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true);\n el.forEach(subEl => {\n subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`;\n });\n if (params.dynamicMainBullets > 1 && previousIndex !== undefined) {\n dynamicBulletIndex += current - (previousIndex || 0);\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\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 bullets.forEach(bulletEl => {\n const classesToRemove = [...['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`)].map(s => typeof s === 'string' && s.includes(' ') ? s.split(' ') : s).flat();\n bulletEl.classList.remove(...classesToRemove);\n });\n if (el.length > 1) {\n bullets.forEach(bullet => {\n const bulletIndex = elementIndex(bullet);\n if (bulletIndex === current) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n } else if (swiper.isElement) {\n bullet.setAttribute('part', 'bullet');\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n bullet.classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n if (bulletIndex === firstIndex) {\n setSideBullets(bullet, 'prev');\n }\n if (bulletIndex === lastIndex) {\n setSideBullets(bullet, 'next');\n }\n }\n });\n } else {\n const bullet = bullets[current];\n if (bullet) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n }\n if (swiper.isElement) {\n bullets.forEach((bulletEl, bulletIndex) => {\n bulletEl.setAttribute('part', bulletIndex === current ? 'bullet-active' : 'bullet');\n });\n }\n if (params.dynamicBullets) {\n const firstDisplayedBullet = bullets[firstIndex];\n const lastDisplayedBullet = bullets[lastIndex];\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n if (bullets[i]) {\n bullets[i].classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n }\n setSideBullets(firstDisplayedBullet, 'prev');\n setSideBullets(lastDisplayedBullet, 'next');\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.forEach(bullet => {\n bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`;\n });\n }\n }\n el.forEach((subEl, subElIndex) => {\n if (params.type === 'fraction') {\n subEl.querySelectorAll(classesToSelector(params.currentClass)).forEach(fractionEl => {\n fractionEl.textContent = params.formatFractionCurrent(current + 1);\n });\n subEl.querySelectorAll(classesToSelector(params.totalClass)).forEach(totalEl => {\n totalEl.textContent = params.formatFractionTotal(total);\n });\n }\n if (params.type === 'progressbar') {\n let progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n subEl.querySelectorAll(classesToSelector(params.progressbarFillClass)).forEach(progressEl => {\n progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`;\n progressEl.style.transitionDuration = `${swiper.params.speed}ms`;\n });\n }\n if (params.type === 'custom' && params.renderCustom) {\n subEl.innerHTML = params.renderCustom(swiper, current + 1, total);\n if (subElIndex === 0) emit('paginationRender', subEl);\n } else {\n if (subElIndex === 0) emit('paginationRender', subEl);\n emit('paginationUpdate', subEl);\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](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.grid && swiper.params.grid.rows > 1 ? swiper.slides.length / Math.ceil(swiper.params.grid.rows) : swiper.slides.length;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n let paginationHTML = '';\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\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 // prettier-ignore\n paginationHTML += `<${params.bulletElement} ${swiper.isElement ? 'part=\"bullet\"' : ''} class=\"${params.bulletClass}\"></${params.bulletElement}>`;\n }\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 = `<span class=\"${params.currentClass}\"></span>` + ' / ' + `<span class=\"${params.totalClass}\"></span>`;\n }\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = `<span class=\"${params.progressbarFillClass}\"></span>`;\n }\n }\n swiper.pagination.bullets = [];\n el.forEach(subEl => {\n if (params.type !== 'custom') {\n subEl.innerHTML = paginationHTML || '';\n }\n if (params.type === 'bullets') {\n swiper.pagination.bullets.push(...subEl.querySelectorAll(classesToSelector(params.bulletClass)));\n }\n });\n if (params.type !== 'custom') {\n emit('paginationRender', el[0]);\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;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = [...document.querySelectorAll(params.el)];\n }\n if (!el) {\n el = params.el;\n }\n if (!el || el.length === 0) return;\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) {\n el = [...swiper.el.querySelectorAll(params.el)];\n // check if it belongs to another nested Swiper\n if (el.length > 1) {\n el = el.filter(subEl => {\n if (elementParents(subEl, '.swiper')[0] !== swiper.el) return false;\n return true;\n })[0];\n }\n }\n if (Array.isArray(el) && el.length === 1) el = el[0];\n Object.assign(swiper.pagination, {\n el\n });\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (params.type === 'bullets' && params.clickable) {\n subEl.classList.add(...(params.clickableClass || '').split(' '));\n }\n subEl.classList.add(params.modifierClass + params.type);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.type === 'bullets' && params.dynamicBullets) {\n subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n subEl.classList.add(params.progressbarOppositeClass);\n }\n if (params.clickable) {\n subEl.addEventListener('click', onBulletClick);\n }\n if (!swiper.enabled) {\n subEl.classList.add(params.lockClass);\n }\n });\n }\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.hiddenClass);\n subEl.classList.remove(params.modifierClass + params.type);\n subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.clickable) {\n subEl.classList.remove(...(params.clickableClass || '').split(' '));\n subEl.removeEventListener('click', onBulletClick);\n }\n });\n }\n if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(...params.bulletActiveClass.split(' ')));\n }\n on('changeDirection', () => {\n if (!swiper.pagination || !swiper.pagination.el) return;\n const params = swiper.params.pagination;\n let {\n el\n } = swiper.pagination;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.horizontalClass, params.verticalClass);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n });\n });\n on('init', () => {\n if (swiper.params.pagination.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n render();\n update();\n }\n });\n on('activeIndexChange', () => {\n if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n update();\n });\n on('snapGridLengthChange', () => {\n render();\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList[swiper.enabled ? 'remove' : 'add'](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 el = makeElementsArray(swiper.pagination.el);\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(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[0].classList.contains(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n el.forEach(subEl => subEl.classList.toggle(swiper.params.pagination.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.remove(swiper.params.pagination.paginationDisabledClass));\n }\n init();\n render();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.add(swiper.params.pagination.paginationDisabledClass));\n }\n destroy();\n };\n Object.assign(swiper.pagination, {\n enable,\n disable,\n render,\n update,\n init,\n destroy\n });\n}\n\nexport { Pagination as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\n\n/* eslint no-underscore-dangle: \"off\" */\n/* eslint no-use-before-define: \"off\" */\nfunction Autoplay(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit,\n params\n } = _ref;\n swiper.autoplay = {\n running: false,\n paused: false,\n timeLeft: 0\n };\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: false,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n let timeout;\n let raf;\n let autoplayDelayTotal = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayDelayCurrent = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayTimeLeft;\n let autoplayStartTime = new Date().getTime();\n let wasPaused;\n let isTouched;\n let pausedByTouch;\n let touchStartTimeout;\n let slideChanged;\n let pausedByInteraction;\n let pausedByPointerEnter;\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.wrapperEl) return;\n if (e.target !== swiper.wrapperEl) return;\n swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd);\n if (pausedByPointerEnter || e.detail && e.detail.bySwiperTouchMove) {\n return;\n }\n resume();\n }\n const calcTimeLeft = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.autoplay.paused) {\n wasPaused = true;\n } else if (wasPaused) {\n autoplayDelayCurrent = autoplayTimeLeft;\n wasPaused = false;\n }\n const timeLeft = swiper.autoplay.paused ? autoplayTimeLeft : autoplayStartTime + autoplayDelayCurrent - new Date().getTime();\n swiper.autoplay.timeLeft = timeLeft;\n emit('autoplayTimeLeft', timeLeft, timeLeft / autoplayDelayTotal);\n raf = requestAnimationFrame(() => {\n calcTimeLeft();\n });\n };\n const getSlideDelay = () => {\n let activeSlideEl;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n activeSlideEl = swiper.slides.filter(slideEl => slideEl.classList.contains('swiper-slide-active'))[0];\n } else {\n activeSlideEl = swiper.slides[swiper.activeIndex];\n }\n if (!activeSlideEl) return undefined;\n const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10);\n return currentSlideDelay;\n };\n const run = delayForce => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n cancelAnimationFrame(raf);\n calcTimeLeft();\n let delay = typeof delayForce === 'undefined' ? swiper.params.autoplay.delay : delayForce;\n autoplayDelayTotal = swiper.params.autoplay.delay;\n autoplayDelayCurrent = swiper.params.autoplay.delay;\n const currentSlideDelay = getSlideDelay();\n if (!Number.isNaN(currentSlideDelay) && currentSlideDelay > 0 && typeof delayForce === 'undefined') {\n delay = currentSlideDelay;\n autoplayDelayTotal = currentSlideDelay;\n autoplayDelayCurrent = currentSlideDelay;\n }\n autoplayTimeLeft = delay;\n const speed = swiper.params.speed;\n const proceed = () => {\n if (!swiper || swiper.destroyed) return;\n if (swiper.params.autoplay.reverseDirection) {\n if (!swiper.isBeginning || swiper.params.loop || swiper.params.rewind) {\n swiper.slidePrev(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, speed, true, true);\n emit('autoplay');\n }\n } else {\n if (!swiper.isEnd || swiper.params.loop || swiper.params.rewind) {\n swiper.slideNext(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, speed, true, true);\n emit('autoplay');\n }\n }\n if (swiper.params.cssMode) {\n autoplayStartTime = new Date().getTime();\n requestAnimationFrame(() => {\n run();\n });\n }\n };\n if (delay > 0) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n proceed();\n }, delay);\n } else {\n requestAnimationFrame(() => {\n proceed();\n });\n }\n\n // eslint-disable-next-line\n return delay;\n };\n const start = () => {\n autoplayStartTime = new Date().getTime();\n swiper.autoplay.running = true;\n run();\n emit('autoplayStart');\n };\n const stop = () => {\n swiper.autoplay.running = false;\n clearTimeout(timeout);\n cancelAnimationFrame(raf);\n emit('autoplayStop');\n };\n const pause = (internal, reset) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n clearTimeout(timeout);\n if (!internal) {\n pausedByInteraction = true;\n }\n const proceed = () => {\n emit('autoplayPause');\n if (swiper.params.autoplay.waitForTransition) {\n swiper.wrapperEl.addEventListener('transitionend', onTransitionEnd);\n } else {\n resume();\n }\n };\n swiper.autoplay.paused = true;\n if (reset) {\n if (slideChanged) {\n autoplayTimeLeft = swiper.params.autoplay.delay;\n }\n slideChanged = false;\n proceed();\n return;\n }\n const delay = autoplayTimeLeft || swiper.params.autoplay.delay;\n autoplayTimeLeft = delay - (new Date().getTime() - autoplayStartTime);\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) return;\n if (autoplayTimeLeft < 0) autoplayTimeLeft = 0;\n proceed();\n };\n const resume = () => {\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop || swiper.destroyed || !swiper.autoplay.running) return;\n autoplayStartTime = new Date().getTime();\n if (pausedByInteraction) {\n pausedByInteraction = false;\n run(autoplayTimeLeft);\n } else {\n run();\n }\n swiper.autoplay.paused = false;\n emit('autoplayResume');\n };\n const onVisibilityChange = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n const document = getDocument();\n if (document.visibilityState === 'hidden') {\n pausedByInteraction = true;\n pause(true);\n }\n if (document.visibilityState === 'visible') {\n resume();\n }\n };\n const onPointerEnter = e => {\n if (e.pointerType !== 'mouse') return;\n pausedByInteraction = true;\n pausedByPointerEnter = true;\n if (swiper.animating || swiper.autoplay.paused) return;\n pause(true);\n };\n const onPointerLeave = e => {\n if (e.pointerType !== 'mouse') return;\n pausedByPointerEnter = false;\n if (swiper.autoplay.paused) {\n resume();\n }\n };\n const attachMouseEvents = () => {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.el.addEventListener('pointerenter', onPointerEnter);\n swiper.el.addEventListener('pointerleave', onPointerLeave);\n }\n };\n const detachMouseEvents = () => {\n if (swiper.el && typeof swiper.el !== 'string') {\n swiper.el.removeEventListener('pointerenter', onPointerEnter);\n swiper.el.removeEventListener('pointerleave', onPointerLeave);\n }\n };\n const attachDocumentEvents = () => {\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n };\n const detachDocumentEvents = () => {\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n };\n on('init', () => {\n if (swiper.params.autoplay.enabled) {\n attachMouseEvents();\n attachDocumentEvents();\n start();\n }\n });\n on('destroy', () => {\n detachMouseEvents();\n detachDocumentEvents();\n if (swiper.autoplay.running) {\n stop();\n }\n });\n on('_freeModeStaticRelease', () => {\n if (pausedByTouch || pausedByInteraction) {\n resume();\n }\n });\n on('_freeModeNoMomentumRelease', () => {\n if (!swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n on('beforeTransitionStart', (_s, speed, internal) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n on('sliderFirstMove', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n return;\n }\n isTouched = true;\n pausedByTouch = false;\n pausedByInteraction = false;\n touchStartTimeout = setTimeout(() => {\n pausedByInteraction = true;\n pausedByTouch = true;\n pause(true);\n }, 200);\n });\n on('touchEnd', () => {\n if (swiper.destroyed || !swiper.autoplay.running || !isTouched) return;\n clearTimeout(touchStartTimeout);\n clearTimeout(timeout);\n if (swiper.params.autoplay.disableOnInteraction) {\n pausedByTouch = false;\n isTouched = false;\n return;\n }\n if (pausedByTouch && swiper.params.cssMode) resume();\n pausedByTouch = false;\n isTouched = false;\n });\n on('slideChange', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n slideChanged = true;\n });\n Object.assign(swiper.autoplay, {\n start,\n stop,\n pause,\n resume\n });\n}\n\nexport { Autoplay as default };\n","function effectInit(params) {\n const {\n effect,\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams,\n perspective,\n recreateShadows,\n getEffectParams\n } = params;\n on('beforeInit', () => {\n if (swiper.params.effect !== effect) return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`);\n if (perspective && perspective()) {\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n }\n const overwriteParamsResult = overwriteParams ? overwriteParams() : {};\n Object.assign(swiper.params, overwriteParamsResult);\n Object.assign(swiper.originalParams, overwriteParamsResult);\n });\n on('setTranslate', () => {\n if (swiper.params.effect !== effect) return;\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n if (swiper.params.effect !== effect) return;\n setTransition(duration);\n });\n on('transitionEnd', () => {\n if (swiper.params.effect !== effect) return;\n if (recreateShadows) {\n if (!getEffectParams || !getEffectParams().slideShadows) return;\n // remove shadows\n swiper.slides.forEach(slideEl => {\n slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => shadowEl.remove());\n });\n // create new one\n recreateShadows();\n }\n });\n let requireUpdateOnVirtual;\n on('virtualUpdate', () => {\n if (swiper.params.effect !== effect) return;\n if (!swiper.slides.length) {\n requireUpdateOnVirtual = true;\n }\n requestAnimationFrame(() => {\n if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) {\n setTranslate();\n requireUpdateOnVirtual = false;\n }\n });\n });\n}\n\nexport { effectInit as e };\n","import { g as getSlideTransformEl } from './utils.mjs';\n\nfunction effectTarget(effectParams, slideEl) {\n const transformEl = getSlideTransformEl(slideEl);\n if (transformEl !== slideEl) {\n transformEl.style.backfaceVisibility = 'hidden';\n transformEl.style['-webkit-backface-visibility'] = 'hidden';\n }\n return transformEl;\n}\n\nexport { effectTarget as e };\n","import { k as elementTransitionEnd } from './utils.mjs';\n\nfunction effectVirtualTransitionEnd(_ref) {\n let {\n swiper,\n duration,\n transformElements,\n allSlides\n } = _ref;\n const {\n activeIndex\n } = swiper;\n const getSlide = el => {\n if (!el.parentElement) {\n // assume shadow root\n const slide = swiper.slides.filter(slideEl => slideEl.shadowRoot && slideEl.shadowRoot === el.parentNode)[0];\n return slide;\n }\n return el.parentElement;\n };\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n let transitionEndTarget;\n if (allSlides) {\n transitionEndTarget = transformElements;\n } else {\n transitionEndTarget = transformElements.filter(transformEl => {\n const el = transformEl.classList.contains('swiper-slide-transform') ? getSlide(transformEl) : transformEl;\n return swiper.getSlideIndex(el) === activeIndex;\n });\n }\n transitionEndTarget.forEach(el => {\n elementTransitionEnd(el, () => {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true\n });\n swiper.wrapperEl.dispatchEvent(evt);\n });\n });\n }\n}\n\nexport { effectVirtualTransitionEnd as e };\n","import { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { e as effectVirtualTransitionEnd } from '../shared/effect-virtual-transition-end.mjs';\nimport { g as getSlideTransformEl } from '../shared/utils.mjs';\n\nfunction EffectFade(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n fadeEffect: {\n crossFade: false\n }\n });\n const setTranslate = () => {\n const {\n slides\n } = swiper;\n const params = swiper.params.fadeEffect;\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = swiper.slides[i];\n const offset = slideEl.swiperSlideOffset;\n let tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(slideEl.progress), 0) : 1 + Math.min(Math.max(slideEl.progress, -1), 0);\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.opacity = slideOpacity;\n targetEl.style.transform = `translate3d(${tx}px, ${ty}px, 0px)`;\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements,\n allSlides: true\n });\n };\n effectInit({\n effect: 'fade',\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\nexport { EffectFade as default };\n","import { g as getSlideTransformEl, c as createElement } from './utils.mjs';\n\nfunction createShadow(suffix, slideEl, side) {\n const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}${suffix ? ` swiper-slide-shadow-${suffix}` : ''}`;\n const shadowContainer = getSlideTransformEl(slideEl);\n let shadowEl = shadowContainer.querySelector(`.${shadowClass.split(' ').join('.')}`);\n if (!shadowEl) {\n shadowEl = createElement('div', shadowClass.split(' '));\n shadowContainer.append(shadowEl);\n }\n return shadowEl;\n}\n\nexport { createShadow as c };\n","import { c as createShadow } from '../shared/create-shadow.mjs';\nimport { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { e as effectVirtualTransitionEnd } from '../shared/effect-virtual-transition-end.mjs';\nimport { g as getSlideTransformEl, o as getRotateFix } from '../shared/utils.mjs';\n\nfunction EffectCreative(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n creativeEffect: {\n limitProgress: 1,\n shadowPerProgress: false,\n progressMultiplier: 1,\n perspective: true,\n prev: {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n opacity: 1,\n scale: 1\n },\n next: {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n opacity: 1,\n scale: 1\n }\n }\n });\n const getTranslateValue = value => {\n if (typeof value === 'string') return value;\n return `${value}px`;\n };\n const setTranslate = () => {\n const {\n slides,\n wrapperEl,\n slidesSizesGrid\n } = swiper;\n const params = swiper.params.creativeEffect;\n const {\n progressMultiplier: multiplier\n } = params;\n const isCenteredSlides = swiper.params.centeredSlides;\n const rotateFix = getRotateFix(swiper);\n if (isCenteredSlides) {\n const margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0;\n wrapperEl.style.transform = `translateX(calc(50% - ${margin}px))`;\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = slides[i];\n const slideProgress = slideEl.progress;\n const progress = Math.min(Math.max(slideEl.progress, -params.limitProgress), params.limitProgress);\n let originalProgress = progress;\n if (!isCenteredSlides) {\n originalProgress = Math.min(Math.max(slideEl.originalProgress, -params.limitProgress), params.limitProgress);\n }\n const offset = slideEl.swiperSlideOffset;\n const t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0];\n const r = [0, 0, 0];\n let custom = false;\n if (!swiper.isHorizontal()) {\n t[1] = t[0];\n t[0] = 0;\n }\n let data = {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n scale: 1,\n opacity: 1\n };\n if (progress < 0) {\n data = params.next;\n custom = true;\n } else if (progress > 0) {\n data = params.prev;\n custom = true;\n }\n // set translate\n t.forEach((value, index) => {\n t[index] = `calc(${value}px + (${getTranslateValue(data.translate[index])} * ${Math.abs(progress * multiplier)}))`;\n });\n // set rotates\n r.forEach((value, index) => {\n let val = data.rotate[index] * Math.abs(progress * multiplier);\n r[index] = val;\n });\n slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n const translateString = t.join(', ');\n const rotateString = `rotateX(${rotateFix(r[0])}deg) rotateY(${rotateFix(r[1])}deg) rotateZ(${rotateFix(r[2])}deg)`;\n const scaleString = originalProgress < 0 ? `scale(${1 + (1 - data.scale) * originalProgress * multiplier})` : `scale(${1 - (1 - data.scale) * originalProgress * multiplier})`;\n const opacityString = originalProgress < 0 ? 1 + (1 - data.opacity) * originalProgress * multiplier : 1 - (1 - data.opacity) * originalProgress * multiplier;\n const transform = `translate3d(${translateString}) ${rotateString} ${scaleString}`;\n\n // Set shadows\n if (custom && data.shadow || !custom) {\n let shadowEl = slideEl.querySelector('.swiper-slide-shadow');\n if (!shadowEl && data.shadow) {\n shadowEl = createShadow('creative', slideEl);\n }\n if (shadowEl) {\n const shadowOpacity = params.shadowPerProgress ? progress * (1 / params.limitProgress) : progress;\n shadowEl.style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1);\n }\n }\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.transform = transform;\n targetEl.style.opacity = opacityString;\n if (data.origin) {\n targetEl.style.transformOrigin = data.origin;\n }\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => {\n shadowEl.style.transitionDuration = `${duration}ms`;\n });\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements,\n allSlides: true\n });\n };\n effectInit({\n effect: 'creative',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => swiper.params.creativeEffect.perspective,\n overwriteParams: () => ({\n watchSlidesProgress: true,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\nexport { EffectCreative as default };\n","export const masonryConfig = (container, attributes) => {\r\n\tconst { columnGap, rowGap } = attributes;\r\n\r\n\treturn {\r\n\t\tcontainer,\r\n\t\tbaseWidth: 400,\r\n\t\tgutterX: columnGap,\r\n\t\tgutterY: rowGap,\r\n\t\tminify: false,\r\n\t\tultimateGutter: 5,\r\n\t\tsurroundingGutter: false\r\n\t}\r\n}\r\n\r\nexport const sliderConfig = (attributes) => {\r\n\tconst { columns, columnGap, sliderIsLoop, sliderIsTouchMove, sliderIsAutoplay, sliderAutoplayOptions = { delay: 1.5 }, sliderSpeed, sliderEffect, sliderIsPageClickable, sliderIsPageDynamic } = attributes;\r\n\r\n\treturn {\r\n\t\tdirection: 'horizontal',\r\n\t\tslidesPerView: columns?.mobile,\r\n\t\tbreakpoints: {\r\n\t\t\t// when window width is >= 576px\r\n\t\t\t576: { slidesPerView: columns?.tablet },\r\n\t\t\t// when window width is >= 768px\r\n\t\t\t768: { slidesPerView: columns?.desktop },\r\n\t\t},\r\n\t\tspaceBetween: columnGap,\r\n\t\tloop: sliderIsLoop,\r\n\t\tallowTouchMove: sliderIsTouchMove,\r\n\t\tgrabCursor: sliderIsTouchMove,\r\n\t\tautoplay: sliderIsAutoplay ? { delay: sliderAutoplayOptions?.delay * 1000 } : false,\r\n\t\tspeed: sliderSpeed * 1000,\r\n\t\teffect: sliderEffect,\r\n\t\tfadeEffect: { crossFade: true },\r\n\t\tcreativeEffect: {\r\n\t\t\tprev: {\r\n\t\t\t\tshadow: true,\r\n\t\t\t\ttranslate: ['-120%', 0, -500],\r\n\t\t\t},\r\n\t\t\tnext: {\r\n\t\t\t\tshadow: true,\r\n\t\t\t\ttranslate: ['120%', 0, -500],\r\n\t\t\t}\r\n\t\t},\r\n\t\tallowSlideNext: true,\r\n\t\tallowSlidePrev: true,\r\n\t\tautoHeight: false, // Frontend\r\n\t\tnotificationClass: null,\r\n\r\n\t\t// Controllers\r\n\t\tpagination: {\r\n\t\t\tel: '.swiper-pagination',\r\n\t\t\tclickable: sliderIsPageClickable,\r\n\t\t\tdynamicBullets: sliderIsPageDynamic\r\n\t\t},\r\n\t\tnavigation: {\r\n\t\t\tnextEl: '.swiper-button-next',\r\n\t\t\tprevEl: '.swiper-button-prev',\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport const setSliderHeight = (id) => {\r\n\tconst heightArray = [];\r\n\tconst slideEls = document.querySelectorAll(`#${id} .swiper .swiper-slide`);\r\n\tconst textEls = document.querySelectorAll(`#${id} .swiper .swiper-slide .apbText`);\r\n\ttextEls?.forEach(textEl => {\r\n\t\theightArray.push(textEl?.clientHeight);\r\n\t});\r\n\tslideEls?.length && slideEls.forEach(slideEl => {\r\n\t\tslideEl.querySelector('article').style.height = `${Math.max(...heightArray)}px`;\r\n\t});\r\n}\r\n\r\nexport const tickerConfig = (attributes) => {\r\n\tconst { rowGap, tickerDirection = 'up', tickerSpeed = 'slow', tickerInterval = 2000, tickerHeight = '0px', tickerVisible = 3, tickerIsMousePause = true } = attributes;\r\n\r\n\treturn {\r\n\t\tdirection: tickerDirection,\r\n\t\teasing: 'swing',\r\n\t\tspeed: isNaN(tickerSpeed) ? tickerSpeed : parseInt(tickerSpeed),\r\n\t\tinterval: tickerInterval,\r\n\t\theight: '0px' === tickerHeight || '0em' === tickerHeight ? 'auto' : tickerHeight,\r\n\t\tgap: rowGap,\r\n\t\tvisible: tickerVisible,\r\n\t\tmousePause: tickerIsMousePause\r\n\t}\r\n}","import { useEffect } from 'react';\r\nimport { Swiper, SwiperSlide } from 'swiper/react';\r\nimport { Autoplay, EffectFade, EffectCreative, Navigation, Pagination } from 'swiper/modules';\r\nimport 'swiper/css';\r\nimport 'swiper/css/navigation';\r\nimport 'swiper/css/pagination';\r\n\r\nimport SubLayout from '../SubLayout/SubLayout';\r\nimport { setSliderHeight } from '../../../utils/configs';\r\n\r\nconst Slider = ({ posts, attributes, id }) => {\r\n\tconst { columns, columnGap, sliderIsLoop, sliderIsTouchMove, sliderIsAutoplay, sliderAutoplayOptions = { delay: 1.5 }, sliderSpeed, sliderEffect, sliderIsPage, sliderIsPageClickable, sliderIsPageDynamic, sliderIsPrevNext } = attributes;\r\n\r\n\tuseEffect(() => {\r\n\t\tsetSliderHeight(id);\r\n\t}, [posts?.length]);\r\n\r\n\treturn <Swiper className='apbSliderPosts'\r\n\t\tspaceBetween={columnGap}\r\n\t\tslidesPerView={columns.mobile}\r\n\t\tbreakpoints={{ 576: { slidesPerView: columns.tablet }, 768: { slidesPerView: columns.desktop } }}\r\n\t\tmodules={[Autoplay, EffectFade, EffectCreative, Navigation, Pagination]}\r\n\t\tloop={sliderIsLoop}\r\n\t\tallowTouchMove={sliderIsTouchMove}\r\n\t\tgrabCursor={sliderIsTouchMove}\r\n\t\tautoplay={sliderIsAutoplay ? { delay: sliderAutoplayOptions?.delay * 1000 } : false}\r\n\t\tspeed={sliderSpeed * 1000}\r\n\t\teffect={sliderEffect}\r\n\t\tfadeEffect={{ crossFade: true }}\r\n\t\tcreativeEffect={{\r\n\t\t\tprev: {\r\n\t\t\t\tshadow: true,\r\n\t\t\t\ttranslate: ['-120%', 0, -500]\r\n\t\t\t},\r\n\t\t\tnext: {\r\n\t\t\t\tshadow: true,\r\n\t\t\t\ttranslate: ['120%', 0, -500]\r\n\t\t\t}\r\n\t\t}}\r\n\t\tpagination={sliderIsPage ? {\r\n\t\t\tclickable: sliderIsPageClickable,\r\n\t\t\tdynamicBullets: sliderIsPageDynamic\r\n\t\t} : false}\r\n\t\tnavigation={sliderIsPrevNext}\r\n\r\n\t\tallowSlideNext={true}\r\n\t\tallowSlidePrev={true}\r\n\t\tautoHeight={false} // Frontend\r\n\t\tnotificationClass={null}\r\n\t>\r\n\t\t{posts.map(post => <SwiperSlide key={post.id}>\r\n\t\t\t<SubLayout post={post} attributes={attributes} />\r\n\t\t</SwiperSlide>)}\r\n\t</Swiper>\r\n}\r\nexport default Slider;","import { useEffect } from 'react';\r\nconst $ = jQuery;\r\n\r\nimport SubLayout from '../../Common/SubLayout/SubLayout';\r\nimport { tickerConfig } from '../../../utils/configs';\r\n\r\nconst Ticker = ({ posts, attributes, id }) => {\r\n\tconst tickerSl = `#${id} .apbTickerPosts`;\r\n\r\n\tuseEffect(() => {\r\n\t\tif (posts?.length) {\r\n\t\t\t$(tickerSl).easyTicker(tickerConfig(attributes));\r\n\t\t}\r\n\t}, [posts?.length]);\r\n\r\n\treturn <div className='apbTickerPosts'>\r\n\t\t<div>\r\n\t\t\t{posts.map(post => <SubLayout key={post.id} post={post} attributes={attributes} />)}\r\n\t\t</div>\r\n\t</div>;\r\n}\r\nexport default Ticker;","import { useState, useEffect } from 'react';\r\n\r\nconst useWPAjax = (action, params = {}, set = true) => {\r\n\tconst [isLoading, setIsLoading] = useState(false);\r\n\tconst [isError, setIsError] = useState(false);\r\n\tconst [error, setError] = useState(null);\r\n\tconst [data, setData] = useState(null);\r\n\r\n\tif (!wp.ajax) {\r\n\t\t// eslint-disable-next-line no-console\r\n\t\tconsole.error('Please use wp-util as a dependency');\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst sendRequest = (payload = {}) => {\r\n\t\tsetIsLoading(true);\r\n\t\tsetIsError(false);\r\n\t\tsetError(null);\r\n\t\twp.ajax\r\n\t\t\t.post(action, { ...params, ...payload })\r\n\t\t\t.done((res) => {\r\n\t\t\t\tsetIsLoading(false);\r\n\t\t\t\tsetData(res);\r\n\t\t\t})\r\n\t\t\t.fail((error) => {\r\n\t\t\t\tsetIsLoading(false);\r\n\t\t\t\tsetIsError(true);\r\n\t\t\t\tsetError(error);\r\n\t\t\t});\r\n\t};\r\n\r\n\tconst request = async (payload = {}) => {\r\n\t\tsendRequest(payload);\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tif (set) {\r\n\t\t\tsendRequest(params);\r\n\t\t}\r\n\t}, []);\r\n\r\n\treturn { data, saveData: request, refetch: request, isLoading, isError, error };\r\n};\r\nexport default useWPAjax;","import { useState, useEffect } from 'react';\r\n\r\nimport { useWPAjax } from '../../../react-utils/hooks';\r\n\r\nconst useAjaxPosts = (nonce, attributes, pageNumber) => {\r\n\tconst { postType, selectedTaxonomies = {}, selectedCategories = [], selectedTags = [], isPostsPerPageAll, postsPerPage, postsOrderBy, postsOrder, postsOffset = 0, postsInclude = [], postsExclude = [], isExcludeCurrent, fImgSize = 'full', metaDateFormat = 'M j, Y', isExcerptFromContent = false, excerptLength = 25 } = attributes;\r\n\r\n\tconst queryAttr = { postType, selectedTaxonomies, selectedCategories, selectedTags, isPostsPerPageAll, postsPerPage, postsOrderBy, postsOrder, postsOffset, postsInclude, postsExclude, isExcludeCurrent, fImgSize, metaDateFormat, isExcerptFromContent, excerptLength }\r\n\tconst { data = null, saveData, isLoading } = useWPAjax('apbPosts', { _wpnonce: nonce, queryAttr, pageNumber });\r\n\r\n\r\n\tconst [posts, setPosts] = useState([]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (pageNumber) {\r\n\t\t\tsaveData({ pageNumber });\r\n\t\t}\r\n\t}, [pageNumber]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (data) {\r\n\t\t\tsetPosts(data);\r\n\t\t}\r\n\t}, [data]);\r\n\r\n\treturn { posts, isLoading };\r\n};\r\nexport default useAjaxPosts;","import { useWPAjax } from '../../../react-utils/hooks';\r\n\r\nconst usePremium = (nonce) => {\r\n\tconst { data = null, isLoading } = useWPAjax('apbPipeChecker', { _wpnonce: nonce });\r\n\tconst isPremium = (!isLoading && data?.isPipe) || false;\r\n\r\n\treturn { isPremium, isLoading };\r\n};\r\nexport default usePremium;","import { useState, useEffect } from 'react';\r\n\r\nimport Style from '../Common/Style';\r\nimport DisplayPosts from '../Common/DisplayPosts';\r\nimport Pagination from '../Common/Pagination';\r\nimport Slider from '../Common/Layout/Slider';\r\nimport Ticker from './Layout/Ticker';\r\nimport useAjaxPosts from '../../hooks/useAjaxPosts';\r\nimport usePremium from '../../hooks/usePremium';\r\n\r\nconst APBPosts = ({ firstPosts, nonce, totalPosts, attributes, id }) => {\r\n\tconst [pageNumber, setPageNumber] = useState(1);\r\n\r\n\tconst { isPremium } = usePremium(nonce);\r\n\r\n\tconst posts = (Array.isArray(firstPosts) && firstPosts.length) ? firstPosts : [];\r\n\r\n\treturn <>\r\n\t\t<Style attributes={attributes} id={id} />\r\n\r\n\t\t{isPremium ? <>\r\n\t\t\t<PremiumDisplayPosts firstPosts={posts} attributes={attributes} id={id} nonce={nonce} pageNumber={pageNumber} />\r\n\r\n\t\t\t<Pagination attributes={attributes} totalCount={totalPosts} onChange={val => setPageNumber(val)} />\r\n\t\t</> :\r\n\t\t\t<FreeDisplayPosts posts={posts} attributes={attributes} id={id} />}\r\n\t</>\r\n}\r\nexport default APBPosts;\r\n\r\nconst FreeDisplayPosts = ({ posts, attributes, id }) => <DisplayPosts posts={posts} attributes={attributes} id={id} Slider={Slider} Ticker={Ticker} />\r\n\r\nconst PremiumDisplayPosts = ({ firstPosts, attributes, id, nonce, pageNumber }) => {\r\n\tconst [posts, setPosts] = useState(firstPosts);\r\n\r\n\tconst { posts: ajaxPosts, isLoading: isAPLoading } = useAjaxPosts(nonce, attributes, pageNumber);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (Array.isArray(ajaxPosts) && !isAPLoading && pageNumber > 1) {\r\n\t\t\tsetPosts(ajaxPosts);\r\n\t\t}\r\n\t}, [ajaxPosts, isAPLoading, pageNumber]);\r\n\r\n\tconst dpPosts = (Array.isArray(posts) && posts.length) ? posts : [];\r\n\r\n\treturn <DisplayPosts posts={pageNumber > 1 ? dpPosts : firstPosts} attributes={attributes} id={id} Slider={Slider} Ticker={Ticker} />\r\n}","import { createRoot } from 'react-dom';\r\nimport 'swiper/css/bundle';\r\n\r\nimport './style.scss';\r\nimport APBPosts from './Components/Frontend/APBPosts';\r\n\r\ndocument.addEventListener('DOMContentLoaded', () => {\r\n\tconst postsEls = document.querySelectorAll('.wp-block-ap-block-posts');\r\n\tpostsEls.forEach(postsEl => {\r\n\t\tconst nonce = JSON.parse(postsEl.dataset.nonce);\r\n\t\tconst attributes = JSON.parse(postsEl.dataset.attributes);\r\n\t\tconst { totalPosts } = JSON.parse(postsEl.dataset.extra);\r\n\r\n\t\tconst firstPostsText = postsEl.querySelector('pre#firstPosts')?.innerText;\r\n\t\tconst firstPosts = firstPostsText ? JSON.parse(firstPostsText?.replace(/\\n/g, ' ')?.replace(/\\s+/g, ' ')?.trim()) : [];\r\n\r\n\t\tcreateRoot(postsEl).render(<APBPosts firstPosts={firstPosts} nonce={nonce} totalPosts={totalPosts} attributes={attributes} id={postsEl.id} />);\r\n\r\n\t\tpostsEl?.removeAttribute('data-nonce');\r\n\t\tpostsEl?.removeAttribute('data-attributes');\r\n\t\tpostsEl?.removeAttribute('data-extra');\r\n\t});\r\n});"],"names":["__webpack_require__","module","getter","__esModule","d","a","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","ReactDOM","React","isValidCSS","p","v","value","Array","isArray","length","_typeof","keys","trim","concat","getBackgroundCSS","bg","isSolid","arguments","undefined","isGradient","isImage","_ref","_ref$type","type","_ref$color","color","_ref$gradient","gradient","_ref$image","image","_ref$position","position","_ref$attachment","attachment","_ref$repeat","repeat","_ref$size","size","_ref$overlayColor","overlayColor","url","getBorderCSS","border","_ref2","_ref2$width","width","_ref2$style","style","_ref2$color","_ref2$side","side","_ref2$radius","radius","borderSideCheck","s","bSide","toLowerCase","includes","noWidth","borderCSS","styles","map","join","getColorsCSS","colors","_ref3","_ref3$color","_ref3$bgType","bgType","_ref3$bg","_ref3$gradient","getSpaceCSS","space","_ref8","_ref8$side","_ref8$vertical","vertical","_ref8$horizontal","horizontal","_ref8$top","top","_ref8$right","right","_ref8$bottom","bottom","_ref8$left","left","getTypoCSS","selector","typo","isFamily","_ref9","_ref9$fontFamily","fontFamily","_ref9$fontCategory","fontCategory","_ref9$fontVariant","fontVariant","_ref9$fontWeight","fontWeight","_ref9$isUploadFont","isUploadFont","_ref9$fontSize","fontSize","desktop","tablet","mobile","_ref9$fontStyle","fontStyle","_ref9$textTransform","textTransform","_ref9$textDecoration","textDecoration","_ref9$lineHeight","lineHeight","_ref9$letterSpace","letterSpace","isEmptyFamily","desktopFontSize","tabletFontSize","mobileFontSize","linkQuery","replace","link","split","googleFontLink","_getTypoCSS","_getTypoCSS2","_getTypoCSS3","_getTypoCSS4","_getTypoCSS5","_getTypoCSS6","_getTypoCSS7","_getTypoCSS8","_getSpaceCSS","attributes","id","columnGap","rowGap","isContentEqualHight","sliderHeight","paginationColors","paginationHovColors","paginationPadding","paginationSpacing","_attributes$fImgFitti","fImgFitting","contentAlign","contentBG","contentPadding","sliderPageColor","sliderPageWidth","sliderPageHeight","sliderPageBorder","sliderPrevNextColor","titleTypo","titleColor","titleMargin","metaTypo","metaTextColor","metaLinkColor","metaIconColor","metaColorsOnImage","metaMargin","excerptAlign","excerptTypo","excerptColor","excerptMargin","readMoreAlign","readMoreTypo","readMoreColors","readMoreHovColors","readMorePadding","readMoreBorder","mainSl","postSl","sliderPostsSl","postReadMoreSl","postTitleSl","postMetaSl","paginationSl","createElement","dangerouslySetInnerHTML","__html","post","_post$thumbnail","thumbnail","thumbUrl","thumbAlt","alt","categories","isFImg","isFImgLink","isMeta","isMetaCategory","metaCategoryIn","isLinkNewTab","className","href","target","rel","src","author","name","isMetaAuthor","_attributes$isMetaAut","isMetaAuthorLink","metaAuthorIcon","date","isMetaDate","metaDateIcon","renderHTML","raw","classNames","_len","args","_key","reduce","acc","arg","push","entries","forEach","_ref4","_ref5","_slicedToArray","metaCategoryIcon","coma","_post$taxonomies","taxonomies","_attributes$metaTaxon","metaTaxonomies","_metaTaxonomies$selec","selected","_metaTaxonomies$s","_tax$split","tax","icon","iconEl","readTime","content","isMetaReadTime","metaReadTimeIcon","isMetaReadTimeSec","metaReadTimeLabel","readTimeText","min","sec","title","commentCount","commentStatus","isMetaComment","metaCommentIcon","PostMetaAuthor","PostMetaDate","PostMetaCategory","MetaTaxonomies","PostMetaReadTime","PostMetaComment","isTitle","isTitleLink","Fragment","_attributes$elementsS","elementsSort","el","index","Title","Meta","str","excerpt","isExcerpt","isExcerptFromContent","isEllipsisOnExcerpt","excerptLength","finalExcerpt","ellipsis","excerptContent","nu_words","slice","truncate","isReadMore","_attributes$readMoreP","readMorePosition","readMoreLabel","postClass","subLayout","FeatureImage","TitleMeta","Excerpt","ReadMore","isLeftImg","isRightImg","_attributes$content","height","Default","SideImage","Overlay","_extends","assign","i","source","apply","this","_setPrototypeOf","setPrototypeOf","__proto__","Masonry","_React$Component","subClass","superClass","_this","state","columns","childRefs","hasDistributed","create","constructor","_proto","componentDidUpdate","props","sequential","distributeChildren","getDerivedStateFromProps","children","columnsCount","getEqualCountColumns","_this2","_this$props","columnHeights","fill","every","ref","current","getBoundingClientRect","from","validIndex","child","childHeight","minHeightColumnIndex","indexOf","Math","setState","display","justifyContent","renderColumns","_this$props2","gutter","itemTag","itemStyle","column","flexDirection","alignContent","flex","gap","item","render","_this$props3","containerTag","boxSizing","propTypes","defaultProps","useIsomorphicLayoutEffect","window","useLayoutEffect","useEffect","useWindowWidth","hasMounted","_useState","useState","setHasMounted","useHasMounted","_useState2","innerWidth","setWidth","handleResize","useCallback","addEventListener","removeEventListener","MasonryResponsive","_ref$columnsCountBrea","columnsCountBreakPoints","_ref$className","_ref$style","windowWidth","useMemo","breakPoints","sort","b","count","breakPoint","posts","_columns$desktop","_columns$tablet","_columns$mobile","ResponsiveMasonry","SubLayout","Slider","Ticker","layout","PostsLoop","DOTS","range","start","end","_","idx","totalCount","onChange","isPostsPerPageAll","postsPerPage","isPagination","paginationPrevLabel","paginationNextLabel","currentPage","setCurrentPage","paginationRange","pageSize","_ref$siblingCount","siblingCount","totalPageCount","ceil","leftSiblingIndex","max","rightSiblingIndex","shouldShowLeftDots","shouldShowRightDots","firstPageIndex","lastPageIndex","leftRange","_toConsumableArray","rightRange","middleRange","usePagination","lastPage","setPageNumber","pageNumber","onClick","extend","ssrDocument","body","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","childNodes","setAttribute","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","origin","pathname","protocol","search","doc","document","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","getComputedStyle","getPropertyValue","Image","Date","screen","setTimeout","clearTimeout","matchMedia","requestAnimationFrame","callback","cancelAnimationFrame","win","delay","now","axis","matrix","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","transform","webkitTransform","MozTransform","OTransform","MsTransform","msTransform","toString","m41","parseFloat","m42","to","noExtend","nextSource","node","HTMLElement","nodeType","keysArray","filter","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","__swiper__","varName","varValue","setProperty","animateCSSModeScroll","swiper","targetPosition","startPosition","translate","time","startTime","duration","params","speed","wrapperEl","scrollSnapType","cssModeFrameID","dir","isOutOfBound","animate","getTime","progress","easeProgress","cos","PI","currentPosition","scrollTo","overflow","slideEl","shadowRoot","element","HTMLSlotElement","assignedElements","matches","showWarning","text","console","warn","err","tag","classes","classList","add","c","elementStyle","previousSibling","parents","parent","parentElement","elementOuterSize","includeMargins","offsetWidth","e","support","deviceCached","browser","getSupport","smoothScroll","documentElement","touch","DocumentTouch","calcSupport","getDevice","overrides","_temp","platform","ua","device","ios","android","screenWidth","screenHeight","match","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","needPerspectiveFix","isSafari","String","major","minor","num","Number","isWebView","test","isSafariBrowser","need3dFix","calcBrowser","eventsEmitter","on","events","handler","priority","self","eventsListeners","destroyed","method","event","once","onceHandler","off","__emitterProxy","onAny","eventsAnyListeners","offAny","splice","eventHandler","emit","data","context","_len2","_key2","unshift","toggleSlideClasses$1","condition","contains","remove","toggleSlideClasses","processLazyPreloader","imageEl","closest","isElement","slideClass","lazyEl","lazyPreloaderClass","unlazy","slides","removeAttribute","preload","amount","lazyPreloadPrevNext","slidesPerView","slidesPerViewDynamic","activeIndex","grid","rows","activeColumn","preloadColumns","slideIndexLastInView","rewind","loop","realIndex","update","updateSize","clientWidth","clientHeight","isHorizontal","isVertical","parseInt","isNaN","updateSlides","getDirectionPropertyValue","label","getDirectionLabel","slidesEl","swiperSize","rtlTranslate","rtl","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginRight","marginBottom","marginTop","centeredSlides","cssMode","gridEnabled","slideSize","initSlides","unsetSlides","shouldResetSlideSize","breakpoints","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","floor","swiperSlideSize","abs","slidesPerGroup","slidesPerGroupSkip","effect","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","groups","slidesBefore","slidesAfter","groupSize","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","offsetSize","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","watchOverflow","checkOverflow","watchSlidesProgress","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","maxBackfaceHiddenSlides","updateAutoHeight","activeSlides","newHeight","setTransition","getSlideByIndex","getSlideIndexByData","visibleSlides","offsetHeight","minusOffset","offsetLeft","offsetTop","swiperSlideOffset","cssOverflowAdjustment","updateSlidesProgress","offsetCenter","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","isFullyVisible","isVisible","slideVisibleClass","slideFullyVisibleClass","originalProgress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","progressLoop","wasBeginning","wasEnd","isBeginningRounded","isEndRounded","firstSlideIndex","lastSlideIndex","firstSlideTranslate","lastSlideTranslate","translateMax","translateAbs","autoHeight","updateSlidesClasses","getFilteredSlide","activeSlide","prevSlide","nextSlide","nextEls","nextElementSibling","next","elementNextAll","prevEls","previousElementSibling","prev","elementPrevAll","slideActiveClass","slideNextClass","slidePrevClass","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","getVirtualRealIndex","aIndex","normalizeSlideIndex","getActiveIndexByTranslate","skip","firstSlideInColumn","activeSlideIndex","getAttribute","initialized","runCallbacksOnInit","updateClickedSlide","path","pathEl","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","getTranslate","virtualTranslate","currentTranslate","setTranslate","byController","newProgress","x","y","previousTranslate","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","isH","behavior","onTranslateToWrapperTransitionEnd","transitionEmit","direction","step","slideTo","initial","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","transitionStart","transitionEnd","t","_immediateVirtual","_cssModeVirtualInitialSet","initialSlide","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","targetSlideIndex","cols","needLoopFix","loopFix","slideRealIndex","slideNext","perGroup","slidesPerGroupAuto","increment","loopPreventsSliding","_clientLeft","clientLeft","slidePrev","normalize","val","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","lastIndex","slideReset","slideToClosest","threshold","currentSnap","slideToIndex","slideSelector","loopedSlides","getSlideIndex","loopCreate","shouldFillGroup","shouldFillGrid","addBlankSlides","amountOfSlides","slideBlankClass","append","loopAddBlankSlides","recalcSlides","byMousewheel","loopAdditionalSlides","prependSlidesIndexes","appendSlidesIndexes","isNext","isPrev","slidesPrepended","slidesAppended","activeColIndexWithShift","colIndexToPrepend","__preventObserver__","swiperLoopMoveDOM","prepend","currentSlideTranslate","diff","touchEventsData","startTranslate","shift","controller","control","loopParams","loopDestroy","newSlidesOrder","swiperSlideIndex","preventEdgeSwipe","startX","edgeSwipeDetection","edgeSwipeThreshold","preventDefault","onTouchStart","originalEvent","pointerId","targetTouches","touchId","identifier","pageX","touches","simulateTouch","pointerType","targetEl","touchEventsTarget","isChild","elementIsChildOf","which","button","isTouched","isMoved","swipingClassHasValue","noSwipingClass","eventPath","composedPath","noSwipingSelector","isTargetShadow","noSwiping","base","__closestFrom","assignedSlot","found","getRootNode","closestElement","allowClick","swipeHandler","currentX","currentY","pageY","startY","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","freeMode","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","previousX","previousY","diffX","diffY","sqrt","touchAngle","atan2","preventTouchMoveFromPointerMove","cancelable","touchMoveStopPropagation","nested","stopPropagation","touchesDiff","oneWayMovement","touchRatio","prevTouchesDirection","touchesDirection","isLoop","allowLoopFix","evt","bubbles","detail","bySwiperTouchMove","dispatchEvent","allowMomentumBounce","grabCursor","setGrabCursor","loopSwapReset","disableParentSwiper","resistanceRatio","resistance","followFinger","onTouchEnd","touchEndTime","timeDiff","pathTree","lastClickTime","currentPos","swipeToLast","stopIndex","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","setBreakpoint","isVirtualLoop","autoplay","running","paused","resizeTimeout","resume","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","scrollLeft","scrollTop","onLoad","onDocumentTouchStart","documentTouchHandlerProceeded","touchAction","capture","domMethod","swiperMethod","passive","updateOnWindowResize","isGridEnabled","addClasses","suffixes","prefix","resultClasses","prepareClasses","emitContainerClasses","removeClasses","defaults","init","swiperElementNodeName","resizeObserver","createElements","eventsPrefix","breakpointsBase","uniqueNavElements","passiveListeners","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","transition","transitionDuration","transitionDelay","moving","isLocked","cursor","unsetGrabCursor","attachEvents","bind","detachEvents","breakpoint","getBreakpoint","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasGrabCursor","isGrabCursor","wasEnabled","wasModuleEnabled","isModuleEnabled","disable","enable","directionChanged","needsReLoop","wasLoop","changeDirection","isEnabled","hasLoop","containerEl","currentHeight","innerHeight","points","point","minRatio","substr","wasLocked","lastSlideRightEdge","extendedDefaults","Swiper","swipers","newParams","modules","__modules__","mod","extendParams","swiperParams","passedParams","eventName","velocity","trunc","clickTimeout","velocities","imagesToLoad","imagesLoaded","property","setProgress","cls","getSlideClasses","updates","view","exact","spv","breakLoop","translateValue","translated","complete","newDirection","needUpdate","currentDirection","changeLanguageDirection","mount","mounted","parentNode","toUpperCase","getWrapperSelector","getWrapper","slideSlots","hostEl","lazyElements","destroy","deleteInstance","cleanStyles","object","deleteProps","extendDefaults","newDefaults","installModule","use","m","prototypeGroup","protoMethod","observer","animationFrame","resizeHandler","orientationChangeHandler","ResizeObserver","newWidth","contentBoxSize","contentRect","inlineSize","blockSize","observe","unobserve","observers","attach","options","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","childList","characterData","observeParents","observeSlideChildren","containerParents","disconnect","paramsList","needsNavigation","needsPagination","pagination","needsScrollbar","scrollbar","uniqueClasses","unique","isChildSwiperSlide","displayName","processChildren","toArray","getChildren","slots","slot","foundSlides","deps","SwiperSlideContext","createContext","SwiperContext","forwardRef","externalElRef","Tag","wrapperTag","WrapperTag","onSwiper","rest","eventsAssigned","containerClasses","setContainerClasses","virtualData","setVirtualData","breakpointChanged","setBreakpointChanged","initializedRef","useRef","swiperElRef","swiperRef","oldPassedParamsRef","oldSlides","nextElRef","prevElRef","paginationElRef","scrollbarElRef","restProps","splitEvents","allowedParams","plainObj","getParams","onBeforeBreakpoint","_containerClasses","initSwiper","passParams","extendWith","cache","renderExternal","renderExternalUpdate","paginationEl","scrollbarEl","mountSwiper","changedParams","oldParams","oldChildren","getKey","addKey","oldChildrenKeys","childrenKeys","newKeys","oldKeys","newKey","oldKey","getChangedParams","updateParams","currentParams","thumbs","needThumbsInit","needControllerInit","needPaginationInit","needScrollbarInit","needNavigationInit","loopNeedDestroy","loopNeedEnable","loopNeedReloop","destroyModule","newValue","part","appendChild","innerHTML","nextButtonSvg","prevButtonSvg","updateSwiper","parallax","Provider","offset","loopFrom","loopTo","slidesToRender","virtualIndex","renderVirtual","SwiperSlide","externalRef","zoom","lazy","slideElRef","slideClasses","setSlideClasses","lazyLoaded","setLazyLoaded","updateClasses","_s","slideData","isActive","renderChildren","checkProps","Navigation","getEl","res","toggleEl","disabled","subEl","disabledClass","tagName","lockClass","onPrevClick","onNextClick","initButton","destroyButton","hideOnClick","hiddenClass","navigationDisabledClass","targetIsButton","find","clickable","isHidden","toggle","pfx","bulletSize","bulletElement","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","number","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","progressbarFillClass","progressbarOppositeClass","clickableClass","horizontalClass","verticalClass","paginationDisabledClass","bullets","dynamicBulletIndex","isPaginationDisabled","setSideBullets","bulletEl","onBulletClick","moveDirection","total","firstIndex","midIndex","classesToRemove","suffix","flat","bullet","bulletIndex","firstDisplayedBullet","lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","subElIndex","fractionEl","textContent","totalEl","progressbarDirection","scale","scaleX","scaleY","progressEl","paginationHTML","numberOfBullets","Autoplay","timeout","raf","timeLeft","waitForTransition","disableOnInteraction","stopOnLastSlide","reverseDirection","pauseOnMouseEnter","autoplayTimeLeft","wasPaused","pausedByTouch","touchStartTimeout","slideChanged","pausedByInteraction","pausedByPointerEnter","autoplayDelayTotal","autoplayDelayCurrent","autoplayStartTime","onTransitionEnd","calcTimeLeft","run","delayForce","currentSlideDelay","activeSlideEl","getSlideDelay","proceed","stop","pause","reset","onVisibilityChange","visibilityState","onPointerEnter","onPointerLeave","overwriteParams","perspective","recreateShadows","getEffectParams","requireUpdateOnVirtual","overwriteParamsResult","slideShadows","shadowEl","effectParams","transformEl","backfaceVisibility","transformElements","allSlides","transitionEndTarget","eventTriggered","getSlide","fireCallBack","EffectFade","fadeEffect","crossFade","tx","ty","slideOpacity","opacity","shadowClass","shadowContainer","EffectCreative","creativeEffect","limitProgress","shadowPerProgress","progressMultiplier","rotate","getTranslateValue","isCenteredSlides","rotateFix","margin","r","custom","zIndex","round","translateString","rotateString","scaleString","opacityString","shadow","shadowOpacity","transformOrigin","sliderIsLoop","sliderIsTouchMove","sliderIsAutoplay","_attributes$sliderAut","sliderAutoplayOptions","sliderSpeed","sliderEffect","sliderIsPage","sliderIsPageClickable","sliderIsPageDynamic","sliderIsPrevNext","heightArray","slideEls","textEls","textEl","setSliderHeight","Pagination","notificationClass","$","jQuery","tickerSl","easyTicker","_attributes$tickerDir","tickerDirection","_attributes$tickerSpe","tickerSpeed","_attributes$tickerInt","tickerInterval","_attributes$tickerHei","tickerHeight","_attributes$tickerVis","tickerVisible","_attributes$tickerIsM","tickerIsMousePause","easing","interval","visible","mousePause","tickerConfig","_regeneratorRuntime","n","Symbol","iterator","asyncIterator","u","toStringTag","define","configurable","writable","wrap","Generator","Context","makeInvokeMethod","tryCatch","h","l","f","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","values","g","defineIteratorMethods","_invoke","AsyncIterator","invoke","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","isGeneratorFunction","mark","awrap","async","Promise","reverse","pop","charAt","rval","handle","finish","delegateYield","asyncGeneratorStep","ownKeys","getOwnPropertySymbols","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","toPrimitive","_toPrimitive","_toPropertyKey","_arrayWithHoles","_iterableToArrayLimit","_arrayLikeToArray","_unsupportedIterableToArray","_nonIterableRest","action","set","isLoading","setIsLoading","_useState4","isError","setIsError","_useState6","error","setError","_useState8","setData","wp","ajax","sendRequest","payload","fail","request","_callee","_args","_context","_next","_throw","saveData","refetch","nonce","postType","_attributes$selectedT","selectedTaxonomies","_attributes$selectedC","selectedCategories","_attributes$selectedT2","selectedTags","postsOrderBy","postsOrder","_attributes$postsOffs","postsOffset","_attributes$postsIncl","postsInclude","_attributes$postsExcl","postsExclude","isExcludeCurrent","_attributes$fImgSize","fImgSize","_attributes$metaDateF","metaDateFormat","_attributes$isExcerpt","_attributes$excerptLe","_useWPAjax","useWPAjax","_wpnonce","queryAttr","_useWPAjax$data","setPosts","isPremium","isPipe","firstPosts","totalPosts","usePremium","Style","PremiumDisplayPosts","FreeDisplayPosts","DisplayPosts","_useAjaxPosts","useAjaxPosts","ajaxPosts","isAPLoading","dpPosts","postsEl","_postsEl$querySelecto","_firstPostsText$repla","JSON","parse","dataset","extra","firstPostsText","innerText","createRoot","APBPosts"],"sourceRoot":""}