{"version":3,"file":"component---src-pages-index-js-fca5c734ba0f042460f9.js","mappings":"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","sources":["webpack://sar-website/./node_modules/dayjs/dayjs.min.js","webpack://sar-website/./node_modules/gatsby-plugin-breakpoints/index.js","webpack://sar-website/./node_modules/gatsby-plugin-breakpoints/withBreakpoints.js","webpack://sar-website/./src/utils/functions.ts","webpack://sar-website/./src/components/before-travel.js","webpack://sar-website/./node_modules/ssr-window/ssr-window.esm.js","webpack://sar-website/./node_modules/dom7/dom7.esm.js","webpack://sar-website/./node_modules/swiper/shared/dom.js","webpack://sar-website/./node_modules/swiper/shared/utils.js","webpack://sar-website/./node_modules/swiper/shared/get-support.js","webpack://sar-website/./node_modules/swiper/shared/get-device.js","webpack://sar-website/./node_modules/swiper/shared/get-browser.js","webpack://sar-website/./node_modules/swiper/core/events-emitter.js","webpack://sar-website/./node_modules/swiper/core/update/index.js","webpack://sar-website/./node_modules/swiper/core/update/updateSize.js","webpack://sar-website/./node_modules/swiper/core/update/updateSlides.js","webpack://sar-website/./node_modules/swiper/core/update/updateAutoHeight.js","webpack://sar-website/./node_modules/swiper/core/update/updateSlidesOffset.js","webpack://sar-website/./node_modules/swiper/core/update/updateSlidesProgress.js","webpack://sar-website/./node_modules/swiper/core/update/updateProgress.js","webpack://sar-website/./node_modules/swiper/core/update/updateSlidesClasses.js","webpack://sar-website/./node_modules/swiper/core/update/updateActiveIndex.js","webpack://sar-website/./node_modules/swiper/core/update/updateClickedSlide.js","webpack://sar-website/./node_modules/swiper/core/translate/index.js","webpack://sar-website/./node_modules/swiper/core/translate/getTranslate.js","webpack://sar-website/./node_modules/swiper/core/translate/setTranslate.js","webpack://sar-website/./node_modules/swiper/core/translate/minTranslate.js","webpack://sar-website/./node_modules/swiper/core/translate/maxTranslate.js","webpack://sar-website/./node_modules/swiper/core/translate/translateTo.js","webpack://sar-website/./node_modules/swiper/core/transition/transitionEmit.js","webpack://sar-website/./node_modules/swiper/core/slide/index.js","webpack://sar-website/./node_modules/swiper/core/slide/slideTo.js","webpack://sar-website/./node_modules/swiper/core/slide/slideToLoop.js","webpack://sar-website/./node_modules/swiper/core/slide/slideNext.js","webpack://sar-website/./node_modules/swiper/core/slide/slidePrev.js","webpack://sar-website/./node_modules/swiper/core/slide/slideReset.js","webpack://sar-website/./node_modules/swiper/core/slide/slideToClosest.js","webpack://sar-website/./node_modules/swiper/core/slide/slideToClickedSlide.js","webpack://sar-website/./node_modules/swiper/core/loop/index.js","webpack://sar-website/./node_modules/swiper/core/loop/loopCreate.js","webpack://sar-website/./node_modules/swiper/core/loop/loopFix.js","webpack://sar-website/./node_modules/swiper/core/loop/loopDestroy.js","webpack://sar-website/./node_modules/swiper/core/events/onTouchStart.js","webpack://sar-website/./node_modules/swiper/core/events/onTouchMove.js","webpack://sar-website/./node_modules/swiper/core/events/onTouchEnd.js","webpack://sar-website/./node_modules/swiper/core/events/onResize.js","webpack://sar-website/./node_modules/swiper/core/events/onClick.js","webpack://sar-website/./node_modules/swiper/core/events/onScroll.js","webpack://sar-website/./node_modules/swiper/core/events/index.js","webpack://sar-website/./node_modules/swiper/core/breakpoints/setBreakpoint.js","webpack://sar-website/./node_modules/swiper/core/breakpoints/index.js","webpack://sar-website/./node_modules/swiper/core/breakpoints/getBreakpoint.js","webpack://sar-website/./node_modules/swiper/core/classes/index.js","webpack://sar-website/./node_modules/swiper/core/classes/addClasses.js","webpack://sar-website/./node_modules/swiper/core/classes/removeClasses.js","webpack://sar-website/./node_modules/swiper/core/check-overflow/index.js","webpack://sar-website/./node_modules/swiper/core/defaults.js","webpack://sar-website/./node_modules/swiper/core/moduleExtendParams.js","webpack://sar-website/./node_modules/swiper/core/core.js","webpack://sar-website/./node_modules/swiper/core/transition/index.js","webpack://sar-website/./node_modules/swiper/core/transition/setTransition.js","webpack://sar-website/./node_modules/swiper/core/transition/transitionStart.js","webpack://sar-website/./node_modules/swiper/core/transition/transitionEnd.js","webpack://sar-website/./node_modules/swiper/core/grab-cursor/index.js","webpack://sar-website/./node_modules/swiper/core/grab-cursor/setGrabCursor.js","webpack://sar-website/./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","webpack://sar-website/./node_modules/swiper/core/images/index.js","webpack://sar-website/./node_modules/swiper/core/images/loadImage.js","webpack://sar-website/./node_modules/swiper/core/images/preloadImages.js","webpack://sar-website/./node_modules/swiper/core/modules/resize/resize.js","webpack://sar-website/./node_modules/swiper/core/modules/observer/observer.js","webpack://sar-website/./node_modules/swiper/shared/create-element-if-not-defined.js","webpack://sar-website/./node_modules/swiper/modules/navigation/navigation.js","webpack://sar-website/./node_modules/swiper/shared/classes-to-selector.js","webpack://sar-website/./node_modules/swiper/modules/pagination/pagination.js","webpack://sar-website/./node_modules/swiper/modules/a11y/a11y.js","webpack://sar-website/./node_modules/swiper/shared/effect-target.js","webpack://sar-website/./node_modules/swiper/modules/effect-fade/effect-fade.js","webpack://sar-website/./node_modules/swiper/shared/effect-init.js","webpack://sar-website/./node_modules/swiper/shared/effect-virtual-transition-end.js","webpack://sar-website/./node_modules/swiper/react/utils.js","webpack://sar-website/./node_modules/swiper/react/params-list.js","webpack://sar-website/./node_modules/swiper/react/loop.js","webpack://sar-website/./node_modules/swiper/react/get-children.js","webpack://sar-website/./node_modules/swiper/react/update-swiper.js","webpack://sar-website/./node_modules/swiper/react/use-isomorphic-layout-effect.js","webpack://sar-website/./node_modules/swiper/react/swiper.js","webpack://sar-website/./node_modules/swiper/react/get-params.js","webpack://sar-website/./node_modules/swiper/react/init-swiper.js","webpack://sar-website/./node_modules/swiper/react/get-changed-params.js","webpack://sar-website/./node_modules/swiper/react/virtual.js","webpack://sar-website/./node_modules/swiper/react/swiper-slide.js","webpack://sar-website/./src/components/popular-destinations.js","webpack://sar-website/./src/components/services-offer.js","webpack://sar-website/./node_modules/@heroicons/react/solid/esm/ChevronDownIcon.js","webpack://sar-website/./node_modules/@heroicons/react/solid/esm/ChevronUpIcon.js","webpack://sar-website/./src/components/Counter/index.tsx","webpack://sar-website/./src/features/Booking/PassengersSelector/ErrorMessage.tsx","webpack://sar-website/./src/features/Booking/PassengersSelector/index.tsx","webpack://sar-website/./src/features/Booking/TripTypeSwitcher.tsx","webpack://sar-website/./src/components/ColumnSelectList/index.tsx","webpack://sar-website/./src/features/Booking/DestinationSelectorV2/index.tsx","webpack://sar-website/./src/components/CalendarV2/index.tsx","webpack://sar-website/./src/features/Booking/DateSelectorV2/index.tsx","webpack://sar-website/./src/features/Booking/index.tsx","webpack://sar-website/./src/pages/index.js"],"sourcesContent":["!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t) {\n // eslint-disable-next-line react/display-name\n return props => {\n const breakpoints = (0, _BreakpointProvider.useBreakpoint)();\n return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({\n breakpoints: breakpoints\n }, props));\n };\n};\nexports.withBreakpoints = withBreakpoints;","export function classNames(...classes: string[]) {\r\n return classes.filter(Boolean).join(' ');\r\n}\r\n\r\nexport function getUrlToBooking(fromStation: string, toStation: string, lang: string) {\r\n\r\n const url = new URL(\"https://tickets.sar.com.sa/Booking/SearchTickets\");\r\n let addDays = 21;\r\n let DateString = new Date(new Date().getTime() + (addDays * 24 * 60 * 60 * 1000)).toISOString().split(\"T\")[0]\r\n\r\n const params = new URLSearchParams({\r\n ArrivalStation: toStation,\r\n DepartureStation: fromStation,\r\n ArrivalDateString: DateString,\r\n DepartureDateString: DateString,\r\n IsReturn: \"false\",\r\n AdultCount: \"1\",\r\n Youthcount: \"0\",\r\n ChildCount: \"0\",\r\n InfantCount: \"0\",\r\n Lang: lang,\r\n ServiceType: \"1\"\r\n });\r\n\r\n url.search = params.toString();\r\n\r\n return url.toString();\r\n\r\n}","import { useI18next, Link } from 'gatsby-plugin-react-i18next';\r\nimport React from 'react';\r\nimport { StaticImage, GatsbyImage, getImage } from \"gatsby-plugin-image\"\r\nimport { graphql, useStaticQuery } from 'gatsby';\r\nimport { Trans } from 'react-i18next';\r\n\r\n\r\nexport default function BeforeTravel() {\r\n\r\n const data = useStaticQuery(graphql`\r\n query {\r\n allFile(filter: {relativeDirectory: {eq: \"travel-instructions\"}}) {\r\n edges {\r\n node {\r\n childImageSharp {\r\n gatsbyImageData\r\n }\r\n relativePath\r\n name\r\n }\r\n }\r\n }\r\n }\r\n`)\r\n\r\n\r\n let images = data.allFile.edges;\r\n let image;\r\n\r\n\r\n const instructions = [\r\n {\r\n title: \"Baggage Guide\",\r\n href: \"/before-you-travel/baggageguide\",\r\n imageSrc: 'travel-instructions/Baggage.jpg',\r\n },\r\n {\r\n title: \"Train Schedule\",\r\n href: \"/travel-information/trainschedule/\",\r\n imageSrc: 'travel-instructions/clock.jpg',\r\n },\r\n {\r\n title: \"Special Assistance\",\r\n href: \"/before-you-travel/specialassistance\",\r\n imageSrc: 'travel-instructions/Special.jpg',\r\n },\r\n {\r\n title: \"Ticket Conditions\",\r\n href: \"/before-you-travel/ticketconditions\",\r\n imageSrc: 'travel-instructions/Ticket.jpg',\r\n }\r\n ]\r\n\r\n\r\n\r\n\r\n return (\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n {instructions.map((instruction) => (\r\n\r\n image = getImage(images.find(x => x.node.relativePath == instruction.imageSrc)?.node),\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n

{instruction.title}

\r\n\r\n
\r\n
\r\n
\r\n \r\n ))}\r\n
\r\n
\r\n
\r\n )\r\n}\r\n","/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target = {}, src = {}) {\n Object.keys(src).forEach((key) => {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nconst ssrDocument = {\n body: {},\n addEventListener() { },\n removeEventListener() { },\n activeElement: {\n blur() { },\n nodeName: '',\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() { },\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() { },\n getElementsByTagName() {\n return [];\n },\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState() { },\n pushState() { },\n go() { },\n back() { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() { },\n removeEventListener() { },\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n },\n };\n },\n Image() { },\n Date() { },\n screen: {},\n setTimeout() { },\n clearTimeout() { },\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","/**\n * Dom7 4.0.6\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2023, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: February 2, 2023\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n const proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get() {\n return proto;\n },\n\n set(value) {\n proto.__proto__ = value;\n }\n\n });\n}\n\nclass Dom7 extends Array {\n constructor(items) {\n if (typeof items === 'number') {\n super(items);\n } else {\n super(...(items || []));\n makeReactive(this);\n }\n }\n\n}\n\nfunction arrayFlat(arr = []) {\n const res = [];\n arr.forEach(el => {\n if (Array.isArray(el)) {\n res.push(...arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n const uniqueArray = [];\n\n for (let i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, (match, group) => group.toUpperCase());\n}\n\n// eslint-disable-next-line\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n const a = [];\n const res = context.querySelectorAll(selector);\n\n for (let i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n const window = getWindow();\n const document = getDocument();\n let arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n const html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf(' c.split(' ')));\n this.forEach(el => {\n el.classList.add(...classNames);\n });\n return this;\n}\n\nfunction removeClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n el.classList.remove(...classNames);\n });\n return this;\n}\n\nfunction toggleClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n classNames.forEach(className => {\n el.classList.toggle(className);\n });\n });\n}\n\nfunction hasClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n return arrayFilter(this, el => {\n return classNames.filter(className => el.classList.contains(className)).length > 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (const attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (const propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n let el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n const dataKey = el.getAttribute(`data-${key}`);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (const dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (let i = 0; i < el.attributes.length; i += 1) {\n const attr = el.attributes[i];\n\n if (attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\n }\n }\n }\n\n for (const key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n const el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n const values = [];\n\n for (let i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\n for (let j = 0; j < el.options.length; j += 1) {\n el.options[j].selected = value.indexOf(el.options[j].value) >= 0;\n }\n } else {\n el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? `${duration}ms` : duration;\n }\n\n return this;\n}\n\nfunction on(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n const target = e.target;\n if (!target) return;\n const eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n const parents = $(target).parents(); // eslint-disable-line\n\n for (let k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n const events = eventType.split(' ');\n let j;\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n el.dom7LiveListeners[event].push({\n listener,\n proxyListener: handleLiveEvent\n });\n el.addEventListener(event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n const events = eventType.split(' ');\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (let k = handlers.length - 1; k >= 0; k -= 1) {\n const handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once(...args) {\n const dom = this;\n let [eventName, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\n }\n\n function onceHandler(...eventArgs) {\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger(...args) {\n const window = getWindow();\n const events = args[0].split(' ');\n const eventData = args[1];\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n\n if (window.CustomEvent) {\n const evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionStart(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionstart', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionstart', fireCallBack);\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n const window = getWindow();\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n const window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n const window = getWindow();\n let i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (const prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach((el, index) => {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n const result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n let compareWith;\n let i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n let child = this[0];\n let i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n const length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n const returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append(...els) {\n let newChild;\n const document = getDocument();\n\n for (let k = 0; k < els.length; k += 1) {\n newChild = els[k];\n\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (let j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n const document = getDocument();\n let i;\n let j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n const before = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (let j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n const after = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (let j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n const nextEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(next).is(selector)) nextEls.push(next);\n } else nextEls.push(next);\n\n el = next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n const el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n const prevEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(prev).is(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n\n el = prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n let parent = this[i].parentNode; // eslint-disable-line\n\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n\n parent = parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n let closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n const foundElements = [];\n\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n const children = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].children;\n\n for (let j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add(...els) {\n const dom = this;\n let i;\n let j;\n\n for (i = 0; i < els.length; i += 1) {\n const toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.nodeType === 1) {\n for (let j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\n// eslint-disable-next-line\n\nfunction scrollTo(...args) {\n const window = getWindow();\n let [left, top, duration, easing, callback] = args;\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n const el = this;\n let currentTop;\n let currentLeft;\n let maxTop;\n let maxLeft;\n let newTop;\n let newLeft;\n let scrollTop; // eslint-disable-line\n\n let scrollLeft; // eslint-disable-line\n\n let animateTop = top > 0 || top === 0;\n let animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time = new Date().getTime()) {\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n let done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop(...args) {\n let [top, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft(...args) {\n let [left, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\n// eslint-disable-next-line\n\nfunction animate(initialProps, initialParams) {\n const window = getWindow();\n const els = this;\n const a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n\n easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n\n stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n\n done(complete) {\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n const elements = []; // Define & Cache Initials & Units\n\n a.elements.each((el, index) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(prop => {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue,\n initialValue,\n unit,\n finalValue,\n finalFullValue,\n currentValue: initialValue\n };\n });\n });\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n let progress;\n let easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(element => {\n const el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(prop => {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n const {\n initialValue,\n finalValue,\n unit\n } = el[prop];\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n const currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n let animateInstance;\n\n for (let i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n const els = this;\n\n for (let i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nconst noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler(...args) {\n if (typeof args[0] === 'undefined') {\n for (let i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on(name, ...args);\n }\n\n return eventHandler;\n}\n\nconst click = shortcut('click');\nconst blur = shortcut('blur');\nconst focus = shortcut('focus');\nconst focusin = shortcut('focusin');\nconst focusout = shortcut('focusout');\nconst keyup = shortcut('keyup');\nconst keydown = shortcut('keydown');\nconst keypress = shortcut('keypress');\nconst submit = shortcut('submit');\nconst change = shortcut('change');\nconst mousedown = shortcut('mousedown');\nconst mousemove = shortcut('mousemove');\nconst mouseup = shortcut('mouseup');\nconst mouseenter = shortcut('mouseenter');\nconst mouseleave = shortcut('mouseleave');\nconst mouseout = shortcut('mouseout');\nconst mouseover = shortcut('mouseover');\nconst touchstart = shortcut('touchstart');\nconst touchend = shortcut('touchend');\nconst touchmove = shortcut('touchmove');\nconst resize = shortcut('resize');\nconst scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, transitionStart, trigger, val, value, width };\n","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nconst Methods = {\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n transform,\n transition,\n on,\n off,\n trigger,\n transitionEnd,\n outerWidth,\n outerHeight,\n styles,\n offset,\n css,\n each,\n html,\n text,\n is,\n index,\n eq,\n append,\n prepend,\n next,\n nextAll,\n prev,\n prevAll,\n parent,\n parents,\n closest,\n find,\n children,\n filter,\n remove\n};\nObject.keys(Methods).forEach(methodName => {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nexport default $;","import { getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n\n if (!style) {\n style = el.style;\n }\n\n return style;\n}\n\nfunction getTranslate(el, axis = 'x') {\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\n\nfunction extend(...args) {\n const to = Object(args[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[i];\n\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\n return to;\n}\n\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\n\nfunction animateCSSModeScroll({\n swiper,\n targetPosition,\n side\n}) {\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n\n const animate = () => {\n time = new Date().getTime();\n\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n\n animate();\n}\n\nexport { animateCSSModeScroll, deleteProps, nextTick, now, getTranslate, isObject, extend, getComputedStyle, setCSSProperty };","import { getWindow, getDocument } from 'ssr-window';\nlet support;\n\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n passiveListener: function checkPassiveListener() {\n let supportsPassive = false;\n\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n }\n\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support.js';\nlet deviceCached;\n\nfunction calcDevice({\n userAgent\n} = {}) {\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides = {}) {\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n\n return deviceCached;\n}\n\nexport { getDevice };","import { getWindow } from 'ssr-window';\nlet browser;\n\nfunction calcBrowser() {\n const window = getWindow();\n\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\nexport { getBrowser };","/* eslint-disable no-underscore-dangle */\nexport default {\n on(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n\n once(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n\n function onceHandler(...args) {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n\n onAny(handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n\n offAny(handler) {\n const self = this;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n\n emit(...args) {\n const self = this;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n\n};","import updateSize from './updateSize.js';\nimport updateSlides from './updateSlides.js';\nimport updateAutoHeight from './updateAutoHeight.js';\nimport updateSlidesOffset from './updateSlidesOffset.js';\nimport updateSlidesProgress from './updateSlidesProgress.js';\nimport updateProgress from './updateProgress.js';\nimport updateSlidesClasses from './updateSlidesClasses.js';\nimport updateActiveIndex from './updateActiveIndex.js';\nimport updateClickedSlide from './updateClickedSlide.js';\nexport default {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};","export default function updateSize() {\n const swiper = this;\n let width;\n let height;\n const $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { setCSSProperty } from '../../shared/utils.js';\nexport default function updateSlides() {\n const swiper = this;\n\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n } // prettier-ignore\n\n\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n\n const params = swiper.params;\n const {\n $wrapperEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n let offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginBottom: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: '',\n marginTop: ''\n }); // reset cssMode offsets\n\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', '');\n }\n\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n\n if (gridEnabled) {\n swiper.grid.initSlides(slidesLength);\n } // Calc slides\n\n\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n const slide = slides.eq(i);\n\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[getDirectionLabel('width')] = ``;\n }\n\n const slideStyles = getComputedStyle(slide[0]);\n const currentTransform = slide[0].style.transform;\n const currentWebKitTransform = slide[0].style.webkitTransform;\n\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide[0];\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (params.setWrapperSize) {\n $wrapperEl.css({\n [getDirectionLabel('width')]: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }).css({\n [key]: `${spaceBetween}px`\n });\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(snap => {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n}","export default function updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides.filter(el => parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index)[0];\n }\n\n return swiper.slides.eq(index)[0];\n }; // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n } // Find new height from highest slide in view\n\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight || newHeight === 0) swiper.$wrapperEl.css('height', `${newHeight}px`);\n}","export default function updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateSlidesProgress(translate = this && this.translate || 0) {\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","export default function updateProgress(translate) {\n const swiper = this;\n\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n Object.assign(swiper, {\n progress,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n $wrapperEl,\n activeIndex,\n realIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\n let activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`);\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}","export default function updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n slidesGrid,\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n Object.assign(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = $(e).closest(`.${params.slideClass}`)[0];\n let slideFound = false;\n let slideIndex;\n\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","import getTranslate from './getTranslate.js';\nimport setTranslate from './setTranslate.js';\nimport minTranslate from './minTranslate.js';\nimport maxTranslate from './maxTranslate.js';\nimport translateTo from './translateTo.js';\nexport default {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};","import { getTranslate } from '../../shared/utils.js';\nexport default function getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') {\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n $wrapperEl\n } = swiper;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n let currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n $wrapperEl,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function translateTo(translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","export default function transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step\n}) {\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit(`transition${step}`);\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n\n swiper.emit(`slideChangeTransition${step}`);\n\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}","import slideTo from './slideTo.js';\nimport slideToLoop from './slideToLoop.js';\nimport slideNext from './slideNext.js';\nimport slidePrev from './slidePrev.js';\nimport slideReset from './slideReset.js';\nimport slideToClosest from './slideToClosest.js';\nimport slideToClickedSlide from './slideToClickedSlide.js';\nexport default {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function slideTo(index = 0, speed = this.params.speed, runCallbacks = true, internal, initial) {\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(`The 'index' argument cannot have type other than 'number' or 'string'. [${typeof index}] given.`);\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n const indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n const isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n const translate = -snapGrid[snapIndex]; // Update progress\n\n swiper.updateProgress(translate); // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._swiperImmediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n\n return true;\n}","export default function slideToLoop(index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n let newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n animating,\n enabled,\n params\n } = swiper;\n if (!enabled) return swiper;\n let perGroup = params.slidesPerGroup;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n params,\n animating,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return swiper;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n\n let prevIndex = 0;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n\n if (params.rewind && swiper.isBeginning) {\n return swiper.slideTo(swiper.slides.length - 1, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed = this.params.speed, runCallbacks = true, internal, threshold = 0.5) {\n const swiper = this;\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import $ from '../../shared/dom.js';\nimport { nextTick } from '../../shared/utils.js';\nexport default function slideToClickedSlide() {\n const swiper = this;\n const {\n params,\n $wrapperEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import loopCreate from './loopCreate.js';\nimport loopFix from './loopFix.js';\nimport loopDestroy from './loopDestroy.js';\nexport default {\n loopCreate,\n loopFix,\n loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loopCreate() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n $wrapperEl\n } = swiper; // Remove duplicated slides\n\n const $selector = $wrapperEl.children().length > 0 ? $($wrapperEl.children()[0].parentNode) : $wrapperEl;\n $selector.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n let slides = $selector.children(`.${params.slideClass}`);\n\n if (params.loopFillGroupWithBlank) {\n const blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankNode = $(document.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`);\n $selector.append(blankNode);\n }\n\n slides = $selector.children(`.${params.slideClass}`);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n const prependSlides = [];\n const appendSlides = [];\n slides.each((el, index) => {\n const slide = $(el);\n\n if (index < swiper.loopedSlides) {\n appendSlides.push(el);\n }\n\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\n prependSlides.push(el);\n }\n\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (let i = 0; i < appendSlides.length; i += 1) {\n $selector.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n $selector.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n const swiper = this;\n swiper.emit('beforeLoopFix');\n const {\n activeIndex,\n slides,\n loopedSlides,\n allowSlidePrev,\n allowSlideNext,\n snapGrid,\n rtlTranslate: rtl\n } = swiper;\n let newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n const snapTranslate = -snapGrid[activeIndex];\n const diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n const swiper = this;\n const {\n $wrapperEl,\n params,\n slides\n } = swiper;\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js'; // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\n\nfunction closestElement(selector, base = this) {\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n return found || __closestFrom(el.getRootNode().host);\n }\n\n return __closestFrom(base);\n}\n\nexport default function onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root component\n\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) {\n $targetEl = $(event.path[0]);\n }\n\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element\n\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, e.target) : $targetEl.closest(noSwipingSelector)[0])) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n let preventDefault = true;\n if ($targetEl.is(data.focusableElements)) preventDefault = false;\n\n if (document.activeElement && $(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js';\nexport default function onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n return;\n }\n\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n const targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n const pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n const pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n\n if (!data.startMoving) {\n return;\n }\n\n swiper.allowClick = false;\n\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop && !params.cssMode) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n let diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../shared/utils.js';\nexport default function onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n\n data.allowTouchCallbacks = false;\n\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n } // Find current slide\n\n\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n } // Find current slide size\n\n\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === -0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart.js';\nimport onTouchMove from './onTouchMove.js';\nimport onTouchEnd from './onTouchEnd.js';\nimport onResize from './onResize.js';\nimport onClick from './onClick.js';\nimport onScroll from './onScroll.js';\nlet dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n touchEvents,\n el,\n wrapperEl,\n device,\n support\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method; // Touch Events\n\n if (!support.touch) {\n el[domMethod](touchEvents.start, swiper.onTouchStart, false);\n document[domMethod](touchEvents.move, swiper.onTouchMove, capture);\n document[domMethod](touchEvents.end, swiper.onTouchEnd, false);\n } else {\n const passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el[domMethod](touchEvents.start, swiper.onTouchStart, passiveListener);\n el[domMethod](touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture\n } : capture);\n el[domMethod](touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el[domMethod](touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n};\n\nfunction attachEvents() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n support\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n\n if (support.touch && !dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n\n events(swiper, 'on');\n}\n\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\n\nexport default {\n attachEvents,\n detachEvents\n};","import { extend } from '../../shared/utils.js';\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\n\nexport default function setBreakpoint() {\n const swiper = this;\n const {\n activeIndex,\n initialized,\n loopedSlides = 0,\n params,\n $el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasEnabled = params.enabled;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(`${params.containerModifierClass}grid ${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(`${params.containerModifierClass}grid`);\n\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n $el.addClass(`${params.containerModifierClass}grid-column`);\n }\n\n swiper.emitContainerClasses();\n }\n\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n}","import setBreakpoint from './setBreakpoint.js';\nimport getBreakpoint from './getBreakpoint.js';\nexport default {\n setBreakpoint,\n getBreakpoint\n};","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base = 'window', containerEl) {\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}","import addClasses from './addClasses.js';\nimport removeClasses from './removeClasses.js';\nexport default {\n addClasses,\n removeClasses\n};","function prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\n\nexport default function addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n $el,\n device,\n support\n } = swiper; // prettier-ignore\n\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': !support.touch\n }, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n $el.addClass([...classNames].join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n const swiper = this;\n const {\n $el,\n classNames\n } = swiper;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","function checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\n\nexport default {\n checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","import { extend } from '../shared/utils.js';\nexport default function moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj = {}) {\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}","/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport $ from '../shared/dom.js';\nimport { extend, now, deleteProps } from '../shared/utils.js';\nimport { getSupport } from '../shared/get-support.js';\nimport { getDevice } from '../shared/get-device.js';\nimport { getBrowser } from '../shared/get-browser.js';\nimport Resize from './modules/resize/resize.js';\nimport Observer from './modules/observer/observer.js';\nimport eventsEmitter from './events-emitter.js';\nimport update from './update/index.js';\nimport translate from './translate/index.js';\nimport transition from './transition/index.js';\nimport slide from './slide/index.js';\nimport loop from './loop/index.js';\nimport grabCursor from './grab-cursor/index.js';\nimport events from './events/index.js';\nimport breakpoints from './breakpoints/index.js';\nimport classes from './classes/index.js';\nimport images from './images/index.js';\nimport checkOverflow from './check-overflow/index.js';\nimport defaults from './defaults.js';\nimport moduleExtendParams from './moduleExtendParams.js';\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events,\n breakpoints,\n checkOverflow,\n classes,\n images\n};\nconst extendedDefaults = {};\n\nclass Swiper {\n constructor(...args) {\n let el;\n let params;\n\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n\n if (params.el && $(params.el).length > 1) {\n const swipers = [];\n $(params.el).each(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n } // Swiper Instance\n\n\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n }); // Extend defaults with modules params\n\n const swiperParams = extend({}, defaults, allModulesParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = $; // Extend Swiper\n\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n const touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n const desktop = ['pointerdown', 'pointermove', 'pointerup'];\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n\n\n return swiper;\n }\n\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n swiper.emit('enable');\n }\n\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n\n swiper.emit('disable');\n }\n\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n\n getSlideClasses(slideEl) {\n const swiper = this;\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.each(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n\n slidesPerViewDynamic(view = 'current', exact = false) {\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n\n return spv;\n }\n\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n let translated;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n }\n\n changeDirection(newDirection, needUpdate = true) {\n const swiper = this;\n const currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(`${swiper.params.containerModifierClass}${currentDirection}`).addClass(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n\n mount(el) {\n const swiper = this;\n if (swiper.mounted) return true; // Find el\n\n const $el = $(el || swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return false;\n }\n\n el.swiper = swiper;\n\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = $(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n res.children = options => $el.children(options);\n\n return res;\n }\n\n return $el.children(getWrapperSelector());\n }; // Find Wrapper\n\n\n let $wrapperEl = getWrapper();\n\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n const document = getDocument();\n const wrapper = document.createElement('div');\n $wrapperEl = $(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(`.${swiper.params.slideClass}`).each(slideEl => {\n $wrapperEl.append(slideEl);\n });\n }\n\n Object.assign(swiper, {\n $el,\n el,\n $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n });\n return true;\n }\n\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n\n destroy(deleteInstance = true, cleanStyles = true) {\n const swiper = this;\n const {\n params,\n $el,\n $wrapperEl,\n slides\n } = swiper;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n }\n\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n\n static get extendedDefaults() {\n return extendedDefaults;\n }\n\n static get defaults() {\n return defaults;\n }\n\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n }\n\n}\n\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import setTransition from './setTransition.js';\nimport transitionStart from './transitionStart.js';\nimport transitionEnd from './transitionEnd.js';\nexport default {\n setTransition,\n transitionStart,\n transitionEnd\n};","export default function setTransition(duration, byController) {\n const swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionStart(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionEnd(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}","import setGrabCursor from './setGrabCursor.js';\nimport unsetGrabCursor from './unsetGrabCursor.js';\nexport default {\n setGrabCursor,\n unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n const swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n const swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n}","import loadImage from './loadImage.js';\nimport preloadImages from './preloadImages.js';\nexport default {\n loadImage,\n preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n const window = getWindow();\n let image;\n\n function onReady() {\n if (callback) callback();\n }\n\n const isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n const swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n const imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","import { getWindow } from 'ssr-window';\nexport default function Resize({\n swiper,\n on,\n emit\n}) {\n const window = getWindow();\n let observer = null;\n\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(({\n contentBoxSize,\n contentRect,\n target\n }) => {\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n observer.observe(swiper.el);\n };\n\n const removeObserver = () => {\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}","import { getWindow } from 'ssr-window';\nexport default function Observer({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const observers = [];\n const window = getWindow();\n\n const attach = (target, options = {}) => {\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n\n const init = () => {\n if (!swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n const containerParents = swiper.$el.parents();\n\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n } // Observe container\n\n\n attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n };\n\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}","import { getDocument } from 'ssr-window';\nexport default function createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n const document = getDocument();\n\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = swiper.$el.children(`.${checkProps[key]}`)[0];\n\n if (!element) {\n element = document.createElement('div');\n element.className = checkProps[key];\n swiper.$el.append(element);\n }\n\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n\n return params;\n}","import createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nimport $ from '../../shared/dom.js';\nexport default function Navigation({\n swiper,\n extendParams,\n on,\n emit\n}) {\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock'\n }\n });\n swiper.navigation = {\n nextEl: null,\n $nextEl: null,\n prevEl: null,\n $prevEl: null\n };\n\n function getEl(el) {\n let $el;\n\n if (el) {\n $el = $(el);\n\n if (swiper.params.uniqueNavElements && typeof el === 'string' && $el.length > 1 && swiper.$el.find(el).length === 1) {\n $el = swiper.$el.find(el);\n }\n }\n\n return $el;\n }\n\n function toggleEl($el, disabled) {\n const params = swiper.params.navigation;\n\n if ($el && $el.length > 0) {\n $el[disabled ? 'addClass' : 'removeClass'](params.disabledClass);\n if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n }\n\n function update() {\n // Update Navigation Buttons\n if (swiper.params.loop) return;\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n toggleEl($prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl($nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n }\n\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n }\n\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n const $nextEl = getEl(params.nextEl);\n const $prevEl = getEl(params.prevEl);\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', onNextClick);\n }\n\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', onPrevClick);\n }\n\n Object.assign(swiper.navigation, {\n $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl,\n prevEl: $prevEl && $prevEl[0]\n });\n\n if (!swiper.enabled) {\n if ($nextEl) $nextEl.addClass(params.lockClass);\n if ($prevEl) $prevEl.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n\n on('init', () => {\n init();\n update();\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($nextEl) {\n $nextEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n\n if ($prevEl) {\n $prevEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n });\n on('click', (_s, e) => {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n const targetEl = e.target;\n\n if (swiper.params.navigation.hideOnClick && !$(targetEl).is($prevEl) && !$(targetEl).is($nextEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n });\n Object.assign(swiper.navigation, {\n update,\n init,\n destroy\n });\n}","export default function classesToSelector(classes = '') {\n return `.${classes.trim().replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}","import $ from '../../shared/dom.js';\nimport classesToSelector from '../../shared/classes-to-selector.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Pagination({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`\n }\n });\n swiper.pagination = {\n el: null,\n $el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0;\n }\n\n function setSideBullets($bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n $bulletEl[position]().addClass(`${bulletActiveClass}-${position}`)[position]().addClass(`${bulletActiveClass}-${position}-${position}`);\n }\n\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el; // Current/Total\n\n let current;\n const total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\n\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n } // Types\n\n\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n\n if (params.dynamicBullets) {\n bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', `${bulletSize * (params.dynamicMainBullets + 4)}px`);\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n dynamicBulletIndex += current - (swiper.previousIndex - swiper.loopedSlides || 0);\n\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n\n bullets.removeClass(['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`).join(' '));\n\n if ($el.length > 1) {\n bullets.each(bullet => {\n const $bullet = $(bullet);\n const bulletIndex = $bullet.index();\n\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(`${params.bulletActiveClass}-main`);\n }\n\n if (bulletIndex === firstIndex) {\n setSideBullets($bullet, 'prev');\n }\n\n if (bulletIndex === lastIndex) {\n setSideBullets($bullet, 'next');\n }\n }\n });\n } else {\n const $bullet = bullets.eq(current);\n const bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n\n if (params.dynamicBullets) {\n const $firstDisplayedBullet = bullets.eq(firstIndex);\n const $lastDisplayedBullet = bullets.eq(lastIndex);\n\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(`${params.bulletActiveClass}-main`);\n }\n\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length) {\n for (let i = params.dynamicMainBullets; i >= 0; i -= 1) {\n bullets.eq(bullets.length - i).addClass(`${params.bulletActiveClass}-main`);\n }\n\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(`${params.bulletActiveClass}-prev`);\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n }\n }\n\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`);\n }\n }\n\n if (params.type === 'fraction') {\n $el.find(classesToSelector(params.currentClass)).text(params.formatFractionCurrent(current + 1));\n $el.find(classesToSelector(params.totalClass)).text(params.formatFractionTotal(total));\n }\n\n if (params.type === 'progressbar') {\n let progressbarDirection;\n\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n\n $el.find(classesToSelector(params.progressbarFillClass)).transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed);\n }\n\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n emit('paginationRender', $el[0]);\n } else {\n emit('paginationUpdate', $el[0]);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el;\n let paginationHTML = '';\n\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.loop && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\">`;\n }\n }\n\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(classesToSelector(params.bulletClass));\n }\n\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `` + ' / ' + ``;\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type !== 'custom') {\n emit('paginationRender', swiper.pagination.$el[0]);\n }\n }\n\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let $el = $(params.el);\n if ($el.length === 0) return;\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n $el = swiper.$el.find(params.el); // check if it belongs to another nested Swiper\n\n if ($el.length > 1) {\n $el = $el.filter(el => {\n if ($(el).parents('.swiper')[0] !== swiper.el) return false;\n return true;\n });\n }\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n $el.addClass(params.modifierClass + swiper.params.direction);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', classesToSelector(params.bulletClass), function onClick(e) {\n e.preventDefault();\n let index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n Object.assign(swiper.pagination, {\n $el,\n el: $el[0]\n });\n\n if (!swiper.enabled) {\n $el.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n $el.removeClass(params.modifierClass + swiper.params.direction);\n if (swiper.pagination.bullets && swiper.pagination.bullets.removeClass) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n if (params.clickable) {\n $el.off('click', classesToSelector(params.bulletClass));\n }\n }\n\n on('init', () => {\n init();\n render();\n update();\n });\n on('activeIndexChange', () => {\n if (swiper.params.loop) {\n update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n if (!swiper.params.loop) {\n update();\n }\n });\n on('slidesLengthChange', () => {\n if (swiper.params.loop) {\n render();\n update();\n }\n });\n on('snapGridLengthChange', () => {\n if (!swiper.params.loop) {\n render();\n update();\n }\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $el\n } = swiper.pagination;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n const {\n $el\n } = swiper.pagination;\n\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && $el.length > 0 && !$(targetEl).hasClass(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = $el.hasClass(swiper.params.pagination.hiddenClass);\n\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n\n $el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n });\n Object.assign(swiper.pagination, {\n render,\n update,\n init,\n destroy\n });\n}","import classesToSelector from '../../shared/classes-to-selector.js';\nimport $ from '../../shared/dom.js';\nexport default function A11y({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n slideLabelMessage: '{{index}} / {{slidesLength}}',\n containerMessage: null,\n containerRoleDescriptionMessage: null,\n itemRoleDescriptionMessage: null,\n slideRole: 'group'\n }\n });\n let liveRegion = null;\n\n function notify(message) {\n const notification = liveRegion;\n if (notification.length === 0) return;\n notification.html('');\n notification.html(message);\n }\n\n function getRandomNumber(size = 16) {\n const randomChar = () => Math.round(16 * Math.random()).toString(16);\n\n return 'x'.repeat(size).replace(/x/g, randomChar);\n }\n\n function makeElFocusable($el) {\n $el.attr('tabIndex', '0');\n }\n\n function makeElNotFocusable($el) {\n $el.attr('tabIndex', '-1');\n }\n\n function addElRole($el, role) {\n $el.attr('role', role);\n }\n\n function addElRoleDescription($el, description) {\n $el.attr('aria-roledescription', description);\n }\n\n function addElControls($el, controls) {\n $el.attr('aria-controls', controls);\n }\n\n function addElLabel($el, label) {\n $el.attr('aria-label', label);\n }\n\n function addElId($el, id) {\n $el.attr('id', id);\n }\n\n function addElLive($el, live) {\n $el.attr('aria-live', live);\n }\n\n function disableEl($el) {\n $el.attr('aria-disabled', true);\n }\n\n function enableEl($el) {\n $el.attr('aria-disabled', false);\n }\n\n function onEnterOrSpaceKey(e) {\n if (e.keyCode !== 13 && e.keyCode !== 32) return;\n const params = swiper.params.a11y;\n const $targetEl = $(e.target);\n\n if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n\n if (swiper.isEnd) {\n notify(params.lastSlideMessage);\n } else {\n notify(params.nextSlideMessage);\n }\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n\n if (swiper.isBeginning) {\n notify(params.firstSlideMessage);\n } else {\n notify(params.prevSlideMessage);\n }\n }\n\n if (swiper.pagination && $targetEl.is(classesToSelector(swiper.params.pagination.bulletClass))) {\n $targetEl[0].click();\n }\n }\n\n function updateNavigation() {\n if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return;\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n disableEl($prevEl);\n makeElNotFocusable($prevEl);\n } else {\n enableEl($prevEl);\n makeElFocusable($prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n disableEl($nextEl);\n makeElNotFocusable($nextEl);\n } else {\n enableEl($nextEl);\n makeElFocusable($nextEl);\n }\n }\n }\n\n function hasPagination() {\n return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length;\n }\n\n function hasClickablePagination() {\n return hasPagination() && swiper.params.pagination.clickable;\n }\n\n function updatePagination() {\n const params = swiper.params.a11y;\n if (!hasPagination()) return;\n swiper.pagination.bullets.each(bulletEl => {\n const $bulletEl = $(bulletEl);\n\n if (swiper.params.pagination.clickable) {\n makeElFocusable($bulletEl);\n\n if (!swiper.params.pagination.renderBullet) {\n addElRole($bulletEl, 'button');\n addElLabel($bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, $bulletEl.index() + 1));\n }\n }\n\n if ($bulletEl.is(`.${swiper.params.pagination.bulletActiveClass}`)) {\n $bulletEl.attr('aria-current', 'true');\n } else {\n $bulletEl.removeAttr('aria-current');\n }\n });\n }\n\n const initNavEl = ($el, wrapperId, message) => {\n makeElFocusable($el);\n\n if ($el[0].tagName !== 'BUTTON') {\n addElRole($el, 'button');\n $el.on('keydown', onEnterOrSpaceKey);\n }\n\n addElLabel($el, message);\n addElControls($el, wrapperId);\n };\n\n function init() {\n const params = swiper.params.a11y;\n swiper.$el.append(liveRegion); // Container\n\n const $containerEl = swiper.$el;\n\n if (params.containerRoleDescriptionMessage) {\n addElRoleDescription($containerEl, params.containerRoleDescriptionMessage);\n }\n\n if (params.containerMessage) {\n addElLabel($containerEl, params.containerMessage);\n } // Wrapper\n\n\n const $wrapperEl = swiper.$wrapperEl;\n const wrapperId = $wrapperEl.attr('id') || `swiper-wrapper-${getRandomNumber(16)}`;\n const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';\n addElId($wrapperEl, wrapperId);\n addElLive($wrapperEl, live); // Slide\n\n if (params.itemRoleDescriptionMessage) {\n addElRoleDescription($(swiper.slides), params.itemRoleDescriptionMessage);\n }\n\n addElRole($(swiper.slides), params.slideRole);\n const slidesLength = swiper.params.loop ? swiper.slides.filter(el => !el.classList.contains(swiper.params.slideDuplicateClass)).length : swiper.slides.length;\n swiper.slides.each((slideEl, index) => {\n const $slideEl = $(slideEl);\n const slideIndex = swiper.params.loop ? parseInt($slideEl.attr('data-swiper-slide-index'), 10) : index;\n const ariaLabelMessage = params.slideLabelMessage.replace(/\\{\\{index\\}\\}/, slideIndex + 1).replace(/\\{\\{slidesLength\\}\\}/, slidesLength);\n addElLabel($slideEl, ariaLabelMessage);\n }); // Navigation\n\n let $nextEl;\n let $prevEl;\n\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n\n if ($nextEl && $nextEl.length) {\n initNavEl($nextEl, wrapperId, params.nextSlideMessage);\n }\n\n if ($prevEl && $prevEl.length) {\n initNavEl($prevEl, wrapperId, params.prevSlideMessage);\n } // Pagination\n\n\n if (hasClickablePagination()) {\n swiper.pagination.$el.on('keydown', classesToSelector(swiper.params.pagination.bulletClass), onEnterOrSpaceKey);\n }\n }\n\n function destroy() {\n if (liveRegion && liveRegion.length > 0) liveRegion.remove();\n let $nextEl;\n let $prevEl;\n\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n\n if ($nextEl) {\n $nextEl.off('keydown', onEnterOrSpaceKey);\n }\n\n if ($prevEl) {\n $prevEl.off('keydown', onEnterOrSpaceKey);\n } // Pagination\n\n\n if (hasClickablePagination()) {\n swiper.pagination.$el.off('keydown', classesToSelector(swiper.params.pagination.bulletClass), onEnterOrSpaceKey);\n }\n }\n\n on('beforeInit', () => {\n liveRegion = $(``);\n });\n on('afterInit', () => {\n if (!swiper.params.a11y.enabled) return;\n init();\n updateNavigation();\n });\n on('toEdge', () => {\n if (!swiper.params.a11y.enabled) return;\n updateNavigation();\n });\n on('fromEdge', () => {\n if (!swiper.params.a11y.enabled) return;\n updateNavigation();\n });\n on('paginationUpdate', () => {\n if (!swiper.params.a11y.enabled) return;\n updatePagination();\n });\n on('destroy', () => {\n if (!swiper.params.a11y.enabled) return;\n destroy();\n });\n}","export default function effectTarget(effectParams, $slideEl) {\n if (effectParams.transformEl) {\n return $slideEl.find(effectParams.transformEl).css({\n 'backface-visibility': 'hidden',\n '-webkit-backface-visibility': 'hidden'\n });\n }\n\n return $slideEl;\n}","import effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nexport default function EffectFade({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n fadeEffect: {\n crossFade: false,\n transformEl: null\n }\n });\n\n const setTranslate = () => {\n const {\n slides\n } = swiper;\n const params = swiper.params.fadeEffect;\n\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = swiper.slides.eq(i);\n const offset = $slideEl[0].swiperSlideOffset;\n let tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n let ty = 0;\n\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n\n const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs($slideEl[0].progress), 0) : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\n const $targetEl = effectTarget(params, $slideEl);\n $targetEl.css({\n opacity: slideOpacity\n }).transform(`translate3d(${tx}px, ${ty}px, 0px)`);\n }\n };\n\n const setTransition = duration => {\n const {\n transformEl\n } = swiper.params.fadeEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration);\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformEl,\n allSlides: true\n });\n };\n\n effectInit({\n effect: 'fade',\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}","export default function effectInit(params) {\n const {\n effect,\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams,\n perspective\n } = params;\n on('beforeInit', () => {\n if (swiper.params.effect !== effect) return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`);\n\n if (perspective && perspective()) {\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n }\n\n const overwriteParamsResult = overwriteParams ? overwriteParams() : {};\n Object.assign(swiper.params, overwriteParamsResult);\n Object.assign(swiper.originalParams, overwriteParamsResult);\n });\n on('setTranslate', () => {\n if (swiper.params.effect !== effect) return;\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n if (swiper.params.effect !== effect) return;\n setTransition(duration);\n });\n}","export default function effectVirtualTransitionEnd({\n swiper,\n duration,\n transformEl,\n allSlides\n}) {\n const {\n slides,\n activeIndex,\n $wrapperEl\n } = swiper;\n\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n let $transitionEndTarget;\n\n if (allSlides) {\n $transitionEndTarget = transformEl ? slides.find(transformEl) : slides;\n } else {\n $transitionEndTarget = transformEl ? slides.eq(activeIndex).find(transformEl) : slides.eq(activeIndex);\n }\n\n $transitionEndTarget.transitionEnd(() => {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n const triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n\n for (let i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n}","function isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\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}\n\nfunction needsNavigation(params = {}) {\n return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined';\n}\n\nfunction needsPagination(params = {}) {\n return params.pagination && typeof params.pagination.el === 'undefined';\n}\n\nfunction needsScrollbar(params = {}) {\n return params.scrollbar && typeof params.scrollbar.el === 'undefined';\n}\n\nfunction uniqueClasses(classNames = '') {\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}\n\nexport { isObject, extend, needsNavigation, needsPagination, needsScrollbar, uniqueClasses };","/* underscore in name -> watch for changes */\nconst paramsList = ['modules', 'init', '_direction', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', 'focusableElements', '_enabled', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', '_spaceBetween', '_slidesPerView', '_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', '_preloadImages', 'updateOnImagesReady', '_loop', '_loopAdditionalSlides', '_loopedSlides', '_loopFillGroupWithBlank', 'loopPreventsSlide', '_rewind', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideBlankClass', 'slideActiveClass', 'slideDuplicateActiveClass', 'slideVisibleClass', 'slideDuplicateClass', 'slideNextClass', 'slideDuplicateNextClass', 'slidePrevClass', 'slideDuplicatePrevClass', 'wrapperClass', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren', // modules\n'a11y', 'autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'creativeEffect', 'cardsEffect', 'hashNavigation', 'history', 'keyboard', 'lazy', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom'];\nexport { paramsList };","import React from 'react';\nimport Swiper from 'swiper';\n\nfunction calcLoopedSlides(slides, swiperParams) {\n let slidesPerViewParams = swiperParams.slidesPerView;\n\n if (swiperParams.breakpoints) {\n const breakpoint = Swiper.prototype.getBreakpoint(swiperParams.breakpoints);\n const breakpointOnlyParams = breakpoint in swiperParams.breakpoints ? swiperParams.breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams && breakpointOnlyParams.slidesPerView) {\n slidesPerViewParams = breakpointOnlyParams.slidesPerView;\n }\n }\n\n let loopedSlides = Math.ceil(parseFloat(swiperParams.loopedSlides || slidesPerViewParams, 10));\n loopedSlides += swiperParams.loopAdditionalSlides;\n\n if (loopedSlides > slides.length) {\n loopedSlides = slides.length;\n }\n\n return loopedSlides;\n}\n\nfunction renderLoop(swiper, slides, swiperParams) {\n const modifiedSlides = slides.map((child, index) => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper,\n 'data-swiper-slide-index': index\n });\n });\n\n function duplicateSlide(child, index, position) {\n return /*#__PURE__*/React.cloneElement(child, {\n key: `${child.key}-duplicate-${index}-${position}`,\n className: `${child.props.className || ''} ${swiperParams.slideDuplicateClass}`\n });\n }\n\n if (swiperParams.loopFillGroupWithBlank) {\n const blankSlidesNum = swiperParams.slidesPerGroup - modifiedSlides.length % swiperParams.slidesPerGroup;\n\n if (blankSlidesNum !== swiperParams.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankSlide = /*#__PURE__*/React.createElement(\"div\", {\n className: `${swiperParams.slideClass} ${swiperParams.slideBlankClass}`\n });\n modifiedSlides.push(blankSlide);\n }\n }\n }\n\n if (swiperParams.slidesPerView === 'auto' && !swiperParams.loopedSlides) {\n swiperParams.loopedSlides = modifiedSlides.length;\n }\n\n const loopedSlides = calcLoopedSlides(modifiedSlides, swiperParams);\n const prependSlides = [];\n const appendSlides = [];\n modifiedSlides.forEach((child, index) => {\n if (index < loopedSlides) {\n appendSlides.push(duplicateSlide(child, index, 'prepend'));\n }\n\n if (index < modifiedSlides.length && index >= modifiedSlides.length - loopedSlides) {\n prependSlides.push(duplicateSlide(child, index, 'append'));\n }\n });\n\n if (swiper) {\n swiper.loopedSlides = loopedSlides;\n }\n\n return [...prependSlides, ...modifiedSlides, ...appendSlides];\n}\n\nexport { calcLoopedSlides, renderLoop };","import React from 'react';\n\nfunction processChildren(c) {\n const slides = [];\n React.Children.toArray(c).forEach(child => {\n if (child.type && child.type.displayName === 'SwiperSlide') {\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}\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 (child.type && child.type.displayName === 'SwiperSlide') {\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\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\nexport { getChildren };","import { isObject, extend } from './utils.js';\n\nfunction updateSwiper({\n swiper,\n slides,\n passedParams,\n changedParams,\n nextEl,\n prevEl,\n scrollbarEl,\n paginationEl\n}) {\n const updateParams = changedParams.filter(key => key !== 'children' && key !== 'direction');\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\n if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && currentParams.thumbs && !currentParams.thumbs.swiper) {\n needThumbsInit = true;\n }\n\n if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) {\n needControllerInit = true;\n }\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\n if (changedParams.includes('scrollbar') && passedParams.scrollbar && (passedParams.scrollbar.el || scrollbarEl) && (currentParams.scrollbar || currentParams.scrollbar === false) && scrollbar && !scrollbar.el) {\n needScrollbarInit = true;\n }\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\n const destroyModule = mod => {\n if (!swiper[mod]) return;\n swiper[mod].destroy();\n\n if (mod === 'navigation') {\n currentParams[mod].prevEl = undefined;\n currentParams[mod].nextEl = undefined;\n swiper[mod].prevEl = undefined;\n swiper[mod].nextEl = undefined;\n } else {\n currentParams[mod].el = undefined;\n swiper[mod].el = undefined;\n }\n };\n\n updateParams.forEach(key => {\n if (isObject(currentParams[key]) && isObject(passedParams[key])) {\n extend(currentParams[key], passedParams[key]);\n } else {\n const newValue = passedParams[key];\n\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\n if (changedParams.includes('children') && virtual && currentParams.virtual.enabled) {\n virtual.slides = slides;\n virtual.update(true);\n } else if (changedParams.includes('children') && swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n\n if (needThumbsInit) {\n const initialized = thumbs.init();\n if (initialized) thumbs.update(true);\n }\n\n if (needControllerInit) {\n swiper.controller.control = currentParams.controller.control;\n }\n\n if (needPaginationInit) {\n if (paginationEl) currentParams.pagination.el = paginationEl;\n pagination.init();\n pagination.render();\n pagination.update();\n }\n\n if (needScrollbarInit) {\n if (scrollbarEl) currentParams.scrollbar.el = scrollbarEl;\n scrollbar.init();\n scrollbar.updateSize();\n scrollbar.setTranslate();\n }\n\n if (needNavigationInit) {\n if (nextEl) currentParams.navigation.nextEl = nextEl;\n if (prevEl) currentParams.navigation.prevEl = prevEl;\n navigation.init();\n navigation.update();\n }\n\n if (changedParams.includes('allowSlideNext')) {\n swiper.allowSlideNext = passedParams.allowSlideNext;\n }\n\n if (changedParams.includes('allowSlidePrev')) {\n swiper.allowSlidePrev = passedParams.allowSlidePrev;\n }\n\n if (changedParams.includes('direction')) {\n swiper.changeDirection(passedParams.direction, false);\n }\n\n swiper.update();\n}\n\nexport { updateSwiper };","import { useEffect, useLayoutEffect } from 'react';\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\nexport { useIsomorphicLayoutEffect };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React, { useRef, useState, useEffect, forwardRef } from 'react';\nimport { getParams } from './get-params.js';\nimport { initSwiper, mountSwiper } from './init-swiper.js';\nimport { needsScrollbar, needsNavigation, needsPagination, uniqueClasses, extend } from './utils.js';\nimport { renderLoop, calcLoopedSlides } from './loop.js';\nimport { getChangedParams } from './get-changed-params.js';\nimport { getChildren } from './get-children.js';\nimport { updateSwiper } from './update-swiper.js';\nimport { renderVirtual, updateOnVirtualData } from './virtual.js';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect.js';\nconst Swiper = /*#__PURE__*/forwardRef(({\n className,\n tag: Tag = 'div',\n wrapperTag: WrapperTag = 'div',\n children,\n onSwiper,\n ...rest\n} = {}, externalElRef) => {\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\n const onBeforeBreakpoint = () => {\n setBreakpointChanged(!breakpointChanged);\n };\n\n Object.assign(swiperParams.on, {\n _containerClasses(swiper, classes) {\n setContainerClasses(classes);\n }\n\n });\n\n if (!swiperElRef.current) {\n // init swiper\n Object.assign(swiperParams.on, events);\n eventsAssigned = true;\n swiperRef.current = initSwiper(swiperParams);\n\n swiperRef.current.loopCreate = () => {};\n\n swiperRef.current.loopDestroy = () => {};\n\n if (swiperParams.loop) {\n swiperRef.current.loopedSlides = calcLoopedSlides(slides, swiperParams);\n }\n\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 } // Listen for breakpoints change\n\n\n if (swiperRef.current) {\n swiperRef.current.on('_beforeBreakpoint', onBeforeBreakpoint);\n }\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\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\n useEffect(() => {\n return () => {\n if (swiperRef.current) swiperRef.current.off('_beforeBreakpoint', onBeforeBreakpoint);\n };\n }); // set initialized flag\n\n useEffect(() => {\n if (!initializedRef.current && swiperRef.current) {\n swiperRef.current.emitSlidesClasses();\n initializedRef.current = true;\n }\n }); // mount swiper\n\n useIsomorphicLayoutEffect(() => {\n if (externalElRef) {\n externalElRef.current = swiperElRef.current;\n }\n\n if (!swiperElRef.current) return;\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) onSwiper(swiperRef.current); // eslint-disable-next-line\n\n return () => {\n if (swiperRef.current && !swiperRef.current.destroyed) {\n swiperRef.current.destroy(true, false);\n }\n };\n }, []); // watch for params change\n\n useIsomorphicLayoutEffect(() => {\n attachEvents();\n const changedParams = getChangedParams(passedParams, oldPassedParamsRef.current, slides, oldSlides.current);\n oldPassedParamsRef.current = passedParams;\n oldSlides.current = slides;\n\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\n return () => {\n detachEvents();\n };\n }); // update on virtual update\n\n useIsomorphicLayoutEffect(() => {\n updateOnVirtualData(swiperRef.current);\n }, [virtualData]); // bypass swiper instance to slides\n\n function renderSlides() {\n if (swiperParams.virtual) {\n return renderVirtual(swiperRef.current, slides, virtualData);\n }\n\n if (!swiperParams.loop || swiperRef.current && swiperRef.current.destroyed) {\n return slides.map(child => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper: swiperRef.current\n });\n });\n }\n\n return renderLoop(swiperRef.current, slides, swiperParams);\n }\n\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: swiperElRef,\n className: uniqueClasses(`${containerClasses}${className ? ` ${className}` : ''}`)\n }, restProps), slots['container-start'], 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 }), /*#__PURE__*/React.createElement(WrapperTag, {\n className: \"swiper-wrapper\"\n }, slots['wrapper-start'], renderSlides(), slots['wrapper-end']), slots['container-end']);\n});\nSwiper.displayName = 'Swiper';\nexport { Swiper };","import Swiper from 'swiper';\nimport { isObject, extend } from './utils.js';\nimport { paramsList } from './params-list.js';\n\nfunction getParams(obj = {}) {\n const params = {\n on: {}\n };\n const events = {};\n const passedParams = {};\n extend(params, Swiper.defaults);\n extend(params, Swiper.extendedDefaults);\n params._emitClasses = true;\n params.init = false;\n const rest = {};\n const allowedParams = paramsList.map(key => key.replace(/_/, ''));\n Object.keys(obj).forEach(key => {\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 events[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\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\nexport { getParams };","import Swiper from 'swiper';\nimport { needsNavigation, needsPagination, needsScrollbar } from './utils.js';\n\nfunction initSwiper(swiperParams) {\n return new Swiper(swiperParams);\n}\n\nfunction mountSwiper({\n el,\n nextEl,\n prevEl,\n paginationEl,\n scrollbarEl,\n swiper\n}, swiperParams) {\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\n if (needsPagination(swiperParams) && paginationEl) {\n swiper.params.pagination.el = paginationEl;\n swiper.originalParams.pagination.el = paginationEl;\n }\n\n if (needsScrollbar(swiperParams) && scrollbarEl) {\n swiper.params.scrollbar.el = scrollbarEl;\n swiper.originalParams.scrollbar.el = scrollbarEl;\n }\n\n swiper.init(el);\n}\n\nexport { initSwiper, mountSwiper };","import { paramsList } from './params-list.js';\nimport { isObject } from './utils.js';\n\nfunction getChangedParams(swiperParams, oldParams, children, oldChildren) {\n const keys = [];\n if (!oldParams) return keys;\n\n const addKey = key => {\n if (keys.indexOf(key) < 0) keys.push(key);\n };\n\n const oldChildrenKeys = oldChildren.map(child => child.key);\n const childrenKeys = children.map(child => child.key);\n if (oldChildrenKeys.join('') !== childrenKeys.join('')) addKey('children');\n if (oldChildren.length !== children.length) addKey('children');\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\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\nexport { getChangedParams };","import React from 'react';\n\nfunction 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\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n\n if (swiper.parallax && swiper.params.parallax && swiper.params.parallax.enabled) {\n swiper.parallax.setTranslate();\n }\n}\n\nfunction renderVirtual(swiper, slides, virtualData) {\n if (!virtualData) return null;\n const style = swiper.isHorizontal() ? {\n [swiper.rtlTranslate ? 'right' : 'left']: `${virtualData.offset}px`\n } : {\n top: `${virtualData.offset}px`\n };\n return slides.filter((child, index) => index >= virtualData.from && index <= virtualData.to).map(child => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper,\n style\n });\n });\n}\n\nexport { renderVirtual, updateOnVirtualData };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React, { useRef, useState, forwardRef } from 'react';\nimport { uniqueClasses } from './utils.js';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect.js';\nconst SwiperSlide = /*#__PURE__*/forwardRef(({\n tag: Tag = 'div',\n children,\n className = '',\n swiper,\n zoom,\n virtualIndex,\n ...rest\n} = {}, externalRef) => {\n const slideElRef = useRef(null);\n const [slideClasses, setSlideClasses] = useState('swiper-slide');\n\n function updateClasses(_s, el, classNames) {\n if (el === slideElRef.current) {\n setSlideClasses(classNames);\n }\n }\n\n useIsomorphicLayoutEffect(() => {\n if (externalRef) {\n externalRef.current = slideElRef.current;\n }\n\n if (!slideElRef.current || !swiper) {\n return;\n }\n\n if (swiper.destroyed) {\n if (slideClasses !== 'swiper-slide') {\n setSlideClasses('swiper-slide');\n }\n\n return;\n }\n\n swiper.on('_slideClass', updateClasses); // eslint-disable-next-line\n\n return () => {\n if (!swiper) return;\n swiper.off('_slideClass', updateClasses);\n };\n });\n useIsomorphicLayoutEffect(() => {\n if (swiper && slideElRef.current) {\n setSlideClasses(swiper.getSlideClasses(slideElRef.current));\n }\n }, [swiper]);\n let slideData;\n\n if (typeof children === 'function') {\n slideData = {\n isActive: slideClasses.indexOf('swiper-slide-active') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-active') >= 0,\n isVisible: slideClasses.indexOf('swiper-slide-visible') >= 0,\n isDuplicate: slideClasses.indexOf('swiper-slide-duplicate') >= 0,\n isPrev: slideClasses.indexOf('swiper-slide-prev') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-prev') >= 0,\n isNext: slideClasses.indexOf('swiper-slide-next') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-next') >= 0\n };\n }\n\n const renderChildren = () => {\n return typeof children === 'function' ? children(slideData) : children;\n };\n\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: slideElRef,\n className: uniqueClasses(`${slideClasses}${className ? ` ${className}` : ''}`),\n \"data-swiper-slide-index\": virtualIndex\n }, rest), zoom ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-zoom-container\",\n \"data-swiper-zoom\": typeof zoom === 'number' ? zoom : undefined\n }, renderChildren()) : renderChildren());\n});\nSwiperSlide.displayName = 'SwiperSlide';\nexport { SwiperSlide };","import { useI18next } from 'gatsby-plugin-react-i18next';\r\nimport React from 'react';\r\nimport { GatsbyImage, getImage } from \"gatsby-plugin-image\"\r\nimport { graphql, useStaticQuery } from 'gatsby';\r\nimport { Trans } from 'react-i18next';\r\nimport { getUrlToBooking } from '../utils/functions';\r\n\r\nconst PopularDestionations = () => {\r\n const { language, languages, originalPath } = useI18next();\r\n\r\n\r\n const data = useStaticQuery(graphql`\r\n query {\r\n allFile(filter: {relativeDirectory: {eq: \"destinations\"}}) {\r\n edges {\r\n node {\r\n childImageSharp {\r\n gatsbyImageData\r\n }\r\n relativePath\r\n name\r\n }\r\n }\r\n }\r\n }\r\n \r\n`)\r\n\r\n\r\n let images = data.allFile.edges;\r\n let image;\r\n //let url = `https://tickets.sar.com.sa/Booking/SearchTickets?ArrivalStation=DMM&DepartureStation=RYD&ArrivalDateString=2022-03-12&DepartureDateString=2022-03-12&IsReturn=false&AdultCount=1&Youthcount=0&ChildCount=0&InfantCount=0&Lang=${language}`\r\n //const image = getImage(data.allFile.edges[1].node)\r\n\r\n const destinations = [\r\n {\r\n id: 1,\r\n from: \"Dammam\",\r\n to: 'Riyadh',\r\n href: getUrlToBooking(\"DMM\", \"RYD\", language),\r\n imageSrc: 'destinations/riyadh.jpg',\r\n price: \"90\"\r\n },\r\n {\r\n\r\n from: \"Hufuf\",\r\n to: 'Dammam',\r\n href: getUrlToBooking(\"HAF\", \"DMM\", language),\r\n imageSrc: 'destinations/dammam.jpg',\r\n price: \"35\"\r\n },\r\n {\r\n from: \"Riyadh\",\r\n to: 'Qassim',\r\n href: getUrlToBooking(\"RIY\", \"QSM\", language),\r\n imageSrc: 'destinations/qassim.jpeg',\r\n price: \"80\"\r\n },\r\n {\r\n from: \"Riyadh\",\r\n to: 'Hail',\r\n href: getUrlToBooking(\"RIY\", \"HAI\", language),\r\n imageSrc: 'destinations/hail.jpg',\r\n price: \"125\"\r\n },\r\n // {\r\n // from:\"Qassim\",\r\n // to: 'Hail',\r\n // href: '#',\r\n // imageSrc: 'destinations/hail.jpg',\r\n // price:\"77\"\r\n // },\r\n ]\r\n\r\n\r\n\r\n return (\r\n <>\r\n {destinations.map((destination) => (\r\n\r\n image = getImage(images.find(x => x.node.relativePath == destination.imageSrc).node),\r\n\r\n \r\n \r\n {/* \"\" */}\r\n {/* */}\r\n\r\n {/* */}\r\n\r\n \r\n \r\n \r\n {/* */}\r\n \r\n\r\n \r\n\r\n {destination.from}\r\n to \r\n {destination.to} \r\n\r\n \r\n \r\n From \r\n SAR {destination.price} \r\n\r\n \r\n\r\n \r\n\r\n \r\n ))}\r\n \r\n\r\n );\r\n};\r\n\r\n\r\n\r\n\r\nexport default PopularDestionations;\r\n\r\n\r\n","import { Link, useI18next } from 'gatsby-plugin-react-i18next';\r\nimport React from 'react';\r\nimport { StaticImage, GatsbyImage, getImage } from \"gatsby-plugin-image\"\r\nimport { graphql, useStaticQuery } from 'gatsby';\r\nimport { Trans } from 'react-i18next';\r\n\r\n\r\nexport default function ServicesOffer() {\r\n\r\n const data = useStaticQuery(graphql`\r\n query {\r\n allFile(filter: {relativeDirectory: {eq: \"services\"}}) {\r\n edges {\r\n node {\r\n childImageSharp {\r\n gatsbyImageData\r\n }\r\n relativePath\r\n name\r\n }\r\n }\r\n }\r\n }\r\n \r\n`)\r\n\r\n\r\n let images = data.allFile.edges;\r\n let image;\r\n\r\n\r\n const services = [\r\n {\r\n name: 'Passenger Transport',\r\n href: '/about-sar/ournetwork/',\r\n imageSrc: 'services/Passenger.jpg',\r\n imageAlt: '',\r\n\r\n // description: 'Keep your phone, keys, and wallet together, so you can lose everything at once.',\r\n },\r\n {\r\n name: 'Real Estate',\r\n href: '',\r\n imageSrc: 'services/RealEstate.jpg',\r\n imageAlt: '',\r\n imgStyle: {\r\n objectPosition: \"bottom\"\r\n }\r\n // description: 'The rest of the house will still be a mess, but your desk will look great.',\r\n },\r\n {\r\n name: 'Freight',\r\n href: '/about-sar/ournetwork/',\r\n imageSrc: 'services/Cargo.jpg',\r\n imageAlt: '',\r\n // description: 'Be more productive than enterprise project managers with a single piece of paper.',\r\n },\r\n {\r\n name: 'Mashaer',\r\n href: '/about-sar/ournetwork/',\r\n imageSrc: 'services/Mashaer.jpg',\r\n imageAlt: '',\r\n imgStyle: {\r\n objectPosition: \"bottom\"\r\n }\r\n // description: 'Be more productive than enterprise project managers with a single piece of paper.',\r\n },\r\n ]\r\n\r\n\r\n return (\r\n\r\n
\r\n {services.map((service) => (\r\n image = getImage(images.find(x => x.node.relativePath == service.imageSrc)?.node),\r\n\r\n service.name === 'Real Estate' ? (\r\n
\r\n \r\n \r\n
\r\n

{service.name}

\r\n

{service.description}

\r\n
\r\n\r\n ) : (\r\n \r\n \r\n \r\n
\r\n

{service.name}

\r\n

{service.description}

\r\n \r\n )\r\n ))}\r\n \r\n\r\n\r\n )\r\n}\r\n\r\n","import * as React from \"react\";\n\nfunction ChevronDownIcon(props, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z\",\n clipRule: \"evenodd\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ChevronDownIcon);\nexport default ForwardRef;","import * as React from \"react\";\n\nfunction ChevronUpIcon(props, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M14.707 12.707a1 1 0 01-1.414 0L10 9.414l-3.293 3.293a1 1 0 01-1.414-1.414l4-4a1 1 0 011.414 0l4 4a1 1 0 010 1.414z\",\n clipRule: \"evenodd\"\n }));\n}\n\nconst ForwardRef = React.forwardRef(ChevronUpIcon);\nexport default ForwardRef;","import React, { useState } from 'react';\r\nimport { Trans } from 'react-i18next';\r\nimport { ChevronDownIcon, ChevronUpIcon } from '@heroicons/react/solid';\r\n\r\ninterface Props {\r\n title: string;\r\n subtitle: string;\r\n min?: number;\r\n max?: number;\r\n onChange?: (count: number) => void;\r\n defaultValue?: number;\r\n value?: number;\r\n}\r\n\r\nfunction Counter(props: Props) {\r\n const { title, subtitle, defaultValue = 0, value, onChange, max, min } = props;\r\n const [internalCount, setInternalCount] = useState(defaultValue);\r\n\r\n const count = value ?? internalCount;\r\n\r\n const incrementCounter = () => {\r\n if (max && count >= max) {\r\n onChange?.(max);\r\n return;\r\n }\r\n setInternalCount(currentCount => currentCount + 1);\r\n onChange?.(count + 1);\r\n };\r\n\r\n const decrementCounter = () => {\r\n if (min !== undefined && count <= min) {\r\n onChange?.(min);\r\n return;\r\n }\r\n setInternalCount(currentCount => currentCount - 1);\r\n onChange?.(count - 1);\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n {title}\r\n
\r\n
\r\n {subtitle}\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Add\r\n \r\n \r\n\r\n \r\n {count}\r\n \r\n \r\n Delete\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default Counter;\r\n","import React from 'react';\r\nimport { Trans } from 'react-i18next';\r\n\r\ninterface Props {\r\n message?: string;\r\n}\r\n\r\nfunction ErrorMessage(props: Props) {\r\n const {message} = props;\r\n\r\n if (!message) {\r\n return null;\r\n }\r\n\r\n return
{message}
;\r\n}\r\n\r\nexport default ErrorMessage;\r\n","import React, { Fragment, useCallback, useMemo, useState } from 'react';\r\nimport { Popover, Transition } from '@headlessui/react';\r\nimport { PlusIcon } from '@heroicons/react/solid';\r\nimport Counter from '../../../components/Counter';\r\nimport { Passengers, PassengersCount } from '../types';\r\nimport ErrorMessage from './ErrorMessage';\r\nimport { ValidationResult } from './types';\r\nimport { Trans } from 'react-i18next';\r\nimport { classNames } from \"../../../utils/functions\";\r\nimport { destinations } from \"../utils\";\r\n\r\n\r\nconst passengers = [\r\n {\r\n title: 'Adult',\r\n subtitle: '+age 18',\r\n key: Passengers.ADULT,\r\n count: 0,\r\n },\r\n // {\r\n // title: 'Youth',\r\n // subtitle: 'age 12-17',\r\n // key: Passengers.YOUTH,\r\n // count: 0,\r\n // },\r\n {\r\n title: 'Child',\r\n subtitle: 'age 2-11',\r\n key: Passengers.CHILD,\r\n count: 0,\r\n },\r\n {\r\n title: 'Infant',\r\n subtitle: 'age 0-1',\r\n key: Passengers.INFANT,\r\n count: 0,\r\n },\r\n];\r\n\r\ninterface Props {\r\n onChange: (passengers: PassengersCount) => void;\r\n}\r\n\r\nfunction PassengersSelector(props: Props) {\r\n const { onChange } = props;\r\n const [error, setError] = useState('');\r\n const [passengersData, setPassengersData] = useState({\r\n [Passengers.ADULT]: 1,\r\n [Passengers.CHILD]: 0,\r\n [Passengers.INFANT]: 0,\r\n // [Passengers.YOUTH]: 0,\r\n });\r\n\r\n const getTotalCountWithoutKey = useCallback(\r\n (passengerKey: Passengers) => {\r\n return Object.entries(passengersData).reduce((result, [key, count]) => {\r\n if (key === passengerKey) {\r\n return result;\r\n }\r\n return result + count;\r\n }, 0);\r\n },\r\n [passengersData],\r\n );\r\n\r\n const totalCount = useMemo(() => {\r\n return Object.values(passengersData).reduce((result, count) => result + count, 0);\r\n }, [passengersData]);\r\n\r\n const validate = (key: Passengers, count: number): ValidationResult => {\r\n if ([Passengers.INFANT, Passengers.CHILD].includes(key) && passengersData.Adult === 0) {\r\n return {\r\n isValid: false,\r\n err: 'This passenger cannot travel alone, add at least (1) adult',\r\n };\r\n }\r\n if (key === Passengers.INFANT && count > passengersData.Adult) {\r\n return {\r\n isValid: false,\r\n err: 'A maximum of one (1) infant may share a seat with an adult free of charge',\r\n };\r\n }\r\n if (getTotalCountWithoutKey(key) + count > 8) {\r\n return {\r\n isValid: false,\r\n err: 'Number of passengers cannot be more than 8',\r\n };\r\n }\r\n if (key === Passengers.ADULT && count < passengersData.Infant) {\r\n return {\r\n isValid: false,\r\n err: 'A maximum of one (1) infant may share a seat with an adult free of charge',\r\n };\r\n }\r\n if (key === Passengers.ADULT && count === 0 && passengersData.Child) {\r\n return {\r\n isValid: false,\r\n err: 'This passenger cannot travel alone, add at least (1) adult',\r\n };\r\n }\r\n return {\r\n isValid: true,\r\n };\r\n };\r\n\r\n const handleChange = (key: Passengers, count: number) => {\r\n setError('');\r\n const validationResult = validate(key, count);\r\n if (validationResult.isValid) {\r\n const newPassengersData = {\r\n ...passengersData,\r\n [key]: count,\r\n };\r\n setPassengersData(newPassengersData);\r\n onChange?.(newPassengersData);\r\n } else {\r\n setError(validationResult.err);\r\n }\r\n };\r\n\r\n\r\n // if(passengersData.Adult > 1){\r\n // }\r\n\r\n return (\r\n \r\n {({ open }) => (\r\n <>\r\n \r\n {/**/}\r\n {/*{totalCount} Passengers*/}\r\n {/**/}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/**/}\r\n\r\n {totalCount > 0 ? (\r\n <>\r\n Passengers\r\n \r\n \r\n\r\n {passengersData.Adult}{' '}\r\n {passengersData.Adult > 1 ? (<>Adults) : (<>Adult)}\r\n\r\n {passengersData.Child > 0 &&\r\n <>\r\n , {passengersData.Child}{' '}{passengersData.Child > 1 ? (<>Children) : (<>Child)}\r\n \r\n }\r\n\r\n {passengersData.Infant > 0 &&\r\n <>\r\n , {passengersData.Infant}{' '}{passengersData.Infant > 1 ? (<>Infants) : (<>Infant)}\r\n \r\n }\r\n \r\n\r\n \r\n\r\n \r\n ) : (\r\n <>\r\n Passengers\r\n 0 Passengers\r\n\r\n \r\n )}\r\n\r\n \r\n\r\n \r\n \r\n {({ close }) => (\r\n
\r\n
\r\n\r\n
\r\n

Passengers

\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n {passengers.map((passenger, index) => (\r\n handleChange(passenger.key, count)}\r\n value={passengersData[passenger.key]}\r\n // max={8}\r\n min={passenger.key === Passengers.ADULT ? 1 : 0}\r\n />\r\n ))}\r\n
\r\n\r\n\r\n \r\n\r\n\r\n \r\n\r\n\r\n\r\n
\r\n
\r\n )}\r\n
\r\n \r\n \r\n )}\r\n
\r\n );\r\n}\r\n\r\nexport default PassengersSelector;\r\n\r\n","import * as React from 'react';\r\nimport { ChangeEvent, useCallback } from 'react';\r\n\r\ninterface Props {\r\n defaultValue?: boolean;\r\n value?: boolean;\r\n onChange?: (type: boolean) => void;\r\n}\r\n\r\nfunction TripTypeSwitcher(props: Props) {\r\n const { onChange, defaultValue, value } = props;\r\n\r\n const handleChange = useCallback(\r\n (event: ChangeEvent) => {\r\n onChange?.(event.target.checked);\r\n },\r\n [onChange],\r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default TripTypeSwitcher;\r\n","import React, { Fragment, useCallback, useState } from 'react';\r\nimport { Listbox, Transition } from '@headlessui/react';\r\nimport { CheckIcon } from '@heroicons/react/solid';\r\nimport { classNames } from '../../utils/functions';\r\nimport { Trans, useTranslation } from 'gatsby-plugin-react-i18next';\r\nimport { graphql } from 'gatsby';\r\n\r\ntype Item = {\r\n id: number | string;\r\n name: string;\r\n code: string;\r\n};\r\n\r\ninterface Props {\r\n items: Item[];\r\n defaultValue?: Item;\r\n value?: Item;\r\n onChange?: (item: Item) => void;\r\n placeholder?: string;\r\n classes?: string\r\n}\r\n\r\nexport default function ColumnSelectList(props: Props) {\r\n const { t } = useTranslation();\r\n const { items, defaultValue, value = null, onChange, placeholder, classes = '' } = props;\r\n\r\n const [selected, setSelected] = useState(defaultValue);\r\n\r\n const calculatedValue = 'value' in props ? value : selected;\r\n\r\n const handleChange = useCallback(\r\n (item: Item) => {\r\n setSelected(item);\r\n onChange?.(item);\r\n },\r\n [onChange],\r\n );\r\n\r\n return (\r\n \r\n\r\n
\r\n\r\n \r\n {items.map(item => (\r\n \r\n classNames(\r\n selected ? 'bg-sar-blue-500 rounded-md shadow-lg shadow-sar-blue-500/50 font-semibold text-white' : 'font-normal',\r\n !selected ? 'hover:text-sar-blue-600 hover:bg-sar-blue-100 hover:rounded-md' : '',\r\n 'group cursor-default select-none mb-1 relative py-2 ps-3 pe-4',\r\n )\r\n }\r\n value={item}\r\n >\r\n {({ selected, active }) => (\r\n <>\r\n \r\n \r\n {item.name}\r\n \r\n\r\n {item.code &&\r\n \r\n {item.code}\r\n \r\n }\r\n \r\n \r\n )}\r\n \r\n ))}\r\n \r\n\r\n
\r\n\r\n
\r\n );\r\n}\r\n\r\n","import React, { Fragment, useCallback, useEffect, useMemo, useState } from \"react\";\r\nimport { Popover, Transition } from \"@headlessui/react\";\r\nimport { Booking, SERVICE_TYPES } from \"../types\";\r\nimport { destinations, SELECTION } from \"../utils\";\r\nimport { classNames } from \"../../../utils/functions\";\r\nimport ColumnSelectList from \"../../../components/ColumnSelectList\";\r\nimport { useBreakpoint } from \"gatsby-plugin-breakpoints\";\r\nimport { Trans } from \"react-i18next\";\r\n\r\ninterface Props {\r\n fromId?: Booking['DepartureStation'];\r\n toId?: Booking['ArrivalStation'];\r\n // defaultFrom?: Booking['DepartureStation'];\r\n onChange?: (value: Pick) => void;\r\n classes?: string;\r\n classesForSelect?: string;\r\n isRoundTrip?: boolean;\r\n\r\n serviceType: SERVICE_TYPES;\r\n}\r\n\r\nexport default function DestinationSelector2(props: Props) {\r\n\r\n const { onChange, fromId, toId, classes = '', classesForSelect = '', isRoundTrip = false, serviceType = SERVICE_TYPES.Booking } = props;\r\n\r\n const breakpoints = useBreakpoint();\r\n\r\n const selection = !breakpoints.sm ? SELECTION.Dual : SELECTION.From;\r\n\r\n console.log(\"selection\", selection, breakpoints)\r\n\r\n const [stationSelection, setStationSelection] = useState(selection);\r\n\r\n const handleChangeFrom = useCallback(\r\n item => {\r\n if (item.id !== fromId) {\r\n onChange?.({\r\n DepartureStation: item.id,\r\n ArrivalStation: undefined,\r\n });\r\n }\r\n },\r\n [fromId, onChange],\r\n );\r\n\r\n const handleChangeTo = (close: any) => useCallback(\r\n item => {\r\n if (fromId === undefined) {\r\n return;\r\n }\r\n onChange?.({\r\n DepartureStation: fromId,\r\n ArrivalStation: item.id,\r\n });\r\n\r\n close();\r\n },\r\n [onChange, fromId],\r\n );\r\n\r\n const toDestinations = useMemo(() => {\r\n return Object.values(destinations).filter(destination => {\r\n\r\n if (fromId === undefined) {\r\n return false;\r\n }\r\n if (destination.id === fromId) {\r\n return false;\r\n }\r\n\r\n if ((serviceType === SERVICE_TYPES.CarCargo || serviceType === SERVICE_TYPES.TrainCarCargo) && !destination.isCargoServiceAvailable) {\r\n return false\r\n }\r\n\r\n if (destination.direction === null || destinations[fromId].direction === null) {\r\n return true;\r\n }\r\n\r\n return destination.direction === destinations[fromId].direction;\r\n\r\n });\r\n }, [fromId]);\r\n\r\n const fromDestinations = useMemo(() => {\r\n return Object.values(destinations).filter(destination => {\r\n\r\n if ((serviceType === SERVICE_TYPES.CarCargo || serviceType === SERVICE_TYPES.TrainCarCargo) && !destination.isCargoServiceAvailable) {\r\n return false\r\n }\r\n return true;\r\n\r\n });\r\n }, [serviceType]);\r\n\r\n\r\n useEffect(() => {\r\n\r\n const selection = !breakpoints.sm ? SELECTION.Dual : toId == undefined ? SELECTION.To : SELECTION.From;\r\n\r\n setStationSelection(selection);\r\n\r\n\r\n if (fromId !== undefined) {\r\n onChange?.({ DepartureStation: fromId, ArrivalStation: toId });\r\n }\r\n\r\n }, [fromId, toId]);\r\n\r\n\r\n return (\r\n\r\n\r\n \r\n\r\n {({ open }) => (\r\n <>\r\n {\r\n\r\n const selection = !breakpoints.sm ? SELECTION.Dual : SELECTION.From;\r\n\r\n setStationSelection(selection);\r\n\r\n }}>\r\n\r\n {destinations[fromId] !== undefined ? (\r\n <>\r\n \r\n From\r\n \r\n {isRoundTrip ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n \r\n\r\n To\r\n \r\n \r\n {destinations[fromId]?.name}\r\n {/* \r\n {isRoundTrip ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n */}\r\n {destinations[toId]?.name}\r\n \r\n {/* Departure and Arrival Stations */}\r\n \r\n ) : (\r\n <>\r\n \r\n From\r\n \r\n {isRoundTrip ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n \r\n\r\n To\r\n \r\n Select Departure and Arrival Stations\r\n \r\n )}\r\n\r\n \r\n\r\n \r\n \r\n {({ close }) => (\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n Select Departure\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n

\r\n Select Arrival\r\n

\r\n\r\n \r\n
\r\n
\r\n
\r\n )}\r\n
\r\n \r\n \r\n )\r\n }\r\n
\r\n\r\n\r\n\r\n\r\n );\r\n}\r\n\r\n","import React, { useState } from \"react\";\r\nimport Datepicker from \"react-tailwindcss-datepicker\";\r\nimport { useBreakpoint } from 'gatsby-plugin-breakpoints';\r\n\r\nexport interface Props {\r\n asSingle?: boolean;\r\n defaultValue?: Date;\r\n value?: any;\r\n placeholder?: string;\r\n onChange?: (date: any) => void;\r\n disable?: {\r\n before?: Date;\r\n after?: Date;\r\n };\r\n header?: React.ReactNode;\r\n minDate?: Date;\r\n startFrom?: Date;\r\n language?: string;\r\n}\r\n\r\nfunction CalendarV2(props: Props) {\r\n\r\n const breakpoints = useBreakpoint();\r\n\r\n const { asSingle, defaultValue, value, placeholder, onChange, disable, header, minDate, startFrom, language } = props;\r\n\r\n const handleChange = (dates: any) => {\r\n onChange?.(dates);\r\n };\r\n\r\n\r\n return (\r\n \r\n // text - xs text - sar - blue - 400 md: text - sm\r\n );\r\n}\r\n\r\nexport default CalendarV2;\r\n","import React, { FC, Fragment, useCallback, useState } from 'react';\r\nimport { Popover, Transition } from '@headlessui/react'\r\nimport { useBreakpoint } from 'gatsby-plugin-breakpoints';\r\nimport { CheckIcon } from '@heroicons/react/solid';\r\nimport { Trans, useTranslation } from 'gatsby-plugin-react-i18next';\r\nimport { graphql } from 'gatsby';\r\nimport CalendarV2 from '../../../components/CalendarV2';\r\n\r\n\r\nexport interface Props {\r\n asSingle?: boolean;\r\n defaultValue?: Date;\r\n value?: any;\r\n placeholder?: string;\r\n onChange?: (date: Date) => void;\r\n header?: React.ReactNode;\r\n language?: string;\r\n disable?: {\r\n before?: Date;\r\n after?: Date;\r\n };\r\n}\r\n\r\n\r\nexport default function DateSelector2(props: Props) {\r\n\r\n const breakpoints = useBreakpoint();\r\n\r\n const { asSingle, defaultValue, value, placeholder, onChange, header, language } = props;\r\n\r\n return (\r\n\r\n
\r\n {/* Destinations */}\r\n Travel Dates\r\n \r\n\r\n {/* Travel Dates */}\r\n\r\n
\r\n\r\n\r\n //\r\n // \r\n // {({ open }) => (\r\n // <>\r\n // \r\n // {/* Destinations */}\r\n //\r\n // Select Departure and Arrival Stations\r\n //\r\n // \r\n //\r\n // \r\n // \r\n // {({ close }) => (\r\n //\r\n // \r\n // )}\r\n // \r\n // \r\n // \r\n // )\r\n // }\r\n // \r\n //\r\n\r\n\r\n\r\n );\r\n}\r\n\r\n","import * as React from \"react\";\r\nimport { useCallback, useMemo, useState } from \"react\";\r\nimport DestinationSelector from \"./DestinationSelector\";\r\nimport { Trans, useI18next } from \"gatsby-plugin-react-i18next\";\r\nimport PassengerSelector from \"./PassengersSelector/\";\r\nimport PromoCode from \"../../components/promo-code\";\r\nimport TripTypeSwitcher from \"./TripTypeSwitcher\";\r\nimport { Booking, PassengersCount, SERVICE_TYPES } from \"./types\";\r\nimport ErrorMessage from \"./PassengersSelector/ErrorMessage\";\r\nimport { PencilIcon, TicketIcon } from \"@heroicons/react/outline\";\r\nimport { getDateStringWithTimeZoneFix, getStationsCode } from \"./utils\";\r\nimport DestinationSelector2 from \"./DestinationSelectorV2\";\r\nimport DateSelector2 from \"./DateSelectorV2\";\r\nimport { classNames } from \"../../utils/functions\";\r\nimport { bool } from \"prop-types\";\r\nimport urlPath from \"../../objects/urlPath\"\r\n\r\n\r\nfunction BookingIndex() {\r\n\r\n const { language } = useI18next();\r\n let placeholderText = language == \"en\" ? \"Promo Code\" : \"رمز ترويجي\";\r\n\r\n const [validationError, setValidationError] = useState('');\r\n const [promoCodeSelection, setPromoCodeSelection] = useState(Boolean);\r\n const [addExtrasCheck, setAddExtrasCheck] = useState(Boolean);\r\n const [enabled, setEnabled] = useState(false)\r\n const [valueDt, setValueDt] = useState({\r\n startDate: getDateStringWithTimeZoneFix(new Date()),\r\n endDate: getDateStringWithTimeZoneFix(new Date())\r\n });\r\n\r\n\r\n\r\n\r\n\r\n const [bookingData, setBookingData] = useState({\r\n DepartureStation: undefined,\r\n ArrivalStation: undefined,\r\n IsReturn: false,\r\n DepartureDate: new Date(),\r\n DepartureDateString: getDateStringWithTimeZoneFix(new Date()),\r\n AdultCount: 1,\r\n ChildCount: 0,\r\n InfantCount: 0,\r\n YouthCount: 0,\r\n ServiceType: SERVICE_TYPES.Booking,\r\n PromoCode: \"\"\r\n\r\n });\r\n\r\n const totalPassengersCount = useMemo(() => {\r\n return (\r\n bookingData.AdultCount +\r\n bookingData.ChildCount +\r\n bookingData.InfantCount +\r\n bookingData.YouthCount\r\n );\r\n }, [bookingData]);\r\n\r\n const handleChangeDestination = useCallback(\r\n (destination: Pick) => {\r\n setBookingData(currentData => ({\r\n ...currentData,\r\n ...destination,\r\n }));\r\n },\r\n [],\r\n );\r\n\r\n const handleOnewayChange = useCallback((isOneWay: boolean) => {\r\n setBookingData(currentData => ({\r\n ...currentData,\r\n //ArrivalStation: isOneWay ? currentData.ArrivalStation : undefined,\r\n IsReturn: !isOneWay,\r\n ArrivalDate: isOneWay ? undefined : new Date(),\r\n ArrivalDateString: isOneWay ? '' : getDateStringWithTimeZoneFix(new Date())\r\n }));\r\n }, []);\r\n\r\n\r\n const handleChangePassengerData = (passengers: PassengersCount) => {\r\n setBookingData(currentData => ({\r\n ...currentData,\r\n AdultCount: passengers.Adult,\r\n // YouthCount: passengers.Youth,\r\n ChildCount: passengers.Child,\r\n InfantCount: passengers.Infant,\r\n }));\r\n };\r\n\r\n const handleChangeMenuOptions = (serviceType: SERVICE_TYPES) => {\r\n let isReturn = bookingData.IsReturn;\r\n setAddExtrasCheck(false);\r\n if (serviceType === SERVICE_TYPES.CarCargo) {\r\n isReturn = false\r\n }\r\n setBookingData(currentData => (\r\n {\r\n DepartureStation: undefined,\r\n ArrivalStation: undefined,\r\n IsReturn: false,\r\n DepartureDate: new Date(),\r\n DepartureDateString: getDateStringWithTimeZoneFix(new Date()),\r\n AdultCount: 1,\r\n ChildCount: 0,\r\n InfantCount: 0,\r\n YouthCount: 0,\r\n ServiceType: serviceType,\r\n promocode: \"\"\r\n }));\r\n }\r\n const handleAddExtrasOption = () => {\r\n setAddExtrasCheck(true);\r\n }\r\n\r\n const baseURL = urlPath.sarTicketsUrl;\r\n\r\n\r\n const handleSubmit = () => {\r\n setValidationError('');\r\n if (bookingData.ArrivalStation === undefined) {\r\n setValidationError('Please select stations');\r\n return;\r\n }\r\n if (totalPassengersCount === 0) {\r\n setValidationError('Add at least one passenger');\r\n return;\r\n }\r\n\r\n const stationCodes = getStationsCode(bookingData);\r\n\r\n //Refactored by Hisham \r\n const url = new URL(urlPath.sarTicketsUrl + \"/Booking/SearchTickets\");\r\n\r\n console.log(valueDt)\r\n bookingData.DepartureDateString = getDateStringWithTimeZoneFix(new Date(valueDt.startDate.replace(/-/g, \"/\")));\r\n bookingData.ArrivalDateString = bookingData.IsReturn ? getDateStringWithTimeZoneFix(new Date(valueDt.endDate.replace(/-/g, \"/\"))) : bookingData.DepartureDateString;\r\n\r\n const params = new URLSearchParams({\r\n ArrivalStation: stationCodes.ArrivalStation,\r\n DepartureStation: stationCodes.DepartureStation,\r\n ArrivalDateString: bookingData.ArrivalDateString ?? bookingData.DepartureDateString,\r\n DepartureDateString: bookingData.DepartureDateString,\r\n IsReturn: bookingData.IsReturn == true ? \"true\" : \"false\",\r\n AdultCount: bookingData.AdultCount.toString(),\r\n ChildCount: bookingData.ChildCount.toString(),\r\n InfantCount: bookingData.InfantCount.toString(),\r\n Lang: language,\r\n ServiceType: bookingData.ServiceType.toString(),\r\n promocode: bookingData.PromoCode?.toString() ?? \"\"\r\n });\r\n\r\n url.search = params.toString();\r\n\r\n window.location.href = url.toString();\r\n\r\n console.log('=== bookingData ==>>>', { ...bookingData, ...stationCodes });\r\n\r\n\r\n };\r\n\r\n\r\n const handlePromoChange = (e) => {\r\n setBookingData(currentValue => ({\r\n ...currentValue,\r\n PromoCode: e.target.value\r\n }));\r\n }\r\n\r\n const handleValueDtChange = (date) => {\r\n\r\n let departureDate = new Date(date.startDate);\r\n let arrivalDate = new Date(date.endDate);\r\n\r\n console.log(\"date selector ==>\", date)\r\n\r\n setValueDt(date);\r\n\r\n // setBookingData(currentValue => ({\r\n // ...currentValue,\r\n // //DepartureDate: departureDate,\r\n // //ArrivalDate : arrivalDate,\r\n // // ArrivalDate:\r\n // // currentValue.ArrivalDate && departureDate.getTime() > currentValue.ArrivalDate.getTime()\r\n // // ? arrivalDate\r\n // // : currentValue.ArrivalDate,\r\n // //DepartureDateString: getDateStringWithTimeZoneFix(departureDate),\r\n // //ArrivalDateString: getDateStringWithTimeZoneFix(arrivalDate),\r\n // // ArrivalDateString:\r\n // // currentValue.ArrivalDate && arrivalDate.getTime() > currentValue.ArrivalDate.getTime()\r\n // // ? getDateStringWithTimeZoneFix(arrivalDate)\r\n // // : getDateStringWithTimeZoneFix(currentValue.ArrivalDate??arrivalDate)\r\n // }));\r\n\r\n\r\n }\r\n return (\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n handleChangeMenuOptions(SERVICE_TYPES.Booking)}\r\n className={classNames(\r\n 'sm:w-auto inline-flex items-center py-2.5 px-5 text-white text-sm font-normal rtl:font-light rounded-md transition ease-in-out delay-150 focus:outline-none transition ease-in-out delay-150',\r\n bookingData.ServiceType === SERVICE_TYPES.Booking ? \"bg-sar-blue-500 shadow-lg shadow-sar-blue-500/50 -translate-y-1\" : \"bg-black shadow-lg shadow-black-500/50 hover:-translate-y-1 hover:bg-sar-blue-500 hover:shadow-sar-blue-500/50 duration-300\"\r\n )}\r\n >\r\n {/* */}\r\n \r\n \r\n \r\n\r\n \r\n Book a Train\r\n \r\n\r\n \r\n\r\n handleChangeMenuOptions(SERVICE_TYPES.TrainCarCargo)}\r\n className={classNames(\r\n 'sm:w-auto inline-flex items-center py-2.5 px-5 text-white text-sm font-normal rtl:font-light rounded-md transition ease-in-out delay-150 focus:outline-none transition ease-in-out delay-150',\r\n bookingData.ServiceType === SERVICE_TYPES.TrainCarCargo ? \"bg-sar-blue-500 shadow-lg shadow-sar-blue-500/50 -translate-y-1\" : \"bg-black shadow-lg shadow-black-500/50 hover:-translate-y-1 hover:bg-sar-blue-500 hover:shadow-sar-blue-500/50 duration-300\"\r\n )}\r\n >\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n\r\n \r\n Train + Car Cargo\r\n \r\n \r\n\r\n handleChangeMenuOptions(SERVICE_TYPES.CarCargo)}\r\n className={classNames(\r\n 'sm:w-auto inline-flex items-center py-2.5 px-5 text-white text-sm font-normal rtl:font-light rounded-md transition ease-in-out delay-150 focus:outline-none',\r\n bookingData.ServiceType === SERVICE_TYPES.CarCargo ? \"bg-sar-blue-500 shadow-lg shadow-sar-blue-500/50 -translate-y-1\" : \"bg-black shadow-lg shadow-black-500/50 hover:-translate-y-1 hover:bg-sar-blue-500 hover:shadow-sar-blue-500/50 duration-300\"\r\n )}\r\n >\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Car Cargo\r\n \r\n \r\n window.location.href = baseURL + \"/manage\"}\r\n className={classNames(\r\n 'sm:w-auto inline-flex items-center py-2.5 px-5 text-white text-sm font-normal rtl:font-light rounded-md bg-black shadow-lg shadow-black-500/50 hover:-translate-y-1 hover:bg-sar-blue-500 hover:shadow-sar-blue-500/50 duration-300 transition ease-in-out delay-150 focus:outline-none transition ease-in-out delay-150'\r\n )}\r\n >\r\n {/* */}\r\n \r\n \r\n \r\n \r\n\r\n \r\n Manage Booking\r\n \r\n\r\n \r\n handleAddExtrasOption()}\r\n className={classNames(\r\n 'sm:w-auto inline-flex items-center py-2.5 px-5 text-white text-sm font-normal rtl:font-light rounded-md transition ease-in-out delay-150 focus:outline-none ',\r\n \"bg-black shadow-lg shadow-black-500/50 hover:-translate-y-1 hover:bg-sar-blue-500 hover:shadow-sar-blue-500/50 duration-300\"\r\n )}\r\n >\r\n\r\n \r\n \r\n \r\n\r\n\r\n \r\n Add Extras\r\n \r\n \r\n\r\n\r\n
\r\n
\r\n
\r\n\r\n\r\n {!addExtrasCheck ?\r\n
\r\n {/* Destination Selector */}\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n
\r\n\r\n {/* Dates Selectors */}\r\n
\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n
\r\n\r\n }\r\n />\r\n
\r\n\r\n {/* pax count */}\r\n {bookingData.ServiceType !== SERVICE_TYPES.CarCargo &&\r\n
\r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n
\r\n {/*Passengers*/}\r\n {/*Add Passengers*/}\r\n \r\n
\r\n\r\n
\r\n }\r\n {/* Add promocode */}\r\n
\r\n {!promoCodeSelection ?\r\n <>\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n
\r\n \r\n
:\r\n
\r\n
\r\n\r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n }\r\n\r\n
\r\n\r\n
\r\n :\r\n
\r\n
\r\n\r\n window.location.href = baseURL + \"/Manage?manageType=Baggage\"}\r\n className={classNames(\r\n 'sm:w-auto inline-flex items-center py-2.5 px-5 text-white text-sm font-normal rtl:font-light rounded-md transition ease-in-out delay-150 focus:outline-none mt-5 md:mt-0',\r\n bookingData.ServiceType === SERVICE_TYPES.CarCargo ? \"bg-sar-blue-500 shadow-lg shadow-sar-blue-500/50 -translate-y-1\" : \"bg-black shadow-lg hover:-translate-y-1 hover:bg-sar-blue-500 hover:shadow-sar-blue-500/50 duration-300 mt-5 md:mt-0\"\r\n )}\r\n >\r\n\r\n \r\n \r\n \r\n\r\n \r\n Add Baggage\r\n \r\n \r\n\r\n window.location.href = baseURL + \"/Manage?manageType=Meals\"}\r\n className={classNames(\r\n 'sm:w-auto inline-flex items-center py-2.5 px-5 text-white text-sm font-normal rtl:font-light rounded-md transition ease-in-out delay-150 focus:outline-none mt-5 md:mt-0',\r\n bookingData.ServiceType === SERVICE_TYPES.CarCargo ? \"bg-sar-blue-500 shadow-sar-blue-500/50 -translate-y-1\" : \"bg-black shadow-lg shadow-black-500/50 hover:-translate-y-1 hover:bg-sar-blue-500 hover:shadow-sar-blue-500/50 duration-300 mt-5 md:mt-0\"\r\n )}\r\n >\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Add Meals\r\n \r\n \r\n window.location.href = baseURL + \"/Manage?manageType=Lounge\"}\r\n className={classNames(\r\n 'sm:w-auto inline-flex items-center py-2.5 px-5 text-white text-sm font-normal rtl:font-light rounded-md transition ease-in-out delay-150 focus:outline-none mt-5 md:mt-0',\r\n bookingData.ServiceType === SERVICE_TYPES.CarCargo ? \"bg-sar-blue-500 shadow-sar-blue-500/50 -translate-y-1\" : \"bg-black shadow-lg shadow-black-500/50 hover:-translate-y-1 hover:bg-sar-blue-500 hover:shadow-sar-blue-500/50 duration-300 mt-5 md:mt-0\"\r\n )}\r\n >\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Add Lounge\r\n \r\n \r\n window.location.href = baseURL + \"/Manage?manageType=Seats\"}\r\n className={classNames(\r\n 'sm:w-auto inline-flex items-center py-2.5 px-5 text-white text-sm font-normal rtl:font-light rounded-md transition ease-in-out delay-150 focus:outline-none mt-5 md:mt-0',\r\n bookingData.ServiceType === SERVICE_TYPES.CarCargo ? \"bg-sar-blue-500 shadow-sar-blue-500/50 -translate-y-1\" : \"bg-black shadow-lg shadow-black-500/50 hover:-translate-y-1 hover:bg-sar-blue-500 hover:shadow-sar-blue-500/50 duration-300 mt-5 md:mt-0\"\r\n )}\r\n >\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Add Seats\r\n \r\n \r\n
\r\n
\r\n }\r\n\r\n\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n {!addExtrasCheck ?\r\n
\r\n \r\n \r\n Search Trains\r\n \r\n \r\n \r\n \r\n \r\n
: null}\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n );\r\n}\r\n\r\nexport default BookingIndex;\r\n\r\n\r\n","import React, { useEffect, useState, Fragment } from \"react\";\r\nimport { graphql } from \"gatsby\";\r\nimport {\r\n Link,\r\n Trans,\r\n useTranslation,\r\n useI18next,\r\n} from \"gatsby-plugin-react-i18next\";\r\nimport SEO from \"../components/seo\";\r\nimport { Dialog, Popover, Tab, Transition, Disclosure } from '@headlessui/react'\r\n\r\nimport { StaticImage } from \"gatsby-plugin-image\";\r\nimport { Navigation, Pagination, A11y, EffectFade } from \"swiper\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport \"swiper/css\";\r\nimport \"swiper/css/navigation\";\r\nimport \"swiper/css/pagination\";\r\nimport \"swiper/css/scrollbar\";\r\nimport \"swiper/css/effect-fade\";\r\nimport PopularDestionations from \"../components/popular-destinations\";\r\nimport BeforeTravel from \"../components/before-travel\";\r\nimport Footer from \"../components/footer\";\r\nimport ServicesOffer from \"../components/services-offer\";\r\nimport ExternalLinks from \"../components/external-links\";\r\nimport NavigationMeuu from \"../components/navigation-menu\";\r\nimport Booking from \"../features/Booking\";\r\nimport { Script } from \"gatsby\"\r\nimport { Helmet } from \"react-helmet\";\r\n\r\n\r\nconst IndexPage = ({ data }) => {\r\n const { t } = useTranslation();\r\n const { language } = useI18next();\r\n let [isOpen, setIsOpen] = useState(false)\r\n function closeModal() {\r\n setIsOpen(false)\r\n }\r\n\r\n function openModal() {\r\n setIsOpen(true)\r\n }\r\n\r\n {/* Add fix for logged in User - Hisham */ }\r\n useEffect(() => {\r\n const params = new URLSearchParams(window.location.search);\r\n if (params.size !== undefined && params.size !== 0) {\r\n //Store User Info Come from B2C if Present as Query String\r\n sessionStorage.setItem(\"userInfo\",\r\n JSON.stringify({ \"fullName\": params.get('fullName'), \"initials\": params.get('initials') }));\r\n window.location.search = \"\";\r\n }\r\n }, []);\r\n const appDynamics = `\r\n `;\r\n {/* Add fix for logged in User - Hisham */ }\r\n\r\n return (\r\n\r\n\r\n
\r\n \r\n\r\n {/* Hero section */}\r\n
\r\n {/* Decorative image and overlay */}\r\n\r\n {/*
\r\n\r\n
\r\n
\r\n\r\n */}\r\n\r\n \r\n {/* Navigation */}\r\n \r\n\r\n console.log(swiper)}\r\n // onSlideChange={() => console.log('slide change')}\r\n effect=\"fade\"\r\n dir={language == \"en\" ? \"ltr\" : \"rtl\"}\r\n\r\n >\r\n \r\n {language == \"en\" ? (\r\n <>\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
) : (<>\r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n )}\r\n\r\n
\r\n

