{"version":3,"file":"2bfe2ade2850cd4586787343397063577d3db819-2f75133f58d2a8123e22.js","mappings":"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","sources":["webpack://gatsby-tinacms/./src/components/elements/video.carousel.tsx","webpack://gatsby-tinacms/./node_modules/jsonp/node_modules/debug/src/debug.js","webpack://gatsby-tinacms/./node_modules/jsonp/index.js","webpack://gatsby-tinacms/./src/components/elements/video.frame.tsx","webpack://gatsby-tinacms/./node_modules/swiper/shared/ssr-window.esm.mjs","webpack://gatsby-tinacms/./src/utils/breadcrumbs.tsx","webpack://gatsby-tinacms/./src/components/sections/posts/section.posts.tsx","webpack://gatsby-tinacms/./node_modules/swiper/shared/swiper-core.mjs","webpack://gatsby-tinacms/./node_modules/swiper/shared/update-swiper.mjs","webpack://gatsby-tinacms/./node_modules/swiper/swiper-react.mjs","webpack://gatsby-tinacms/./node_modules/swiper/shared/update-on-virtual-data.mjs","webpack://gatsby-tinacms/./src/utils/use.site.settings.ts","webpack://gatsby-tinacms/./src/components/elements/html.tooltip.tsx","webpack://gatsby-tinacms/./node_modules/jsonp/node_modules/ms/index.js","webpack://gatsby-tinacms/./src/utils/toTinaMarkdown.ts","webpack://gatsby-tinacms/./src/components/sections/cta/section.floating.cta.tsx","webpack://gatsby-tinacms/./node_modules/jsonp/node_modules/debug/src/browser.js","webpack://gatsby-tinacms/./node_modules/react-share/dist/index.js","webpack://gatsby-tinacms/./src/components/elements/share.fab.tsx","webpack://gatsby-tinacms/./node_modules/classnames/index.js","webpack://gatsby-tinacms/./node_modules/swiper/shared/utils.mjs","webpack://gatsby-tinacms/./src/components/elements/author.card.tsx","webpack://gatsby-tinacms/./node_modules/@mui/material/Fab/fabClasses.js","webpack://gatsby-tinacms/./node_modules/@mui/material/Fab/Fab.js","webpack://gatsby-tinacms/./src/components/elements/rich.anchor.tsx"],"sourcesContent":["import React from 'react';\nimport VideoFrame from './video.frame';\nimport { useClass } from '@breezerr';\n\nimport SwiperClass from 'swiper/types/swiper-class';\nimport { Swiper, SwiperSlide } from 'swiper/react';\nimport { Thumbs } from 'swiper/modules';\nimport { ButtonBase } from '@mui/material';\nimport { color } from '@breezerr/utils';\nimport TouchRipple from '@mui/material/ButtonBase/TouchRipple';\n\n\n\ntype Props = {\n youtubeIds: Array;\n};\n\nexport const VideoCarousel = (props: Props) => {\n\n const [active, setActive] = React.useState(0);\n const [controls, setControls] = React.useState();\n\n return (\n
\n {\n setActive(swiper.activeIndex);\n }}\n >{ props.youtubeIds?.map((id, index) => {\n return (\n \n \n \n )\n }) }\n\n\n {/* Contorls */}\n { props.youtubeIds?.map((id, index) => {\n return (\n \n \n \n )\n }) }\n
\n );\n};","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = require('ms');\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Previous log timestamp.\n */\n\nvar prevTime;\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0, i;\n\n for (i in namespace) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n return debug;\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n exports.names = [];\n exports.skips = [];\n\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (var i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n","/**\n * Module dependencies\n */\n\nvar debug = require('debug')('jsonp');\n\n/**\n * Module exports.\n */\n\nmodule.exports = jsonp;\n\n/**\n * Callback index.\n */\n\nvar count = 0;\n\n/**\n * Noop function.\n */\n\nfunction noop(){}\n\n/**\n * JSONP handler\n *\n * Options:\n * - param {String} qs parameter (`callback`)\n * - prefix {String} qs parameter (`__jp`)\n * - name {String} qs parameter (`prefix` + incr)\n * - timeout {Number} how long after a timeout error is emitted (`60000`)\n *\n * @param {String} url\n * @param {Object|Function} optional options / callback\n * @param {Function} optional callback\n */\n\nfunction jsonp(url, opts, fn){\n if ('function' == typeof opts) {\n fn = opts;\n opts = {};\n }\n if (!opts) opts = {};\n\n var prefix = opts.prefix || '__jp';\n\n // use the callback name that was passed if one was provided.\n // otherwise generate a unique name by incrementing our counter.\n var id = opts.name || (prefix + (count++));\n\n var param = opts.param || 'callback';\n var timeout = null != opts.timeout ? opts.timeout : 60000;\n var enc = encodeURIComponent;\n var target = document.getElementsByTagName('script')[0] || document.head;\n var script;\n var timer;\n\n\n if (timeout) {\n timer = setTimeout(function(){\n cleanup();\n if (fn) fn(new Error('Timeout'));\n }, timeout);\n }\n\n function cleanup(){\n if (script.parentNode) script.parentNode.removeChild(script);\n window[id] = noop;\n if (timer) clearTimeout(timer);\n }\n\n function cancel(){\n if (window[id]) {\n cleanup();\n }\n }\n\n window[id] = function(data){\n debug('jsonp got', data);\n cleanup();\n if (fn) fn(null, data);\n };\n\n // add qs component\n url += (~url.indexOf('?') ? '&' : '?') + param + '=' + enc(id);\n url = url.replace('?&', '?');\n\n debug('jsonp req \"%s\"', url);\n\n // create script\n script = document.createElement('script');\n script.src = url;\n target.parentNode.insertBefore(script, target);\n\n return cancel;\n}\n","import { useClass } from '@breezerr';\nimport { ButtonBase } from '@mui/material';\nimport React from 'react';\nimport { Img } from './img';\n\n\n\ntype PropsType = {\n load?: boolean;\n youtubeId?: string;\n children?: React.ReactNode | React.ReactNode[];\n // style?: React.CSSProperties;\n aspectRatio?: React.CSSProperties['aspectRatio'];\n className?: string;\n interacted?: boolean;\n};\n\n\nconst VideoFrame = (props: PropsType) => {\n const [interacted, setInteracted] = React.useState(props.load || false);\n const [hover, setHover] = React.useState(false);\n\n React.useEffect(() => {\n setInteracted(!!props.interacted);\n }, [props.interacted]);\n\n\n return
\n
setInteracted(true)} \n onMouseEnter={() => setHover(true)} \n onMouseLeave={() => setHover(false)}\n >\n {/* Video */}\n {props.youtubeId ? (\n \n
\n \n \n \n \n \n \n
\n ) : (null)}\n {/* Use first child as thumbnail */}\n \n\n {/* Render rest */}\n {interacted ? (\n \n ) : (null)}\n
\n
\n};\n\nexport default VideoFrame;\n\nVideoFrame.defaultProps = {\n aspectRatio: '16 / 9'\n};","/**\n * SSR Window 5.0.0\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2025, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: February 12, 2025\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 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 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 React from 'react';\nimport { useClass } from '@breezerr';\nimport { usePage } from './contexts/page.context';\nimport { TextLink } from '@brz-components/elements/text.link';\nimport { TinaMarkdown } from 'tinacms/dist/rich-text';\nimport { toTinaMarkdown } from './toTinaMarkdown';\nimport { RichCurrentYear } from '@brz-components/elements/rich.current.year';\n\n\ntype Props = {\n crumbs?: Array<{\n label: string;\n link: string;\n }>\n}\n\nexport const Breadcrumbs = (props: Props) => {\n const { page: settings } = usePage();\n const cumbs = props.crumbs || settings.sitemap.breadcrumbs;\n\n return (\n \n );\n};","import React, { HTMLAttributes } from \"react\";\n\n// Utils\nimport { useClass } from \"@breezerr\";\nimport { usePage } from \"@brz-utils/contexts/page.context\";\nimport { newLinesToBreaks } from \"@brz-utils/newlines.to.breaks\";\n\n// Components\nimport { Uppercase } from \"@brz-components/elements/uppercase\";\nimport { PostPreview } from \"@brz-components/elements/post.preview\";\n\n// Types\nimport { PostsSectionDataModel } from \"./types\";\n\n\nconst SectionBlogPosts = ({ data, order }: { data: PostsSectionDataModel, order: number }) => {\n const { page } = usePage();\n const headerHeight = page._computed.topHeight(40);\n\n return (\n
\n
\n {data.title ? (\n { data.title }\n ) : null}\n {data.headingText ? (\n

\n ) : null}\n

\n\n {data.posts?.map(({ref: post}, index) => {\n return post ? : null\n })}\n
\n );\n};\n\n\nexport default SectionBlogPosts;","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.find(slideEl => slideEl.column === activeIndex);\n nextSlide = slides.find(slideEl => slideEl.column === activeIndex + 1);\n prevSlide = slides.find(slideEl => slideEl.column === activeIndex - 1);\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.find(slideEl => slideEl.column === activeIndex);\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 const browser = getBrowser();\n const isSafari = browser.isSafari;\n if (isVirtual && !initial && isSafari && swiper.isElement) {\n swiper.virtual.update(false, false, slideIndex);\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.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex).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.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex).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 const isFreeMode = params.freeMode && params.freeMode.enabled;\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && (params.cssMode || isFreeMode)) {\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 = isFreeMode ? snapGrid[prevSnapIndex] : 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, initial) {\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 initial\n });\n}\n\nfunction loopFix(_temp) {\n let {\n slideRealIndex,\n slideTo = true,\n direction,\n setTranslate,\n activeSlideIndex,\n initial,\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 initialSlide\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 || swiper.params.effect === 'cards' && slides.length < slidesPerView + loopedSlides * 2) {\n showWarning('Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled or 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 const cols = gridEnabled ? Math.ceil(slides.length / params.grid.rows) : slides.length;\n const isInitialOverflow = initial && cols - initialSlide < slidesPerView && !centeredSlides;\n let activeIndex = isInitialOverflow ? initialSlide : swiper.activeIndex;\n if (typeof activeSlideIndex === 'undefined') {\n activeSlideIndex = swiper.getSlideIndex(slides.find(el => el.classList.contains(params.slideActiveClass)));\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 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 if (isInitialOverflow) {\n slidesAppended = Math.max(slidesAppended, slidesPerView - cols + initialSlide + 1);\n }\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 (swiper.params.effect === 'cards' && slides.length < slidesPerView + loopedSlides * 2) {\n if (appendSlidesIndexes.includes(activeSlideIndex)) {\n appendSlidesIndexes.splice(appendSlidesIndexes.indexOf(activeSlideIndex), 1);\n }\n if (prependSlidesIndexes.includes(activeSlideIndex)) {\n prependSlidesIndexes.splice(prependSlidesIndexes.indexOf(activeSlideIndex), 1);\n }\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 || !slidesEl || 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].find(t => t.identifier === data.touchId);\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 (rtl && (pageX > touches.startX && -swiper.translate <= swiper.maxTranslate() || pageX < touches.startX && -swiper.translate >= swiper.minTranslate())) {\n return;\n } else if (!rtl && (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 (params._loopSwapReset !== false && 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].find(t => t.identifier === data.touchId);\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 const document = getDocument();\n\n // Get breakpoint for window/container width and update parameters\n const breakpointsBase = params.breakpointsBase === 'window' || !params.breakpointsBase ? params.breakpointsBase : 'container';\n const breakpointContainer = ['window', 'container'].includes(params.breakpointsBase) || !params.breakpointsBase ? swiper.el : document.querySelector(params.breakpointsBase);\n const breakpoint = swiper.getBreakpoint(breakpoints, breakpointsBase, breakpointContainer);\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.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index));\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(undefined, true);\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.2.6\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2025 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: March 19, 2025\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 { graphql, useStaticQuery } from \"gatsby\";\n\ntype SiteSettingsModel = {\n name: string;\n legalName: string;\n baseUrl: string;\n logo: {\n src: string;\n alt: string\n width: number;\n height: number;\n };\n description: string;\n phone: string;\n email: string;\n image: string;\n foundingDate: number;\n founders: Array<{\n name: string;\n occupation: string;\n socialLink: string;\n }>\n businessAddress: {\n street: string;\n city: string;\n state: string;\n zip: string;\n };\n rating: {\n value: string;\n outOf: string;\n reviews: string;\n };\n socialLinks: string;\n gtmId: string;\n fbAppId: string;\n twitterAuthor: string;\n};\n\nexport const useSiteSettings = () => {\n const { site } = useStaticQuery<{\n site: SiteSettingsModel\n }>(siteSettingsQuery);\n\n return site;\n};\n\nconst siteSettingsQuery = graphql`\n query {\n site: siteJson {\n name\n legalName\n baseUrl\n logo {\n src\n alt\n width\n height\n }\n description\n phone\n email\n image\n foundingDate\n founders {\n name\n occupation\n socialLink\n }\n businessAddress {\n street\n city\n state\n zip\n }\n rating {\n value\n outOf\n reviews\n }\n socialLinks\n gtmId\n fbAppId\n twitterAuthor\n }\n }\n`;","import React from \"react\";\n\nimport { Modify } from \"@brz-types/modify\";\nimport { ButtonClasses, ButtonProps, ClickAwayListener, PaperProps, SwipeableDrawer, Tooltip, TooltipProps } from \"@mui/material\";\nimport { addPropsToChildren } from \"@brz-utils/add.props.to.children\";\nimport { useClass } from \"@breezerr\";\nimport { useBreakpoint } from \"@brz-utils/contexts/is.breakpoint\";\n\n\ntype PropsType = {\n button: React.ReactElement;\n children: React.ReactNode | React.ReactNode[];\n PopperProps?: PaperProps;\n title?: any\n}\n\nexport const HtmlTooltip = (props: Modify) => {\n const { title, button, children, ...other } = props;\n\n const { isMobile, isTablet } = useBreakpoint();\n const [open, setOpen] = React.useState(false);\n\n const actionElement: any = addPropsToChildren(props.button, {\n onClick: () => {\n setTimeout(() => {\n setOpen(true);\n }, 10)\n }\n });\n\n return isMobile || isTablet ? (\n <>\n {actionElement}\n\n {setOpen(false)}}\n onOpen={() => null}\n PaperProps={{\n className: useClass(`radius-top-left-1rem radius-top-right-1rem`)\n }}\n >\n {props.children}\n \n \n ) : (\n setOpen(false)}>\n {props.children}}\n >\n {actionElement}\n \n \n );\n};","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n return plural(ms, d, 'day') ||\n plural(ms, h, 'hour') ||\n plural(ms, m, 'minute') ||\n plural(ms, s, 'second') ||\n ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n return Math.ceil(ms / n) + ' ' + name + 's';\n}\n","import type { TinaMarkdownContent } from 'tinacms/dist/rich-text';\n\n//(.*)(?:<([^<>\\s]+)\\s{0,1}(.+)=[{\"](.+)[\"}]\\s{0,1}\\/>)(.*)\n\nexport const toTinaMarkdown = (value: string): TinaMarkdownContent | any => {\n const parts = value.match(/[^<>]+/g); \n\n return {\n type: 'root',\n children: parts ? parts.map(match => {\n \n if ( match.match(/CurrentYear/) ) {\n const [component, ...props] = match.split(/\\s/g);\n \n const p: { [key: string]: string } = {};\n\n props.forEach(prop => {\n const propParts = /([a-zA-Z]+)=[{\"'](.+)['\"}]/.exec(prop);\n if ( propParts ) {\n const [_, _prop, _value] = propParts;\n p[_prop] = _value;\n }\n });\n\n return {\n type: 'mdxJsxFlowElement',\n name: component,\n props: p,\n children: [{type: 'text', text: ''}]\n }\n }\n\n return {\n type: 'text',\n text: match || ''\n }\n }) : [{ type: 'text', text: '' }]\n }\n};","import React, { HTMLAttributes } from \"react\";\n\n// Utils\nimport { useClass } from \"@breezerr\";\nimport { newLinesToBreaks } from \"@brz-utils/newlines.to.breaks\";\n\n\n// Components\nimport { Button, Paper, PaperProps } from \"@mui/material\";\nimport { TextLink } from \"@brz-components/elements/text.link\";\n\n\n// Types\nimport { SectionFloatingCtaDataModel } from \"./types\";\nimport { LinkDataModel } from \"@brz-types/common/link.data.model\";\nimport { CSSProperties } from \"@mui/material/styles/createMixins\";\n\n\ntype SectionFloatingCtaProps = {\n headingText: string;\n text: string;\n buttons: Array;\n PaperProps?: PaperProps;\n} | {\n data: SectionFloatingCtaDataModel;\n PaperProps?: PaperProps;\n};\n\n\nfunction isSection(props: any): props is { data: SectionFloatingCtaDataModel } {\n return typeof props.data !== 'undefined';\n}\n\nconst SectionFloatingCta = (props: SectionFloatingCtaProps) => {\n const data = isSection(props) ? props.data : props;\n\n const hasValues = data.headingText || data.text || data.buttons;\n\n return (\n \n
\n \n
\n {data?.headingText ?

: null}\n {data?.text ? : null}\n

\n\n
{\n data.buttons?.map((button, index) => {\n return index === data.buttons.length-1 ? (\n \n ) : (\n \n )\n })\n }
\n
\n
\n );\n};\n\n\nexport default SectionFloatingCta;","/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n && 'undefined' != typeof chrome.storage\n ? chrome.storage.local\n : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n 'lightseagreen',\n 'forestgreen',\n 'goldenrod',\n 'dodgerblue',\n 'darkorchid',\n 'crimson'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n // double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '')\n + this.namespace\n + (useColors ? ' %c' : ' ')\n + args[0]\n + (useColors ? '%c ' : ' ')\n + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit')\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console\n && console.log\n && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch(e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nimport { jsxs, jsx } from \"react/jsx-runtime\";\nimport { forwardRef, useRef, useEffect, useCallback, useState } from \"react\";\nimport cx from \"classnames\";\nimport jsonp from \"jsonp\";\nfunction createIcon(iconConfig) {\n const Icon = (_a) => {\n var _b = _a, {\n bgStyle = {},\n borderRadius = 0,\n iconFillColor = \"white\",\n round = false,\n size = 64\n } = _b, rest = __objRest(_b, [\n \"bgStyle\",\n \"borderRadius\",\n \"iconFillColor\",\n \"round\",\n \"size\"\n ]);\n return /* @__PURE__ */ jsxs(\"svg\", __spreadProps(__spreadValues({ viewBox: \"0 0 64 64\", width: size, height: size }, rest), { children: [\n round ? /* @__PURE__ */ jsx(\"circle\", { cx: \"32\", cy: \"32\", r: \"32\", fill: iconConfig.color, style: bgStyle }) : /* @__PURE__ */ jsx(\n \"rect\",\n {\n width: \"64\",\n height: \"64\",\n rx: borderRadius,\n ry: borderRadius,\n fill: iconConfig.color,\n style: bgStyle\n }\n ),\n /* @__PURE__ */ jsx(\"path\", { d: iconConfig.path, fill: iconFillColor })\n ] }));\n };\n return Icon;\n}\nconst BlueskyIcon = createIcon({\n color: \"#1185FE\",\n path: \"M21.945 18.886C26.015 21.941 30.393 28.137 32 31.461 33.607 28.137 37.985 21.941 42.055 18.886 44.992 16.681 49.75 14.975 49.75 20.403 49.75 21.487 49.128 29.51 48.764 30.813 47.497 35.341 42.879 36.496 38.772 35.797 45.951 37.019 47.778 41.067 43.833 45.114 36.342 52.801 33.066 43.186 32.227 40.722 32.073 40.27 32.001 40.059 32 40.238 31.999 40.059 31.927 40.27 31.773 40.722 30.934 43.186 27.658 52.801 20.167 45.114 16.222 41.067 18.049 37.019 25.228 35.797 21.121 36.496 16.503 35.341 15.236 30.813 14.872 29.51 14.25 21.487 14.25 20.403 14.25 14.975 19.008 16.681 21.945 18.886Z\"\n});\nclass AssertionError extends Error {\n constructor(message) {\n super(message);\n this.name = \"AssertionError\";\n }\n}\nfunction assert(value, message) {\n if (!value) {\n throw new AssertionError(message);\n }\n}\nfunction objectToGetParams(object) {\n const params = Object.entries(object).filter(([, value]) => value !== void 0 && value !== null).map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`);\n return params.length > 0 ? `?${params.join(\"&\")}` : \"\";\n}\nconst isPromise = (obj) => !!obj && (typeof obj === \"object\" || typeof obj === \"function\") && \"then\" in obj && typeof obj.then === \"function\";\nconst getBoxPositionOnWindowCenter = (width, height) => ({\n left: window.outerWidth / 2 + (window.screenX || window.screenLeft || 0) - width / 2,\n top: window.outerHeight / 2 + (window.screenY || window.screenTop || 0) - height / 2\n});\nconst getBoxPositionOnScreenCenter = (width, height) => ({\n top: (window.screen.height - height) / 2,\n left: (window.screen.width - width) / 2\n});\nfunction windowOpen(url, _a, onClose) {\n var _b = _a, { height, width } = _b, configRest = __objRest(_b, [\"height\", \"width\"]);\n const config = __spreadValues({\n height,\n width,\n location: \"no\",\n toolbar: \"no\",\n status: \"no\",\n directories: \"no\",\n menubar: \"no\",\n scrollbars: \"yes\",\n resizable: \"no\",\n centerscreen: \"yes\",\n chrome: \"yes\"\n }, configRest);\n const shareDialog = window.open(\n url,\n \"\",\n Object.keys(config).map((key) => `${key}=${config[key]}`).join(\", \")\n );\n if (onClose) {\n const interval = window.setInterval(() => {\n try {\n if (shareDialog === null || shareDialog.closed) {\n window.clearInterval(interval);\n onClose(shareDialog);\n }\n } catch (e) {\n console.error(e);\n }\n }, 1e3);\n }\n return shareDialog;\n}\nfunction ShareButton(_c) {\n var _d = _c, {\n beforeOnClick,\n children,\n className,\n disabled,\n disabledStyle = { opacity: 0.6 },\n forwardedRef,\n htmlTitle,\n networkLink,\n networkName: networkName,\n onClick: onClick,\n onShareWindowClose,\n openShareDialogOnClick = true,\n opts,\n resetButtonStyle = true,\n style,\n title: title,\n url: url,\n windowHeight = 400,\n windowPosition = \"windowCenter\",\n windowWidth = 550\n } = _d, rest = __objRest(_d, [\n \"beforeOnClick\",\n \"children\",\n \"className\",\n \"disabled\",\n \"disabledStyle\",\n \"forwardedRef\",\n \"htmlTitle\",\n \"networkLink\",\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n \"networkName\",\n // deconstructed from ...rest to prevent passing it to the button element\n \"onClick\",\n \"onShareWindowClose\",\n \"openShareDialogOnClick\",\n \"opts\",\n \"resetButtonStyle\",\n \"style\",\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n \"title\",\n // deconstructed from ...rest to prevent passing it to the button element\n \"url\",\n \"windowHeight\",\n \"windowPosition\",\n \"windowWidth\"\n ]);\n const handleClick = async (event) => {\n const link = networkLink(url, opts);\n if (disabled) {\n return;\n }\n event.preventDefault();\n if (beforeOnClick) {\n const returnVal = beforeOnClick();\n if (isPromise(returnVal)) {\n await returnVal;\n }\n }\n if (openShareDialogOnClick) {\n const windowConfig = __spreadValues({\n height: windowHeight,\n width: windowWidth\n }, windowPosition === \"windowCenter\" ? getBoxPositionOnWindowCenter(windowWidth, windowHeight) : getBoxPositionOnScreenCenter(windowWidth, windowHeight));\n windowOpen(link, windowConfig, onShareWindowClose);\n }\n if (onClick) {\n onClick(event, link);\n }\n };\n const newClassName = cx(\n \"react-share__ShareButton\",\n {\n \"react-share__ShareButton--disabled\": !!disabled,\n disabled: !!disabled\n },\n className\n );\n const newStyle = resetButtonStyle ? __spreadValues(__spreadValues({\n backgroundColor: \"transparent\",\n border: \"none\",\n padding: 0,\n font: \"inherit\",\n color: \"inherit\",\n cursor: \"pointer\"\n }, style), disabled && disabledStyle) : __spreadValues(__spreadValues({}, style), disabled && disabledStyle);\n return /* @__PURE__ */ jsx(\n \"button\",\n __spreadProps(__spreadValues({}, rest), {\n className: newClassName,\n onClick: handleClick,\n ref: forwardedRef,\n style: newStyle,\n title: htmlTitle,\n children\n })\n );\n}\nfunction createShareButton(networkName, link, optsMap, defaultProps) {\n const CreatedButton = (props, ref) => {\n const opts = optsMap(props);\n const passedProps = __spreadValues({}, props);\n const optsKeys = Object.keys(opts);\n optsKeys.forEach((key) => {\n delete passedProps[key];\n });\n return /* @__PURE__ */ jsx(\n ShareButton,\n __spreadProps(__spreadValues(__spreadValues({}, defaultProps), passedProps), {\n forwardedRef: ref,\n networkName,\n networkLink: link,\n opts\n })\n );\n };\n CreatedButton.displayName = `ShareButton-${networkName}`;\n return forwardRef(CreatedButton);\n}\nfunction blueskyLink(url, { title, separator }) {\n assert(url, \"bluesky.url\");\n return \"https://bsky.app/intent/compose\" + objectToGetParams({\n text: title ? title + separator + url : url\n });\n}\nconst BlueskyShareButton = createShareButton(\n \"bluesky\",\n blueskyLink,\n (props) => ({\n title: props.title,\n separator: props.separator || \" \"\n }),\n {\n windowWidth: 660,\n windowHeight: 460,\n windowPosition: \"windowCenter\"\n }\n);\nconst EmailIcon = createIcon({\n color: \"#7f7f7f\",\n path: \"M17,22v20h30V22H17z M41.1,25L32,32.1L22.9,25H41.1z M20,39V26.6l12,9.3l12-9.3V39H20z\"\n});\nfunction emailLink(url, { subject, body, separator }) {\n return \"mailto:\" + objectToGetParams({ subject, body: body ? body + separator + url : url });\n}\nconst EmailShareButton = createShareButton(\n \"email\",\n emailLink,\n (props) => ({\n subject: props.subject,\n body: props.body,\n separator: props.separator || \" \"\n }),\n {\n openShareDialogOnClick: false,\n onClick: (_, link) => {\n window.location.href = link;\n }\n }\n);\nconst FacebookIcon = createIcon({\n color: \"#0965FE\",\n path: \"M34.1,47V33.3h4.6l0.7-5.3h-5.3v-3.4c0-1.5,0.4-2.6,2.6-2.6l2.8,0v-4.8c-0.5-0.1-2.2-0.2-4.1-0.2 c-4.1,0-6.9,2.5-6.9,7V28H24v5.3h4.6V47H34.1z\"\n});\nconst FacebookMessengerIcon = createIcon({\n color: \"#0A7CFF\",\n path: \"M 53.066406 21.871094 C 52.667969 21.339844 51.941406 21.179688 51.359375 21.496094 L 37.492188 29.058594 L 28.867188 21.660156 C 28.339844 21.207031 27.550781 21.238281 27.054688 21.730469 L 11.058594 37.726562 C 10.539062 38.25 10.542969 39.09375 11.0625 39.613281 C 11.480469 40.027344 12.121094 40.121094 12.640625 39.839844 L 26.503906 32.28125 L 35.136719 39.679688 C 35.667969 40.132812 36.457031 40.101562 36.949219 39.609375 L 52.949219 23.613281 C 53.414062 23.140625 53.464844 22.398438 53.066406 21.871094 Z M 53.066406 21.871094\"\n});\nfunction facebookMessengerLink(url, { appId, redirectUri, to }) {\n return \"https://www.facebook.com/dialog/send\" + objectToGetParams({\n link: url,\n redirect_uri: redirectUri || url,\n app_id: appId,\n to\n });\n}\nconst FacebookMessengerShareButton = createShareButton(\n \"facebookmessenger\",\n facebookMessengerLink,\n (props) => ({\n appId: props.appId,\n redirectUri: props.redirectUri,\n to: props.to\n }),\n {\n windowWidth: 1e3,\n windowHeight: 820\n }\n);\nfunction facebookLink(url, { hashtag }) {\n assert(url, \"facebook.url\");\n return \"https://www.facebook.com/sharer/sharer.php\" + objectToGetParams({ u: url, hashtag });\n}\nconst FacebookShareButton = createShareButton(\n \"facebook\",\n facebookLink,\n (props) => ({ hashtag: props.hashtag }),\n {\n windowWidth: 550,\n windowHeight: 400\n }\n);\nfunction useIsMounted() {\n const isMounted = useRef(false);\n useEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n return useCallback(() => isMounted.current, []);\n}\nfunction SocialMediaShareCount(_e) {\n var _f = _e, {\n children = (shareCount) => shareCount,\n className,\n getCount,\n url\n } = _f, rest = __objRest(_f, [\n \"children\",\n \"className\",\n \"getCount\",\n \"url\"\n ]);\n const isMounted = useIsMounted();\n const [count, setCount] = useState(void 0);\n const [isLoading, setIsLoading] = useState(false);\n useEffect(() => {\n setIsLoading(true);\n getCount(url, (count2) => {\n if (isMounted()) {\n setCount(count2);\n setIsLoading(false);\n }\n });\n }, [url]);\n return /* @__PURE__ */ jsx(\"span\", __spreadProps(__spreadValues({ className: cx(\"react-share__ShareCount\", className) }, rest), { children: !isLoading && count !== void 0 && children(count) }));\n}\nfunction createShareCount(getCount) {\n const ShareCount = (props) => /* @__PURE__ */ jsx(SocialMediaShareCount, __spreadValues({ getCount }, props));\n ShareCount.displayName = `ShareCount(${getCount.name})`;\n return ShareCount;\n}\nfunction getFacebookShareCount(shareUrl, callback) {\n const endpoint = `https://graph.facebook.com/?id=${shareUrl}&fields=og_object{engagement}`;\n jsonp(endpoint, (err, data) => {\n callback(\n !err && data && data.og_object && data.og_object.engagement ? data.og_object.engagement.count : void 0\n );\n });\n}\nconst FacebookShareCount = createShareCount(getFacebookShareCount);\nconst HatenaIcon = createIcon({\n color: \"#009ad9\",\n path: \"M 36.164062 33.554688 C 34.988281 32.234375 33.347656 31.5 31.253906 31.34375 C 33.125 30.835938 34.476562 30.09375 35.335938 29.09375 C 36.191406 28.09375 36.609375 26.78125 36.609375 25.101562 C 36.628906 23.875 36.332031 22.660156 35.75 21.578125 C 35.160156 20.558594 34.292969 19.71875 33.253906 19.160156 C 32.304688 18.640625 31.175781 18.265625 29.847656 18.042969 C 28.523438 17.824219 26.195312 17.730469 22.867188 17.730469 L 14.769531 17.730469 L 14.769531 47.269531 L 23.113281 47.269531 C 26.46875 47.269531 28.886719 47.15625 30.367188 46.929688 C 31.851562 46.695312 33.085938 46.304688 34.085938 45.773438 C 35.289062 45.148438 36.28125 44.179688 36.933594 42.992188 C 37.597656 41.796875 37.933594 40.402344 37.933594 38.816406 C 37.933594 36.621094 37.347656 34.867188 36.164062 33.554688 Z M 22.257812 24.269531 L 23.984375 24.269531 C 25.988281 24.269531 27.332031 24.496094 28.015625 24.945312 C 28.703125 25.402344 29.042969 26.183594 29.042969 27.285156 C 29.042969 28.390625 28.664062 29.105469 27.9375 29.550781 C 27.210938 29.992188 25.84375 30.199219 23.855469 30.199219 L 22.257812 30.199219 Z M 29.121094 41.210938 C 28.328125 41.691406 26.976562 41.925781 25.078125 41.925781 L 22.257812 41.925781 L 22.257812 35.488281 L 25.195312 35.488281 C 27.144531 35.488281 28.496094 35.738281 29.210938 36.230469 C 29.925781 36.726562 30.304688 37.582031 30.304688 38.832031 C 30.304688 40.078125 29.914062 40.742188 29.105469 41.222656 Z M 29.121094 41.210938 M 46.488281 39.792969 C 44.421875 39.792969 42.742188 41.46875 42.742188 43.535156 C 42.742188 45.605469 44.421875 47.28125 46.488281 47.28125 C 48.554688 47.28125 50.230469 45.605469 50.230469 43.535156 C 50.230469 41.46875 48.554688 39.792969 46.488281 39.792969 Z M 46.488281 39.792969 M 43.238281 17.730469 L 49.738281 17.730469 L 49.738281 37.429688 L 43.238281 37.429688 Z M 43.238281 17.730469 \"\n});\nfunction hatenaLink(url, { title }) {\n assert(url, \"hatena.url\");\n return `http://b.hatena.ne.jp/add?mode=confirm&url=${url}&title=${title}`;\n}\nconst HatenaShareButton = createShareButton(\n \"hatena\",\n hatenaLink,\n (props) => ({\n title: props.title\n }),\n {\n windowWidth: 660,\n windowHeight: 460,\n windowPosition: \"windowCenter\"\n }\n);\nfunction getHatenaShareCount(shareUrl, callback) {\n const url = \"https://bookmark.hatenaapis.com/count/entry\";\n jsonp(\n url + objectToGetParams({\n url: shareUrl\n }),\n (err, data) => {\n callback(data != null ? data : void 0);\n }\n );\n}\nconst HatenaShareCount = createShareCount(getHatenaShareCount);\nconst InstapaperIcon = createIcon({\n color: \"#1F1F1F\",\n path: \"M35.688 43.012c0 2.425.361 2.785 3.912 3.056V48H24.401v-1.932c3.555-.27 3.912-.63 3.912-3.056V20.944c0-2.379-.36-2.785-3.912-3.056V16H39.6v1.888c-3.55.27-3.912.675-3.912 3.056v22.068h.001z\"\n});\nfunction instapaperLink(url, { title, description }) {\n assert(url, \"instapaper.url\");\n return \"http://www.instapaper.com/hello2\" + objectToGetParams({\n url,\n title,\n description\n });\n}\nconst InstapaperShareButton = createShareButton(\n \"instapaper\",\n instapaperLink,\n (props) => ({\n title: props.title,\n description: props.description\n }),\n {\n windowWidth: 500,\n windowHeight: 500,\n windowPosition: \"windowCenter\"\n }\n);\nconst LineIcon = createIcon({\n color: \"#00b800\",\n path: \"M52.62 30.138c0 3.693-1.432 7.019-4.42 10.296h.001c-4.326 4.979-14 11.044-16.201 11.972-2.2.927-1.876-.591-1.786-1.112l.294-1.765c.069-.527.142-1.343-.066-1.865-.232-.574-1.146-.872-1.817-1.016-9.909-1.31-17.245-8.238-17.245-16.51 0-9.226 9.251-16.733 20.62-16.733 11.37 0 20.62 7.507 20.62 16.733zM27.81 25.68h-1.446a.402.402 0 0 0-.402.401v8.985c0 .221.18.4.402.4h1.446a.401.401 0 0 0 .402-.4v-8.985a.402.402 0 0 0-.402-.401zm9.956 0H36.32a.402.402 0 0 0-.402.401v5.338L31.8 25.858a.39.39 0 0 0-.031-.04l-.002-.003-.024-.025-.008-.007a.313.313 0 0 0-.032-.026.255.255 0 0 1-.021-.014l-.012-.007-.021-.012-.013-.006-.023-.01-.013-.005-.024-.008-.014-.003-.023-.005-.017-.002-.021-.003-.021-.002h-1.46a.402.402 0 0 0-.402.401v8.985c0 .221.18.4.402.4h1.446a.401.401 0 0 0 .402-.4v-5.337l4.123 5.568c.028.04.063.072.101.099l.004.003a.236.236 0 0 0 .025.015l.012.006.019.01a.154.154 0 0 1 .019.008l.012.004.028.01.005.001a.442.442 0 0 0 .104.013h1.446a.4.4 0 0 0 .401-.4v-8.985a.402.402 0 0 0-.401-.401zm-13.442 7.537h-3.93v-7.136a.401.401 0 0 0-.401-.401h-1.447a.4.4 0 0 0-.401.401v8.984a.392.392 0 0 0 .123.29c.072.068.17.111.278.111h5.778a.4.4 0 0 0 .401-.401v-1.447a.401.401 0 0 0-.401-.401zm21.429-5.287c.222 0 .401-.18.401-.402v-1.446a.401.401 0 0 0-.401-.402h-5.778a.398.398 0 0 0-.279.113l-.005.004-.006.008a.397.397 0 0 0-.111.276v8.984c0 .108.043.206.112.278l.005.006a.401.401 0 0 0 .284.117h5.778a.4.4 0 0 0 .401-.401v-1.447a.401.401 0 0 0-.401-.401h-3.93v-1.519h3.93c.222 0 .401-.18.401-.402V29.85a.401.401 0 0 0-.401-.402h-3.93V27.93h3.93z\"\n});\nfunction lineLink(url, { title }) {\n assert(url, \"line.url\");\n return \"https://social-plugins.line.me/lineit/share\" + objectToGetParams({\n url,\n text: title\n });\n}\nconst LineShareButton = createShareButton(\n \"line\",\n lineLink,\n (props) => ({\n title: props.title\n }),\n {\n windowWidth: 500,\n windowHeight: 500\n }\n);\nconst LinkedinIcon = createIcon({\n color: \"#0077B5\",\n path: \"M20.4,44h5.4V26.6h-5.4V44z M23.1,18c-1.7,0-3.1,1.4-3.1,3.1c0,1.7,1.4,3.1,3.1,3.1 c1.7,0,3.1-1.4,3.1-3.1C26.2,19.4,24.8,18,23.1,18z M39.5,26.2c-2.6,0-4.4,1.4-5.1,2.8h-0.1v-2.4h-5.2V44h5.4v-8.6 c0-2.3,0.4-4.5,3.2-4.5c2.8,0,2.8,2.6,2.8,4.6V44H46v-9.5C46,29.8,45,26.2,39.5,26.2z\"\n});\nfunction linkedinLink(url, { title, summary, source }) {\n assert(url, \"linkedin.url\");\n return \"https://linkedin.com/shareArticle\" + objectToGetParams({ url, mini: \"true\", title, summary, source });\n}\nconst LinkedinShareButton = createShareButton(\n \"linkedin\",\n linkedinLink,\n ({ title, summary, source }) => ({ title, summary, source }),\n {\n windowWidth: 750,\n windowHeight: 600\n }\n);\nconst LivejournalIcon = createIcon({\n color: \"#21A5D8\",\n path: \"M18.3407821,28.1764706 L21.9441341,31.789916 L33.0055865,42.882353 C33.0055865,42.882353 33.0893855,42.9663866 33.0893855,42.9663866 L46.6648046,47 C46.6648046,47 46.6648046,47 46.7486034,47 C46.8324022,47 46.8324022,47 46.9162012,46.9159664 C47,46.8319327 47,46.8319327 47,46.7478991 L42.9776536,33.1344537 C42.9776536,33.1344537 42.9776536,33.1344537 42.8938548,33.0504202 L31.1620111,21.3697479 L31.1620111,21.3697479 L28.1452514,18.2605042 C27.3072626,17.4201681 26.5530726,17 25.7150838,17 C24.2905028,17 23.0335195,18.3445378 21.5251397,19.8571429 C21.273743,20.1092437 20.9385475,20.4453781 20.6871508,20.697479 C20.3519553,21.0336134 20.1005586,21.2857143 19.849162,21.5378151 C18.3407821,22.9663866 17.0837989,24.2268908 17,25.7394958 C17.0837989,26.4957983 17.5027933,27.3361345 18.3407821,28.1764706 Z M39.9012319,39.6134454 C39.7336341,39.4453781 39.4822374,37.6806724 40.2364275,36.8403362 C40.9906174,36.0840337 41.6610084,36 42.1638017,36 C42.3313995,36 42.4989973,36 42.5827961,36 L44.8453659,43.5630253 L43.5883828,44.8235295 L36.0464833,42.5546218 C35.9626843,42.2184874 35.8788855,41.2100841 36.8844722,40.2016807 C37.2196676,39.8655463 37.8900587,39.6134454 38.5604498,39.6134454 C39.147042,39.6134454 39.5660364,39.7815126 39.5660364,39.7815126 C39.6498353,39.8655463 39.8174331,39.8655463 39.8174331,39.7815126 C39.9850307,39.7815126 39.9850307,39.697479 39.9012319,39.6134454 Z\"\n});\nfunction livejournalLink(url, { title, description }) {\n assert(url, \"livejournal.url\");\n return \"https://www.livejournal.com/update.bml\" + objectToGetParams({\n subject: title,\n event: description\n });\n}\nconst LivejournalShareButton = createShareButton(\n \"livejournal\",\n livejournalLink,\n (props) => ({\n title: props.title,\n description: props.description\n }),\n {\n windowWidth: 660,\n windowHeight: 460\n }\n);\nconst MailruIcon = createIcon({\n color: \"#168DE2\",\n path: \"M39.7107745,17 C41.6619755,17 43.3204965,18.732852 43.3204965,21.0072202 C43.3204965,23.2815885 41.7595357,25.0144404 39.7107745,25.0144404 C37.7595732,25.0144404 36.1010522,23.2815885 36.1010522,21.0072202 C36.1010522,18.732852 37.7595732,17 39.7107745,17 Z M24.3938451,17 C26.3450463,17 28.0035672,18.732852 28.0035672,21.0072202 C28.0035672,23.2815885 26.4426063,25.0144404 24.3938451,25.0144404 C22.4426439,25.0144404 20.7841229,23.2815885 20.7841229,21.0072202 C20.7841229,18.732852 22.4426439,17 24.3938451,17 Z M51.9057817,43.4259928 C51.7106617,44.0758123 51.4179815,44.6173285 50.9301812,44.9422383 C50.637501,45.1588448 50.2472607,45.267148 49.8570205,45.267148 C49.07654,45.267148 48.3936197,44.833935 48.0033795,44.0758123 L46.2472985,40.7184115 L45.759498,41.2599278 C42.5400162,44.9422383 37.466893,47 32.0035297,47 C26.5401664,47 21.5646034,44.9422383 18.2475614,41.2599278 L17.7597611,40.7184115 L16.00368,44.0758123 C15.6134398,44.833935 14.9305194,45.267148 14.1500389,45.267148 C13.7597986,45.267148 13.3695584,45.1588448 13.0768782,44.9422383 C12.0037176,44.2924187 11.7110374,42.7761733 12.2963978,41.5848375 L16.7841605,33.0288807 C17.1744007,32.270758 17.8573211,31.8375453 18.6378016,31.8375453 C19.0280418,31.8375453 19.4182821,31.9458485 19.7109623,32.1624548 C20.7841229,32.8122743 21.0768031,34.3285197 20.4914427,35.5198555 L20.1012025,36.2779783 L20.2963226,36.602888 C22.4426439,39.9602888 27.0279667,42.234657 31.9059697,42.234657 C36.7839727,42.234657 41.3692955,40.068592 43.5156167,36.602888 L43.7107367,36.2779783 L43.3204965,35.6281587 C43.0278165,35.0866425 42.9302562,34.436823 43.1253765,33.7870035 C43.3204965,33.137184 43.6131767,32.5956678 44.100977,32.270758 C44.3936572,32.0541515 44.7838975,31.9458485 45.1741377,31.9458485 C45.9546182,31.9458485 46.6375385,32.3790613 47.0277787,33.137184 L51.5155415,41.6931408 C52.003342,42.234657 52.100902,42.8844765 51.9057817,43.4259928 Z\"\n});\nfunction mailruLink(url, { title, description, imageUrl }) {\n assert(url, \"mailru.url\");\n return \"https://connect.mail.ru/share\" + objectToGetParams({\n url,\n title,\n description,\n image_url: imageUrl\n });\n}\nconst MailruShareButton = createShareButton(\n \"mailru\",\n mailruLink,\n (props) => ({\n title: props.title,\n description: props.description,\n imageUrl: props.imageUrl\n }),\n {\n windowWidth: 660,\n windowHeight: 460\n }\n);\nconst OKIcon = createIcon({\n color: \"#F97400\",\n path: \"M39,30c-1,0-3,2-7,2s-6-2-7-2c-1.1,0-2,0.9-2,2c0,1,0.6,1.5,1,1.7c1.2,0.7,5,2.3,5,2.3l-4.3,5.4 c0,0-0.8,0.9-0.8,1.6c0,1.1,0.9,2,2,2c1,0,1.5-0.7,1.5-0.7S32,39,32,39c0,0,4.5,5.3,4.5,5.3S37,45,38,45c1.1,0,2-0.9,2-2 c0-0.6-0.8-1.6-0.8-1.6L35,36c0,0,3.8-1.6,5-2.3c0.4-0.3,1-0.7,1-1.7C41,30.9,40.1,30,39,30z M32,15c-3.9,0-7,3.1-7,7s3.1,7,7,7c3.9,0,7-3.1,7-7S35.9,15,32,15z M32,25.5 c-1.9,0-3.5-1.6-3.5-3.5c0-1.9,1.6-3.5,3.5-3.5c1.9,0,3.5,1.6,3.5,3.5C35.5,23.9,33.9,22.5,35,22.5z \"\n});\nfunction okLink(url, { title, description, image }) {\n assert(url, \"ok.url\");\n return \"https://connect.ok.ru/offer\" + objectToGetParams({\n url,\n title,\n description,\n imageUrl: image\n });\n}\nconst OKShareButton = createShareButton(\n \"ok\",\n okLink,\n (props) => ({\n title: props.title,\n description: props.description,\n image: props.image\n }),\n {\n windowWidth: 588,\n windowHeight: 480,\n windowPosition: \"screenCenter\"\n }\n);\nfunction getOKShareCount(shareUrl, callback) {\n if (!window.OK) {\n window.OK = {\n Share: {\n count: function count(index2, _count) {\n var _a, _b;\n (_b = (_a = window.OK.callbacks)[index2]) == null ? void 0 : _b.call(_a, _count);\n }\n },\n callbacks: []\n };\n }\n const url = \"https://connect.ok.ru/dk\";\n const index = window.OK.callbacks.length;\n window.ODKL = {\n updateCount(index2, count) {\n var _a, _b;\n const callbackIndex = index2 === \"\" ? 0 : parseInt(index2.replace(\"react-share-\", \"\"), 10);\n (_b = (_a = window.OK.callbacks)[callbackIndex]) == null ? void 0 : _b.call(_a, count === \"\" ? void 0 : parseInt(count, 10));\n }\n };\n window.OK.callbacks.push(callback);\n return jsonp(\n url + objectToGetParams({\n \"st.cmd\": \"extLike\",\n uid: `react-share-${index}`,\n ref: shareUrl\n })\n );\n}\nconst OKShareCount = createShareCount(getOKShareCount);\nconst PinterestIcon = createIcon({\n color: \"#E60023\",\n path: \"M32,16c-8.8,0-16,7.2-16,16c0,6.6,3.9,12.2,9.6,14.7c0-1.1,0-2.5,0.3-3.7 c0.3-1.3,2.1-8.7,2.1-8.7s-0.5-1-0.5-2.5c0-2.4,1.4-4.1,3.1-4.1c1.5,0,2.2,1.1,2.2,2.4c0,1.5-0.9,3.7-1.4,5.7 c-0.4,1.7,0.9,3.1,2.5,3.1c3,0,5.1-3.9,5.1-8.5c0-3.5-2.4-6.1-6.7-6.1c-4.9,0-7.9,3.6-7.9,7.7c0,1.4,0.4,2.4,1.1,3.1 c0.3,0.3,0.3,0.5,0.2,0.9c-0.1,0.3-0.3,1-0.3,1.3c-0.1,0.4-0.4,0.6-0.8,0.4c-2.2-0.9-3.3-3.4-3.3-6.1c0-4.5,3.8-10,11.4-10 c6.1,0,10.1,4.4,10.1,9.2c0,6.3-3.5,11-8.6,11c-1.7,0-3.4-0.9-3.9-2c0,0-0.9,3.7-1.1,4.4c-0.3,1.2-1,2.5-1.6,3.4 c1.4,0.4,3,0.7,4.5,0.7c8.8,0,16-7.2,16-16C48,23.2,40.8,16,32,16z\"\n});\nfunction pinterestLink(url, { media, description, pinId }) {\n if (pinId) {\n return `https://pinterest.com/pin/${pinId}/repin/x/`;\n }\n assert(url, \"pinterest.url\");\n assert(media, \"pinterest.media\");\n return \"https://pinterest.com/pin/create/button/\" + objectToGetParams({\n url,\n media,\n description\n });\n}\nconst PinterestShareButton = createShareButton(\n \"pinterest\",\n pinterestLink,\n (props) => ({\n media: props.media,\n description: props.description,\n pinId: props.pinId\n }),\n {\n windowWidth: 1e3,\n windowHeight: 730\n }\n);\nfunction getPinterestShareCount(shareUrl, callback) {\n const url = \"https://api.pinterest.com/v1/urls/count.json\";\n jsonp(\n url + objectToGetParams({\n url: shareUrl\n }),\n (err, data) => {\n callback(data ? data.count : void 0);\n }\n );\n}\nconst PinterestShareCount = createShareCount(getPinterestShareCount);\nconst PocketIcon = createIcon({\n color: \"#EF3F56\",\n path: \"M41.084 29.065l-7.528 7.882a2.104 2.104 0 0 1-1.521.666 2.106 2.106 0 0 1-1.522-.666l-7.528-7.882c-.876-.914-.902-2.43-.065-3.384.84-.955 2.228-.987 3.1-.072l6.015 6.286 6.022-6.286c.88-.918 2.263-.883 3.102.071.841.938.82 2.465-.06 3.383l-.015.002zm6.777-10.976C47.463 16.84 46.361 16 45.14 16H18.905c-1.2 0-2.289.82-2.716 2.044-.125.363-.189.743-.189 1.125v10.539l.112 2.096c.464 4.766 2.73 8.933 6.243 11.838.06.053.125.102.19.153l.04.033c1.882 1.499 3.986 2.514 6.259 3.014a14.662 14.662 0 0 0 6.13.052c.118-.042.235-.065.353-.087.03 0 .065-.022.098-.042a15.395 15.395 0 0 0 6.011-2.945l.039-.045.18-.153c3.502-2.902 5.765-7.072 6.248-11.852L48 29.674v-10.52c0-.366-.041-.728-.161-1.08l.022.015z\"\n});\nfunction pocketLink(url, { title }) {\n assert(url, \"pocket.url\");\n return \"https://getpocket.com/save\" + objectToGetParams({\n url,\n title\n });\n}\nconst PocketShareButton = createShareButton(\n \"pocket\",\n pocketLink,\n (props) => ({\n title: props.title\n }),\n {\n windowWidth: 500,\n windowHeight: 500\n }\n);\nconst RedditIcon = createIcon({\n color: \"#FF5700\",\n path: \"M 53.34375 32 C 53.277344 30.160156 52.136719 28.53125 50.429688 27.839844 C 48.722656 27.148438 46.769531 27.523438 45.441406 28.800781 C 41.800781 26.324219 37.519531 24.957031 33.121094 24.863281 L 35.199219 14.878906 L 42.046875 16.320312 C 42.214844 17.882812 43.496094 19.09375 45.066406 19.171875 C 46.636719 19.253906 48.03125 18.183594 48.359375 16.644531 C 48.6875 15.105469 47.847656 13.558594 46.382812 12.992188 C 44.914062 12.425781 43.253906 13.007812 42.464844 14.367188 L 34.625 12.800781 C 34.363281 12.742188 34.09375 12.792969 33.871094 12.9375 C 33.648438 13.082031 33.492188 13.308594 33.441406 13.566406 L 31.070312 24.671875 C 26.617188 24.738281 22.277344 26.105469 18.59375 28.609375 C 17.242188 27.339844 15.273438 26.988281 13.570312 27.707031 C 11.863281 28.429688 10.746094 30.089844 10.71875 31.941406 C 10.691406 33.789062 11.757812 35.484375 13.441406 36.257812 C 13.402344 36.726562 13.402344 37.195312 13.441406 37.664062 C 13.441406 44.832031 21.792969 50.65625 32.097656 50.65625 C 42.398438 50.65625 50.753906 44.832031 50.753906 37.664062 C 50.789062 37.195312 50.789062 36.726562 50.753906 36.257812 C 52.363281 35.453125 53.371094 33.800781 53.34375 32 Z M 21.34375 35.199219 C 21.34375 33.433594 22.777344 32 24.542969 32 C 26.3125 32 27.742188 33.433594 27.742188 35.199219 C 27.742188 36.96875 26.3125 38.398438 24.542969 38.398438 C 22.777344 38.398438 21.34375 36.96875 21.34375 35.199219 Z M 39.9375 44 C 37.664062 45.710938 34.871094 46.582031 32.03125 46.464844 C 29.191406 46.582031 26.398438 45.710938 24.128906 44 C 23.847656 43.65625 23.871094 43.15625 24.183594 42.839844 C 24.5 42.527344 25 42.503906 25.34375 42.785156 C 27.269531 44.195312 29.617188 44.90625 32 44.800781 C 34.386719 44.929688 36.746094 44.242188 38.6875 42.847656 C 39.042969 42.503906 39.605469 42.511719 39.953125 42.863281 C 40.296875 43.21875 40.289062 43.785156 39.9375 44.128906 Z M 39.359375 38.527344 C 37.59375 38.527344 36.160156 37.09375 36.160156 35.328125 C 36.160156 33.5625 37.59375 32.128906 39.359375 32.128906 C 41.128906 32.128906 42.558594 33.5625 42.558594 35.328125 C 42.59375 36.203125 42.269531 37.054688 41.65625 37.6875 C 41.046875 38.316406 40.203125 38.664062 39.328125 38.65625 Z M 39.359375 38.527344\"\n});\nfunction redditLink(url, { title }) {\n assert(url, \"reddit.url\");\n return \"https://www.reddit.com/web/submit\" + objectToGetParams({\n url,\n title\n });\n}\nconst RedditShareButton = createShareButton(\n \"reddit\",\n redditLink,\n (props) => ({\n title: props.title\n }),\n {\n windowWidth: 660,\n windowHeight: 460,\n windowPosition: \"windowCenter\"\n }\n);\nfunction gabLink(url, { title }) {\n assert(url, \"gab.url\");\n return \"https://gab.com/compose\" + objectToGetParams({\n url,\n text: title\n });\n}\nconst GabShareButton = createShareButton(\n \"gab\",\n gabLink,\n (props) => ({\n title: props.title\n }),\n {\n windowWidth: 660,\n windowHeight: 640,\n windowPosition: \"windowCenter\"\n }\n);\nconst GabIcon = createIcon({\n color: \"#00d178\",\n path: \"m17.0506,23.97457l5.18518,0l0,14.23933c0,6.82699 -3.72695,10.09328 -9.33471,10.09328c-2.55969,0 -4.82842,-0.87286 -6.22084,-2.0713l2.07477,-3.88283c1.19844,0.81051 2.33108,1.29543 3.85511,1.29543c2.75366,0 4.44049,-1.97432 4.44049,-4.82149l0,-0.87286c-1.16728,1.39242 -2.81947,2.0713 -4.63446,2.0713c-4.44048,0 -7.81068,-3.68885 -7.81068,-8.28521c0,-4.59289 3.37019,-8.28174 7.81068,-8.28174c1.81499,0 3.46718,0.67888 4.63446,2.0713l0,-1.55521zm-3.62997,11.39217c1.97777,0 3.62997,-1.6522 3.62997,-3.62652c0,-1.97432 -1.6522,-3.62305 -3.62997,-3.62305c-1.97778,0 -3.62997,1.64873 -3.62997,3.62305c0,1.97432 1.65219,3.62652 3.62997,3.62652zm25.7077,4.13913l-5.18518,0l0,-1.29197c-1.00448,1.13264 -2.3969,1.81152 -4.21188,1.81152c-3.62997,0 -5.63893,-2.52504 -5.63893,-5.4034c0,-4.27076 5.251,-5.85715 9.78846,-4.49937c-0.09698,-1.39241 -0.9733,-2.39343 -2.78829,-2.39343c-1.26426,0 -2.72248,0.48492 -3.62997,1.00102l-1.5552,-3.72003c1.19844,-0.77587 3.40136,-1.55174 5.96452,-1.55174c3.78931,0 7.25648,2.13365 7.25648,7.95962l0,8.08777zm-5.18518,-6.14809c-2.42806,-0.77587 -4.66563,-0.3533 -4.66563,1.36124c0,1.00101 0.84168,1.6799 1.84616,1.6799c1.20191,0 2.56315,-0.96984 2.81947,-3.04115zm13.00626,-17.66495l0,9.83695c1.16727,-1.39242 2.81946,-2.0713 4.63445,-2.0713c4.44048,0 7.81068,3.68885 7.81068,8.28174c0,4.59636 -3.37019,8.28521 -7.81068,8.28521c-1.81499,0 -3.46718,-0.67888 -4.63445,-2.0713l0,1.55174l-5.18519,0l0,-23.81304l5.18519,0zm3.62997,19.67391c1.97777,0 3.62997,-1.6522 3.62997,-3.62652c0,-1.97432 -1.6522,-3.62305 -3.62997,-3.62305c-1.97778,0 -3.62997,1.64873 -3.62997,3.62305c0,1.97432 1.65219,3.62652 3.62997,3.62652zm0,0\"\n});\nfunction getRedditShareCount(shareUrl, callback) {\n const endpoint = `https://www.reddit.com/api/info.json?limit=1&url=${shareUrl}`;\n jsonp(endpoint, { param: \"jsonp\" }, (err, response) => {\n callback(\n !err && response && response.data && response.data.children.length > 0 && response.data.children[0].data.score ? response.data.children[0].data.score : void 0\n );\n });\n}\nconst RedditShareCount = createShareCount(getRedditShareCount);\nconst TelegramIcon = createIcon({\n color: \"#25A3E3\",\n path: \"m45.90873,15.44335c-0.6901,-0.0281 -1.37668,0.14048 -1.96142,0.41265c-0.84989,0.32661 -8.63939,3.33986 -16.5237,6.39174c-3.9685,1.53296 -7.93349,3.06593 -10.98537,4.24067c-3.05012,1.1765 -5.34694,2.05098 -5.4681,2.09312c-0.80775,0.28096 -1.89996,0.63566 -2.82712,1.72788c-0.23354,0.27218 -0.46884,0.62161 -0.58825,1.10275c-0.11941,0.48114 -0.06673,1.09222 0.16682,1.5716c0.46533,0.96052 1.25376,1.35737 2.18443,1.71383c3.09051,0.99037 6.28638,1.93508 8.93263,2.8236c0.97632,3.44171 1.91401,6.89571 2.84116,10.34268c0.30554,0.69185 0.97105,0.94823 1.65764,0.95525l-0.00351,0.03512c0,0 0.53908,0.05268 1.06412,-0.07375c0.52679,-0.12292 1.18879,-0.42846 1.79109,-0.99212c0.662,-0.62161 2.45836,-2.38812 3.47683,-3.38552l7.6736,5.66477l0.06146,0.03512c0,0 0.84989,0.59703 2.09312,0.68132c0.62161,0.04214 1.4399,-0.07726 2.14229,-0.59176c0.70766,-0.51626 1.1765,-1.34683 1.396,-2.29506c0.65673,-2.86224 5.00979,-23.57745 5.75257,-27.00686l-0.02107,0.08077c0.51977,-1.93157 0.32837,-3.70159 -0.87096,-4.74991c-0.60054,-0.52152 -1.2924,-0.7498 -1.98425,-0.77965l0,0.00176zm-0.2072,3.29069c0.04741,0.0439 0.0439,0.0439 0.00351,0.04741c-0.01229,-0.00351 0.14048,0.2072 -0.15804,1.32576l-0.01229,0.04214l-0.00878,0.03863c-0.75858,3.50668 -5.15554,24.40802 -5.74203,26.96472c-0.08077,0.34417 -0.11414,0.31959 -0.09482,0.29852c-0.1756,-0.02634 -0.50045,-0.16506 -0.52679,-0.1756l-13.13468,-9.70175c4.4988,-4.33199 9.09945,-8.25307 13.744,-12.43229c0.8218,-0.41265 0.68483,-1.68573 -0.29852,-1.70681c-1.04305,0.24584 -1.92279,0.99564 -2.8798,1.47502c-5.49971,3.2626 -11.11882,6.13186 -16.55882,9.49279c-2.792,-0.97105 -5.57873,-1.77704 -8.15298,-2.57601c2.2336,-0.89555 4.00889,-1.55579 5.75608,-2.23009c3.05188,-1.1765 7.01687,-2.7042 10.98537,-4.24067c7.94051,-3.06944 15.92667,-6.16346 16.62028,-6.43037l0.05619,-0.02283l0.05268,-0.02283c0.19316,-0.0878 0.30378,-0.09658 0.35471,-0.10009c0,0 -0.01756,-0.05795 -0.00351,-0.04566l-0.00176,0zm-20.91715,22.0638l2.16687,1.60145c-0.93418,0.91311 -1.81743,1.77353 -2.45485,2.38812l0.28798,-3.98957\"\n});\nfunction telegramLink(url, { title }) {\n assert(url, \"telegram.url\");\n return \"https://telegram.me/share/url\" + objectToGetParams({\n url,\n text: title\n });\n}\nconst TelegramShareButton = createShareButton(\n \"telegram\",\n telegramLink,\n (props) => ({\n title: props.title\n }),\n {\n windowWidth: 550,\n windowHeight: 400\n }\n);\nconst ThreadsIcon = createIcon({\n color: \"#000000\",\n path: \"M41.4569 31.0027C41.2867 30.9181 41.1138 30.8366 40.9386 30.7586C40.6336 24.9274 37.5624 21.5891 32.4055 21.5549C32.3821 21.5548 32.3589 21.5548 32.3355 21.5548C29.251 21.5548 26.6857 22.9207 25.1067 25.4063L27.9429 27.4247C29.1224 25.5681 30.9736 25.1723 32.3369 25.1723C32.3526 25.1723 32.3684 25.1723 32.384 25.1724C34.082 25.1837 35.3633 25.6958 36.1926 26.6947C36.7961 27.4218 37.1997 28.4267 37.3996 29.6949C35.8941 29.4294 34.266 29.3478 32.5255 29.4513C27.6225 29.7443 24.4705 32.711 24.6822 36.8332C24.7896 38.9242 25.7937 40.7231 27.5094 41.8982C28.96 42.8916 30.8282 43.3774 32.7699 43.2674C35.3341 43.1216 37.3456 42.1066 38.749 40.2507C39.8148 38.8413 40.4889 37.0149 40.7865 34.7136C42.0085 35.4787 42.9142 36.4855 43.4144 37.6959C44.2649 39.7534 44.3145 43.1344 41.6553 45.8908C39.3255 48.3055 36.525 49.3501 32.2926 49.3824C27.5977 49.3463 24.0471 47.7842 21.7385 44.7396C19.5768 41.8886 18.4595 37.7706 18.4179 32.5C18.4595 27.2293 19.5768 23.1113 21.7385 20.2604C24.0471 17.2157 27.5977 15.6537 32.2925 15.6175C37.0215 15.654 40.634 17.2235 43.0309 20.2829C44.2062 21.7831 45.0923 23.6698 45.6764 25.8696L49 24.9496C48.2919 22.2419 47.1778 19.9087 45.6616 17.9736C42.5888 14.0514 38.0947 12.0417 32.3041 12H32.2809C26.5022 12.0415 22.0584 14.0589 19.073 17.9961C16.4165 21.4997 15.0462 26.3747 15.0001 32.4856L15 32.5L15.0001 32.5144C15.0462 38.6252 16.4165 43.5004 19.073 47.004C22.0584 50.941 26.5022 52.9586 32.2809 53H32.3041C37.4418 52.9631 41.0632 51.5676 44.0465 48.4753C47.9496 44.4297 47.8321 39.3587 46.5457 36.2457C45.6227 34.0134 43.8631 32.2002 41.4569 31.0027ZM32.5863 39.6551C30.4374 39.7807 28.205 38.78 28.0949 36.6367C28.0133 35.0476 29.185 33.2743 32.7182 33.0631C33.1228 33.0389 33.5199 33.027 33.9099 33.027C35.1933 33.027 36.3939 33.1564 37.4854 33.4039C37.0783 38.6788 34.6902 39.5353 32.5863 39.6551Z\"\n});\nfunction threadsLink(url, { title }) {\n assert(url, \"threads.url\");\n return \"https://threads.net/intent/post\" + objectToGetParams({\n url,\n text: title\n });\n}\nconst ThreadsShareButton = createShareButton(\n \"threads\",\n threadsLink,\n (props) => ({\n title: props.title\n }),\n {\n windowWidth: 550,\n windowHeight: 600\n }\n);\nconst TumblrIcon = createIcon({\n color: \"#34526f\",\n path: \"M39.2,41c-0.6,0.3-1.6,0.5-2.4,0.5c-2.4,0.1-2.9-1.7-2.9-3v-9.3h6v-4.5h-6V17c0,0-4.3,0-4.4,0 c-0.1,0-0.2,0.1-0.2,0.2c-0.3,2.3-1.4,6.4-5.9,8.1v3.9h3V39c0,3.4,2.5,8.1,9,8c2.2,0,4.7-1,5.2-1.8L39.2,41z\"\n});\nfunction tumblrLink(url, {\n title,\n caption,\n tags,\n posttype\n}) {\n assert(url, \"tumblr.url\");\n return \"https://www.tumblr.com/widgets/share/tool\" + objectToGetParams({\n canonicalUrl: url,\n title,\n caption,\n tags,\n posttype\n });\n}\nconst TumblrShareButton = createShareButton(\n \"tumblr\",\n tumblrLink,\n (props) => ({\n title: props.title,\n tags: (props.tags || []).join(\",\"),\n caption: props.caption,\n posttype: props.posttype || \"link\"\n }),\n {\n windowWidth: 660,\n windowHeight: 460\n }\n);\nfunction getTumblrShareCount(shareUrl, callback) {\n const endpoint = \"https://api.tumblr.com/v2/share/stats\";\n return jsonp(\n endpoint + objectToGetParams({\n url: shareUrl\n }),\n (err, data) => {\n callback(!err && data && data.response ? data.response.note_count : void 0);\n }\n );\n}\nconst TumblrShareCount = createShareCount(getTumblrShareCount);\nconst TwitterIcon = createIcon({\n color: \"#00aced\",\n path: \"M48,22.1c-1.2,0.5-2.4,0.9-3.8,1c1.4-0.8,2.4-2.1,2.9-3.6c-1.3,0.8-2.7,1.3-4.2,1.6 C41.7,19.8,40,19,38.2,19c-3.6,0-6.6,2.9-6.6,6.6c0,0.5,0.1,1,0.2,1.5c-5.5-0.3-10.3-2.9-13.5-6.9c-0.6,1-0.9,2.1-0.9,3.3 c0,2.3,1.2,4.3,2.9,5.5c-1.1,0-2.1-0.3-3-0.8c0,0,0,0.1,0,0.1c0,3.2,2.3,5.8,5.3,6.4c-0.6,0.1-1.1,0.2-1.7,0.2c-0.4,0-0.8,0-1.2-0.1 c0.8,2.6,3.3,4.5,6.1,4.6c-2.2,1.8-5.1,2.8-8.2,2.8c-0.5,0-1.1,0-1.6-0.1c2.9,1.9,6.4,2.9,10.1,2.9c12.1,0,18.7-10,18.7-18.7 c0-0.3,0-0.6,0-0.8C46,24.5,47.1,23.4,48,22.1z\"\n});\nfunction twitterLink(url, {\n title,\n via,\n hashtags = [],\n related = []\n}) {\n assert(url, \"twitter.url\");\n assert(Array.isArray(hashtags), \"twitter.hashtags is not an array\");\n assert(Array.isArray(related), \"twitter.related is not an array\");\n return \"https://twitter.com/intent/tweet\" + objectToGetParams({\n url,\n text: title,\n via,\n hashtags: hashtags.length > 0 ? hashtags.join(\",\") : void 0,\n related: related.length > 0 ? related.join(\",\") : void 0\n });\n}\nconst TwitterShareButton = createShareButton(\n \"twitter\",\n twitterLink,\n (props) => ({\n hashtags: props.hashtags,\n title: props.title,\n via: props.via,\n related: props.related\n }),\n {\n windowWidth: 550,\n windowHeight: 400\n }\n);\nconst ViberIcon = createIcon({\n color: \"#7360f2\",\n path: \"m31.0,12.3c9.0,0.2 16.4,6.2 18.0,15.2c0.2,1.5 0.3,3.0 0.4,4.6a1.0,1.0 0 0 1 -0.8,1.2l-0.1,0a1.1,1.1 0 0 1 -1.0,-1.2l0,0c-0.0,-1.2 -0.1,-2.5 -0.3,-3.8a16.1,16.1 0 0 0 -13.0,-13.5c-1.0,-0.1 -2.0,-0.2 -3.0,-0.3c-0.6,-0.0 -1.4,-0.1 -1.6,-0.8a1.1,1.1 0 0 1 0.9,-1.2l0.6,0l0.0,-0.0zm10.6,39.2a19.9,19.9 0 0 1 -2.1,-0.6c-6.9,-2.9 -13.2,-6.6 -18.3,-12.2a47.5,47.5 0 0 1 -7.0,-10.7c-0.8,-1.8 -1.6,-3.7 -2.4,-5.6c-0.6,-1.7 0.3,-3.4 1.4,-4.7a11.3,11.3 0 0 1 3.7,-2.8a2.4,2.4 0 0 1 3.0,0.7a39.0,39.0 0 0 1 4.7,6.5a3.1,3.1 0 0 1 -0.8,4.2c-0.3,0.2 -0.6,0.5 -1.0,0.8a3.3,3.3 0 0 0 -0.7,0.7a2.1,2.1 0 0 0 -0.1,1.9c1.7,4.9 4.7,8.7 9.7,10.8a5.0,5.0 0 0 0 2.5,0.6c1.5,-0.1 2.0,-1.8 3.1,-2.7a2.9,2.9 0 0 1 3.5,-0.1c1.1,0.7 2.2,1.4 3.3,2.2a37.8,37.8 0 0 1 3.1,2.4a2.4,2.4 0 0 1 0.7,3.0a10.4,10.4 0 0 1 -4.4,4.8a10.8,10.8 0 0 1 -1.9,0.6c-0.7,-0.2 0.6,-0.2 0,0l0.0,0l0,-0.0zm3.1,-21.4a4.2,4.2 0 0 1 -0.0,0.6a1.0,1.0 0 0 1 -1.9,0.1a2.7,2.7 0 0 1 -0.1,-0.8a10.9,10.9 0 0 0 -1.4,-5.5a10.2,10.2 0 0 0 -4.2,-4.0a12.3,12.3 0 0 0 -3.4,-1.0c-0.5,-0.0 -1.0,-0.1 -1.5,-0.2a0.9,0.9 0 0 1 -0.9,-1.0l0,-0.1a0.9,0.9 0 0 1 0.9,-0.9l0.1,0a14.1,14.1 0 0 1 5.9,1.5a11.9,11.9 0 0 1 6.5,9.3c0,0.1 0.0,0.3 0.0,0.5c0,0.4 0.0,0.9 0.0,1.5l0,0l0.0,0.0zm-5.6,-0.2a1.1,1.1 0 0 1 -1.2,-0.9l0,-0.1a11.3,11.3 0 0 0 -0.2,-1.4a4.0,4.0 0 0 0 -1.5,-2.3a3.9,3.9 0 0 0 -1.2,-0.5c-0.5,-0.1 -1.1,-0.1 -1.6,-0.2a1.0,1.0 0 0 1 -0.8,-1.1l0,0l0,0a1.0,1.0 0 0 1 1.1,-0.8c3.4,0.2 6.0,2.0 6.3,6.2a2.8,2.8 0 0 1 0,0.8a0.8,0.8 0 0 1 -0.8,0.7l0,0l0.0,-0.0z\"\n});\nfunction viberLink(url, { title, separator }) {\n assert(url, \"viber.url\");\n return \"viber://forward\" + objectToGetParams({\n text: title ? title + separator + url : url\n });\n}\nconst ViberShareButton = createShareButton(\n \"viber\",\n viberLink,\n (props) => ({\n title: props.title,\n separator: props.separator || \" \"\n }),\n {\n windowWidth: 660,\n windowHeight: 460\n }\n);\nconst VKIcon = createIcon({\n color: \"#4C75A3\",\n path: \"M44.94,44.84h-0.2c-2.17-.36-3.66-1.92-4.92-3.37C39.1,40.66,38,38.81,36.7,39c-1.85.3-.93,3.52-1.71,4.9-0.62,1.11-3.29.91-5.12,0.71-5.79-.62-8.75-3.77-11.35-7.14A64.13,64.13,0,0,1,11.6,26a10.59,10.59,0,0,1-1.51-4.49C11,20.7,12.56,21,14.11,21c1.31,0,3.36-.29,4.32.2C19,21.46,19.57,23,20,24a37.18,37.18,0,0,0,3.31,5.82c0.56,0.81,1.41,2.35,2.41,2.14s1.06-2.63,1.1-4.18c0-1.77,0-4-.5-4.9S25,22,24.15,21.47c0.73-1.49,2.72-1.63,5.12-1.63,2,0,4.84-.23,5.62,1.12s0.25,3.85.2,5.71c-0.06,2.09-.41,4.25,1,5.21,1.09-.12,1.68-1.2,2.31-2A28,28,0,0,0,41.72,24c0.44-1,.91-2.65,1.71-3,1.21-.47,3.15-0.1,4.92-0.1,1.46,0,4.05-.41,4.52.61,0.39,0.85-.75,3-1.1,3.57a61.88,61.88,0,0,1-4.12,5.61c-0.58.78-1.78,2-1.71,3.27,0.05,0.94,1,1.67,1.71,2.35a33.12,33.12,0,0,1,3.92,4.18c0.47,0.62,1.5,2,1.4,2.76C52.66,45.81,46.88,44.24,44.94,44.84Z\"\n});\nfunction vkLink(url, { title, image, noParse, noVkLinks }) {\n assert(url, \"vk.url\");\n return \"https://vk.com/share.php\" + objectToGetParams({\n url,\n title,\n image,\n noparse: noParse ? 1 : 0,\n no_vk_links: noVkLinks ? 1 : 0\n });\n}\nconst VKShareButton = createShareButton(\n \"vk\",\n vkLink,\n (props) => ({\n title: props.title,\n image: props.image,\n noParse: props.noParse,\n noVkLinks: props.noVkLinks\n }),\n {\n windowWidth: 660,\n windowHeight: 460\n }\n);\nfunction getVKShareCount(shareUrl, callback) {\n if (!window.VK) window.VK = {};\n window.VK.Share = {\n count: (index2, count) => {\n var _a, _b;\n return (_b = (_a = window.VK.callbacks) == null ? void 0 : _a[index2]) == null ? void 0 : _b.call(_a, count);\n }\n };\n window.VK.callbacks = [];\n const url = \"https://vk.com/share.php\";\n const index = window.VK.callbacks.length;\n window.VK.callbacks.push(callback);\n return jsonp(\n url + objectToGetParams({\n act: \"count\",\n index,\n url: shareUrl\n })\n );\n}\nconst VKShareCount = createShareCount(getVKShareCount);\nconst WeiboIcon = createIcon({\n color: \"#DF2029\",\n path: \"M40.9756152,15.0217119 C40.5000732,15.0546301 39.9999314,15.1204666 39.5325878,15.2192213 C38.6634928,15.4085016 38.0977589,16.2643757 38.2863368,17.1284787 C38.4667163,18.0008129 39.3194143,18.5686519 40.1885094,18.3793715 C42.8613908,17.8115326 45.7720411,18.6427174 47.7316073,20.8153207 C49.6911735,22.996153 50.2077122,25.975254 49.3714112,28.5840234 C49.1008441,29.4316684 49.5763861,30.3533789 50.4208857,30.6249537 C51.2653852,30.8965286 52.1754769,30.4192153 52.4542425,29.5715703 C53.6349013,25.9011885 52.9133876,21.7699494 50.1585171,18.7085538 C48.0923641,16.4042776 45.2063093,15.1533848 42.3530505,15.0217119 C41.8775084,14.9970227 41.4511594,14.9887937 40.9756152,15.0217119 Z M27.9227762,19.8277737 C24.9957268,20.140498 20.863421,22.4365431 17.2312548,26.0822378 C13.2711279,30.0571148 11,34.2871065 11,37.9328012 C11,44.9032373 19.8713401,49.125 28.5786978,49.125 C39.9917329,49.125 47.600423,42.4261409 47.600423,37.1427636 C47.600423,33.9496952 44.9603397,32.1638816 42.549827,31.4149913 C41.9594976,31.2339421 41.5167516,31.1434164 41.8283133,30.3616079 C42.5006339,28.66632 42.6236176,27.1932286 41.8939054,26.1480742 C40.5328692,24.1894405 36.7203236,24.2881952 32.448635,26.0822378 C32.448635,26.0822378 31.1203949,26.6912261 31.4647526,25.6213825 C32.1206742,23.4981576 32.0304845,21.712342 31.0056075,20.6836478 C30.2840938,19.9512176 29.2510184,19.6878718 27.9227762,19.8277737 Z M42.0906819,20.6836478 C41.6233383,20.6589586 41.1723917,20.716566 40.7132466,20.8153207 C39.9671353,20.9716828 39.4997917,21.7781784 39.6637721,22.5270687 C39.8277525,23.275959 40.5574647,23.7450433 41.303576,23.5804521 C42.1972686,23.3911718 43.2057485,23.6380596 43.8616701,24.3704897 C44.5175916,25.1029198 44.6733735,26.0657797 44.3864073,26.9381118 C44.1486363,27.6705419 44.5093932,28.4770397 45.2391054,28.7156963 C45.9688176,28.9461239 46.780521,28.5922524 47.0100936,27.8598223 C47.584026,26.0740087 47.2396661,24.0248493 45.8950269,22.5270687 C44.886547,21.4078489 43.4845162,20.7494842 42.0906819,20.6836478 Z M29.496988,29.9665891 C35.3100922,30.1723275 39.9917329,33.0691319 40.3852858,37.0769272 C40.8362324,41.6607904 35.5970585,45.9319315 28.6442899,46.6232144 C21.6915214,47.3144973 15.6488446,44.154347 15.197898,39.5787128 C14.7469514,34.9948495 20.059916,30.7237084 27.004486,30.0324256 C27.8735831,29.950131 28.6688875,29.9336709 29.496988,29.9665891 Z M25.5614586,34.3776322 C23.183744,34.5916017 20.9372116,35.9577073 19.9205332,37.9328012 C18.5348994,40.6238672 19.9041362,43.6029661 23.0689567,44.582284 C26.340366,45.5945202 30.1857056,44.0638213 31.5303448,41.1587879 C32.8503864,38.3195909 31.1613894,35.3734082 27.9227762,34.5751416 C27.1438688,34.3776322 26.356763,34.3035667 25.5614586,34.3776322 Z M24.052839,38.7228388 C24.3316067,38.7310678 24.5857748,38.8215935 24.8399449,38.9203482 C25.8648218,39.3400561 26.1845841,40.4428158 25.5614586,41.4221338 C24.9219361,42.3932227 23.5690963,42.8623069 22.5442194,42.4096807 C21.5357395,41.9652856 21.2487754,40.8542948 21.8882979,39.9078951 C22.3638421,39.2001542 23.2247386,38.7146097 24.052839,38.7228388 Z\"\n});\nfunction weiboLink(url, { title, image }) {\n assert(url, \"weibo.url\");\n return \"http://service.weibo.com/share/share.php\" + objectToGetParams({\n url,\n title,\n pic: image\n });\n}\nconst WeiboShareButton = createShareButton(\n \"weibo\",\n weiboLink,\n (props) => ({\n title: props.title,\n image: props.image\n }),\n {\n windowWidth: 660,\n windowHeight: 550,\n windowPosition: \"screenCenter\"\n }\n);\nconst WhatsappIcon = createIcon({\n color: \"#25D366\",\n path: \"m42.32286,33.93287c-0.5178,-0.2589 -3.04726,-1.49644 -3.52105,-1.66732c-0.4712,-0.17346 -0.81554,-0.2589 -1.15987,0.2589c-0.34175,0.51004 -1.33075,1.66474 -1.63108,2.00648c-0.30032,0.33658 -0.60064,0.36247 -1.11327,0.12945c-0.5178,-0.2589 -2.17994,-0.80259 -4.14759,-2.56312c-1.53269,-1.37217 -2.56312,-3.05503 -2.86603,-3.57283c-0.30033,-0.5178 -0.03366,-0.80259 0.22524,-1.06149c0.23301,-0.23301 0.5178,-0.59547 0.7767,-0.90616c0.25372,-0.31068 0.33657,-0.5178 0.51262,-0.85437c0.17088,-0.36246 0.08544,-0.64725 -0.04402,-0.90615c-0.12945,-0.2589 -1.15987,-2.79613 -1.58964,-3.80584c-0.41424,-1.00971 -0.84142,-0.88027 -1.15987,-0.88027c-0.29773,-0.02588 -0.64208,-0.02588 -0.98382,-0.02588c-0.34693,0 -0.90616,0.12945 -1.37736,0.62136c-0.4712,0.5178 -1.80194,1.76053 -1.80194,4.27186c0,2.51134 1.84596,4.945 2.10227,5.30747c0.2589,0.33657 3.63497,5.51458 8.80262,7.74113c1.23237,0.5178 2.1903,0.82848 2.94111,1.08738c1.23237,0.38836 2.35599,0.33657 3.24402,0.20712c0.99159,-0.15534 3.04985,-1.24272 3.47963,-2.45956c0.44013,-1.21683 0.44013,-2.22654 0.31068,-2.45955c-0.12945,-0.23301 -0.46601,-0.36247 -0.98382,-0.59548m-9.40068,12.84407l-0.02589,0c-3.05503,0 -6.08417,-0.82849 -8.72495,-2.38189l-0.62136,-0.37023l-6.47252,1.68286l1.73463,-6.29129l-0.41424,-0.64725c-1.70875,-2.71846 -2.6149,-5.85116 -2.6149,-9.07706c0,-9.39809 7.68934,-17.06155 17.15993,-17.06155c4.58253,0 8.88029,1.78642 12.11655,5.02268c3.23625,3.21036 5.02267,7.50812 5.02267,12.06476c-0.0078,9.3981 -7.69712,17.06155 -17.14699,17.06155m14.58906,-31.58846c-3.93529,-3.80584 -9.1133,-5.95471 -14.62789,-5.95471c-11.36055,0 -20.60848,9.2065 -20.61625,20.52564c0,3.61684 0.94757,7.14565 2.75211,10.26282l-2.92557,10.63564l10.93337,-2.85309c3.0136,1.63108 6.4052,2.4958 9.85634,2.49839l0.01037,0c11.36574,0 20.61884,-9.2091 20.62403,-20.53082c0,-5.48093 -2.14111,-10.64081 -6.03239,-14.51915\"\n});\nfunction isMobileOrTablet() {\n return /(android|iphone|ipad|mobile)/i.test(navigator.userAgent);\n}\nfunction whatsappLink(url, { title, separator }) {\n assert(url, \"whatsapp.url\");\n return \"https://\" + (isMobileOrTablet() ? \"api\" : \"web\") + \".whatsapp.com/send\" + objectToGetParams({\n text: title ? title + separator + url : url\n });\n}\nconst WhatsappShareButton = createShareButton(\n \"whatsapp\",\n whatsappLink,\n (props) => ({\n title: props.title,\n separator: props.separator || \" \"\n }),\n {\n windowWidth: 550,\n windowHeight: 400\n }\n);\nconst WorkplaceIcon = createIcon({\n color: \"#4326c4\",\n path: \"M34.019,10.292c0.21,0.017,0.423,0.034,0.636,0.049 c3.657,0.262,6.976,1.464,9.929,3.635c3.331,2.448,5.635,5.65,6.914,9.584c0.699,2.152,0.983,4.365,0.885,6.623 c-0.136,3.171-1.008,6.13-2.619,8.867c-0.442,0.75-0.908,1.492-1.495,2.141c-0.588,0.651-1.29,1.141-2.146,1.383 c-1.496,0.426-3.247-0.283-3.961-1.642c-0.26-0.494-0.442-1.028-0.654-1.548c-1.156-2.838-2.311-5.679-3.465-8.519 c-0.017-0.042-0.037-0.082-0.065-0.145c-0.101,0.245-0.192,0.472-0.284,0.698c-1.237,3.051-2.475,6.103-3.711,9.155 c-0.466,1.153-1.351,1.815-2.538,2.045c-1.391,0.267-2.577-0.154-3.496-1.247c-0.174-0.209-0.31-0.464-0.415-0.717 c-2.128-5.22-4.248-10.442-6.37-15.665c-0.012-0.029-0.021-0.059-0.036-0.104c0.054-0.003,0.103-0.006,0.15-0.006 c1.498-0.001,2.997,0,4.495-0.004c0.12-0.001,0.176,0.03,0.222,0.146c1.557,3.846,3.117,7.691,4.679,11.536 c0.018,0.046,0.039,0.091,0.067,0.159c0.273-0.673,0.536-1.32,0.797-1.968c1.064-2.627,2.137-5.25,3.19-7.883 c0.482-1.208,1.376-1.917,2.621-2.135c1.454-0.255,2.644,0.257,3.522,1.449c0.133,0.18,0.229,0.393,0.313,0.603 c1.425,3.495,2.848,6.991,4.269,10.488c0.02,0.047,0.04,0.093,0.073,0.172c0.196-0.327,0.385-0.625,0.559-0.935 c0.783-1.397,1.323-2.886,1.614-4.461c0.242-1.312,0.304-2.634,0.187-3.962c-0.242-2.721-1.16-5.192-2.792-7.38 c-2.193-2.939-5.086-4.824-8.673-5.625c-1.553-0.346-3.124-0.405-4.705-0.257c-3.162,0.298-6.036,1.366-8.585,3.258 c-3.414,2.534-5.638,5.871-6.623,10.016c-0.417,1.76-0.546,3.547-0.384,5.348c0.417,4.601,2.359,8.444,5.804,11.517 c2.325,2.073,5.037,3.393,8.094,3.989c1.617,0.317,3.247,0.395,4.889,0.242c1-0.094,1.982-0.268,2.952-0.529 c0.04-0.01,0.081-0.018,0.128-0.028c0,1.526,0,3.047,0,4.586c-0.402,0.074-0.805,0.154-1.21,0.221 c-0.861,0.14-1.728,0.231-2.601,0.258c-0.035,0.002-0.071,0.013-0.108,0.021c-0.493,0-0.983,0-1.476,0 c-0.049-0.007-0.1-0.018-0.149-0.022c-0.315-0.019-0.629-0.033-0.945-0.058c-1.362-0.105-2.702-0.346-4.017-0.716 c-3.254-0.914-6.145-2.495-8.66-4.752c-2.195-1.971-3.926-4.29-5.176-6.963c-1.152-2.466-1.822-5.057-1.993-7.774 c-0.014-0.226-0.033-0.451-0.05-0.676c0-0.502,0-1.003,0-1.504c0.008-0.049,0.02-0.099,0.022-0.148 c0.036-1.025,0.152-2.043,0.338-3.052c0.481-2.616,1.409-5.066,2.8-7.331c2.226-3.625,5.25-6.386,9.074-8.254 c2.536-1.24,5.217-1.947,8.037-2.126c0.23-0.015,0.461-0.034,0.691-0.051C33.052,10.292,33.535,10.292,34.019,10.292z\"\n});\nfunction workplaceLink(url, { quote, hashtag }) {\n assert(url, \"workplace.url\");\n return \"https://work.facebook.com/sharer.php\" + objectToGetParams({\n u: url,\n quote,\n hashtag\n });\n}\nconst WorkplaceShareButton = createShareButton(\n \"workplace\",\n workplaceLink,\n (props) => ({\n quote: props.quote,\n hashtag: props.hashtag\n }),\n {\n windowWidth: 550,\n windowHeight: 400\n }\n);\nconst XIcon = createIcon({\n color: \"#000000\",\n path: \"M 41.116 18.375 h 4.962 l -10.8405 12.39 l 12.753 16.86 H 38.005 l -7.821 -10.2255 L 21.235 47.625 H 16.27 l 11.595 -13.2525 L 15.631 18.375 H 25.87 l 7.0695 9.3465 z m -1.7415 26.28 h 2.7495 L 24.376 21.189 H 21.4255 z\"\n});\nexport {\n BlueskyIcon,\n BlueskyShareButton,\n EmailIcon,\n EmailShareButton,\n FacebookIcon,\n FacebookMessengerIcon,\n FacebookMessengerShareButton,\n FacebookShareButton,\n FacebookShareCount,\n GabIcon,\n GabShareButton,\n HatenaIcon,\n HatenaShareButton,\n HatenaShareCount,\n InstapaperIcon,\n InstapaperShareButton,\n LineIcon,\n LineShareButton,\n LinkedinIcon,\n LinkedinShareButton,\n LivejournalIcon,\n LivejournalShareButton,\n MailruIcon,\n MailruShareButton,\n OKIcon,\n OKShareButton,\n OKShareCount,\n PinterestIcon,\n PinterestShareButton,\n PinterestShareCount,\n PocketIcon,\n PocketShareButton,\n RedditIcon,\n RedditShareButton,\n RedditShareCount,\n TelegramIcon,\n TelegramShareButton,\n ThreadsIcon,\n ThreadsShareButton,\n TumblrIcon,\n TumblrShareButton,\n TumblrShareCount,\n TwitterIcon,\n TwitterShareButton,\n VKIcon,\n VKShareButton,\n VKShareCount,\n ViberIcon,\n ViberShareButton,\n WeiboIcon,\n WeiboShareButton,\n WhatsappIcon,\n WhatsappShareButton,\n WorkplaceIcon,\n WorkplaceShareButton,\n XIcon\n};\n//# sourceMappingURL=index.js.map\n","import React from 'react';\nimport { renderToStaticMarkup } from 'react-dom/server';\n\nimport { useClass } from '@breezerr';\nimport { color } from '@breezerr/utils';\nimport { usePage } from '@brz-utils/contexts/page.context';\nimport { useSiteSettings } from '@brz-utils/use.site.settings';\nimport { toTinaMarkdown } from '@brz-utils/toTinaMarkdown';\n\nimport { FacebookShareButton, LinkedinShareButton, TwitterShareButton } from 'react-share';\nimport { ButtonBase, ClickAwayListener, Fab, SwipeableDrawer, Tooltip } from '@mui/material';\nimport { TinaMarkdown } from 'tinacms/dist/rich-text';\nimport { RichCurrentYear } from './rich.current.year';\nimport { env } from '@brz-env';\nimport { useBreakpoint } from '@brz-utils/contexts/is.breakpoint';\n\n\n\nconst TESTING = true;\n\n\nexport const ShareFab = () => {\n const [open, setOpen] = React.useState(false);\n const { isMobile } = useBreakpoint();\n\n return isMobile ? (\n <>\n {setOpen(false)}}\n onOpen={() => null}\n PaperProps={{\n className: useClass(`py-1rem radius-top-left-1rem radius-top-right-1rem`)\n }}\n >\n
\n \n
\n \n\n \n \n ) : (\n setOpen(false)}>\n \n )}\n >\n \n \n \n );\n};\n\n\nconst FabButton = React.forwardRef((props: { open: boolean, setOpen: React.Dispatch> }, ref) => {\n const { open, setOpen, ...other } = props;\n\n return (\n {\n setOpen((prev) => !prev);\n }}\n >\n
\n {open ? (\n \n \n \n \n \n \n ) : (\n \n \n \n )}\n
\n \n )\n});\n\nconst Content = (props: { open: boolean }) => {\n const { page: settings } = usePage();\n const { name, twitterAuthor } = useSiteSettings();\n\n\n const url = React.useMemo(() => {\n return `${TESTING ? 'https://brz-web-tina-cms-qa.azurewebsites.net/' : env.DEPLOYED_HOST}${settings.seo.url}`\n }, [settings]);\n\n const text = React.useMemo(() => {\n // run only on client and if the user opened the share tooltip\n if ( typeof window !== 'undefined' && props.open ) {\n return renderToStaticMarkup()\n }\n\n return '';\n }, [settings, props.open]); \n\n\n return (\n
\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n )\n};","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\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 window = getWindow();\n const children = [...element.children];\n if (window.HTMLSlotElement && 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 elementIsChildOfSlot(el, slot) {\n // Breadth-first search through all parent's children and assigned elements\n const elementsQueue = [slot];\n while (elementsQueue.length > 0) {\n const elementToCheck = elementsQueue.shift();\n if (el === elementToCheck) {\n return true;\n }\n elementsQueue.push(...elementToCheck.children, ...(elementToCheck.shadowRoot ? elementToCheck.shadowRoot.children : []), ...(elementToCheck.assignedElements ? elementToCheck.assignedElements() : []));\n }\n}\nfunction elementIsChildOf(el, parent) {\n const window = getWindow();\n let isChild = parent.contains(el);\n if (!isChild && window.HTMLSlotElement && parent instanceof HTMLSlotElement) {\n const children = [...parent.assignedElements()];\n isChild = children.includes(el);\n if (!isChild) {\n isChild = elementIsChildOfSlot(el, parent);\n }\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 React from \"react\";\n\nimport { TinaMarkdownContent, TinaMarkdown } from 'tinacms/dist/rich-text'\nimport { useClass } from \"@breezerr\";\nimport { Img } from \"./img\";\nimport { Button } from \"@mui/material\";\nimport { PageSettingsDataModel } from \"@brz-types/common/page.settings.type\";\n\ntype DataModel = {\n data: {\n name: string;\n avatar: string;\n jobTitle: string;\n bio: TinaMarkdownContent;\n settings: { seo: { url: string } }\n }\n};\n\nexport const AuthorCard = (props: DataModel) => {\n const { data: author } = props;\n\n return (\n
\n
\n
\n {author.avatar ? (\n \n ) : (null)}\n
\n
\n
{ author.name }
\n { author.jobTitle }\n
\n
\n\n
\n\n More about {author.name}\n
\n )\n};","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getFabUtilityClass(slot) {\n return generateUtilityClass('MuiFab', slot);\n}\nconst fabClasses = generateUtilityClasses('MuiFab', ['root', 'primary', 'secondary', 'extended', 'circular', 'focusVisible', 'disabled', 'colorInherit', 'sizeSmall', 'sizeMedium', 'sizeLarge', 'info', 'error', 'warning', 'success']);\nexport default fabClasses;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\", \"color\", \"component\", \"disabled\", \"disableFocusRipple\", \"focusVisibleClassName\", \"size\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport ButtonBase from '../ButtonBase';\nimport capitalize from '../utils/capitalize';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport fabClasses, { getFabUtilityClass } from './fabClasses';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n color,\n variant,\n classes,\n size\n } = ownerState;\n const slots = {\n root: ['root', variant, `size${capitalize(size)}`, color === 'inherit' ? 'colorInherit' : color]\n };\n const composedClasses = composeClasses(slots, getFabUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n};\nconst FabRoot = styled(ButtonBase, {\n name: 'MuiFab',\n slot: 'Root',\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant], styles[`size${capitalize(ownerState.size)}`], ownerState.color === 'inherit' && styles.colorInherit, styles[capitalize(ownerState.size)], styles[ownerState.color]];\n }\n})(({\n theme,\n ownerState\n}) => {\n var _theme$palette$getCon, _theme$palette;\n return _extends({}, theme.typography.button, {\n minHeight: 36,\n transition: theme.transitions.create(['background-color', 'box-shadow', 'border-color'], {\n duration: theme.transitions.duration.short\n }),\n borderRadius: '50%',\n padding: 0,\n minWidth: 0,\n width: 56,\n height: 56,\n zIndex: (theme.vars || theme).zIndex.fab,\n boxShadow: (theme.vars || theme).shadows[6],\n '&:active': {\n boxShadow: (theme.vars || theme).shadows[12]\n },\n color: theme.vars ? theme.vars.palette.text.primary : (_theme$palette$getCon = (_theme$palette = theme.palette).getContrastText) == null ? void 0 : _theme$palette$getCon.call(_theme$palette, theme.palette.grey[300]),\n backgroundColor: (theme.vars || theme).palette.grey[300],\n '&:hover': {\n backgroundColor: (theme.vars || theme).palette.grey.A100,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: (theme.vars || theme).palette.grey[300]\n },\n textDecoration: 'none'\n },\n [`&.${fabClasses.focusVisible}`]: {\n boxShadow: (theme.vars || theme).shadows[6]\n }\n }, ownerState.size === 'small' && {\n width: 40,\n height: 40\n }, ownerState.size === 'medium' && {\n width: 48,\n height: 48\n }, ownerState.variant === 'extended' && {\n borderRadius: 48 / 2,\n padding: '0 16px',\n width: 'auto',\n minHeight: 'auto',\n minWidth: 48,\n height: 48\n }, ownerState.variant === 'extended' && ownerState.size === 'small' && {\n width: 'auto',\n padding: '0 8px',\n borderRadius: 34 / 2,\n minWidth: 34,\n height: 34\n }, ownerState.variant === 'extended' && ownerState.size === 'medium' && {\n width: 'auto',\n padding: '0 16px',\n borderRadius: 40 / 2,\n minWidth: 40,\n height: 40\n }, ownerState.color === 'inherit' && {\n color: 'inherit'\n });\n}, ({\n theme,\n ownerState\n}) => _extends({}, ownerState.color !== 'inherit' && ownerState.color !== 'default' && (theme.vars || theme).palette[ownerState.color] != null && {\n color: (theme.vars || theme).palette[ownerState.color].contrastText,\n backgroundColor: (theme.vars || theme).palette[ownerState.color].main,\n '&:hover': {\n backgroundColor: (theme.vars || theme).palette[ownerState.color].dark,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: (theme.vars || theme).palette[ownerState.color].main\n }\n }\n}), ({\n theme\n}) => ({\n [`&.${fabClasses.disabled}`]: {\n color: (theme.vars || theme).palette.action.disabled,\n boxShadow: (theme.vars || theme).shadows[0],\n backgroundColor: (theme.vars || theme).palette.action.disabledBackground\n }\n}));\nconst Fab = /*#__PURE__*/React.forwardRef(function Fab(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiFab'\n });\n const {\n children,\n className,\n color = 'default',\n component = 'button',\n disabled = false,\n disableFocusRipple = false,\n focusVisibleClassName,\n size = 'large',\n variant = 'circular'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n color,\n component,\n disabled,\n disableFocusRipple,\n size,\n variant\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(FabRoot, _extends({\n className: clsx(classes.root, className),\n component: component,\n disabled: disabled,\n focusRipple: !disableFocusRipple,\n focusVisibleClassName: clsx(classes.focusVisible, focusVisibleClassName),\n ownerState: ownerState,\n ref: ref\n }, other, {\n classes: classes,\n children: children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Fab.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'default'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['default', 'error', 'info', 'inherit', 'primary', 'secondary', 'success', 'warning']), PropTypes.string]),\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the keyboard focus ripple is disabled.\n * @default false\n */\n disableFocusRipple: PropTypes.bool,\n /**\n * If `true`, the ripple effect is disabled.\n */\n disableRipple: PropTypes.bool,\n /**\n * @ignore\n */\n focusVisibleClassName: PropTypes.string,\n /**\n * The URL to link to when the button is clicked.\n * If defined, an `a` element will be used as the root node.\n */\n href: PropTypes.string,\n /**\n * The size of the component.\n * `small` is equivalent to the dense button styling.\n * @default 'large'\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['small', 'medium', 'large']), PropTypes.string]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The variant to use.\n * @default 'circular'\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['circular', 'extended']), PropTypes.string])\n} : void 0;\nexport default Fab;","import React from \"react\";\nimport { addPossessive } from \"@brz-shared/add.possesive\"\nimport { usePartner } from \"@brz-utils/contexts/partner.context\";\nimport { useClass } from \"@breezerr\";\nimport { usePage } from \"@brz-utils/contexts/page.context\";\nimport { useBreakpoint } from \"@brz-utils/contexts/is.breakpoint\";\n\n\nexport const RichAnchor = (props: any) => {\n const { page: settings } = usePage();\n const { isMobile } = useBreakpoint();\n\n return \n}"],"names":["VideoCarousel","props","_props$youtubeIds","_props$youtubeIds2","active","setActive","React","controls","setControls","className","useClass","Swiper","modules","Thumbs","thumbs","swiper","spaceBetween","onSlideChange","activeIndex","youtubeIds","map","id","index","SwiperSlide","key","VideoFrame","youtubeId","watchSlidesProgress","onSwiper","slidesPerView","style","maxWidth","height","objectFit","border","color","src","prevTime","createDebug","namespace","debug","enabled","self","curr","Date","ms","diff","prev","args","Array","arguments","length","i","exports","coerce","unshift","replace","match","format","formatter","formatters","val","call","splice","formatArgs","log","console","bind","apply","useColors","hash","charCodeAt","colors","Math","abs","selectColor","init","module","Error","stack","message","disable","enable","namespaces","save","names","skips","split","len","push","RegExp","substr","name","test","humanize","url","opts","fn","script","timer","prefix","count","param","timeout","enc","encodeURIComponent","target","document","getElementsByTagName","head","setTimeout","cleanup","parentNode","removeChild","window","noop","clearTimeout","data","indexOf","createElement","insertBefore","interacted","setInteracted","load","hover","setHover","aspectRatio","onClick","onMouseEnter","onMouseLeave","ButtonBase","xmlns","width","viewBox","transform","cx","cy","rx","ry","fill","d","title","frameBorder","allow","allowFullScreen","defaultProps","isObject","obj","constructor","Object","extend","noExtend","keys","filter","forEach","ssrDocument","body","addEventListener","removeEventListener","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","children","childNodes","setAttribute","createElementNS","importNode","location","host","hostname","href","origin","pathname","protocol","search","getDocument","doc","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","this","getComputedStyle","getPropertyValue","Image","screen","matchMedia","requestAnimationFrame","callback","cancelAnimationFrame","getWindow","win","Breadcrumbs","page","settings","usePage","cumbs","crumbs","sitemap","breadcrumbs","crumb","stroke","strokeLinecap","strokeWidth","TextLink","link","TinaMarkdown","content","toTinaMarkdown","label","components","RichCurrentYear","_ref","_data$posts","order","_computed","topHeight","Uppercase","headingText","dangerouslySetInnerHTML","__html","newLinesToBreaks","posts","_ref2","ref","post","PostPreview","support","deviceCached","browser","getSupport","g","smoothScroll","documentElement","touch","DocumentTouch","calcSupport","getDevice","overrides","_temp","platform","ua","device","ios","android","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","needPerspectiveFix","isSafari","toLowerCase","String","includes","major","minor","num","Number","isWebView","isSafariBrowser","need3dFix","calcBrowser","eventsEmitter","on","events","handler","priority","eventsListeners","destroyed","method","event","once","onceHandler","off","__emitterProxy","_len","_key","onAny","eventsAnyListeners","offAny","eventHandler","emit","context","_len2","_key2","isArray","slice","toggleSlideClasses$1","slideEl","condition","classList","contains","add","remove","toggleSlideClasses","processLazyPreloader","imageEl","params","closest","isElement","slideClass","lazyEl","lazyPreloaderClass","shadowRoot","unlazy","slides","removeAttribute","preload","amount","lazyPreloadPrevNext","min","slidesPerViewDynamic","ceil","grid","rows","activeColumn","preloadColumns","from","_","column","slideIndexLastInView","rewind","loop","realIndex","max","update","updateSize","el","clientWidth","clientHeight","isHorizontal","isVertical","parseInt","isNaN","assign","size","updateSlides","getDirectionPropertyValue","node","parseFloat","getDirectionLabel","wrapperEl","slidesEl","swiperSize","rtlTranslate","rtl","wrongRTL","isVirtual","virtual","previousSlidesLength","e","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","virtualSize","marginLeft","marginRight","marginBottom","marginTop","centeredSlides","cssMode","s","gridEnabled","slideSize","initSlides","unsetSlides","shouldResetSlideSize","breakpoints","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","webkitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","offsetWidth","floor","swiperSlideSize","slidesPerGroup","slidesPerGroupSkip","effect","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","groups","slidesBefore","slidesAfter","groupSize","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","offsetSize","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","v","watchOverflow","checkOverflow","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","maxBackfaceHiddenSlides","updateAutoHeight","speed","activeSlides","newHeight","setTransition","getSlideByIndex","getSlideIndexByData","visibleSlides","offsetHeight","minusOffset","offsetLeft","offsetTop","swiperSlideOffset","cssOverflowAdjustment","updateSlidesProgress","translate","offsetCenter","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","isFullyVisible","isVisible","slideVisibleClass","slideFullyVisibleClass","progress","originalProgress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","progressLoop","wasBeginning","wasEnd","isBeginningRounded","isEndRounded","firstSlideIndex","lastSlideIndex","firstSlideTranslate","lastSlideTranslate","translateMax","translateAbs","autoHeight","updateSlidesClasses","getFilteredSlide","selector","activeSlide","prevSlide","nextSlide","find","slideActiveClass","slideNextClass","slidePrevClass","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","getVirtualRealIndex","aIndex","normalizeSlideIndex","getActiveIndexByTranslate","skip","firstSlideInColumn","activeSlideIndex","getAttribute","initialized","runCallbacksOnInit","updateClickedSlide","path","pathEl","matches","slideFound","clickedSlide","undefined","clickedIndex","slideToClickedSlide","getTranslate","axis","virtualTranslate","currentTranslate","setTranslate","byController","newProgress","x","y","previousTranslate","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","isH","targetPosition","side","scrollTo","behavior","onTranslateToWrapperTransitionEnd","transitionEmit","direction","step","dir","slideTo","initial","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","transitionStart","transitionEnd","t","scrollSnapType","_immediateVirtual","_cssModeVirtualInitialSet","initialSlide","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","targetSlideIndex","cols","needLoopFix","loopFix","slideRealIndex","slideNext","perGroup","slidesPerGroupAuto","increment","loopPreventsSliding","_clientLeft","clientLeft","slidePrev","normalize","normalizedSnapGrid","isFreeMode","freeMode","prevSnap","prevSnapIndex","prevIndex","lastIndex","slideReset","slideToClosest","threshold","currentSnap","slideToIndex","slideSelector","loopedSlides","getSlideIndex","n","loopCreate","shouldFillGroup","shouldFillGrid","addBlankSlides","amountOfSlides","c","slideBlankClass","append","loopAddBlankSlides","recalcSlides","byMousewheel","loopAdditionalSlides","prependSlidesIndexes","appendSlidesIndexes","isInitialOverflow","isNext","isPrev","slidesPrepended","slidesAppended","activeColIndexWithShift","colIndexToPrepend","__preventObserver__","swiperLoopMoveDOM","prepend","currentSlideTranslate","touchEventsData","startTranslate","shift","controller","control","loopParams","loopDestroy","newSlidesOrder","swiperSlideIndex","preventEdgeSwipe","startX","edgeSwipeDetection","edgeSwipeThreshold","innerWidth","preventDefault","onTouchStart","originalEvent","type","pointerId","targetTouches","touchId","identifier","pageX","touches","simulateTouch","pointerType","targetEl","touchEventsTarget","which","button","isTouched","isMoved","swipingClassHasValue","noSwipingClass","eventPath","composedPath","noSwipingSelector","isTargetShadow","noSwiping","base","__closestFrom","assignedSlot","found","getRootNode","closestElement","allowClick","swipeHandler","currentX","currentY","pageY","startY","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","previousX","previousY","diffX","diffY","sqrt","touchAngle","atan2","PI","preventTouchMoveFromPointerMove","cancelable","touchMoveStopPropagation","nested","stopPropagation","touchesDiff","oneWayMovement","touchRatio","prevTouchesDirection","touchesDirection","isLoop","allowLoopFix","evt","bubbles","detail","bySwiperTouchMove","dispatchEvent","allowMomentumBounce","grabCursor","setGrabCursor","getTime","_loopSwapReset","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","defaults","swiperElementNodeName","resizeObserver","createElements","eventsPrefix","breakpointsBase","uniqueNavElements","passiveListeners","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","transition","duration","transitionDuration","transitionDelay","moving","isLocked","cursor","unsetGrabCursor","attachEvents","detachEvents","breakpointContainer","breakpoint","getBreakpoint","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasGrabCursor","isGrabCursor","wasEnabled","emitContainerClasses","prop","wasModuleEnabled","isModuleEnabled","directionChanged","needsReLoop","wasLoop","changeDirection","isEnabled","hasLoop","containerEl","currentHeight","innerHeight","points","point","minRatio","value","sort","a","b","wasLocked","lastSlideRightEdge","classes","addClasses","classNames","suffixes","entries","resultClasses","item","prepareClasses","removeClasses","extendedDefaults","prototype","toString","swipers","newParams","__swiper__","__modules__","mod","extendParams","swiperParams","passedParams","eventName","velocity","trunc","clickTimeout","velocities","imagesToLoad","imagesLoaded","property","setProgress","current","cls","join","getSlideClasses","updates","view","exact","spv","breakLoop","translateValue","translated","complete","newDirection","needUpdate","currentDirection","changeLanguageDirection","mount","element","mounted","toUpperCase","getWrapperSelector","trim","getWrapper","slideSlots","hostEl","lazyElements","destroy","deleteInstance","cleanStyles","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","attributes","childList","characterData","observeParents","observeSlideChildren","containerParents","disconnect","paramsList","o","needsNavigation","needsPagination","pagination","needsScrollbar","scrollbar","uniqueClasses","unique","_extends","source","hasOwnProperty","isChildSwiperSlide","child","displayName","processChildren","toArray","getChildren","slots","slot","foundSlides","useIsomorphicLayoutEffect","deps","useEffect","useLayoutEffect","SwiperSlideContext","createContext","SwiperContext","forwardRef","externalElRef","tag","Tag","wrapperTag","WrapperTag","rest","eventsAssigned","containerClasses","setContainerClasses","useState","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","needThumbsInit","needControllerInit","needPaginationInit","needScrollbarInit","needNavigationInit","loopNeedDestroy","loopNeedEnable","loopNeedReloop","destroyModule","newValue","part","appendChild","render","innerHTML","nextButtonSvg","prevButtonSvg","updateSwiper","parallax","Provider","offset","top","to","loopFrom","loopTo","slidesToRender","virtualIndex","renderVirtual","externalRef","zoom","lazy","slideElRef","slideClasses","setSlideClasses","lazyLoaded","setLazyLoaded","updateClasses","_s","slideData","isActive","renderChildren","useSiteSettings","site","useStaticQuery","siteSettingsQuery","HtmlTooltip","other","isMobile","isTablet","useBreakpoint","open","setOpen","actionElement","addPropsToChildren","SwipeableDrawer","disableDiscovery","disableSwipeToOpen","anchor","onClose","onOpen","PaperProps","ClickAwayListener","onClickAway","Tooltip","arrow","placement","h","plural","str","exec","parse","long","round","fmtShort","JSON","stringify","parts","component","p","propParts","_prop","_value","text","_data$buttons","isSection","hasValues","buttons","Paper","elevation","Button","variant","r","storage","process","DEBUG","Function","lastC","removeItem","WebkitAppearance","firebug","exception","table","$1","chrome","local","localStorage","localstorage","j","err","__defProp","defineProperty","__defProps","defineProperties","__getOwnPropDescs","getOwnPropertyDescriptors","__getOwnPropSymbols","getOwnPropertySymbols","__hasOwnProp","__propIsEnum","propertyIsEnumerable","__defNormalProp","enumerable","configurable","writable","__spreadValues","__spreadProps","__objRest","exclude","createIcon","iconConfig","_a","_b","bgStyle","borderRadius","iconFillColor","jsxs","jsx","AssertionError","super","assert","objectToGetParams","object","ShareButton","_c","_d","beforeOnClick","disabled","disabledStyle","opacity","forwardedRef","htmlTitle","networkLink","networkName","onShareWindowClose","openShareDialogOnClick","resetButtonStyle","windowHeight","windowPosition","windowWidth","newClassName","newStyle","backgroundColor","padding","font","async","returnVal","then","configRest","config","toolbar","status","directories","menubar","scrollbars","resizable","centerscreen","shareDialog","interval","setInterval","closed","clearInterval","error","windowOpen","left","outerWidth","screenX","screenLeft","outerHeight","screenY","screenTop","getBoxPositionOnScreenCenter","createShareButton","optsMap","CreatedButton","passedProps","separator","subject","appId","redirectUri","redirect_uri","app_id","FacebookShareButton","hashtag","u","SocialMediaShareCount","_e","_f","shareCount","getCount","isMounted","useCallback","useIsMounted","setCount","isLoading","setIsLoading","count2","createShareCount","ShareCount","shareUrl","jsonp","og_object","engagement","description","LinkedinShareButton","summary","mini","imageUrl","image_url","image","OK","Share","index2","_count","callbacks","ODKL","updateCount","callbackIndex","uid","media","pinId","response","score","caption","tags","posttype","canonicalUrl","note_count","TwitterShareButton","via","hashtags","related","noParse","noVkLinks","noparse","no_vk_links","VK","act","pic","quote","ShareFab","Content","FabButton","Fab","x2","y2","x1","twitterAuthor","seo","renderToStaticMarkup","CurrentYear","hasOwn","arg","appendClass","parseValue","newClass","default","deleteProps","nextTick","delay","now","matrix","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","m41","m42","nextSource","HTMLElement","nodeType","keysArray","nextIndex","nextKey","desc","getOwnPropertyDescriptor","setCSSProperty","varName","varValue","setProperty","animateCSSModeScroll","startPosition","time","startTime","cssModeFrameID","isOutOfBound","animate","easeProgress","cos","currentPosition","overflow","elementChildren","HTMLSlotElement","assignedElements","elementIsChildOf","parent","isChild","elementsQueue","elementToCheck","elementIsChildOfSlot","showWarning","warn","classesToTokens","elementPrevAll","prevEls","previousElementSibling","elementNextAll","nextEls","nextElementSibling","next","elementStyle","elementIndex","previousSibling","elementParents","parents","parentElement","elementOuterSize","includeMargins","AuthorCard","author","avatar","Img","gravity","jobTitle","bio","getFabUtilityClass","generateUtilityClass","generateUtilityClasses","_excluded","FabRoot","styled","shouldForwardProp","rootShouldForwardProp","overridesResolver","styles","ownerState","root","capitalize","colorInherit","theme","_theme$palette$getCon","_theme$palette","typography","minHeight","transitions","create","short","minWidth","zIndex","vars","fab","boxShadow","shadows","palette","primary","getContrastText","grey","A100","textDecoration","focusVisible","contrastText","main","dark","action","disabledBackground","inProps","disableFocusRipple","focusVisibleClassName","composedClasses","composeClasses","useUtilityClasses","clsx","focusRipple","RichAnchor"],"sourceRoot":""}