\r\n Tickets Tailored Just for you\r\n

\r\n\r\n\r\n \r\n Find out more\r\n \r\n
\r\n
\r\n \r\n\r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n }} >SIXT End-of-Summer Offer\r\n

\r\n

\r\n 15% off car rentals from our stations\r\n

\r\n\r\n\r\n \r\n Find out more\r\n \r\n
\r\n
\r\n\r\n\r\n\r\n \r\n {language == \"en\" ? (\r\n <>\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
) : (<>\r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n )}\r\n\r\n
\r\n

\r\n Delicious Food\r\n

\r\n

\r\n Just for you\r\n

\r\n\r\n \r\n Find out more\r\n \r\n
\r\n
\r\n\r\n \r\n {language == \"en\" ? (\r\n <>\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
) : (<>\r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n )}\r\n\r\n
\r\n

\r\n Delicious Food\r\n

\r\n

\r\n Just for you\r\n

\r\n\r\n \r\n Find out more\r\n \r\n
\r\n
\r\n\r\n \r\n {language == \"en\" ? (\r\n <>\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n ) : (<>\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n )}\r\n
\r\n

\r\n Our Baggage Sizes are Changing\r\n

\r\n

\r\n Discover our new baggage policy\r\n

\r\n\r\n \r\n Find out more\r\n \r\n
\r\n
\r\n \r\n {language == \"en\" ? (\r\n <>\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n ) : (<>\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n )}\r\n
\r\n

\r\n Want to Carry More?\r\n

\r\n

\r\n You can now add extra luggage to your booking\r\n

\r\n\r\n \r\n Find out more\r\n \r\n
\r\n
\r\n \r\n {language == \"en\" ? (\r\n <>\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n ) : (<>\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n )}\r\n
\r\n

\r\n Your Journey Starts Here\r\n

\r\n

\r\n You can now add Lounge Access to your booking\r\n

\r\n\r\n \r\n Find out more\r\n \r\n
\r\n
\r\n\r\n {/* \r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n }}>Experience the Buraidah Date Carnival with SAR\r\n

\r\n

\r\n }}>Ship your dates by train with our 2 for 1 offer!\r\n

\r\n\r\n\r\n \r\n Find out more\r\n \r\n
\r\n
*/}\r\n\r\n {/* \r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n Ship your Limes by train with our 2 for 1 offer!\r\n

\r\n

\r\n }}>Experience the Lomi Hasawi Exhibition with SAR!\r\n

\r\n\r\n\r\n \r\n Find out more\r\n \r\n
\r\n
*/}\r\n \r\n {language == \"en\" ? (\r\n <>\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
) : (<>\r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n )}\r\n \r\n
\r\n

\r\n Pre-book your car rental\r\n

\r\n

\r\n from SAR stations with Telgani\r\n

\r\n\r\n\r\n \r\n Find out more\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n

\r\n Uber x SAR\r\n

\r\n

\r\n Your journey made easier\r\n

\r\n\r\n \r\n Find out more\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n Available Anytime\r\n

\r\n

\r\n Receive rapid responses to all your queries around the clock via Whatsapp Chatbot\r\n

\r\n \r\n Get in touch\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n Car Cargo\r\n

\r\n

\r\n Travel by train with your car\r\n

\r\n \r\n Find out more\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n

\r\n Parcel Shipments\r\n

\r\n

\r\n Now available from all North & East Stations\r\n

\r\n \r\n Find out more\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n

\r\n Towards a Bright Future\r\n

\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n

\r\n Parcel Shipments\r\n

\r\n

\r\n Now available from all North & East Stations\r\n

\r\n \r\n Find out more\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n Car Cargo\r\n

\r\n

\r\n Travel by train with your car\r\n

\r\n \r\n Find out more\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n Available Anytime\r\n

\r\n

\r\n Receive rapid responses to all your queries around the clock via Whatsapp Chatbot\r\n

\r\n \r\n Get in touch\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n

\r\n Uber x SAR\r\n

\r\n

\r\n Your journey made easier\r\n

\r\n\r\n \r\n Find out more\r\n \r\n
\r\n
\r\n {/* \r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n Experience the Buraidah Date Carnival with SAR\r\n

\r\n

\r\n Ship your dates by train with our 2 for 1 offer!\r\n

\r\n\r\n\r\n \r\n Find out more\r\n \r\n
\r\n
*/}\r\n {/* \r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n Ship your Limes by train with our 2 for 1 offer!\r\n

\r\n

\r\n Experience the Lomi Hasawi Exhibition with SAR!\r\n

\r\n\r\n\r\n \r\n Find out more\r\n \r\n
\r\n
*/}\r\n \r\n {language == \"en\" ? (\r\n <>\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
) : (<>\r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n )}\r\n \r\n
\r\n

\r\n Pre-book your car rental\r\n

\r\n

\r\n from SAR stations with Telgani\r\n

\r\n\r\n\r\n \r\n Find out more\r\n \r\n
\r\n
\r\n\r\n \r\n {language == \"en\" ? (\r\n <>\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n ) : (<>\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n )}\r\n
\r\n

\r\n Your Journey Starts Here\r\n

\r\n

\r\n You can now add Lounge Access to your booking\r\n

\r\n\r\n \r\n Find out more\r\n \r\n
\r\n
\r\n\r\n \r\n {language == \"en\" ? (\r\n <>\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n ) : (<>\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n )}\r\n
\r\n

\r\n Want to Carry More?\r\n

\r\n

\r\n You can now add extra luggage to your booking\r\n

\r\n\r\n \r\n Find out more\r\n \r\n
\r\n
\r\n \r\n {language == \"en\" ? (\r\n <>\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n ) : (<>\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n )}\r\n
\r\n

\r\n Our Baggage Sizes are Changing\r\n

\r\n

\r\n Discover our new baggage policy\r\n

\r\n\r\n \r\n Find out more\r\n \r\n
\r\n
\r\n \r\n {language == \"en\" ? (\r\n <>\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
) : (<>\r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n )}\r\n\r\n
\r\n

\r\n Delicious Food\r\n

\r\n

\r\n Just for you\r\n

\r\n\r\n \r\n Find out more\r\n \r\n
\r\n
\r\n \r\n {language == \"en\" ? (\r\n <>\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
) : (<>\r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n )}\r\n\r\n
\r\n

\r\n Tickets Tailored Just for you\r\n

\r\n\r\n\r\n \r\n Find out more\r\n \r\n
\r\n
\r\n\r\n\r\n\r\n\r\n \r\n\r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n

\r\n SIXT End-of-Summer Offer\r\n

\r\n

\r\n 15% off car rentals from our stations\r\n

\r\n\r\n\r\n \r\n Find out more\r\n \r\n
\r\n
\r\n \r\n {language == \"en\" ? (\r\n <>\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
) : (<>\r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n )}\r\n\r\n
\r\n

\r\n Tickets Tailored Just for you\r\n

\r\n\r\n\r\n \r\n Find out more\r\n \r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n\r\n
\r\n {/* Booking widget */}\r\n \r\n\r\n {/* Our Services section */}\r\n
\r\n
\r\n \r\n \r\n Services We\r\n \r\n \r\n\r\n Offer\r\n \r\n \r\n
\r\n \r\n
\r\n\r\n {/* Popular destination section */}\r\n \r\n
\r\n \r\n \r\n Book\r\n \r\n \r\n\r\n Early\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n {/* Before you travel section */}\r\n \r\n
\r\n \r\n \r\n Before{\" \"}\r\n \r\n \r\n You{\" \"}\r\n \r\n \r\n {\" \"}\r\n Travel{\" \"}\r\n \r\n \r\n
\r\n\r\n \r\n \r\n
\r\n {/* \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n */}\r\n\r\n\r\n {/* \r\n \r\n\r\n */}\r\n\r\n\r\n
\r\n\r\n );\r\n};\r\n\r\nexport default IndexPage;\r\n\r\nexport const query = graphql`\r\n query ($language: String!) {\r\n locales: allLocale(\r\n filter: {\r\n ns: { in: [\"translation\", \"common\", \"navigation\"] }\r\n language: {eq: $language }\r\n }\r\n ) {\r\n edges {\r\n node {\r\n ns\r\n data\r\n language\r\n }\r\n }\r\n }\r\n }\r\n `;\r\n"],"names":["module","exports","t","e","n","r","i","s","u","a","o","c","f","h","d","l","$","y","M","name","weekdays","split","months","ordinal","m","String","length","Array","join","v","z","utcOffset","Math","abs","floor","date","year","month","clone","add","ceil","p","w","D","ms","Q","toLowerCase","replace","g","S","_","O","args","arguments","b","locale","$L","utc","$u","x","$x","$offset","this","parse","prototype","$d","Date","NaN","test","match","substring","UTC","init","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","toString","isSame","startOf","endOf","isAfter","isBefore","$g","set","unix","valueOf","getTime","toDate","apply","slice","$locale","weekStart","$set","min","daysInMonth","get","Number","round","subtract","format","invalidDate","meridiem","monthsShort","weekdaysMin","weekdaysShort","getTimezoneOffset","diff","toJSON","toISOString","toUTCString","k","forEach","extend","$i","isDayjs","en","Ls","_BreakpointProvider","require","useBreakpoint","BreakpointProvider","BreakpointContext","withBreakpoints","_interopRequireDefault","__esModule","_extends2","_react","Component","props","breakpoints","default","createElement","classNames","_len","classes","_key","filter","Boolean","getUrlToBooking","fromStation","toStation","lang","url","URL","DateString","addDays","params","URLSearchParams","ArrivalStation","DepartureStation","ArrivalDateString","DepartureDateString","IsReturn","AdultCount","Youthcount","ChildCount","InfantCount","Lang","ServiceType","search","BeforeTravel","image","images","useStaticQuery","allFile","edges","React","className","title","href","imageSrc","map","instruction","_images$find","getImage","find","node","relativePath","Link","to","key","GatsbyImage","alt","Trans","obj","constructor","Object","target","src","keys","ssrDocument","body","addEventListener","removeEventListener","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","children","childNodes","style","setAttribute","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","origin","pathname","protocol","doc","document","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","getComputedStyle","getPropertyValue","Image","screen","setTimeout","clearTimeout","matchMedia","requestAnimationFrame","callback","cancelAnimationFrame","id","win","window","Dom7","items","super","proto","__proto__","defineProperty","value","makeReactive","arrayFlat","arr","res","el","isArray","push","arrayFilter","call","selector","context","html","trim","indexOf","toCreate","tempParent","innerHTML","qsa","nodeType","uniqueArray","arrayUnique","fn","noTrigger","shortcut","trigger","on","Methods","addClass","classList","removeClass","remove","hasClass","contains","toggleClass","toggle","attr","attrs","getAttribute","attrName","removeAttr","removeAttribute","transform","transition","duration","transitionDuration","eventType","targetSelector","listener","capture","handleLiveEvent","eventData","dom7EventData","unshift","is","parents","handleEvent","undefined","events","j","event","dom7LiveListeners","proxyListener","dom7Listeners","off","handlers","handler","dom7proxy","splice","evt","detail","bubbles","cancelable","data","dataIndex","dispatchEvent","transitionEnd","dom","fireCallBack","outerWidth","includeMargins","styles","offsetWidth","parseFloat","outerHeight","offsetHeight","offset","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","css","prop","each","index","text","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","child","previousSibling","eq","returnIndex","append","els","newChild","tempDiv","firstChild","appendChild","prepend","insertBefore","next","nextElementSibling","nextAll","nextEls","prev","previousElementSibling","prevAll","prevEls","parent","parentNode","closest","foundElements","found","removeChild","methodName","writable","delay","now","axis","matrix","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","webkitTransform","MozTransform","OTransform","MsTransform","msTransform","m41","m42","noExtend","nextSource","HTMLElement","keysArray","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","enumerable","__swiper__","varName","varValue","setProperty","animateCSSModeScroll","swiper","targetPosition","side","startPosition","translate","time","startTime","speed","wrapperEl","scrollSnapType","cssModeFrameID","dir","isOutOfBound","current","animate","progress","max","easeProgress","cos","PI","currentPosition","scrollTo","overflow","support","deviceCached","browser","getSupport","smoothScroll","documentElement","touch","DocumentTouch","passiveListener","supportsPassive","opts","gestures","calcSupport","getDevice","overrides","platform","ua","device","ios","android","screenWidth","width","screenHeight","height","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","isSafari","isWebView","calcBrowser","priority","self","method","eventsListeners","once","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","emit","updateSize","$el","clientWidth","clientHeight","isHorizontal","isVertical","parseInt","isNaN","assign","size","updateSlides","getDirectionLabel","property","getDirectionPropertyValue","label","$wrapperEl","swiperSize","rtlTranslate","rtl","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slides","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginBottom","marginTop","marginRight","centeredSlides","cssMode","gridEnabled","grid","rows","slideSize","initSlides","shouldResetSlideSize","slidesPerView","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","swiperSlideSize","slidesPerGroup","slidesPerGroupSkip","effect","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","watchOverflow","checkOverflow","watchSlidesProgress","updateSlidesOffset","updateAutoHeight","activeSlides","newHeight","setTransition","getSlideByIndex","visibleSlides","activeIndex","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","originalProgress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","wasBeginning","wasEnd","autoHeight","updateSlidesClasses","realIndex","activeSlide","slideActiveClass","slideNextClass","slidePrevClass","slideDuplicateActiveClass","slideDuplicateNextClass","slideDuplicatePrevClass","loop","slideDuplicateClass","nextSlide","prevSlide","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","skip","initialized","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","getTranslate","virtualTranslate","currentTranslate","setTranslate","byController","newProgress","previousTranslate","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","isH","behavior","onTranslateToWrapperTransitionEnd","destroyed","transitionEmit","direction","step","slideTo","initial","Error","indexAsNumber","isFinite","initialSlide","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","transitionStart","_immediateVirtual","_swiperImmediateVirtual","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","loopedSlides","slideNext","perGroup","slidesPerGroupAuto","slidesPerViewDynamic","increment","loopPreventsSlide","loopFix","_clientLeft","rewind","slidePrev","normalize","val","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","slideReset","slideToClosest","threshold","currentSnap","slideToIndex","loopCreate","$selector","loopFillGroupWithBlank","blankSlidesNum","blankNode","slideBlankClass","loopAdditionalSlides","prependSlides","appendSlides","cloneNode","loopDestroy","onTouchStart","touchEventsData","touches","originalEvent","$targetEl","touchEventsTarget","isTouchEvent","type","which","button","isTouched","isMoved","noSwipingClass","shadowRoot","path","noSwipingSelector","isTargetShadow","noSwiping","base","__closestFrom","assignedSlot","getRootNode","closestElement","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","innerWidth","preventDefault","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","diffX","diffY","sqrt","touchAngle","atan2","touchMoveStopPropagation","nested","stopPropagation","startTranslate","allowMomentumBounce","grabCursor","setGrabCursor","touchRatio","disableParentSwiper","resistanceRatio","resistance","followFinger","freeMode","onTouchEnd","touchEndTime","timeDiff","pathTree","composedPath","lastClickTime","currentPos","stopIndex","groupSize","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","setBreakpoint","autoplay","running","paused","run","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","dummyEventAttached","dummyEventListener","touchEvents","domMethod","swiperMethod","start","passiveListeners","passive","move","end","cancel","updateOnWindowResize","attachEvents","bind","detachEvents","isGridEnabled","breakpoint","getBreakpoint","breakpointsBase","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","containerModifierClass","emitContainerClasses","fill","directionChanged","needsReLoop","changeDirection","isEnabled","disable","enable","containerEl","currentHeight","innerHeight","points","point","minRatio","substr","sort","addClasses","suffixes","entries","prefix","resultClasses","item","prepareClasses","removeClasses","resizeObserver","createElements","simulateTouch","uniqueNavElements","preloadImages","updateOnImagesReady","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","eventsEmitter","update","moving","isLocked","cursor","unsetGrabCursor","wasLocked","lastSlideIndex","lastSlideRightEdge","loadImage","imageEl","srcset","sizes","checkForComplete","onReady","complete","onload","onerror","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","Swiper","swipers","newParams","modules","__modules__","mod","extendParams","swiperParams","defaults","passedParams","eventName","velocity","desktop","touchEventsTouch","touchEventsDesktop","clickTimeout","velocities","setProgress","cls","getSlideClasses","slideEl","updates","view","exact","spv","breakLoop","translateValue","translated","newDirection","needUpdate","currentDirection","mount","mounted","getWrapperSelector","options","getWrapper","wrapper","destroy","deleteInstance","cleanStyles","object","deleteProps","extendDefaults","newDefaults","installModule","use","prototypeGroup","protoMethod","observer","resizeHandler","orientationChangeHandler","ResizeObserver","newWidth","contentBoxSize","contentRect","inlineSize","blockSize","observe","unobserve","observers","attach","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","observeParents","observeSlideChildren","containerParents","disconnect","checkProps","element","Navigation","getEl","toggleEl","disabled","disabledClass","tagName","lockClass","$nextEl","$prevEl","onPrevClick","onNextClick","hideOnClick","hiddenClass","_s","targetEl","pagination","clickable","isHidden","classesToSelector","Pagination","pfx","bulletSize","bulletElement","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","number","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","progressbarFillClass","progressbarOppositeClass","clickableClass","horizontalClass","verticalClass","bullets","dynamicBulletIndex","isPaginationDisabled","setSideBullets","$bulletEl","position","total","paginationType","firstIndex","lastIndex","midIndex","suffix","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","progressbarDirection","scale","scaleX","scaleY","render","paginationHTML","numberOfBullets","A11y","a11y","notificationClass","prevSlideMessage","nextSlideMessage","firstSlideMessage","lastSlideMessage","paginationBulletMessage","slideLabelMessage","containerMessage","containerRoleDescriptionMessage","itemRoleDescriptionMessage","slideRole","liveRegion","notify","message","notification","makeElFocusable","makeElNotFocusable","addElRole","role","addElRoleDescription","description","addElLabel","disableEl","enableEl","onEnterOrSpaceKey","keyCode","click","updateNavigation","hasPagination","hasClickablePagination","initNavEl","wrapperId","controls","addElControls","$containerEl","repeat","random","getRandomNumber","live","addElLive","$slideEl","bulletEl","updatePagination","effectParams","transformEl","EffectFade","fadeEffect","crossFade","overwriteParams","perspective","overwriteParamsResult","tx","ty","slideOpacity","opacity","allSlides","$transitionEndTarget","eventTriggered","triggerEvents","needsNavigation","needsPagination","needsScrollbar","scrollbar","uniqueClasses","unique","paramsList","calcLoopedSlides","slidesPerViewParams","breakpointOnlyParams","processChildren","toArray","displayName","getChildren","slots","slot","foundSlides","updateSwiper","changedParams","scrollbarEl","paginationEl","updateParams","currentParams","thumbs","needThumbsInit","needControllerInit","needPaginationInit","needScrollbarInit","needNavigationInit","includes","controller","control","newValue","lazy","load","useIsomorphicLayoutEffect","deps","useEffect","useLayoutEffect","_extends","source","hasOwnProperty","forwardRef","tag","Tag","wrapperTag","WrapperTag","onSwiper","rest","externalElRef","eventsAssigned","containerClasses","setContainerClasses","useState","virtualData","setVirtualData","breakpointChanged","setBreakpointChanged","initializedRef","useRef","swiperElRef","swiperRef","oldPassedParamsRef","oldSlides","nextElRef","prevElRef","paginationElRef","scrollbarElRef","restProps","allowedParams","getParams","onBeforeBreakpoint","_containerClasses","initSwiper","extendWith","cache","renderExternal","renderExternalUpdate","mountSwiper","oldParams","oldChildren","addKey","oldChildrenKeys","childrenKeys","newKeys","oldKeys","newKey","oldKey","getChangedParams","parallax","ref","from","renderVirtual","modifiedSlides","duplicateSlide","blankSlide","renderLoop","SwiperSlide","zoom","virtualIndex","externalRef","slideElRef","slideClasses","setSlideClasses","updateClasses","slideData","isActive","isVisible","isDuplicate","isPrev","isNext","renderChildren","PopularDestionations","language","languages","originalPath","useI18next","destinations","price","destination","ServicesOffer","imageAlt","imgStyle","objectPosition","service","svgRef","xmlns","viewBox","fillRule","clipRule","subtitle","defaultValue","onChange","internalCount","setInternalCount","count","decrementCounter","currentCount","ChevronDownIcon","incrementCounter","ChevronUpIcon","passengers","Passengers","ADULT","CHILD","INFANT","error","setError","passengersData","setPassengersData","getTotalCountWithoutKey","useCallback","passengerKey","reduce","result","_ref","totalCount","useMemo","values","handleChange","validationResult","validate","Adult","err","Infant","Child","newPassengersData","Popover","_ref2","open","Button","Transition","as","Fragment","enter","enterFrom","enterTo","leave","leaveFrom","leaveTo","Panel","_ref3","close","passenger","Counter","ErrorMessage","checked","defaultChecked","htmlFor","ColumnSelectList","useTranslation","placeholder","selected","setSelected","calculatedValue","Listbox","Options","static","Option","active","code","DestinationSelector2","fromId","toId","classesForSelect","isRoundTrip","serviceType","SERVICE_TYPES","Booking","selection","sm","SELECTION","From","Dual","console","log","stationSelection","setStationSelection","handleChangeFrom","handleChangeTo","toDestinations","CarCargo","TrainCarCargo","isCargoServiceAvailable","fromDestinations","To","_destinations$fromId","_destinations$toId","asSingle","header","minDate","startFrom","Datepicker","useRange","md","configs","footer","i18n","separator","showShortcuts","showFooter","primaryColor","readOnly","dates","displayFormat","inputClassName","DateSelector2","CalendarV2","setDate","before","placeholderText","validationError","setValidationError","promoCodeSelection","setPromoCodeSelection","addExtrasCheck","setAddExtrasCheck","setEnabled","valueDt","setValueDt","startDate","getDateStringWithTimeZoneFix","endDate","bookingData","setBookingData","DepartureDate","YouthCount","PromoCode","totalPassengersCount","handleChangeDestination","currentData","handleOnewayChange","isOneWay","ArrivalDate","handleChangeMenuOptions","isReturn","promocode","handleAddExtrasOption","baseURL","urlPath","sarTicketsUrl","strokeWidth","stroke","strokeLinecap","strokeLinejoin","TripTypeSwitcher","PassengerSelector","currentValue","class","handleSubmit","_bookingData$ArrivalD","_bookingData$PromoCod","_bookingData$PromoCod2","stationCodes","getStationsCode","boxShadow","isOpen","setIsOpen","closeModal","sessionStorage","setItem","JSON","stringify","SEO","ExternalLinks","NavigationMeuu","disableOnInteraction","StaticImage","__imageData","components","span","Footer","appear","show","Dialog","onClose"],"sourceRoot":""}